Jelajahi Sumber

场景库打包list转tree

WXF 3 tahun lalu
induk
melakukan
409f083613

+ 4 - 3
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/ctrl/ScenePackageController.java

@@ -6,6 +6,7 @@ import api.common.pojo.param.scene.ScenePackageParam;
 import api.common.pojo.po.scene.ScenePackagePO;
 import api.common.pojo.po.scene.ScenePackageSublistPO;
 import api.common.pojo.vo.scene.ScenePackageNewVO;
+import api.common.pojo.vo.scene.ScenePackageSublistVO;
 import api.common.pojo.vo.scene.ScenePackageVO;
 import api.common.util.ObjectUtil;
 import com.css.simulation.resource.common.utils.PageUtil;
@@ -64,13 +65,13 @@ public class ScenePackageController {
     //查询一个测试包列表
     @PostMapping("/queryScenePackageSublistList")
     @ResponseBody
-    public ResponseBodyVO<ScenePackageNewVO> queryScenePackageSublistList(@RequestBody ScenePackageParam parms) {
+    public ResponseBodyVO<List<ScenePackageSublistVO>> queryScenePackageSublistList(@RequestBody ScenePackageParam parms) {
         if(ObjectUtil.isNull(parms.getPackageId())){
             return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE,"参数PackageId不能为空,请检查");
         }
-        ScenePackageNewVO po=  scenePackageService.queryScenePackageSublistList(parms);
+        List<ScenePackageSublistVO> list =  scenePackageService.queryScenePackageSublistList(parms);
 
-        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS,po);
+        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS,list);
     }
 
 

+ 44 - 7
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/ScenePackageService.java

@@ -101,13 +101,50 @@ public class ScenePackageService {
 
     //查询一个测试包的指标列表
     @SneakyThrows
-    public ScenePackageNewVO queryScenePackageSublistList(ScenePackageParam params){
-        ScenePackageSublistPO po=new ScenePackageSublistPO();
-        po.setParentId(params.getPackageId());
-        ScenePackageNewVO vo= scenePackageMapper.queryScenePackageBySublist(params.getPackageId());
-        List<ScenePackageSublistVO> list =selectScenePackageSubListTree(null,true,params.getPackageId());
-        vo.setList(list);
-     //   vo.setList(list);
+    public List<ScenePackageSublistVO> queryScenePackageSublistList(ScenePackageParam params){
+        ScenePackageNewVO vo = scenePackageMapper.queryScenePackageBySublist(params.getPackageId());
+        ScenePackageSublistPO po = new ScenePackageSublistPO();
+        po.setRootId(params.getPackageId());
+        List<ScenePackageSublistVO> scenePackageSublistVOS = scenePackageSublistMapper.queryScenePackageSublistList(po);
+        //构建根节点
+        ScenePackageSublistVO root = new ScenePackageSublistVO();
+        root.setId(vo.getPackageId());
+        root.setParentId("0");
+        root.setSublistName(vo.getPackageName());
+        root.setWeight(vo.getWeight());
+        root.setSceneNum(vo.getSceneNum());
+        root.setRemarks(vo.getRemarks());
+        scenePackageSublistVOS.add(0,root);
+        //list转tree
+        List<ScenePackageSublistVO> tree = listToTree(scenePackageSublistVOS);
+        return tree;
+    }
+
+    /**
+     * list转tree
+     */
+    public static List<ScenePackageSublistVO> listToTree(List<ScenePackageSublistVO> list) {
+        List<ScenePackageSublistVO> treeList = new ArrayList<ScenePackageSublistVO>();
+        for (ScenePackageSublistVO vo: list) {
+            if("0".equals(vo.getParentId())){
+                treeList.add(findChildren(vo,list));
+            }
+        }
+        return treeList;
+    }
+
+    /**
+     * list转tree 递归
+     */
+    private static ScenePackageSublistVO findChildren(ScenePackageSublistVO vo, List<ScenePackageSublistVO> list) {
+        for (ScenePackageSublistVO node: list) {
+            if(vo.getId().equals(node.getParentId())){
+                if(vo.getChildren() == null || vo.getChildren().size() == 0){
+                    vo.setChildren(new ArrayList<ScenePackageSublistVO>());
+                }
+                vo.getChildren().add(findChildren(node,list));
+            }
+        }
         return vo;
     }