TRX 1 vuosi sitten
vanhempi
commit
2770d11f58

+ 16 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/scene/RoleSceneComTreeModel.java

@@ -1,5 +1,6 @@
 package com.zhongshu.card.client.model.scene;
 
+import com.zhongshu.card.client.type.DataState;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -20,6 +21,21 @@ public class RoleSceneComTreeModel extends SceneInfoModel {
     @Schema(description = "项目应用的数据ID")
     private String projectSceneInfoId;
 
+    @Schema(description = "项目应用排序")
+    private Long pSort = 1L;
+
+    @Schema(description = "状态")
+    private DataState pState;
+
+    private String pStateStr;
+
+    public String getPStateStr() {
+        if (pState != null) {
+            return pState.getRemark();
+        }
+        return "";
+    }
+
     @Schema(description = "包含的组件列表")
     private List<RoleSceneComponentModel> children = new ArrayList<>();
 

+ 2 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/scene/RoleSceneComponentModel.java

@@ -13,6 +13,8 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 public class RoleSceneComponentModel extends SceneComponentModel{
+
     @Schema(description = "角色绑定的数据id集合")
     private String roleSceneId;
+
 }

+ 4 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/scene/RoleSceneInfoController.java

@@ -9,6 +9,7 @@ import com.zhongshu.card.client.model.scene.RoleBindsSceneParam;
 import com.zhongshu.card.client.model.scene.RoleSceneComTreeModel;
 import com.zhongshu.card.client.model.scene.RoleSceneInfoModel;
 import com.zhongshu.card.client.model.scene.SceneInfoAboutComModel;
+import com.zhongshu.card.client.type.DataState;
 import com.zhongshu.card.server.core.service.scene.RoleSceneInfoService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -60,15 +61,15 @@ public class RoleSceneInfoController {
     @Operation(summary = "角色组件所有(树形式)", description = "角色组件所有(树形式)")
     @RequestMapping(value = {"tree"}, method = {RequestMethod.POST})
     public ResultContent<List<RoleSceneComTreeModel>> tree(@RequestBody IDParam param) {
-        return roleSceneInfoService.tree(List.of(param.getId()));
+        return roleSceneInfoService.tree(List.of(param.getId()), null);
     }
     //----------------------------------配置 end------------------------------
 
     @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "得到角色所有已启用的组件列表", description = "得到角色所有已启用的组件列表")
     @RequestMapping(value = {"getRoleAllEnableScenes"}, method = {RequestMethod.POST})
-    public ResultContent<List<SceneInfoAboutComModel>> getRoleAllEnableScenes(@RequestBody IDParam param) {
-        return ResultContent.buildSuccess(roleSceneInfoService.getAllEnableScenes(param.getId()));
+    public ResultContent<List<RoleSceneComTreeModel>> getRoleAllEnableScenes(@RequestBody IDParam param) {
+        return roleSceneInfoService.tree(List.of(param.getId()), DataState.Enable);
     }
 
     @ResourceAuth(value = "user", type = AuthType.User)

+ 25 - 57
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/scene/RoleSceneInfoService.java

@@ -26,10 +26,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -152,11 +149,20 @@ public class RoleSceneInfoService extends SuperService {
         return ResultContent.buildSuccess(models);
     }
 
-    public ResultContent<List<RoleSceneComTreeModel>> tree(List<String> roleIds) {
+    public ResultContent<List<RoleSceneComTreeModel>> tree(List<String> roleIds, DataState state) {
         List<RoleSceneComTreeModel> models = new ArrayList<>();
 
         List<RoleSceneInfo> list = roleSceneInfoDao.findByRoleIdInOrderBySortAsc(roleIds);
         if (ObjectUtils.isNotEmpty(list)) {
+            if (state != null) {
+                list = list.stream().filter(it -> {
+                    return it.getProjectSceneInfo().getState() == state && it.getSceneInfo().getState() == state;
+                }).collect(Collectors.toList());
+            }
+            if (ObjectUtils.isEmpty(list)) {
+                return ResultContent.buildSuccess(models);
+            }
+
             // 以项目应用ID
             Map<String, List<RoleSceneInfo>> map = list.stream().collect(
                     Collectors.toMap(RoleSceneInfo::getProjectSceneInfoId, e -> {
@@ -177,6 +183,8 @@ public class RoleSceneInfoService extends SuperService {
                 BeanUtils.copyProperties(sceneInfoModel, model);
 
                 model.setProjectSceneInfoId(projectSceneInfoId);
+                model.setPSort(projectSceneInfo.getSort());
+                model.setPState(projectSceneInfo.getState());
 
                 // 组件信息
                 List<RoleSceneInfo> roleSceneInfos = map.get(projectSceneInfoId);
@@ -192,68 +200,28 @@ public class RoleSceneInfoService extends SuperService {
                 model.setChildren(children);
                 models.add(model);
             }
-        }
-        return ResultContent.buildSuccess(models);
-    }
-
-    /**
-     * 查询角色可用的应用
-     *
-     * @param roleId
-     * @return
-     */
-    public List<SceneInfoAboutComModel> getAllEnableScenes(String roleId) {
-        List<SceneInfoAboutComModel> models = new ArrayList<>();
 
-        if (StringUtils.isNotEmpty(roleId)) {
-            // 角色关联的应用数据
-            List<RoleSceneInfo> list = roleSceneInfoDao.findByRoleIdOrderBySortAsc(roleId);
-            if (ObjectUtils.isNotEmpty(list)) {
-                list.stream().forEach(it -> {
-                    SceneInfo sceneInfo = it.getSceneInfo();
-                    ProjectSceneInfo projectSceneInfo = it.getProjectSceneInfo();
-                    if (ObjectUtils.isNotEmpty(projectSceneInfo) && ObjectUtils.isNotEmpty(sceneInfo)) {
-                        if (projectSceneInfo.getState() == DataState.Enable && sceneInfo.getState() == DataState.Enable) {
-                            models.add(sceneInfoService.toAboutComModel(sceneInfo));
-                        }
-                    }
-                });
-            }
+            // 排序
+            Collections.sort(models, new Comparator<RoleSceneComTreeModel>() {
+                @Override
+                public int compare(RoleSceneComTreeModel o1, RoleSceneComTreeModel o2) {
+                    return (int) (o1.getPSort() - o2.getPSort());
+                }
+            });
         }
-        return models;
+        return ResultContent.buildSuccess(models);
     }
 
-    public List<SceneInfoAboutComModel> getUserAllEnableScenes() {
+    public List<RoleSceneComTreeModel> getUserAllEnableScenes() {
         // 得到当前用户所有的角色
         ResultContent<List<RoleSimpleModel>> content = roleServiceImpl.xcxGetCurrentRoles();
         if (content.isSuccess()) {
             List<RoleSimpleModel> roles = content.getContent();
             if (ObjectUtils.isNotEmpty(roles)) {
-                List<SceneInfoAboutComModel> models = new ArrayList<>();
-
-                List<String> roleIds = roles.stream().map(it -> it.getId()).collect(Collectors.toUnmodifiableList());
-                List<RoleSceneInfo> list = roleSceneInfoDao.findByRoleIdInOrderBySortAsc(roleIds);
-                if (ObjectUtils.isNotEmpty(list)) {
-                    list.stream().forEach(it -> {
-                        SceneInfo sceneInfo = it.getSceneInfo();
-                        ProjectSceneInfo projectSceneInfo = it.getProjectSceneInfo();
-                        if (ObjectUtils.isNotEmpty(projectSceneInfo) && ObjectUtils.isNotEmpty(sceneInfo)) {
-                            if (projectSceneInfo.getState() == DataState.Enable && sceneInfo.getState() == DataState.Enable) {
-                                models.add(sceneInfoService.toAboutComModel(sceneInfo));
-                            }
-                        }
-                    });
-                }
-                List<SceneInfoAboutComModel> reModels = new ArrayList<>();
-                HashMap<String, String> map = new HashMap<>();
-                for (SceneInfoAboutComModel model : models) {
-                    if (!map.containsKey(model.getId())) {
-                        map.put(model.getId(), model.getName());
-                        reModels.add(model);
-                    }
+                ResultContent<List<RoleSceneComTreeModel>> treeContent = tree(roles.stream().map(RoleSimpleModel::getId).collect(Collectors.toList()), DataState.Enable);
+                if (treeContent.isSuccess()) {
+                    return treeContent.getContent();
                 }
-                // 去重
-                return reModels;
             }
         }
         return Lists.newArrayList();

+ 7 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/scene/SceneInfoService.java

@@ -149,7 +149,13 @@ public class SceneInfoService extends SuperService {
             if (ObjectUtils.isNotEmpty(components)) {
                 List<SceneComponent> componentEntitys = new ArrayList<>();
                 for (SceneComponentParam param : components) {
-                    SceneComponent component = new SceneComponent();
+                    SceneComponent component = null;
+                    if (StringUtils.isNotEmpty(param.getId())) {
+                        component = sceneComponentDao.findTopById(param.getId());
+                    }
+                    if (ObjectUtils.isEmpty(component)) {
+                        component = new SceneComponent();
+                    }
                     BeanUtils.copyProperties(param, component);
                     componentEntitys.add(component);
                     if (StringUtils.isNotEmpty(param.getId()) && ids.contains(param.getId())) {