Browse Source

Merge branch 'mazq-0804-api-modify' into 'release/v2.4.0'

feature(功能鉴权api接口修改): 功能鉴权api接口修改

See merge request dcuc-tjdsj/auth-back!76
马志强 3 năm trước cách đây
mục cha
commit
73ac4637ff

+ 32 - 25
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/authservice/v3/controller/AuthV3ApiController.java

@@ -8,9 +8,12 @@ import com.dragoninfo.dcuc.auth.auth.dto.AppResourcesDto;
 import com.dragoninfo.dcuc.auth.auth.dto.RoleApiDto;
 import com.dragoninfo.dcuc.auth.auth.facade.IFunAuthResultFacade;
 import com.dragoninfo.dcuc.auth.auth.facade.IRoleFacade;
+import com.dragoninfo.dcuc.auth.auth.vo.AppFunInfoVo;
 import com.dragoninfo.dcuc.auth.auth.vo.AppFunVO;
 import com.dragoninfo.dcuc.auth.power.facade.IAppFunInfoFacade;
 import com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v3.vo.AppFunAuthApiVo;
+import com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v3.vo.AppFunInfoApiVo;
+import com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v3.vo.FunCodeTreeApiVo;
 import com.dragoninfo.dcuc.authweb.util.VersionUtils;
 import com.dragoninfo.dcuc.authweb.vo.AuthManagerRes;
 import com.dragoninfo.dcuc.authweb.vo.AuthResourceVo;
@@ -142,17 +145,21 @@ public class AuthV3ApiController {
         roleApiDto.setAppCode(managerRes.getAppCode());
         roleApiDto.setUserId(userInfo.getId());
         roleApiDto.setIdcard(managerRes.getIdcard());
-        List<Map<String, Object>> list = roleFacade.getMenus(roleApiDto);
-
-        //去重
-        Set<Map<String, Object>> result = new HashSet<>(list);
-        List<Map<String, Object>> mapList = this.addMap(new ArrayList<>(result), null);
-        List<AppFunAuthApiVo> roleResult = mapList.stream().map(item -> {
-            String str = JSON.toJSONString(item);
-            AppFunAuthApiVo apiVo = JSON.parseObject(str, AppFunAuthApiVo.class);
-            return apiVo;
-        }).collect(Collectors.toList());
-        return ApiResult.setSuccessResult(roleResult);
+        List<AppFunInfoDTO> menus = roleFacade.getMenus(roleApiDto);
+        List<AppFunInfoApiVo> vos = Optional.ofNullable(menus)
+                .orElse(new ArrayList<>())
+                .stream()
+                .map(item -> {
+                    AppFunInfoApiVo vo = new AppFunInfoApiVo();
+                    vo.setName(item.getName());
+                    vo.setCode(item.getCode());
+                    vo.setPid(item.getParentId());
+                    vo.setUrl(item.getUrl());
+                    vo.setSort(item.getSeq());
+                    return vo;
+                }).collect(Collectors.toList());
+        List<FunCodeTreeApiVo> mapList = constructFunCodeTree(vos, null);
+        return ApiResult.setSuccessResult(mapList);
     }
 
 
@@ -163,14 +170,14 @@ public class AuthV3ApiController {
      * @param pid  父节点
      * @return
      */
-    private List<Map<String, Object>> addMap(List<Map<String, Object>> maps, String pid) {
-        List<Map<String, Object>> mapList = new ArrayList<>();
+    private List<FunCodeTreeApiVo> constructFunCodeTree (List<AppFunInfoApiVo> maps, String pid) {
+        List<FunCodeTreeApiVo> mapList = new ArrayList<>();
         maps.forEach(item -> {
-            Map<String, Object> map = new HashMap<>();
-            if (item.get("pid") == null || StringUtils.isEmpty((String) item.get("pid"))) {
-                map.put("code", item.get("code"));
-                map.put("nextNode", getChildren(maps, (String) item.get("code")));
-                mapList.add(map);
+            FunCodeTreeApiVo vo = new FunCodeTreeApiVo();
+            if (item.getPid() == null || StringUtils.isEmpty(item.getPid())) {
+                vo.setCode(item.getCode());
+                vo.setNextNode(getChildren(maps,item.getCode()));
+                mapList.add(vo);
             }
 
         });
@@ -184,14 +191,14 @@ public class AuthV3ApiController {
      * @param pid  父节点
      * @return
      */
-    private List<Map<String, Object>> getChildren(List<Map<String, Object>> maps, String pid) {
-        List<Map<String, Object>> mapList = new ArrayList<>();
+    private List<FunCodeTreeApiVo> getChildren(List<AppFunInfoApiVo> maps, String pid) {
+        List<FunCodeTreeApiVo> mapList = new ArrayList<>();
         maps.forEach(item -> {
-            Map<String, Object> map = new HashMap<>();
-            if (pid.equals(item.get("pid"))) {
-                map.put("code", item.get("code"));
-                map.put("nextNode", getChildren(maps, (String) item.get("code")));
-                mapList.add(map);
+            FunCodeTreeApiVo vo = new FunCodeTreeApiVo();
+            if (pid.equals(item.getPid())) {
+                vo.setCode(item.getCode());
+                vo.setNextNode(getChildren(maps, item.getCode()));
+                mapList.add(vo);
             }
         });
         return mapList;

+ 30 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/authservice/v3/vo/AppFunInfoApiVo.java

@@ -0,0 +1,30 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v3.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author mazq
+ * @date 2021/8/4
+ */
+@Data
+@ApiModel(value = "api接口功能菜单Vo")
+public class AppFunInfoApiVo {
+
+    @ApiModelProperty(value = "功能名称")
+    private String name;
+
+    @ApiModelProperty(value = "功能code")
+    private String code;
+
+    @ApiModelProperty(value = "父级功能code")
+    private String pid;
+
+    @ApiModelProperty(value = "功能菜单url")
+    private String url;
+
+    @ApiModelProperty(value = "功能排序序号")
+    private String sort;
+
+}

+ 22 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/authservice/v3/vo/FunCodeTreeApiVo.java

@@ -0,0 +1,22 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v3.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author mazq
+ * @date 2021/8/4
+ */
+@Data
+@ApiModel(value = "树形功能菜单Vo")
+public class FunCodeTreeApiVo {
+
+    @ApiModelProperty(value = "功能菜单code")
+    private String code;
+
+    @ApiModelProperty(value = "子级菜单Vo集合")
+    private List<FunCodeTreeApiVo> nextNode;
+}

+ 16 - 5
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/controller/AuthApiController.java

@@ -10,6 +10,7 @@ import com.dragoninfo.dcuc.auth.auth.facade.IApprovalFacade;
 import com.dragoninfo.dcuc.auth.auth.facade.IRoleFacade;
 import com.dragoninfo.dcuc.auth.auth.vo.AppFunInfoVo;
 import com.dragoninfo.dcuc.auth.power.facade.IAppFunInfoFacade;
+import com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v3.vo.AppFunInfoApiVo;
 import com.dragoninfo.dcuc.authweb.restcontroller.api.controller.pojo.FunAppovalParamVo;
 import com.dragoninfo.dcuc.authweb.restcontroller.api.controller.pojo.RoleApiParamVo;
 import com.dragoninfo.dcuc.authweb.restcontroller.api.controller.pojo.UpdataAppFunVO;
@@ -36,9 +37,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -174,8 +173,20 @@ public class AuthApiController {
         try {
             RoleApiDto dto = new RoleApiDto();
             dto.setAppCode(appCode);
-            List<Map<String, Object>> menus = roleFacade.getMenus(dto);
-            return Result.success(menus);
+            List<AppFunInfoDTO> menus = roleFacade.getMenus(dto);
+            List<AppFunInfoApiVo> vos = Optional.ofNullable(menus)
+                    .orElse(new ArrayList<>())
+                    .stream()
+                    .map(item -> {
+                        AppFunInfoApiVo vo = new AppFunInfoApiVo();
+                        vo.setName(item.getName());
+                        vo.setCode(item.getCode());
+                        vo.setPid(item.getParentId());
+                        vo.setUrl(item.getUrl());
+                        vo.setSort(item.getSeq());
+                        return vo;
+                    }).collect(Collectors.toList());
+            return Result.success(vos);
         } catch (Exception e) {
             return Result.fail("获取失败");
         }