Browse Source

删除 ProjConfig

reghao 4 years ago
parent
commit
fef26f744b
27 changed files with 14 additions and 1035 deletions
  1. 0 50
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/config/ProjConfigController.java
  2. 1 12
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/page/AppConfigPageController.java
  3. 0 129
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/page/ProjConfigPageController.java
  4. 0 11
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/db/crud/config/ProjConfigCrud.java
  5. 0 42
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/db/crud/config/impl/ProjConfigCrudImpl.java
  6. 0 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/db/query/config/AppConfigQuery.java
  7. 0 26
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/db/query/config/ProjConfigQuery.java
  8. 0 6
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/db/query/config/impl/AppConfigQueryImpl.java
  9. 0 81
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/db/query/config/impl/ProjConfigQueryImpl.java
  10. 0 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/db/repository/config/AppConfigRepository.java
  11. 0 25
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/db/repository/config/ProjConfigRepository.java
  12. 0 12
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/model/dto/NewApp.java
  13. 0 4
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/model/po/config/AppConfig.java
  14. 0 58
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/model/po/config/ProjConfig.java
  15. 2 23
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/bd/AppIntegrate.java
  16. 1 8
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/bd/BuilderUtil.java
  17. 0 16
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/ProjConfigService.java
  18. 1 5
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/impl/AppConfigServiceImpl.java
  19. 2 9
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/impl/CompilerConfigServiceImpl.java
  20. 3 10
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/impl/PackerConfigServiceImpl.java
  21. 0 116
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/impl/ProjConfigServiceImpl.java
  22. 2 8
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/impl/RepoAuthConfigServiceImpl.java
  23. 2 25
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/impl/SharedEntityChecker.java
  24. 0 141
      dmaster/src/main/resources/templates/app/config/proj/add.html
  25. 0 56
      dmaster/src/main/resources/templates/app/config/proj/copy.html
  26. 0 65
      dmaster/src/main/resources/templates/app/config/proj/detail.html
  27. 0 93
      dmaster/src/main/resources/templates/app/config/proj/index.html

+ 0 - 50
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/config/ProjConfigController.java

@@ -1,50 +0,0 @@
-package cn.reghao.autodop.dmaster.app.controller.config;
-
-import cn.reghao.autodop.dmaster.app.model.po.config.ProjConfig;
-import cn.reghao.autodop.dmaster.app.model.dto.NewApp;
-import cn.reghao.autodop.dmaster.app.service.config.ProjConfigService;
-import cn.reghao.jdkutil.result.Result;
-import cn.reghao.jdkutil.result.WebBody;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.http.MediaType;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @author reghao
- * @date 2019-11-27 11:29:43
- */
-@Slf4j
-@Api(tags = "应用配置 CRUD 接口")
-@RestController
-@RequestMapping("/api/app/config/proj")
-public class ProjConfigController {
-    private final ProjConfigService projConfigService;
-
-    public ProjConfigController(ProjConfigService projConfigService) {
-        this.projConfigService = projConfigService;
-    }
-
-    @ApiOperation(value = "添加/修改项目编排")
-    @PostMapping(produces = MediaType.APPLICATION_JSON_VALUE)
-    public String addProjOrchestration(@Validated ProjConfig proj) {
-        Result result = projConfigService.add(proj);
-        return WebBody.result(result);
-    }
-
-    @ApiOperation(value = "复制项目编排")
-    @PostMapping(value = "/copy/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String copyProjOrchestration(@PathVariable("id") ProjConfig proj, @Validated NewApp newApp) {
-        Result result = projConfigService.copy(proj, newApp);
-        return WebBody.result(result);
-    }
-
-    @ApiOperation(value = "删除项目编排")
-    @DeleteMapping(value = "/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String deleteProjOrchestration(@PathVariable("id") ProjConfig proj) {
-        Result result = projConfigService.delete(proj);
-        return WebBody.result(result);
-    }
-}

+ 1 - 12
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/page/AppConfigPageController.java

@@ -8,7 +8,6 @@ import cn.reghao.autodop.dmaster.machine.db.query.MachineHostQuery;
 import cn.reghao.autodop.dmaster.notification.model.po.NotifyGroup;
 import cn.reghao.autodop.dmaster.notification.model.po.NotifyGroup;
 import cn.reghao.autodop.dmaster.notification.model.po.NotifyType;
 import cn.reghao.autodop.dmaster.notification.model.po.NotifyType;
 import cn.reghao.autodop.dmaster.app.db.query.config.AppConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.AppConfigQuery;
-import cn.reghao.autodop.dmaster.app.db.query.config.ProjConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.CompilerConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.CompilerConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.PackerConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.PackerConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.RepoAuthConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.RepoAuthConfigQuery;
@@ -40,18 +39,16 @@ import java.util.stream.Collectors;
 @RequestMapping("/app/config/app")
 @RequestMapping("/app/config/app")
 public class AppConfigPageController {
 public class AppConfigPageController {
     private final AppConfigQuery appConfigQuery;
     private final AppConfigQuery appConfigQuery;
-    private final ProjConfigQuery projConfigQuery;
     private final RepoAuthConfigQuery repoAuthConfigQuery;
     private final RepoAuthConfigQuery repoAuthConfigQuery;
     private final CompilerConfigQuery compilerConfigQuery;
     private final CompilerConfigQuery compilerConfigQuery;
     private final PackerConfigQuery packerConfigQuery;
     private final PackerConfigQuery packerConfigQuery;
     private final MachineHostQuery hostQuery;
     private final MachineHostQuery hostQuery;
     private final NotifyGroupRepository receiverRepository;
     private final NotifyGroupRepository receiverRepository;
 
 
-    public AppConfigPageController(AppConfigQuery appConfigQuery, ProjConfigQuery projConfigQuery, RepoAuthConfigQuery repoAuthConfigQuery,
+    public AppConfigPageController(AppConfigQuery appConfigQuery, RepoAuthConfigQuery repoAuthConfigQuery,
                                    CompilerConfigQuery compilerConfigQuery, PackerConfigQuery packerConfigQuery, MachineHostQuery hostQuery,
                                    CompilerConfigQuery compilerConfigQuery, PackerConfigQuery packerConfigQuery, MachineHostQuery hostQuery,
                                    NotifyGroupRepository receiverRepository) {
                                    NotifyGroupRepository receiverRepository) {
         this.appConfigQuery = appConfigQuery;
         this.appConfigQuery = appConfigQuery;
-        this.projConfigQuery = projConfigQuery;
         this.repoAuthConfigQuery = repoAuthConfigQuery;
         this.repoAuthConfigQuery = repoAuthConfigQuery;
         this.compilerConfigQuery = compilerConfigQuery;
         this.compilerConfigQuery = compilerConfigQuery;
         this.packerConfigQuery = packerConfigQuery;
         this.packerConfigQuery = packerConfigQuery;
@@ -103,13 +100,6 @@ public class AppConfigPageController {
             notifyTypes.add(new KeyValue(notifyType.name(), notifyType.name()));
             notifyTypes.add(new KeyValue(notifyType.name(), notifyType.name()));
         }
         }
 
 
-        List<KeyValue> projList = projConfigQuery.queryAll(new HashMap<>()).stream()
-                .map(proj -> new KeyValue(proj.getProjId(), proj.getProjName()))
-                .collect(Collectors.toList());
-        List<KeyValue> projs = new ArrayList<>();
-        projs.add(new KeyValue("请选择项目(可选)", ""));
-        projs.addAll(projList);
-        
         List<KeyValue> machineList = hostQuery.findByEnv(EnvList.test.name()).stream()
         List<KeyValue> machineList = hostQuery.findByEnv(EnvList.test.name()).stream()
                 .map(machineHost -> {
                 .map(machineHost -> {
                     String machineId = machineHost.getMachineId();
                     String machineId = machineHost.getMachineId();
@@ -128,7 +118,6 @@ public class AppConfigPageController {
         }
         }
 
 
         model.addAttribute("notifyTypes", notifyTypes);
         model.addAttribute("notifyTypes", notifyTypes);
-        model.addAttribute("projs", projs);
         model.addAttribute("machines", machines);
         model.addAttribute("machines", machines);
         model.addAttribute("packTypes", packTypes);
         model.addAttribute("packTypes", packTypes);
         setCommon(model);
         setCommon(model);

+ 0 - 129
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/page/ProjConfigPageController.java

@@ -1,129 +0,0 @@
-package cn.reghao.autodop.dmaster.app.controller.page;
-
-import cn.reghao.autodop.dmaster.app.db.query.config.ProjConfigQuery;
-import cn.reghao.autodop.dmaster.app.db.query.config.CompilerConfigQuery;
-import cn.reghao.autodop.dmaster.app.db.query.config.PackerConfigQuery;
-import cn.reghao.autodop.dmaster.app.db.query.config.RepoAuthConfigQuery;
-import cn.reghao.autodop.dmaster.app.model.constant.AppType;
-import cn.reghao.autodop.dmaster.app.model.constant.EnvList;
-import cn.reghao.autodop.dmaster.app.model.po.config.ProjConfig;
-import cn.reghao.autodop.dmaster.app.model.vo.KeyValue;
-import cn.reghao.autodop.dmaster.util.db.PageList;
-import cn.reghao.autodop.dmaster.util.db.PageSort;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-
-import java.util.*;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2021-09-17 10:17:15
- */
-@Slf4j
-@Api(tags = "项目配置页面")
-@Controller
-@RequestMapping("/app/config/proj")
-public class ProjConfigPageController {
-    private final ProjConfigQuery projConfigQuery;
-    private final RepoAuthConfigQuery repoAuthConfigQuery;
-    private final CompilerConfigQuery compilerConfigQuery;
-    private final PackerConfigQuery packerConfigQuery;
-
-    public ProjConfigPageController(ProjConfigQuery projConfigQuery, RepoAuthConfigQuery repoAuthConfigQuery,
-                                    CompilerConfigQuery compilerConfigQuery, PackerConfigQuery packerConfigQuery) {
-        this.projConfigQuery = projConfigQuery;
-        this.repoAuthConfigQuery = repoAuthConfigQuery;
-        this.compilerConfigQuery = compilerConfigQuery;
-        this.packerConfigQuery = packerConfigQuery;
-    }
-
-    private void setCommon(Model model) {
-        List<KeyValue> envs = new ArrayList<>();
-        for (EnvList envList : EnvList.values()) {
-            envs.add(new KeyValue(envList.name(), envList.name()));
-        }
-
-        List<KeyValue> appTypes = new ArrayList<>();
-        for (AppType appType : AppType.values()) {
-            appTypes.add(new KeyValue(appType.name(), appType.name()));
-        }
-        model.addAttribute("environments", envs);
-        model.addAttribute("appTypes", appTypes);
-
-        List<KeyValue> repoAuths = repoAuthConfigQuery.findAll().stream()
-                .map(repoAuthConfig -> new KeyValue(String.valueOf(repoAuthConfig.getName()), repoAuthConfig.getName()))
-                .collect(Collectors.toList());
-
-        List<KeyValue> compilers = compilerConfigQuery.findAllByIsDeleteFalse().stream()
-                .map(compilerConfig -> new KeyValue(String.valueOf(compilerConfig.getName()), compilerConfig.getName()))
-                .collect(Collectors.toList());
-
-        List<KeyValue> packers = packerConfigQuery.findAllByIsDeleteFalse().stream()
-                .map(packerConfig -> new KeyValue(String.valueOf(packerConfig.getName()), packerConfig.getName()))
-                .collect(Collectors.toList());
-        model.addAttribute("repoAuths", repoAuths);
-        model.addAttribute("compilers", compilers);
-        model.addAttribute("packers", packers);
-    }
-
-    @ApiOperation(value = "项目配置页面")
-    @GetMapping
-    public String projConfigPage(@RequestParam(value = "projName", required = false) String projName, Model model) {
-
-        /*if (projName != null) {
-            Map<String, String> map = new HashMap<>();
-            map.put("projName", projName);
-            List<AppOrchestration> list = appConfigQuery.query(map);
-            Page<AppOrchestration> page = new PageImpl<>(list);
-            PageList<AppOrchestration> pageList = PageList.pageList(page);
-
-            model.addAttribute("page", page);
-            model.addAttribute("list", pageList.getList());
-            return "/app/config/app/index";
-        }*/
-
-        PageRequest pageRequest = PageSort.pageRequest();
-        Page<ProjConfig> page = projConfigQuery.findByIsDeleteFalse(pageRequest);
-        PageList<ProjConfig> pageList = PageList.pageList(page);
-
-        model.addAttribute("page", page);
-        model.addAttribute("list", pageList.getList());
-        return "/app/config/proj/index";
-    }
-
-    @GetMapping("/add")
-    public String addProjConfigPage(Model model) {
-        setCommon(model);
-        return "/app/config/proj/add";
-    }
-
-    @GetMapping("/edit/{id}")
-    public String editProjConfigPage(@PathVariable("id") ProjConfig proj, Model model) {
-        setCommon(model);
-        model.addAttribute("proj", proj);
-        return "/app/config/proj/add";
-    }
-
-    @GetMapping("/copy/{id}")
-    public String copyProjConfigPage(@PathVariable("id") ProjConfig proj, Model model) {
-        model.addAttribute("proj", proj);
-        return "/app/config/proj/copy";
-    }
-
-    @GetMapping("/detail/{projId}")
-    public String projConfigDetailPage(@PathVariable("projId") String projId, Model model) {
-        ProjConfig proj = projConfigQuery.findByIsDeleteFalseAndProjId(projId);
-        model.addAttribute("proj", proj);
-        return "/app/config/proj/detail";
-    }
-}

+ 0 - 11
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/db/crud/config/ProjConfigCrud.java

@@ -1,11 +0,0 @@
-package cn.reghao.autodop.dmaster.app.db.crud.config;
-
-import cn.reghao.jdkutil.db.BaseCrud;
-import cn.reghao.autodop.dmaster.app.model.po.config.ProjConfig;
-
-/**
- * @author reghao
- * @date 2020-11-10 21:58:00
- */
-public interface ProjConfigCrud extends BaseCrud<ProjConfig> {
-}

+ 0 - 42
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/db/crud/config/impl/ProjConfigCrudImpl.java

@@ -1,42 +0,0 @@
-package cn.reghao.autodop.dmaster.app.db.crud.config.impl;
-
-import cn.reghao.autodop.dmaster.app.db.crud.config.ProjConfigCrud;
-import cn.reghao.autodop.dmaster.app.db.repository.config.ProjConfigRepository;
-import cn.reghao.autodop.dmaster.app.model.po.config.ProjConfig;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2020-11-10 21:58:00
- */
-@Service
-public class ProjConfigCrudImpl implements ProjConfigCrud {
-    private final ProjConfigRepository projRepository;
-
-    public ProjConfigCrudImpl(ProjConfigRepository projRepository) {
-        this.projRepository = projRepository;
-    }
-
-    @Override
-    public ProjConfig save(ProjConfig proj) {
-        projRepository.save(proj);
-        return proj;
-    }
-
-    @Override
-    public void saveAll(List<ProjConfig> list) {
-        projRepository.saveAll(list);
-    }
-
-    @Override
-    public void update(ProjConfig proj) {
-        projRepository.save(proj);
-    }
-
-    @Override
-    public void delete(ProjConfig proj) {
-        projRepository.delete(proj);
-    }
-}

+ 0 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/db/query/config/AppConfigQuery.java

@@ -1,7 +1,6 @@
 package cn.reghao.autodop.dmaster.app.db.query.config;
 package cn.reghao.autodop.dmaster.app.db.query.config;
 
 
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.ProjConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.CompilerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.CompilerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.PackerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.PackerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.RepoAuthConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.RepoAuthConfig;
@@ -24,5 +23,4 @@ public interface AppConfigQuery extends BaseQuery<AppConfig> {
     List<AppConfig> findAllByRepoAuthConfig(RepoAuthConfig repoAuthConfig);
     List<AppConfig> findAllByRepoAuthConfig(RepoAuthConfig repoAuthConfig);
     List<AppConfig> findAllByCompilerConfig(CompilerConfig compilerConfig);
     List<AppConfig> findAllByCompilerConfig(CompilerConfig compilerConfig);
     List<AppConfig> findAllByPackerConfig(PackerConfig packerConfig);
     List<AppConfig> findAllByPackerConfig(PackerConfig packerConfig);
-    List<AppConfig> findAllByProj(ProjConfig proj);
 }
 }

+ 0 - 26
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/db/query/config/ProjConfigQuery.java

@@ -1,26 +0,0 @@
-package cn.reghao.autodop.dmaster.app.db.query.config;
-
-import cn.reghao.autodop.dmaster.app.model.po.config.ProjConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.build.CompilerConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.build.PackerConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.build.RepoAuthConfig;
-import cn.reghao.jdkutil.db.BaseQuery;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author reghao
- * @date 2021-06-02 15:01:18
- */
-public interface ProjConfigQuery extends BaseQuery<ProjConfig> {
-    List<ProjConfig> queryAll(Map<String, String> kv);
-    ProjConfig query(Map<String, String> kv);
-    ProjConfig findByIsDeleteFalseAndProjId(String projId);
-    Page<ProjConfig> findByIsDeleteFalse(Pageable pageable);
-    List<ProjConfig> findAllByRepoAuthConfig(RepoAuthConfig repoAuthConfig);
-    List<ProjConfig> findAllByCompilerConfig(CompilerConfig compilerConfig);
-    List<ProjConfig> findAllByPackerConfig(PackerConfig packerConfig);
-}

+ 0 - 6
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/db/query/config/impl/AppConfigQueryImpl.java

@@ -3,7 +3,6 @@ package cn.reghao.autodop.dmaster.app.db.query.config.impl;
 import cn.reghao.autodop.dmaster.app.db.query.config.AppConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.AppConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.repository.config.AppConfigRepository;
 import cn.reghao.autodop.dmaster.app.db.repository.config.AppConfigRepository;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.ProjConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.CompilerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.CompilerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.PackerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.PackerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.RepoAuthConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.RepoAuthConfig;
@@ -82,9 +81,4 @@ public class AppConfigQueryImpl implements AppConfigQuery {
     public List<AppConfig> findAllByPackerConfig(PackerConfig packerConfig) {
     public List<AppConfig> findAllByPackerConfig(PackerConfig packerConfig) {
         return appRepository.findAllByPackerConfig(packerConfig);
         return appRepository.findAllByPackerConfig(packerConfig);
     }
     }
-
-    @Override
-    public List<AppConfig> findAllByProj(ProjConfig proj) {
-        return appRepository.findAllByProj(proj);
-    }
 }
 }

+ 0 - 81
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/db/query/config/impl/ProjConfigQueryImpl.java

@@ -1,81 +0,0 @@
-package cn.reghao.autodop.dmaster.app.db.query.config.impl;
-
-import cn.reghao.autodop.dmaster.app.db.query.config.ProjConfigQuery;
-import cn.reghao.autodop.dmaster.app.db.repository.config.ProjConfigRepository;
-import cn.reghao.autodop.dmaster.app.model.po.config.ProjConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.build.CompilerConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.build.PackerConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.build.RepoAuthConfig;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.jpa.domain.Specification;
-import org.springframework.stereotype.Service;
-
-import javax.persistence.criteria.Predicate;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author reghao
- * @date 2021-06-02 15:01:18
- */
-@Service
-public class ProjConfigQueryImpl implements ProjConfigQuery {
-    private final ProjConfigRepository projRepository;
-
-    public ProjConfigQueryImpl(ProjConfigRepository projRepository) {
-        this.projRepository = projRepository;
-    }
-
-    @Override
-    public List<ProjConfig> queryAll(Map<String, String> kv) {
-        Specification<ProjConfig> specification = (root, query, cb) -> {
-            List<Predicate> predicates = new ArrayList<>();
-            kv.forEach((name, value) -> {
-                predicates.add(cb.equal(root.get(name), value));
-            });
-            return cb.and(predicates.toArray(new Predicate[0]));
-        };
-       return projRepository.findAll(specification);
-    }
-
-    @Override
-    public ProjConfig query(Map<String, String> kv) {
-        Specification<ProjConfig> specification = (root, query, cb) -> {
-            List<Predicate> predicates = new ArrayList<>();
-            kv.forEach((name, value) -> {
-                predicates.add(cb.equal(root.get(name), value));
-            });
-            return cb.and(predicates.toArray(new Predicate[0]));
-        };
-
-        List<ProjConfig> list = projRepository.findAll(specification);
-        return list.get(0);
-    }
-
-    @Override
-    public ProjConfig findByIsDeleteFalseAndProjId(String projId) {
-        return projRepository.findByIsDeleteFalseAndProjId(projId);
-    }
-
-    @Override
-    public Page<ProjConfig> findByIsDeleteFalse(Pageable pageable) {
-        return projRepository.findByIsDeleteFalse(pageable);
-    }
-
-    @Override
-    public List<ProjConfig> findAllByRepoAuthConfig(RepoAuthConfig repoAuthConfig) {
-        return projRepository.findAllByRepoAuthConfig(repoAuthConfig);
-    }
-
-    @Override
-    public List<ProjConfig> findAllByCompilerConfig(CompilerConfig compilerConfig) {
-        return projRepository.findAllByCompilerConfig(compilerConfig);
-    }
-
-    @Override
-    public List<ProjConfig> findAllByPackerConfig(PackerConfig packerConfig) {
-        return projRepository.findAllByPackerConfig(packerConfig);
-    }
-}

+ 0 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/db/repository/config/AppConfigRepository.java

@@ -1,7 +1,6 @@
 package cn.reghao.autodop.dmaster.app.db.repository.config;
 package cn.reghao.autodop.dmaster.app.db.repository.config;
 
 
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.ProjConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.CompilerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.CompilerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.PackerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.PackerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.RepoAuthConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.RepoAuthConfig;
@@ -22,7 +21,6 @@ public interface AppConfigRepository extends JpaRepository<AppConfig, Integer>,
     AppConfig findByIsDeleteFalseAndAppId(String appId);
     AppConfig findByIsDeleteFalseAndAppId(String appId);
     Page<AppConfig> findByEnv(String env, Pageable pageable);
     Page<AppConfig> findByEnv(String env, Pageable pageable);
 
 
-    List<AppConfig> findAllByProj(ProjConfig proj);
     List<AppConfig> findAllByRepoAuthConfig(RepoAuthConfig repoAuthConfig);
     List<AppConfig> findAllByRepoAuthConfig(RepoAuthConfig repoAuthConfig);
     List<AppConfig> findAllByCompilerConfig(CompilerConfig compilerConfig);
     List<AppConfig> findAllByCompilerConfig(CompilerConfig compilerConfig);
     List<AppConfig> findAllByPackerConfig(PackerConfig packerConfig);
     List<AppConfig> findAllByPackerConfig(PackerConfig packerConfig);

+ 0 - 25
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/db/repository/config/ProjConfigRepository.java

@@ -1,25 +0,0 @@
-package cn.reghao.autodop.dmaster.app.db.repository.config;
-
-import cn.reghao.autodop.dmaster.app.model.po.config.ProjConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.build.CompilerConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.build.PackerConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.build.RepoAuthConfig;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
-
-import java.util.List;
-
-/**
- *
- * @author reghao
- * @date 2020-01-21 14:53:03
- */
-public interface ProjConfigRepository extends JpaRepository<ProjConfig, Integer>, JpaSpecificationExecutor<ProjConfig> {
-    ProjConfig findByIsDeleteFalseAndProjId(String projId);
-    Page<ProjConfig> findByIsDeleteFalse(Pageable pageable);
-    List<ProjConfig> findAllByRepoAuthConfig(RepoAuthConfig repoAuthConfig);
-    List<ProjConfig> findAllByCompilerConfig(CompilerConfig compilerConfig);
-    List<ProjConfig> findAllByPackerConfig(PackerConfig packerConfig);
-}

+ 0 - 12
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/model/dto/NewApp.java

@@ -1,7 +1,6 @@
 package cn.reghao.autodop.dmaster.app.model.dto;
 package cn.reghao.autodop.dmaster.app.model.dto;
 
 
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.ProjConfig;
 import lombok.Data;
 import lombok.Data;
 
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotBlank;
@@ -35,15 +34,4 @@ public class NewApp implements Serializable {
         from.setUpdateTime(null);
         from.setUpdateTime(null);
         return from;
         return from;
     }
     }
-
-    public ProjConfig proj(ProjConfig from) {
-        from.setProjId(newId);
-        from.setRepoBranch(newRepoBranch);
-        from.setEnv(env);
-
-        from.setId(null);
-        from.setCreateTime(null);
-        from.setUpdateTime(null);
-        return from;
-    }
 }
 }

+ 0 - 4
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/model/po/config/AppConfig.java

@@ -61,10 +61,6 @@ public class AppConfig extends BaseEntity<Integer> implements Cloneable {
     @Column(columnDefinition="text")
     @Column(columnDefinition="text")
     private String packScript;
     private String packScript;
 
 
-    // buildConfig 和 projId 二者只能存在一个
-    @ManyToOne(cascade = CascadeType.REFRESH)
-    @JoinColumn(name = "proj_config_id", foreignKey = @ForeignKey(value = ConstraintMode.NO_CONSTRAINT))
-    private ProjConfig proj;
     // buildConfig
     // buildConfig
     @ManyToOne(cascade = CascadeType.REFRESH)
     @ManyToOne(cascade = CascadeType.REFRESH)
     @JoinColumn(name = "repo_auth_config_id", foreignKey = @ForeignKey(value = ConstraintMode.NO_CONSTRAINT))
     @JoinColumn(name = "repo_auth_config_id", foreignKey = @ForeignKey(value = ConstraintMode.NO_CONSTRAINT))

+ 0 - 58
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/model/po/config/ProjConfig.java

@@ -1,58 +0,0 @@
-package cn.reghao.autodop.dmaster.app.model.po.config;
-
-import cn.reghao.autodop.dmaster.app.model.po.config.build.CompilerConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.build.PackerConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.build.RepoAuthConfig;
-import cn.reghao.autodop.dmaster.util.db.BaseEntity;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-
-import javax.persistence.*;
-import javax.validation.constraints.NotBlank;
-
-/**
- * @author reghao
- * @date 2020-02-28 14:11:18
- */
-@NoArgsConstructor
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Entity
-public class ProjConfig extends BaseEntity<Integer> implements Cloneable {
-    @Column(nullable = false, unique = true)
-    @NotBlank(message = "项目 ID 不能为空白字符串")
-    private String projId;
-    @NotBlank(message = "项目名字不能为空白字符串")
-    private String projName;
-    private String description;
-    @NotBlank(message = "应用类型不能为空白字符串")
-    private String appType;
-    @NotBlank(message = "环境不能为空白字符串")
-    private String env;
-    @NotBlank(message = "项目仓库不能为空白字符串")
-    private String projRepo;
-    @NotBlank(message = "仓库分支不能为空白字符串")
-    private String repoBranch;
-    @NotBlank(message = "代码目录不能为空白字符串")
-    private String codeDirname;
-
-    // 同一个项目内所有应用的构建策略是相同的
-    @ManyToOne(cascade = CascadeType.REFRESH)
-    @JoinColumn(name = "repo_auth_config_id", foreignKey = @ForeignKey(value = ConstraintMode.NO_CONSTRAINT))
-    //@Valid
-    private RepoAuthConfig repoAuthConfig;
-    @ManyToOne(cascade = CascadeType.REFRESH)
-    @JoinColumn(name = "compiler_config_id", foreignKey = @ForeignKey(value = ConstraintMode.NO_CONSTRAINT))
-    //@Valid
-    private CompilerConfig compilerConfig;
-    @ManyToOne(cascade = CascadeType.REFRESH)
-    @JoinColumn(name = "packer_config_id", foreignKey = @ForeignKey(value = ConstraintMode.NO_CONSTRAINT))
-    //@Valid
-    private PackerConfig packerConfig;
-
-    @Override
-    public Object clone() throws CloneNotSupportedException {
-        return super.clone();
-    }
-}

+ 2 - 23
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/bd/AppIntegrate.java

@@ -7,7 +7,6 @@ import cn.reghao.autodop.dmaster.app.model.po.config.build.CompilerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.PackerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.PackerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.RepoAuthConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.RepoAuthConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.ProjConfig;
 import cn.reghao.autodop.dmaster.app.service.bd.tools.compiler.CodeCompiler;
 import cn.reghao.autodop.dmaster.app.service.bd.tools.compiler.CodeCompiler;
 import cn.reghao.autodop.dmaster.app.service.bd.tools.compiler.MavenCompiler;
 import cn.reghao.autodop.dmaster.app.service.bd.tools.compiler.MavenCompiler;
 import cn.reghao.autodop.dmaster.app.service.bd.tools.compiler.NullCompiler;
 import cn.reghao.autodop.dmaster.app.service.bd.tools.compiler.NullCompiler;
@@ -85,8 +84,6 @@ public class AppIntegrate {
      * @date 2021-02-05 下午11:01
      * @date 2021-02-05 下午11:01
      */
      */
     private void initBuildConfig() {
     private void initBuildConfig() {
-        checkProj(app);
-
         // 初始化更新配置
         // 初始化更新配置
         RepoAuthConfig repoAuthConfig = app.getRepoAuthConfig();
         RepoAuthConfig repoAuthConfig = app.getRepoAuthConfig();
         switch (RepoType.valueOf(repoAuthConfig.getType())) {
         switch (RepoType.valueOf(repoAuthConfig.getType())) {
@@ -132,31 +129,13 @@ public class AppIntegrate {
         }
         }
     }
     }
 
 
-    private void checkProj(AppConfig app) {
-        ProjConfig proj = app.getProj();
-        if (proj == null) {
-            return;
-        }
-
-        app.setRepoAuthConfig(proj.getRepoAuthConfig());
-        app.setCompilerConfig(proj.getCompilerConfig());
-        app.setPackerConfig(proj.getPackerConfig());
-    }
-
     public CommitInfo update() throws Exception {
     public CommitInfo update() throws Exception {
         String remote;
         String remote;
         String branch;
         String branch;
         // TODO 区分 GIT 和 SVN pull 代码时的不同
         // TODO 区分 GIT 和 SVN pull 代码时的不同
         String local = appLocalRepo;
         String local = appLocalRepo;
-        ProjConfig proj = app.getProj();
-        if (proj != null) {
-            remote = proj.getProjRepo();
-            branch = app.getRepoBranch();
-        } else {
-            remote = app.getAppRepo();
-            branch = app.getRepoBranch();
-        }
-
+        remote = app.getAppRepo();
+        branch = app.getRepoBranch();
         if (latestCommitInfo == null) {
         if (latestCommitInfo == null) {
             latestCommitInfo = codeUpdater.latestCommitInfo(local, branch);
             latestCommitInfo = codeUpdater.latestCommitInfo(local, branch);
         }
         }

+ 1 - 8
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/bd/BuilderUtil.java

@@ -4,7 +4,6 @@ import cn.reghao.autodop.common.util.FileOps;
 import cn.reghao.autodop.common.util.text.ReplaceCharacter;
 import cn.reghao.autodop.common.util.text.ReplaceCharacter;
 import cn.reghao.autodop.dmaster.app.model.constant.AppType;
 import cn.reghao.autodop.dmaster.app.model.constant.AppType;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.ProjConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.LocalBuildDir;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.LocalBuildDir;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 
 
@@ -32,13 +31,7 @@ public class BuilderUtil {
             FileOps.eraseDir(compileDir);
             FileOps.eraseDir(compileDir);
         }
         }
 
 
-        ProjConfig proj = app.getProj();
-        String dirname;
-        if (proj != null) {
-            dirname = proj.getCodeDirname();
-        } else {
-            dirname = app.getCodeDirname();
-        }
+        String dirname = app.getCodeDirname();
         FileOps.copyDirContentToDir(appLocalRepo + "/" + dirname, appCompileDir);
         FileOps.copyDirContentToDir(appLocalRepo + "/" + dirname, appCompileDir);
 
 
         // Dotnet 应用需要额外的处理
         // Dotnet 应用需要额外的处理

+ 0 - 16
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/ProjConfigService.java

@@ -1,16 +0,0 @@
-package cn.reghao.autodop.dmaster.app.service.config;
-
-import cn.reghao.autodop.dmaster.app.model.po.config.ProjConfig;
-import cn.reghao.autodop.dmaster.app.model.dto.NewApp;
-import cn.reghao.jdkutil.result.Result;
-
-/**
- * @author reghao
- * @date 2021-09-17 10:13:46
- */
-public interface ProjConfigService {
-    Result add(ProjConfig projConfig);
-    Result copy(ProjConfig from, NewApp to);
-    Result modify(ProjConfig projConfig);
-    Result delete(ProjConfig projConfig);
-}

+ 1 - 5
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/impl/AppConfigServiceImpl.java

@@ -64,11 +64,7 @@ public class AppConfigServiceImpl implements AppConfigService {
     }
     }
 
 
     private void checkSharedEntity(AppConfig app) throws Exception {
     private void checkSharedEntity(AppConfig app) throws Exception {
-        if (app.getProj() == null) {
-            sharedEntityChecker.checkAndSetBuildConfig(app);
-        } else {
-            sharedEntityChecker.checkAndSetProj(app);
-        }
+        sharedEntityChecker.checkAndSetBuildConfig(app);
     }
     }
 
 
     @Override
     @Override

+ 2 - 9
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/impl/CompilerConfigServiceImpl.java

@@ -2,10 +2,8 @@ package cn.reghao.autodop.dmaster.app.service.config.impl;
 
 
 import cn.reghao.autodop.dmaster.app.db.crud.config.CompilerConfigCrud;
 import cn.reghao.autodop.dmaster.app.db.crud.config.CompilerConfigCrud;
 import cn.reghao.autodop.dmaster.app.db.query.config.AppConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.AppConfigQuery;
-import cn.reghao.autodop.dmaster.app.db.query.config.ProjConfigQuery;
 import cn.reghao.autodop.dmaster.app.model.constant.build.CompileType;
 import cn.reghao.autodop.dmaster.app.model.constant.build.CompileType;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.ProjConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.CompilerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.CompilerConfig;
 import cn.reghao.autodop.dmaster.app.service.config.CompilerConfigService;
 import cn.reghao.autodop.dmaster.app.service.config.CompilerConfigService;
 import cn.reghao.jdkutil.result.Result;
 import cn.reghao.jdkutil.result.Result;
@@ -23,13 +21,10 @@ import java.util.stream.Collectors;
 public class CompilerConfigServiceImpl implements CompilerConfigService {
 public class CompilerConfigServiceImpl implements CompilerConfigService {
     private final CompilerConfigCrud compilerConfigCrud;
     private final CompilerConfigCrud compilerConfigCrud;
     private final AppConfigQuery appConfigQuery;
     private final AppConfigQuery appConfigQuery;
-    private final ProjConfigQuery projConfigQuery;
 
 
-    public CompilerConfigServiceImpl(CompilerConfigCrud compilerConfigCrud, AppConfigQuery appConfigQuery,
-                                     ProjConfigQuery projConfigQuery) {
+    public CompilerConfigServiceImpl(CompilerConfigCrud compilerConfigCrud, AppConfigQuery appConfigQuery) {
         this.compilerConfigCrud = compilerConfigCrud;
         this.compilerConfigCrud = compilerConfigCrud;
         this.appConfigQuery = appConfigQuery;
         this.appConfigQuery = appConfigQuery;
-        this.projConfigQuery = projConfigQuery;
     }
     }
 
 
     @Override
     @Override
@@ -84,13 +79,11 @@ public class CompilerConfigServiceImpl implements CompilerConfigService {
     @Override
     @Override
     public Result delete(CompilerConfig compilerConfig) {
     public Result delete(CompilerConfig compilerConfig) {
         List<AppConfig> apps = appConfigQuery.findAllByCompilerConfig(compilerConfig);
         List<AppConfig> apps = appConfigQuery.findAllByCompilerConfig(compilerConfig);
-        List<ProjConfig> projs = projConfigQuery.findAllByCompilerConfig(compilerConfig);
-        if (apps.isEmpty() && projs.isEmpty()) {
+        if (apps.isEmpty()) {
             compilerConfigCrud.delete(compilerConfig);
             compilerConfigCrud.delete(compilerConfig);
             return Result.result(ResultStatus.SUCCESS);
             return Result.result(ResultStatus.SUCCESS);
         } else {
         } else {
             List<String> ids = apps.stream().map(AppConfig::getAppId).collect(Collectors.toList());
             List<String> ids = apps.stream().map(AppConfig::getAppId).collect(Collectors.toList());
-            ids.addAll(projs.stream().map(ProjConfig::getProjId).collect(Collectors.toList()));
             String msg = compilerConfig.getName() + " 删除失败, " + ids.toString() + " 等应用正在使用";
             String msg = compilerConfig.getName() + " 删除失败, " + ids.toString() + " 等应用正在使用";
             return Result.result(ResultStatus.FAIL, msg);
             return Result.result(ResultStatus.FAIL, msg);
         }
         }

+ 3 - 10
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/impl/PackerConfigServiceImpl.java

@@ -2,9 +2,7 @@ package cn.reghao.autodop.dmaster.app.service.config.impl;
 
 
 import cn.reghao.autodop.dmaster.app.db.crud.config.PackerConfigCrud;
 import cn.reghao.autodop.dmaster.app.db.crud.config.PackerConfigCrud;
 import cn.reghao.autodop.dmaster.app.db.query.config.AppConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.AppConfigQuery;
-import cn.reghao.autodop.dmaster.app.db.query.config.ProjConfigQuery;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.ProjConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.PackerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.PackerConfig;
 import cn.reghao.autodop.dmaster.app.service.config.PackerConfigService;
 import cn.reghao.autodop.dmaster.app.service.config.PackerConfigService;
 import cn.reghao.jdkutil.result.Result;
 import cn.reghao.jdkutil.result.Result;
@@ -22,13 +20,10 @@ import java.util.stream.Collectors;
 public class PackerConfigServiceImpl implements PackerConfigService {
 public class PackerConfigServiceImpl implements PackerConfigService {
     private final PackerConfigCrud packerConfigCrud;
     private final PackerConfigCrud packerConfigCrud;
     private final AppConfigQuery appConfigQuery;
     private final AppConfigQuery appConfigQuery;
-    private final ProjConfigQuery projConfigQuery;
 
 
-    public PackerConfigServiceImpl(PackerConfigCrud packerConfigCrud, AppConfigQuery appConfigQuery, 
-                                   ProjConfigQuery projConfigQuery) {
+    public PackerConfigServiceImpl(PackerConfigCrud packerConfigCrud, AppConfigQuery appConfigQuery) {
         this.packerConfigCrud = packerConfigCrud;
         this.packerConfigCrud = packerConfigCrud;
         this.appConfigQuery = appConfigQuery;
         this.appConfigQuery = appConfigQuery;
-        this.projConfigQuery = projConfigQuery;
     }
     }
 
 
     @Override
     @Override
@@ -46,14 +41,12 @@ public class PackerConfigServiceImpl implements PackerConfigService {
     @Override
     @Override
     public Result delete(PackerConfig packerConfig) {
     public Result delete(PackerConfig packerConfig) {
         List<AppConfig> apps = appConfigQuery.findAllByPackerConfig(packerConfig);
         List<AppConfig> apps = appConfigQuery.findAllByPackerConfig(packerConfig);
-        List<ProjConfig> projs = projConfigQuery.findAllByPackerConfig(packerConfig);
-        if (apps.isEmpty() && projs.isEmpty()) {
+        if (apps.isEmpty()) {
             packerConfigCrud.delete(packerConfig);
             packerConfigCrud.delete(packerConfig);
             return Result.result(ResultStatus.SUCCESS);
             return Result.result(ResultStatus.SUCCESS);
         } else {
         } else {
             List<String> ids = apps.stream().map(AppConfig::getAppId).collect(Collectors.toList());
             List<String> ids = apps.stream().map(AppConfig::getAppId).collect(Collectors.toList());
-            ids.addAll(projs.stream().map(ProjConfig::getProjId).collect(Collectors.toList()));
-            String msg = packerConfig.getName() + " 删除失败, " + ids.toString() + " 等应用正在使用";
+            String msg = packerConfig.getName() + " 删除失败, " + ids + " 等应用正在使用";
             return Result.result(ResultStatus.FAIL, msg);
             return Result.result(ResultStatus.FAIL, msg);
         }
         }
     }
     }

+ 0 - 116
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/impl/ProjConfigServiceImpl.java

@@ -1,116 +0,0 @@
-package cn.reghao.autodop.dmaster.app.service.config.impl;
-
-import cn.reghao.autodop.dmaster.app.db.crud.config.ProjConfigCrud;
-import cn.reghao.autodop.dmaster.app.db.query.config.AppConfigQuery;
-import cn.reghao.autodop.dmaster.app.db.query.config.ProjConfigQuery;
-import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.ProjConfig;
-import cn.reghao.autodop.dmaster.app.model.dto.NewApp;
-import cn.reghao.autodop.dmaster.app.service.config.ProjConfigService;
-import cn.reghao.jdkutil.result.Result;
-import cn.reghao.jdkutil.result.ResultStatus;
-import org.springframework.stereotype.Service;
-
-import java.time.LocalDateTime;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2021-09-17 10:13:46
- */
-@Service
-public class ProjConfigServiceImpl implements ProjConfigService {
-    private final ProjConfigQuery projConfigQuery;
-    private final ProjConfigCrud projConfigCrud;
-    private final AppConfigQuery appConfigQuery;
-    private final SharedEntityChecker sharedEntityChecker;
-
-    public ProjConfigServiceImpl(ProjConfigQuery projConfigQuery, ProjConfigCrud projConfigCrud,
-                                 AppConfigQuery appConfigQuery, SharedEntityChecker sharedEntityChecker) {
-        this.projConfigQuery = projConfigQuery;
-        this.projConfigCrud = projConfigCrud;
-        this.appConfigQuery = appConfigQuery;
-        this.sharedEntityChecker = sharedEntityChecker;
-    }
-
-    @Override
-    public Result add(ProjConfig proj) {
-        try {
-            Integer id = proj.getId();
-            sharedEntityChecker.checkAndSetBuildConfig(proj);
-            ProjConfig projEntity = projConfigQuery.findByIsDeleteFalseAndProjId(proj.getProjId());
-            if (projEntity != null) {
-                proj.setId(projEntity.getId());
-                proj.setCreateTime(projEntity.getCreateTime());
-                proj.setUpdateTime(LocalDateTime.now());
-            }
-            projConfigCrud.save(proj);
-
-            String msg = id != null ? "更新 " + proj.getProjId() + " 成功"
-                    : "添加 " + proj.getProjId() + " 成功";
-            return Result.result(ResultStatus.SUCCESS, msg);
-        } catch (Exception e) {
-            String msg = e.getMessage();
-            return Result.result(ResultStatus.FAIL, msg);
-        }
-    }
-
-    @Override
-    public Result copy(ProjConfig from, NewApp to) {
-        if (from == null) {
-            String msg = "项目配置不存在";
-            return Result.result(ResultStatus.FAIL, msg);
-        }
-
-        ProjConfig toProj = projConfigQuery.findByIsDeleteFalseAndProjId(to.getNewId());
-        if (toProj != null) {
-            String msg = to.getNewId() + " 已存在";
-            return Result.result(ResultStatus.FAIL, msg);
-        }
-
-        try {
-            toProj = to.proj((ProjConfig) from.clone());
-            add(toProj);
-            return Result.result(ResultStatus.SUCCESS);
-        } catch (CloneNotSupportedException e) {
-            String msg = e.getMessage();
-            return Result.result(ResultStatus.FAIL, msg);
-        }
-    }
-
-    @Override
-    public Result modify(ProjConfig proj) {
-        try {
-            Integer id = proj.getId();
-            sharedEntityChecker.checkAndSetBuildConfig(proj);
-            ProjConfig projEntity = projConfigQuery.findByIsDeleteFalseAndProjId(proj.getProjId());
-            if (projEntity != null) {
-                proj.setId(projEntity.getId());
-                proj.setCreateTime(projEntity.getCreateTime());
-                proj.setUpdateTime(LocalDateTime.now());
-            }
-            projConfigCrud.save(proj);
-
-            String msg = id != null ? "更新 " + proj.getProjId() + " 成功"
-                    : "添加 " + proj.getProjId() + " 成功";
-            return Result.result(ResultStatus.SUCCESS, msg);
-        } catch (Exception e) {
-            String msg = e.getMessage();
-            return Result.result(ResultStatus.FAIL, msg);
-        }
-    }
-
-    @Override
-    public Result delete(ProjConfig proj) {
-        List<AppConfig> apps = appConfigQuery.findAllByProj(proj);
-        if (apps.isEmpty()) {
-            projConfigCrud.delete(proj);
-            return Result.result(ResultStatus.SUCCESS);
-        } else {
-            String appIds = apps.stream().map(AppConfig::getAppId).collect(Collectors.joining());
-            String msg = proj.getProjName() + " 删除失败, " + appIds + " 等应用正在使用";
-            return Result.result(ResultStatus.FAIL, msg);
-        }
-    }
-}

+ 2 - 8
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/impl/RepoAuthConfigServiceImpl.java

@@ -2,12 +2,10 @@ package cn.reghao.autodop.dmaster.app.service.config.impl;
 
 
 import cn.reghao.autodop.dmaster.app.db.crud.config.RepoAuthConfigCrud;
 import cn.reghao.autodop.dmaster.app.db.crud.config.RepoAuthConfigCrud;
 import cn.reghao.autodop.dmaster.app.db.query.config.AppConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.AppConfigQuery;
-import cn.reghao.autodop.dmaster.app.db.query.config.ProjConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.RepoAuthConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.RepoAuthConfigQuery;
 import cn.reghao.autodop.dmaster.app.model.constant.build.RepoAuthType;
 import cn.reghao.autodop.dmaster.app.model.constant.build.RepoAuthType;
 import cn.reghao.autodop.dmaster.app.model.constant.build.RepoType;
 import cn.reghao.autodop.dmaster.app.model.constant.build.RepoType;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.ProjConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.RepoAuthConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.RepoAuthConfig;
 import cn.reghao.autodop.dmaster.app.service.config.RepoAuthConfigService;
 import cn.reghao.autodop.dmaster.app.service.config.RepoAuthConfigService;
 import cn.reghao.jdkutil.result.Result;
 import cn.reghao.jdkutil.result.Result;
@@ -26,14 +24,12 @@ public class RepoAuthConfigServiceImpl implements RepoAuthConfigService {
     private final RepoAuthConfigQuery repoAuthConfigQuery;
     private final RepoAuthConfigQuery repoAuthConfigQuery;
     private final RepoAuthConfigCrud repoAuthConfigCrud;
     private final RepoAuthConfigCrud repoAuthConfigCrud;
     private final AppConfigQuery appConfigQuery;
     private final AppConfigQuery appConfigQuery;
-    private final ProjConfigQuery projConfigQuery;
 
 
     public RepoAuthConfigServiceImpl(RepoAuthConfigQuery repoAuthConfigQuery, RepoAuthConfigCrud repoAuthConfigCrud,
     public RepoAuthConfigServiceImpl(RepoAuthConfigQuery repoAuthConfigQuery, RepoAuthConfigCrud repoAuthConfigCrud,
-                                     AppConfigQuery appConfigQuery, ProjConfigQuery projConfigQuery) {
+                                     AppConfigQuery appConfigQuery) {
         this.repoAuthConfigQuery = repoAuthConfigQuery;
         this.repoAuthConfigQuery = repoAuthConfigQuery;
         this.repoAuthConfigCrud = repoAuthConfigCrud;
         this.repoAuthConfigCrud = repoAuthConfigCrud;
         this.appConfigQuery = appConfigQuery;
         this.appConfigQuery = appConfigQuery;
-        this.projConfigQuery = projConfigQuery;
     }
     }
 
 
     @Override
     @Override
@@ -89,13 +85,11 @@ public class RepoAuthConfigServiceImpl implements RepoAuthConfigService {
     @Override
     @Override
     public Result delete(RepoAuthConfig repoAuthConfig) {
     public Result delete(RepoAuthConfig repoAuthConfig) {
         List<AppConfig> apps = appConfigQuery.findAllByRepoAuthConfig(repoAuthConfig);
         List<AppConfig> apps = appConfigQuery.findAllByRepoAuthConfig(repoAuthConfig);
-        List<ProjConfig> projs = projConfigQuery.findAllByRepoAuthConfig(repoAuthConfig);
-        if (apps.isEmpty() && projs.isEmpty()) {
+        if (apps.isEmpty()) {
             repoAuthConfigCrud.delete(repoAuthConfig);
             repoAuthConfigCrud.delete(repoAuthConfig);
             return Result.result(ResultStatus.SUCCESS);
             return Result.result(ResultStatus.SUCCESS);
         } else {
         } else {
             List<String> ids = apps.stream().map(AppConfig::getAppId).collect(Collectors.toList());
             List<String> ids = apps.stream().map(AppConfig::getAppId).collect(Collectors.toList());
-            ids.addAll(projs.stream().map(ProjConfig::getProjId).collect(Collectors.toList()));
             String msg = repoAuthConfig.getName() + " 删除失败, " + ids + " 等应用正在使用";
             String msg = repoAuthConfig.getName() + " 删除失败, " + ids + " 等应用正在使用";
             return Result.result(ResultStatus.FAIL, msg);
             return Result.result(ResultStatus.FAIL, msg);
         }
         }

+ 2 - 25
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/impl/SharedEntityChecker.java

@@ -1,6 +1,5 @@
 package cn.reghao.autodop.dmaster.app.service.config.impl;
 package cn.reghao.autodop.dmaster.app.service.config.impl;
 
 
-import cn.reghao.autodop.dmaster.app.db.query.config.ProjConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.CompilerConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.CompilerConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.PackerConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.PackerConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.RepoAuthConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.RepoAuthConfigQuery;
@@ -8,7 +7,6 @@ import cn.reghao.autodop.dmaster.app.model.po.config.build.CompilerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.PackerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.PackerConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.RepoAuthConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.build.RepoAuthConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
-import cn.reghao.autodop.dmaster.app.model.po.config.ProjConfig;
 import cn.reghao.autodop.dmaster.app.model.vo.BuildConfig;
 import cn.reghao.autodop.dmaster.app.model.vo.BuildConfig;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
@@ -20,29 +18,17 @@ import org.springframework.stereotype.Service;
  */
  */
 @Service
 @Service
 public class SharedEntityChecker {
 public class SharedEntityChecker {
-    private ProjConfigQuery projConfigQuery;
     private RepoAuthConfigQuery repoAuthConfigQuery;
     private RepoAuthConfigQuery repoAuthConfigQuery;
     private CompilerConfigQuery compilerConfigQuery;
     private CompilerConfigQuery compilerConfigQuery;
     private PackerConfigQuery packerConfigQuery;
     private PackerConfigQuery packerConfigQuery;
 
 
-    public SharedEntityChecker(ProjConfigQuery projConfigQuery, RepoAuthConfigQuery repoAuthConfigQuery,
-                               CompilerConfigQuery compilerConfigQuery, PackerConfigQuery packerConfigQuery) {
-        this.projConfigQuery = projConfigQuery;
+    public SharedEntityChecker(RepoAuthConfigQuery repoAuthConfigQuery, CompilerConfigQuery compilerConfigQuery,
+                               PackerConfigQuery packerConfigQuery) {
         this.repoAuthConfigQuery = repoAuthConfigQuery;
         this.repoAuthConfigQuery = repoAuthConfigQuery;
         this.compilerConfigQuery = compilerConfigQuery;
         this.compilerConfigQuery = compilerConfigQuery;
         this.packerConfigQuery = packerConfigQuery;
         this.packerConfigQuery = packerConfigQuery;
     }
     }
 
 
-    public void checkAndSetProj(AppConfig app) throws Exception {
-        ProjConfig proj = app.getProj();
-        ProjConfig entity = projConfigQuery.findByIsDeleteFalseAndProjId(proj.getProjId());
-        if (entity != null) {
-            app.setProj(entity);
-        } else {
-            throw new Exception("项目 " + proj.getProjId() + " 不存在");
-        }
-    }
-
     /**
     /**
      * 检查构建共享配置
      * 检查构建共享配置
      *
      *
@@ -59,15 +45,6 @@ public class SharedEntityChecker {
         app.setPackerConfig(buildConfig.getPacker());
         app.setPackerConfig(buildConfig.getPacker());
     }
     }
 
 
-    public void checkAndSetBuildConfig(ProjConfig proj) throws Exception {
-        BuildConfig buildConfig =
-                new BuildConfig(proj.getRepoAuthConfig(), proj.getCompilerConfig(), proj.getPackerConfig());
-        checkAndSetBuildConfig(buildConfig);
-        proj.setRepoAuthConfig(buildConfig.getRepoAuth());
-        proj.setCompilerConfig(buildConfig.getCompiler());
-        proj.setPackerConfig(buildConfig.getPacker());
-    }
-
     public void checkAndSetBuildConfig(BuildConfig buildConfig) throws Exception {
     public void checkAndSetBuildConfig(BuildConfig buildConfig) throws Exception {
         RepoAuthConfig repoAuth = buildConfig.getRepoAuth();
         RepoAuthConfig repoAuth = buildConfig.getRepoAuth();
         RepoAuthConfig repoAuthConfig = repoAuthConfigQuery.findByName(repoAuth.getName());
         RepoAuthConfig repoAuthConfig = repoAuthConfigQuery.findByName(repoAuth.getName());

+ 0 - 141
dmaster/src/main/resources/templates/app/config/proj/add.html

@@ -1,141 +0,0 @@
-<!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org">
-<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
-
-<body>
-<div class="layui-form timo-compile">
-    <form th:action="@{/api/app/config/proj}">
-        <input type="hidden" name="id" th:if="${proj}" th:value="${proj?.id}"/>
-        <div class="timo-detail-title">基本信息</div>
-        <table class="layui-table timo-detail-table">
-            <tbody>
-            <tr>
-                <th>项目 ID</th>
-                <td>
-                    <div class="layui-form-item" th:if="!${proj}">
-                        <div class="layui-input-inline">
-                            <input class="layui-input" type="text" name="projId" placeholder="请输入项目 ID" required th:value="${proj?.projId}">
-                        </div>
-                    </div>
-                    <div class="layui-form-item" th:if="${proj}">
-                        <div class="layui-input-inline">
-                            <input class="layui-input" type="text" name="projId" readonly="true" th:value="${proj?.projId}">
-                        </div>
-                    </div>
-                </td>
-                <th>项目名</th>
-                <td >
-                    <div class="layui-form-item">
-                        <div class="layui-input-inline">
-                            <input class="layui-input" type="text" name="projName" placeholder="请输入项目名" required th:value="${proj?.projName}">
-                        </div>
-                    </div>
-                </td>
-                <th>项目描述</th>
-                <td>
-                    <div class="layui-form-item">
-                        <div class="layui-input-inline">
-                            <input class="layui-input" type="text" name="description"  placeholder="请输入项目描述" required th:value="${proj?.description}">
-                        </div>
-                    </div>
-                </td>
-            </tr>
-            <tr>
-                <th>应用类型</th>
-                <td>
-                    <div class="layui-form-item">
-                        <div class="layui-input-inline">
-                            <select name="appType">
-                                <option th:each="item : ${appTypes}" th:value="${item.key}" th:selected="${proj?.appType} eq ${item.key}">[[${item.value}]]</option>
-                            </select>
-                        </div>
-                    </div>
-                </td>
-                <th>所属环境</th>
-                <td>
-                    <div class="layui-form-item">
-                        <div class="layui-input-inline">
-                            <select name="env">
-                                <option th:each="item : ${environments}" th:value="${item.key}" th:selected="${proj?.env} eq ${item.key}">[[${item.value}]]</option>
-                            </select>
-                        </div>
-                    </div>
-                </td>
-            </tr>
-            <tr>
-                <th>项目仓库</th>
-                <td>
-                    <div class="layui-form-item">
-                        <div class="layui-input-inline">
-                            <input class="layui-input" type="text" name="projRepo"  placeholder="请输入项目仓库" required th:value="${proj?.projRepo}">
-                        </div>
-                    </div>
-                </td>
-                <th>仓库分支</th>
-                <td>
-                    <div class="layui-form-item">
-                        <div class="layui-input-inline">
-                            <input class="layui-input" type="text" name="repoBranch"  placeholder="请输入项目仓库" required th:value="${proj?.repoBranch}">
-                        </div>
-                    </div>
-                </td>
-                <th>代码目录</th>
-                <td>
-                    <div class="layui-form-item">
-                        <div class="layui-input-inline">
-                            <input class="layui-input" type="text" name="codeDirname"  placeholder="请输入项目目录" required th:value="${proj?.codeDirname}">
-                        </div>
-                    </div>
-                </td>
-            </tr>
-            </tbody>
-        </table>
-        <div class="timo-detail-title">构建配置</div>
-        <table class="layui-table timo-detail-table">
-            <tbody>
-            <tr>
-                <th>仓库认证</th>
-                <td>
-                    <div class="layui-form-item">
-                        <div class="layui-input-inline">
-                            <select name="repoAuthConfig.name">
-                                <option th:each="item : ${repoAuths}" th:value="${item.key}" th:selected="${proj?.repoAuthConfig?.name} eq ${item.key}">[[${item.value}]]</option>
-                            </select>
-                        </div>
-                    </div>
-                </td>
-                <th>编译器</th>
-                <td>
-                    <div class="layui-form-item">
-                        <div class="layui-input-inline">
-                            <select name="compilerConfig.name">
-                                <option th:each="item : ${compilers}" th:value="${item.key}" th:selected="${proj?.compilerConfig?.name} eq ${item.key}">[[${item.value}]]</option>
-                            </select>
-                        </div>
-                    </div>
-                </td>
-                <th>打包工具</th>
-                <td>
-                    <div class="layui-form-item">
-                        <div class="layui-input-inline">
-                            <select name="packerConfig.name">
-                                <option th:each="item : ${packers}" th:value="${item.key}" th:selected="${proj?.packerConfig?.name} eq ${item.key}">[[${item.value}]]</option>
-                            </select>
-                        </div>
-                    </div>
-                </td>
-            </tr>
-            </tbody>
-        </table>
-        <div class="layui-form-item timo-finally">
-            <button class="layui-btn ajax-submit"><i class="fa fa-check-circle"></i> 保存</button>
-            <button class="layui-btn btn-secondary close-popup"><i class="fa fa-times-circle"></i> 关闭</button>
-        </div>
-    </form>
-</div>
-<script th:replace="/common/template :: script"></script>
-<script type="text/javascript" th:src="@{/js/plugins/jquery-2.2.4.min.js}"></script>
-<script type="text/javascript">
-</script>
-</body>
-</html>

+ 0 - 56
dmaster/src/main/resources/templates/app/config/proj/copy.html

@@ -1,56 +0,0 @@
-<!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org">
-
-<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
-
-<body>
-<div class="layui-form timo-compile">
-    <form th:action="@{'/api/app/config/proj/copy/' + ${proj.id}}">
-        <input type="hidden" name="id" th:value="${proj.id}"/>
-        <div class="layui-form-item">
-            <label class="layui-form-label required">新项目 ID</label>
-            <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="newId" placeholder="请输入新项目 ID">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label required">新项目名字</label>
-            <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="newName" placeholder="请输入新项目名字">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label required">新项目描述</label>
-            <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="newDescription" placeholder="请输入新项目描述">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label required">新项目仓库</label>
-            <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="newRepo" placeholder="请输入新项目仓库">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label required">新项目仓库分支</label>
-            <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="newRepoBranch" placeholder="请输入新项目分支">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label required">新项目代码目录</label>
-            <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="newCodeDirname" placeholder="请输入新项目代码目录">
-            </div>
-        </div>
-        <div class="layui-form-item timo-finally">
-            <button class="layui-btn ajax-submit"><i class="fa fa-check-circle"></i> 保存</button>
-            <button class="layui-btn btn-secondary close-popup"><i class="fa fa-times-circle"></i> 关闭</button>
-        </div>
-    </form>
-</div>
-<script th:replace="/common/template :: script"></script>
-<script type="text/javascript">
-</script>
-</body>
-</html>

+ 0 - 65
dmaster/src/main/resources/templates/app/config/proj/detail.html

@@ -1,65 +0,0 @@
-<!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org">
-<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
-<body>
-    <div class="timo-detail-page">
-        <div class="timo-detail-title">基本信息</div>
-        <table class="layui-table timo-detail-table">
-            <tbody>
-            <tr>
-                <th>项目 ID</th>
-                <td th:text="${proj.projId}"></td>
-                <th>项目名称</th>
-                <td th:text="${proj.projName}"></td>
-                <th>项目描述</th>
-                <td th:text="${proj.description}"></td>
-            </tr>
-            <tr>
-                <th>应用类型</th>
-                <td th:text="${proj.appType}"></td>
-                <th>环境</th>
-                <td th:text="${proj.env}"></td>
-            </tr>
-            <tr>
-                <th>项目仓库</th>
-                <td th:text="${proj.projRepo}"></td>
-                <th>仓库分支</th>
-                <td th:text="${proj.repoBranch}"></td>
-                <th>项目目录</th>
-                <td th:text="${proj.codeDirname}"></td>
-            </tr>
-            </tbody>
-        </table>
-        <div class="timo-detail-title">构建配置</div>
-        <table class="layui-table timo-detail-table">
-            <tbody>
-            <tr>
-                <th>仓库类型</th>
-                <td th:text="${proj.repoAuthConfig.type}"></td>
-                <th>仓库名字</th>
-                <td th:text="${proj.repoAuthConfig.name}"></td>
-                <th>认证类型</th>
-                <td th:text="${proj.repoAuthConfig.authType}"></td>
-            </tr>
-            <tr>
-                <th>编译器类型</th>
-                <td th:text="${proj.compilerConfig.type}"></td>
-                <th>编译器名字</th>
-                <td th:text="${proj.compilerConfig.name}"></td>
-                <th>编译命令</th>
-                <td th:text="${proj.compilerConfig.compileCmd}"></td>
-            </tr>
-            <tr>
-                <th>打包类型</th>
-                <td th:text="${proj.packerConfig.type}"></td>
-                <th>打包名字</th>
-                <td th:text="${proj.packerConfig.name}"></td>
-                <th>打包路径</th>
-                <td th:text="${proj.packerConfig.targetPath}"></td>
-            </tr>
-            </tbody>
-        </table>
-    </div>
-<script th:replace="/common/template :: script"></script>
-</body>
-</html>

+ 0 - 93
dmaster/src/main/resources/templates/app/config/proj/index.html

@@ -1,93 +0,0 @@
-<!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org">
-<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
-
-<body class="timo-layout-page">
-<div class="layui-card">
-    <div class="layui-card-header timo-card-header">
-        <span><i class="fa fa-bars"></i> 项目配置</span>
-        <i class="layui-icon layui-icon-refresh refresh-btn"></i>
-        <a th:href="@{/proj/config/proj/export}"><i class="fa fa-download"></i></a>
-    </div>
-    <div class="layui-card-body">
-        <div class="layui-row timo-card-screen put-row">
-            <div class="layui-row timo-card-screen put-row">
-                <div class="pull-left layui-form-pane">
-                    <div class="layui-inline timo-search-box">
-                        <label class="layui-form-label">项目</label>
-                        <div class="layui-input-block">
-                            <input type="text" name="projName" th:value="${param.projName}" placeholder="请输入项目名"
-                                   autocomplete="off" class="layui-input">
-                        </div>
-                    </div>
-                    <div class="layui-inline">
-                        <button class="layui-btn timo-search-btn">
-                            <i class="fa fa-search"></i>
-                        </button>
-                    </div>
-                </div>
-            </div>
-            <div class="pull-right screen-btn-group">
-                <div class="btn-group-right">
-                    <button class="layui-btn open-popup" data-title="添加项目" th:attr="data-url=@{/app/config/proj/add}"
-                            data-size="1200,600">
-                        <i class="fa fa-plus"></i> 添加
-                    </button>
-                    <div class="btn-group">
-                        <button class="layui-btn">批量操作<span class="caret"></span></button>
-                        <dl class="layui-nav-child layui-anim layui-anim-upbit">
-                            <dd><a class="ajax-status" th:href="@{/api/app/config/proj/enable}">启用</a></dd>
-                            <dd><a class="ajax-status" th:href="@{/api/app/config/proj/disable}">禁用</a></dd>
-                        </dl>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <div class="timo-table-wrap">
-            <table class="layui-table timo-table">
-                <thead>
-                <tr>
-                    <th class="timo-table-checkbox">
-                        <label class="timo-checkbox"><input type="checkbox">
-                            <i class="layui-icon layui-icon-ok"></i></label>
-                    </th>
-                    <th class="sortable" data-field="projName">项目名</th>
-                    <th class="sortable" data-field="appType">类型</th>
-                    <th class="sortable" data-field="projRepo">项目仓库</th>
-                    <th class="sortable" data-field="repoBranch">仓库分支</th>
-                    <th class="sortable" data-field="codeDirname">代码目录</th>
-                    <th>操作</th>
-                </tr>
-                </thead>
-                <tbody>
-                <tr th:each="item:${list}">
-                    <td><label class="timo-checkbox"><input type="checkbox" th:value="${item.id}">
-                        <i class="layui-icon layui-icon-ok"></i></label></td>
-                    <td th:text="${item.projName}">项目名</td>
-                    <td th:text="${item.appType}">类型</td>
-                    <td th:text="${item.projRepo}">项目仓库</td>
-                    <td th:text="${item.repoBranch}">仓库分支</td>
-                    <td th:text="${item.codeDirname}">代码目录</td>
-                    <td>
-                        <a class="open-popup" data-title="拷贝" th:attr="data-url=@{'/app/config/proj/copy/'+${item.id}}"
-                           data-size="640,480" href="#">拷贝</a>
-                        <a class="open-popup" data-title="项目详细信息" th:attr="data-url=@{'/app/config/proj/detail/'+${item.projId}}"
-                           data-size="1200,600" href="#">详细</a>
-                        <a class="open-popup" data-title="编辑" th:attr="data-url=@{'/app/config/proj/edit/'+${item.id}}"
-                           data-size="1200,600" href="#">编辑</a>
-                        <a class="ajax-delete" th:attr="data-msg='确定要删除 '+ ${item.projId} + '?'"
-                           th:href="@{'/api/app/config/proj/' + ${item.id}}">删除</a>
-                    </td>
-                </tr>
-                </tbody>
-            </table>
-        </div>
-        <div th:replace="/common/fragment :: page"></div>
-    </div>
-</div>
-
-<script th:replace="/common/template :: script"></script>
-<script type="text/javascript">
-</script>
-</body>
-</html>