Pārlūkot izejas kodu

fix: tree列表为空值无法正常返回

370774330@qq.com 5 gadi atpakaļ
vecāks
revīzija
72480d398f

+ 6 - 6
web/src/main/java/seecoder/devcloud/web/model/po/tree/TreeNodePO.java

@@ -30,12 +30,12 @@ public class TreeNodePO {
     private long timeToTake;
     private String startTime;
     private String endTime;
-    private boolean leaf;
-    private int projectId;
-    private int parentId;
-    private int deep;
+    private Boolean leaf;
+    private Integer projectId;
+    private Integer parentId;
+    private Integer deep;
     /**
-     * 负责人 id,没有分配则为-1
+     * 负责人 id
      */
-    private int processorId;
+    private Integer processorId;
 }

+ 2 - 2
web/src/main/java/seecoder/devcloud/web/model/vo/tree/TreeNodeCreateVO.java

@@ -41,6 +41,6 @@ public class TreeNodeCreateVO {
     private int parentId;
     @ApiModelProperty("节点深度")
     private int deep;
-    @ApiModelProperty("负责人id,不分配为则默认 -1")
-    private int processorId = -1;
+    @ApiModelProperty("负责人id")
+    private int processorId;
 }

+ 2 - 2
web/src/main/java/seecoder/devcloud/web/model/vo/tree/TreeNodeUpdateBasicVO.java

@@ -35,7 +35,7 @@ public class TreeNodeUpdateBasicVO {
     private int parentId;
     @ApiModelProperty("节点深度")
     private int deep;
-    @ApiModelProperty("负责人id,不分配为则默认 -1")
-    private int processorId = -1;
+    @ApiModelProperty("负责人id")
+    private int processorId;
 
 }

+ 4 - 7
web/src/main/java/seecoder/devcloud/web/service/impl/tree/TreeNodeServiceImpl.java

@@ -21,9 +21,7 @@ import seecoder.devcloud.web.model.vo.tree.TreeNodeUpdateBasicVO;
 import seecoder.devcloud.web.service.tree.TreeNodeService;
 
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -147,11 +145,10 @@ public class TreeNodeServiceImpl implements TreeNodeService {
      */
     private List<TreeNodeVO> getTreeNodeVOS(List<TreeNodePO> nodesPO) {
         int projectId = nodesPO.get(0).getProjectId();
-        List<Integer> userIds = nodesPO.stream().map(TreeNodePO::getProcessorId).collect(Collectors.toList());
-
-        Map<Integer,String> usernameMap = userMapper.selectByIds(userIds).stream().collect(Collectors.toMap(UserPO::getId, UserPO::getUsername));
+        List<Integer> userIds = nodesPO.stream().filter(x->x.getProcessorId()!=null).map(TreeNodePO::getProcessorId).collect(Collectors.toList());
+        Map<Integer,String> usernameMap = userIds.size() == 0? Collections.EMPTY_MAP : userMapper.selectByIds(userIds).stream().collect(Collectors.toMap(UserPO::getId, UserPO::getUsername));
         List<CommitPO> commits = commitMapper.selectByProjectIdAndType(projectId, CommitRelatedType.TREE_ID);
         Map<Integer, List<CommitPO>> commitsMap = commits.stream().collect(Collectors.groupingBy(CommitPO::getRelatedId));
-        return nodesPO.stream().map(po -> new TreeNodeVO(po,usernameMap.get(po.getProcessorId()),commitsMap.get(po.getId()))).collect(Collectors.toList());
+        return nodesPO.stream().map(po -> new TreeNodeVO(po,usernameMap.getOrDefault(po.getProcessorId(),"no one"),commitsMap.getOrDefault(po.getId(),new ArrayList<>()))).collect(Collectors.toList());
     }
 }