Browse Source

增加nginx配置的基线支持

luoshi 2 years ago
parent
commit
ac90adbd68

+ 11 - 5
src/main/java/com/qmth/ops/api/controller/admin/NginxConfigController.java

@@ -3,6 +3,7 @@ package com.qmth.ops.api.controller.admin;
 import com.qmth.ops.api.constants.OpsApiConstants;
 import com.qmth.ops.api.security.AdminSession;
 import com.qmth.ops.biz.domain.NginxConfig;
+import com.qmth.ops.biz.domain.Role;
 import com.qmth.ops.biz.service.AppService;
 import com.qmth.ops.biz.service.EnvService;
 import com.qmth.ops.biz.service.ModuleService;
@@ -29,18 +30,23 @@ public class NginxConfigController {
 
     @PostMapping("/find")
     public NginxConfig find(@RequestAttribute AdminSession adminSession, @RequestParam Long appId,
-            @RequestParam Long envId, @RequestParam(required = false) Long moduleId) {
+            @RequestParam(required = false) Long envId, @RequestParam(required = false) Long moduleId) {
         adminSession.validateApp(appService.getById(appId));
-        return nginxConfigService.find(appService.getById(appId), envService.getById(envId),
+        return nginxConfigService.find(appService.getById(appId), envId != null ? envService.getById(envId) : null,
                 moduleId != null ? moduleService.getById(moduleId) : null);
     }
 
     @PostMapping("/update")
     public Object update(@RequestAttribute AdminSession adminSession, @RequestParam Long appId,
-            @RequestParam Long envId, @RequestParam(required = false) Long moduleId, @RequestParam String content) {
+            @RequestParam(required = false) Long envId, @RequestParam(required = false) Long moduleId,
+            @RequestParam String content) {
         adminSession.validateApp(appService.getById(appId));
-        adminSession.validateEnv(envService.getById(envId));
-        return nginxConfigService.update(appService.getById(appId), envService.getById(envId),
+        if (envId != null) {
+            adminSession.validateEnv(envService.getById(envId));
+        } else {
+            adminSession.validateRole(Role.DEV, Role.ADMIN);
+        }
+        return nginxConfigService.update(appService.getById(appId), envId != null ? envService.getById(envId) : null,
                 moduleId != null ? moduleService.getById(moduleId) : null, content);
     }
 

+ 7 - 4
src/main/java/com/qmth/ops/biz/service/NginxConfigService.java

@@ -18,18 +18,21 @@ public class NginxConfigService {
 
     private static final long GLOBAL_MODULE_ID = 0L;
 
+    private static final long BASELINE_ENV_ID = 0L;
+
     @Resource
     private NginxConfigDao nginxConfigDao;
 
-    public NginxConfig find(@NotNull App app, @NotNull Env env, @Nullable Module module) {
-        return findOne(app.getId(), env.getId(), module != null ? module.getId() : GLOBAL_MODULE_ID);
+    public NginxConfig find(@NotNull App app, @Nullable Env env, @Nullable Module module) {
+        return findOne(app.getId(), env != null ? env.getId() : BASELINE_ENV_ID,
+                module != null ? module.getId() : GLOBAL_MODULE_ID);
     }
 
     @Transactional
-    public NginxConfig update(@NotNull App app, @NotNull Env env, @Nullable Module module, @NotNull String content) {
+    public NginxConfig update(@NotNull App app, @Nullable Env env, @Nullable Module module, @NotNull String content) {
         NginxConfig config = new NginxConfig();
         config.setAppId(app.getId());
-        config.setEnvId(env.getId());
+        config.setEnvId(env != null ? env.getId() : BASELINE_ENV_ID);
         config.setModuleId(module != null ? module.getId() : GLOBAL_MODULE_ID);
         config.setContent(content);
         config.setCreateTime(System.currentTimeMillis());