ソースを参照

处理应用模块页面对应的接口

reghao 5 年 前
コミット
fd2aac2270

+ 16 - 24
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/AppBuildController.java

@@ -15,6 +15,8 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Sort;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 import org.tmatesoft.svn.core.SVNException;
@@ -128,12 +130,8 @@ public class AppBuildController {
     public ResponseEntity<String> buildList(@RequestParam("env") String env,
                                             @RequestParam("page") int page,
                                             @RequestParam("size") int size) {
-        //PageRequest pageRequest = PageRequest.of(page-1, size);
-        List<AppToBuild> res = buildService.buildList(env, null);
-        PageList<AppToBuild> pageList = new PageList<>();
-        pageList.setList(res);
-        pageList.setTotalSize(res.size());
-
+        PageRequest pageRequest = PageRequest.of(page-1, size);
+        PageList<AppToBuild> pageList = buildService.buildList(env, pageRequest);
         return ResponseEntity.ok().body(WebResult.success(pageList));
     }
 
@@ -142,12 +140,10 @@ public class AppBuildController {
     public ResponseEntity<String> commitLogs(@RequestParam("env") String env,
                                              @RequestParam("page") int page,
                                              @RequestParam("size") int size) {
-        List<CommitLogVO> res = buildService.commitLogs(env);
-        PageList<CommitLogVO> logs = new PageList<>();
-        logs.setList(res);
-        logs.setTotalSize(res.size());
-
-        return ResponseEntity.ok().body(WebResult.success(logs));
+        PageRequest pageRequest =
+                PageRequest.of(page-1, size, Sort.by(Sort.Direction.DESC, "createTime"));
+        PageList<CommitLogVO> pageList = buildService.commitLogs(env, pageRequest);
+        return ResponseEntity.ok().body(WebResult.success(pageList));
     }
 
     @ApiOperation(value = "构建日志")
@@ -155,12 +151,10 @@ public class AppBuildController {
     public ResponseEntity<String> buildLogs(@RequestParam("env") String env,
                                             @RequestParam("page") int page,
                                             @RequestParam("size") int size) {
-        List<BuildLogVO> res = buildService.buildLogs(env);
-        PageList<BuildLogVO> logs = new PageList<>();
-        logs.setList(res);
-        logs.setTotalSize(res.size());
-
-        return ResponseEntity.ok().body(WebResult.success(logs));
+        PageRequest pageRequest =
+                PageRequest.of(page-1, size, Sort.by(Sort.Direction.DESC, "createTime"));
+        PageList<BuildLogVO> pageList = buildService.buildLogs(env, pageRequest);
+        return ResponseEntity.ok().body(WebResult.success(pageList));
     }
 
     @ApiOperation(value = "部署日志")
@@ -168,11 +162,9 @@ public class AppBuildController {
     public ResponseEntity<String> deployLogs(@RequestParam("env") String env,
                                              @RequestParam("page") int page,
                                              @RequestParam("size") int size) {
-        List<DeployLogVO> res = buildService.deployLogs(env);
-        PageList<DeployLogVO> logs = new PageList<>();
-        logs.setList(res);
-        logs.setTotalSize(res.size());
-
-        return ResponseEntity.ok().body(WebResult.success(logs));
+        PageRequest pageRequest =
+                PageRequest.of(page-1, size, Sort.by(Sort.Direction.DESC, "createTime"));
+        PageList<DeployLogVO> pageList = buildService.deployLogs(env, pageRequest);
+        return ResponseEntity.ok().body(WebResult.success(pageList));
     }
 }

+ 3 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/repository/log/BuildLogRepository.java

@@ -1,6 +1,8 @@
 package cn.reghao.autodop.dmaster.app.repository.log;
 
 import cn.reghao.autodop.dmaster.app.entity.log.BuildLog;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
 
 /**
@@ -9,4 +11,5 @@ import org.springframework.data.jpa.repository.JpaRepository;
  */
 public interface BuildLogRepository extends JpaRepository<BuildLog, Long> {
     BuildLog findByCommitLogRemoteRepoUrlAndCommitLogCommitId(String repoUrl, String commitId);
+    Page<BuildLog> findByAppEnv(String env, Pageable pageable);
 }

+ 3 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/repository/log/DeployLogRepository.java

@@ -2,6 +2,8 @@ package cn.reghao.autodop.dmaster.app.repository.log;
 
 import cn.reghao.autodop.dmaster.app.entity.log.BuildLog;
 import cn.reghao.autodop.dmaster.app.entity.log.DeployLog;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
 
 /**
@@ -10,4 +12,5 @@ import org.springframework.data.jpa.repository.JpaRepository;
  */
 public interface DeployLogRepository extends JpaRepository<DeployLog, Long> {
     DeployLog findByBuildLog(BuildLog buildLog);
+    Page<DeployLog> findByBuildLog_App_Env(String env, Pageable pageable);
 }

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/repository/orchestration/AppDAO.java

@@ -25,7 +25,7 @@ public class AppDAO {
             // 实际执行 cross join
             String hql = "select app.appId,app.env,log.commitLog.commitId,log.msg " +
                     "from AppOrchestration app,BuildLog log " +
-                    "where log.app = app and app.enable=:enable and app.env=:env " +
+                    "where app.env=:env and (log.app = app or app.enable=:enable)  " +
                     "group by app.appId";
 
             Query hqlQuery = session.createQuery(hql)

+ 35 - 23
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/AppBuildService.java

@@ -7,6 +7,7 @@ import cn.reghao.autodop.dmaster.app.repository.log.BuildLogRepository;
 import cn.reghao.autodop.dmaster.app.repository.log.DeployLogRepository;
 import cn.reghao.autodop.dmaster.app.repository.orchestration.*;
 import cn.reghao.autodop.dmaster.app.vo.AppToBuild;
+import cn.reghao.autodop.dmaster.app.vo.PageList;
 import cn.reghao.autodop.dmaster.app.vo.log.BuildLogVO;
 import cn.reghao.autodop.dmaster.app.vo.log.CommitLogVO;
 import cn.reghao.autodop.dmaster.app.vo.log.DeployLogVO;
@@ -41,16 +42,18 @@ public class AppBuildService {
         this.appDAO = appDAO;
     }
 
-    public List<AppToBuild> buildList(String env, PageRequest pageRequest) {
-        Page<AppOrchestration> apps = appRepository.findAllByEnableIsTrue(env, pageRequest);
+    public PageList<AppToBuild> buildList(String env, PageRequest pageRequest) {
+        PageList<AppToBuild> pageList = new PageList<>();
+
+        /*Page<AppOrchestration> apps = appRepository.findAllByEnableIsTrue(env, pageRequest);
         Set<String> appIds = apps.stream()
                 .filter(app -> app.getEnv().equals(env))
                 .map(AppOrchestration::getAppId)
-                .collect(Collectors.toSet());
+                .collect(Collectors.toSet());*/
 
         List list = appDAO.findBuildApps(env);
         List<AppToBuild> appToBuilds = new ArrayList<>();
-        list.forEach(object -> {
+        /*list.forEach(object -> {
             Object[] objects = (Object[]) object;
             appIds.remove(String.valueOf(objects[0]));
             appToBuilds.add(new AppToBuild(String.valueOf(objects[0]), String.valueOf(objects[1]),
@@ -59,32 +62,41 @@ public class AppBuildService {
 
         appIds.forEach(appId -> {
             appToBuilds.add(new AppToBuild(appId, env));
-        });
+        });*/
 
-        return appToBuilds;
+        return pageList;
     }
 
-    public List<CommitLogVO> commitLogs(String env) {
-        return buildLogRepository.findAll().stream()
-                .filter(buildLog -> buildLog.getApp().getEnv().equals(env))
+    public PageList<CommitLogVO> commitLogs(String env, PageRequest pageRequest) {
+        Page<BuildLog> buildLogs = buildLogRepository.findByAppEnv(env, pageRequest);
+        PageList<CommitLogVO> pageList = new PageList<>();
+        pageList.setTotalSize(buildLogs.getTotalElements());
+        pageList.setTotalPages(buildLogs.getTotalPages());
+        pageList.setList(buildLogs.getContent().stream()
                 .map(buildLog -> CommitLogVO.of(buildLog.getApp().getAppId(), buildLog.getCommitLog()))
-                .collect(Collectors.toList());
+                .collect(Collectors.toList()));
+        return pageList;
     }
 
-    public List<BuildLogVO> buildLogs(String env) {
-        List<BuildLog> buildLogs = buildLogRepository.findAll();
-        return buildLogs.stream()
-                .filter(buildLog -> buildLog.getApp().getEnv().equals(env))
+    public PageList<BuildLogVO> buildLogs(String env, PageRequest pageRequest) {
+        Page<BuildLog> buildLogs = buildLogRepository.findByAppEnv(env, pageRequest);
+        PageList<BuildLogVO> pageList = new PageList<>();
+        pageList.setTotalSize(buildLogs.getTotalElements());
+        pageList.setTotalPages(buildLogs.getTotalPages());
+        pageList.setList(buildLogs.stream()
                 .map(BuildLogVO::of)
-                .collect(Collectors.toList());
+                .collect(Collectors.toList()));
+
+        return pageList;
     }
 
-    public List<DeployLogVO> deployLogs(String env) {
-        List<DeployLog> deployLogs = deployLogRepository.findAll().stream()
-                .filter(deployLog -> deployLog.getBuildLog().getApp().getEnv().equals(env))
-                .collect(Collectors.toList());
+    public PageList<DeployLogVO> deployLogs(String env, PageRequest pageRequest) {
+        Page<DeployLog> deployLogs = deployLogRepository.findByBuildLog_App_Env(env, pageRequest);
+        PageList<DeployLogVO> pageList = new PageList<>();
+        pageList.setTotalSize(deployLogs.getTotalElements());
+        pageList.setTotalPages(deployLogs.getTotalPages());
 
-        List<DeployLogVO> deployLogVOS = new ArrayList<>();
+        List<DeployLogVO> list = new ArrayList<>();
         for (DeployLog deployLog : deployLogs) {
             BuildLog buildLog = deployLog.getBuildLog();
             String appId = buildLog.getApp().getAppId();
@@ -95,9 +107,9 @@ public class AppBuildService {
             Set<DeployResultVO> deployResultVOS = deployLog.getDeployResults().stream()
                     .map(DeployResultVO::of)
                     .collect(Collectors.toSet());
-            deployLogVOS.add(new DeployLogVO(appId, env, remoteRepoUrl, branch, commitId, deployResultVOS));
+            list.add(new DeployLogVO(appId, env, remoteRepoUrl, branch, commitId, deployResultVOS));
         }
-
-        return deployLogVOS;
+        pageList.setList(list);
+        return pageList;
     }
 }