浏览代码

feature(授权日志推送启明): 授权日志推送启明添加ip

马志强 3 年之前
父节点
当前提交
ad9d7641ec
共有 20 个文件被更改,包括 245 次插入104 次删除
  1. 20 0
      src/main/java/com/dragoninfo/dcuc/authweb/config/FeignRequestConfig.java
  2. 1 5
      src/main/java/com/dragoninfo/dcuc/authweb/interceptor/DcucLocaleChangeInterceptor.java
  3. 30 0
      src/main/java/com/dragoninfo/dcuc/authweb/interceptor/FeignHeadInterceptor.java
  4. 0 1
      src/main/java/com/dragoninfo/dcuc/authweb/interceptor/SecurityAccessTokenResolver.java
  5. 32 25
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/authservice/v3/controller/AuthV3ApiController.java
  6. 30 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/authservice/v3/vo/AppFunInfoApiVo.java
  7. 22 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/authservice/v3/vo/FunCodeTreeApiVo.java
  8. 16 5
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/controller/AuthApiController.java
  9. 0 4
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/controller/vo/WhiteListUserApiVo.java
  10. 3 1
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/audit/MgeAuditRptController.java
  11. 1 1
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/auth/ApplicationController.java
  12. 16 17
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/auth/RoleAuthInfoController.java
  13. 8 3
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/login/DcucLoginController.java
  14. 49 21
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/selfauth/controller/SelfAuthAppLyController.java
  15. 4 1
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/selfauth/vo/AppFunApplyUpdateVo.java
  16. 2 1
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/selfauth/vo/AppFunAuthApplyVo.java
  17. 6 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/selfauth/vo/FunApplyDetailVo.java
  18. 4 1
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/selfauth/vo/WorkFlowVo.java
  19. 1 1
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/SubSyncController.java
  20. 0 17
      src/main/java/com/dragoninfo/dcuc/authweb/util/ConstantsUtils.java

+ 20 - 0
src/main/java/com/dragoninfo/dcuc/authweb/config/FeignRequestConfig.java

@@ -0,0 +1,20 @@
+package com.dragoninfo.dcuc.authweb.config;
+
+import com.dragoninfo.dcuc.authweb.interceptor.FeignHeadInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * feign调用后端服务拦截器配置
+ * @author mazq
+ * @date 2021/7/29
+ */
+@Configuration
+public class FeignRequestConfig {
+
+    @Bean
+    public FeignHeadInterceptor feignHeadInterceptor() {
+        return  new FeignHeadInterceptor();
+    }
+
+}

+ 1 - 5
src/main/java/com/dragoninfo/dcuc/authweb/interceptor/DcucLocaleChangeInterceptor.java

@@ -43,11 +43,7 @@ public class DcucLocaleChangeInterceptor extends LocaleChangeInterceptor {
         if (ObjectUtils.isEmpty(configuredMethods)) {
             return true;
         } else {
-            String[] var3 = configuredMethods;
-            int var4 = configuredMethods.length;
-
-            for (int var5 = 0; var5 < var4; ++var5) {
-                String configuredMethod = var3[var5];
+            for (String configuredMethod : configuredMethods) {
                 if (configuredMethod.equalsIgnoreCase(currentMethod)) {
                     return true;
                 }

+ 30 - 0
src/main/java/com/dragoninfo/dcuc/authweb/interceptor/FeignHeadInterceptor.java

@@ -0,0 +1,30 @@
+package com.dragoninfo.dcuc.authweb.interceptor;
+
+import com.dragoninfo.dcuc.common.Constants;
+import com.dragonsoft.duceap.commons.util.ip.IpUtils;
+import feign.RequestInterceptor;
+import feign.RequestTemplate;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import java.net.InetAddress;
+
+/**
+ * 添加调用到后端的请求头
+ * @author mazq
+ * @date 2021/7/29
+ */
+@Slf4j
+public class FeignHeadInterceptor implements RequestInterceptor {
+    @Override
+    public void apply(RequestTemplate template) {
+        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+        if(attributes!=null) {
+            HttpServletRequest request = attributes.getRequest();
+            String ipAddr = IpUtils.getRealIpAdrress(request);
+            template.header(Constants.REAL_IP_ADDRESS_KEY, ipAddr);
+        }
+    }
+}

+ 0 - 1
src/main/java/com/dragoninfo/dcuc/authweb/interceptor/SecurityAccessTokenResolver.java

@@ -89,7 +89,6 @@ public class SecurityAccessTokenResolver implements ISecurityAccessTokenResolver
 
         BimUserInfoItemRespVO userInfoItemRespVO = bimBusinessFacade.getUserInfoByUserToken(userToken);
         String sfzh = userInfoItemRespVO.getSfzh();
-//        String sfzh = "000000000000000001";
 
         UserInfo userInfo = userFacade.detailBySfzh(sfzh);
         log.info("idcard:{}, userInfo :{}", sfzh, JsonUtils.toJSONString(userInfo));

+ 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("获取失败");
         }

+ 0 - 4
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/controller/vo/WhiteListUserApiVo.java

@@ -11,12 +11,8 @@ import lombok.Data;
 @ApiModel(value = "人员白名单api接口Vo")
 @Data
 public class WhiteListUserApiVo {
-    @ApiModelProperty(value = "人员id")
-    private String userId;
     @ApiModelProperty(value = "人员姓名")
     private String userName;
-    @ApiModelProperty(value = "人员所属机构id")
-    private String orgId;
     @ApiModelProperty(value = "人员所属机构code")
     private String orgCode;
     @ApiModelProperty(value = "人员所属机构名称")

+ 3 - 1
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/audit/MgeAuditRptController.java

@@ -114,7 +114,9 @@ public class MgeAuditRptController {
             if (!AdminObjectTypeEnum.GLY.getValue().equals(type) && !AdminObjectTypeEnum.PTCD.getValue().equals(type)) {
                 if (AdminObjectTypeEnum.JGGL.getValue().equals(type) || AdminObjectTypeEnum.RYGL.getValue().equals(type) || AdminObjectTypeEnum.SQGL.getValue().equals(type) || AdminObjectTypeEnum.GLYGL.getValue().equals(type)) {
                     ids = iOrgInfoFacade.changeIdsToNames(ids);
-                    ids = ids.replace(":-1", "(及其下属机构)").replace(":0", "").replace(":1", "").replace(":2", "(及其下属机构)");
+                    if(StringUtils.isNotBlank(ids)) {
+                        ids = ids.replace(":-1", "(及其下属机构)").replace(":0", "").replace(":1", "").replace(":2", "(及其下属机构)");
+                    }
                     mgeLog.setObjectName(ids);
                 }
 

+ 1 - 1
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/auth/ApplicationController.java

@@ -122,7 +122,7 @@ public class ApplicationController {
         //填充统计数据
         //TODO
         //DTO待设计
-        List<ApplicationInfoVO> apps = iApplicationInfoFacade.addCountInfo(objectConvert(applyInfos));
+        List<ApplicationInfoVO> apps = iApplicationInfoFacade.addCountInfoInLimitRole(objectConvert(applyInfos));
         for (ApplicationInfoVO source : apps) {
             ApplicationInfoVo vo = new ApplicationInfoVo();
             BeanUtils.copyProperties(source, vo);

+ 16 - 17
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/auth/RoleAuthInfoController.java

@@ -18,9 +18,10 @@ import com.dragoninfo.dcuc.authweb.restcontroller.auth.vo.StaffAssignAuthInfoVo;
 import com.dragoninfo.dcuc.authweb.restcontroller.auth.vo.StaffOperateVo;
 import com.dragoninfo.dcuc.authweb.restcontroller.auth.vo.StaffRoleOperateVo;
 import com.dragoninfo.dcuc.duceap.facade.ICodeListResourceFacade;
-import com.dragoninfo.dcuc.duceap.facade.IDuceapCodeFacade;
 import com.dragoninfo.dcuc.org.entity.OrgInfo;
 import com.dragoninfo.dcuc.org.facade.IOrgInfoFacade;
+import com.dragoninfo.dcuc.user.label.ILabelFacade;
+import com.dragoninfo.dcuc.user.label.vo.LabelVO;
 import com.dragoninfo.dcuc.user.user.entity.UserInfo;
 import com.dragoninfo.dcuc.user.user.entity.UserInfoView;
 import com.dragoninfo.dcuc.user.user.enumresources.JobTypeEnum;
@@ -43,7 +44,6 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-import org.hibernate.validator.internal.IgnoreForbiddenApisErrors;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -51,6 +51,7 @@ import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Api(tags = {"授权模块-角色授权管理接口"})
 @RestController
@@ -71,7 +72,7 @@ public class RoleAuthInfoController {
     @Autowired
     private ICodeListResourceFacade iCodeListResourceFacade;
     @Autowired
-    private IDuceapCodeFacade iDuceapCodeFacade;
+    private ILabelFacade labelFacade;
 
     /**
      * 角色视图 人员列表
@@ -336,26 +337,24 @@ public class RoleAuthInfoController {
     }
 
     private String getLavleValue(String value) {
-        HashMap<String, String> codeMap = getCodeVLMap("T_USER_LABEL");
+        Map<String, String> codeMap = getUserLabel();
         String codeValue = "";
-        if(StringUtils.isNotEmpty(value)){
-            String[] codeLable = value.split(",");
-            for (String s : codeLable) {
-                codeValue += codeMap.get(s)+",";
+        if(StringUtils.isNotEmpty(value)) {
+            String[] codes = value.split(",");
+            for (int i = 0; i < codes.length; i++) {
+                String code = codes[i];
+                String label = codeMap.get(code);
+                label = StringUtils.isBlank(label)? "": label;
+                codes[i] = label;
             }
+            codeValue = String.join(",",codes);
         }
         return codeValue;
     }
 
-    private HashMap<String, String> getCodeVLMap(String name) {
-        HashMap<String, String> map = new HashMap<String, String>();
-        List<Map<String, Object>> codeResource = iDuceapCodeFacade.getCodeResource(name);
-        codeResource.forEach(item->{
-            String lable = item.get("NAME").toString();
-            String value = item.get("CODE").toString();
-            map.put(value,lable);
-        });
-        return map;
+    private Map<String, String> getUserLabel() {
+        List<LabelVO> all = labelFacade.findAll();
+        return all.stream().collect(Collectors.toMap(LabelVO::getCode, LabelVO::getName));
     }
 
 

+ 8 - 3
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/login/DcucLoginController.java

@@ -54,7 +54,7 @@ public class DcucLoginController {
     }
 
     @GetMapping(value = "/info")
-    public SecurityUser info(@RequestHeader(value = "userToken",required = false) String userToken,
+    public SecurityUser info(@RequestHeader(value = "userToken", required = false) String userToken,
                              @RequestHeader(value = "appToken", required = false) String appToken) {
         logger.info("UserToken:{},appToken:{}", userToken, appToken);
 
@@ -69,7 +69,7 @@ public class DcucLoginController {
             } else {
                 userInfo = iUserInfoFacade.userDetail(securityUser.getId());
             }
-                securityUser.setId(userInfo.getId());
+            securityUser.setId(userInfo.getId());
             List<SecurityRight> authmenu = getAuthmenu(securityUser, userInfo);
             securityUser.setSecurityRightList(authmenu);
             //ADMIN管理员
@@ -102,8 +102,13 @@ public class DcucLoginController {
         } else if (dcucAuthWebConfig.isAuthAccess()) {
             logger.info("进入权限授权模块控制菜单权限");
             //使用权限授权模块控制菜单权限
-            List<String> rightIds = iRoleFacade.getAuthByUserIdAndAppCode(securityUser.getId(), dcucAuthWebConfig.getAppCode());
+            String userId = securityUser.getId();
+            String appCode = dcucAuthWebConfig.getAppCode();
+            logger.debug("Get MenuInfo userId:{} , appCode:{}", userId, appCode);
+            List<String> rightIds = iRoleFacade.getAuthByUserIdAndAppCode(userId, appCode);
+            logger.debug("Get MenuInfo rightIds:{}", rightIds);
             rights = iMenuMtAuthFacade.getMenuByIds(rightIds, "SysMenuInfo");
+            logger.debug("Get MenuInfo iMenuMtAuthFacade rightIds:{}", rightIds);
         } else {
             logger.info("进入管理员管理配置菜单权限");
             //使用管理员管理配置菜单权限

+ 49 - 21
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/selfauth/controller/SelfAuthAppLyController.java

@@ -20,7 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -62,11 +62,7 @@ public class SelfAuthAppLyController {
     @GetMapping(value = "authApplyCancel")
     public Result authApplyCancel(@RequestParam("applyOrdNo") String applyOrdNo) {
         ResponseStatus status = selfAuthApplyFacade.authApplyCancel(applyOrdNo);
-        if(!ResponseStatus.SUCCESS_CODE.equals(status.getStatusCode())) {
-            return Result.fail(status.getStatusCode(), status.getMessage());
-        } else {
-            return Result.success();
-        }
+        return dealResult(status);
     }
 
     @ApiOperation(value = "权限申请单删除")
@@ -74,31 +70,41 @@ public class SelfAuthAppLyController {
     @DeleteMapping(value = "authApplyDelete")
     public Result authApplyDelete(@RequestParam("applyOrdNo") String applyOrdNo) {
         ResponseStatus status = selfAuthApplyFacade.authApplyDelete(applyOrdNo);
-        if(!ResponseStatus.SUCCESS_CODE.equals(status.getStatusCode())) {
-            return Result.fail(status.getStatusCode(), status.getMessage());
-        } else {
-            return Result.success();
-        }
+        return dealResult(status);
     }
 
 
     @ApiOperation(value = "应用功能授权申请保存")
     @PostMapping(value = "funApplySave")
     public Result funApplySave(@RequestBody AppFunAuthApplyVo vo) {
-        AppFunAuthApplyDTO authApplyDTO = convertToAuthApplyDTO(vo);
+        String jsonString = JSON.toJSONString(vo);
+        AppFunAuthApplyDTO authApplyDTO = JSON.parseObject(jsonString, AppFunAuthApplyDTO.class);
         WorkFlowDTO workFlow = authApplyDTO.getWorkFlow();
         workFlow.setApplySource(WorkFlowSourceEnum.SELF_AUTH_APPLY.getValue());
+        Date endTime = getEndTime(workFlow.getEndTime());
+        workFlow.setEndTime(endTime);
         ResponseStatus status = selfAuthApplyFacade.funApplySave(authApplyDTO);
-        if(!status.getStatusCode().equals(ResponseStatus.SUCCESS_CODE)) {
+        return dealResult(status);
+    }
+
+    private Result dealResult(ResponseStatus status) {
+        if (!ResponseStatus.SUCCESS_CODE.equals(status.getStatusCode())) {
             return Result.fail(status.getStatusCode(), status.getMessage());
         } else {
             return Result.success();
         }
     }
 
-    private AppFunAuthApplyDTO convertToAuthApplyDTO(AppFunAuthApplyVo vo) {
-        String jsonString = JSON.toJSONString(vo);
-        return JSON.parseObject(jsonString, AppFunAuthApplyDTO.class);
+    private Date getEndTime(Date endTime) {
+        if (null != endTime) {
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(endTime);
+            calendar.add(Calendar.HOUR, 23);
+            calendar.add(Calendar.MINUTE, 59);
+            calendar.add(Calendar.SECOND, 59);
+            return calendar.getTime();
+        }
+        return null;
     }
 
     @ApiOperation(value = "应用功能权限申请详情")
@@ -124,22 +130,44 @@ public class SelfAuthAppLyController {
         BeanUtils.copyProperties(workFlow, workFlowVo);
         detailVo.setWorkFlow(workFlowVo);
         List<AppFunAuthResourceDTO> resourceInfos = detailDTO.getResourceInfos();
-        List<AppFunAuthResourceVo> resourceVoList = resourceInfos.stream().map(item -> {
+        List<AppFunAuthResourceVo> resourceVoList = Optional.ofNullable(resourceInfos).orElse(new ArrayList<>()).stream().map(item -> {
             AppFunAuthResourceVo resourceVo = new AppFunAuthResourceVo();
             BeanUtils.copyProperties(item, resourceVo);
             return resourceVo;
         }).collect(Collectors.toList());
         detailVo.setResourceInfos(resourceVoList);
+
+        List<AppFunAuthResourceDTO> delResourceInfos = detailDTO.getDelResourceInfos();
+        List<AppFunAuthResourceVo> delVoList = Optional.ofNullable(delResourceInfos).orElse(new ArrayList<>())
+                .stream().map(item -> {
+            AppFunAuthResourceVo resourceVo = new AppFunAuthResourceVo();
+            BeanUtils.copyProperties(item, resourceVo);
+            return resourceVo;
+        }).collect(Collectors.toList());
+        detailVo.setDelResourceInfos(delVoList);
+
+
+        List<AppFunAuthResourceDTO> existResourceInfos = detailDTO.getExistResourceInfos();
+        List<AppFunAuthResourceVo> existVoList = Optional.ofNullable(existResourceInfos).orElse(new ArrayList<>())
+                .stream().map(item -> {
+                    AppFunAuthResourceVo resourceVo = new AppFunAuthResourceVo();
+                    BeanUtils.copyProperties(item, resourceVo);
+                    return resourceVo;
+                }).collect(Collectors.toList());
+        detailVo.setExistResourceInfos(existVoList);
+
         return detailVo;
     }
 
     @ApiOperation(value = "应用功能权限申请修改")
     @PostMapping(value = "funApplyUpdate")
     public Result funApplyUpdate(@RequestBody AppFunApplyUpdateVo vo){
-        AppFunApplyUpdateDTO updateDTO = new AppFunApplyUpdateDTO();
-        BeanUtils.copyProperties(vo, updateDTO);
-        selfAuthApplyFacade.funApplyUpdate(updateDTO);
-        return Result.success();
+        String jsonString = JSON.toJSONString(vo);
+        AppFunApplyUpdateDTO updateDTO = JSON.parseObject(jsonString, AppFunApplyUpdateDTO.class);
+        Date endTime = getEndTime(updateDTO.getEndTime());
+        updateDTO.setEndTime(endTime);
+        ResponseStatus status = selfAuthApplyFacade.funApplyUpdate(updateDTO);
+        return dealResult(status);
     }
 
     @ApiOperation(value = "应用功能权限结果列表")

+ 4 - 1
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/selfauth/vo/AppFunApplyUpdateVo.java

@@ -48,7 +48,10 @@ public class AppFunApplyUpdateVo {
     @ApiModelProperty(value = "操作类型 1:保存  2:提交")
     private String operateType;
 
-    @ApiModelProperty(value = "修改后的应用菜单和功能集合")
+    @ApiModelProperty(value = "修改后需要申请的应用菜单和功能集合")
     private List<AppFunAuthResourceVo> resourceInfos;
 
+    @ApiModelProperty(value = "修改后需要撤销的应用菜单和功能集合")
+    private List<AppFunAuthResourceVo> delResourceInfos;
+
 }

+ 2 - 1
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/selfauth/vo/AppFunAuthApplyVo.java

@@ -17,8 +17,9 @@ public class AppFunAuthApplyVo {
     @ApiModelProperty(value = "工作流申请vo")
     private WorkFlowVo workFlow;
 
-
     @ApiModelProperty(value = "需要申请权限的应用菜单和功能集合")
     private List<AppFunAuthResourceVo> resourceInfos;
 
+    @ApiModelProperty(value = "需要撤销的应用菜单和功能集合")
+    private List<AppFunAuthResourceVo> delResourceInfos;
 }

+ 6 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/selfauth/vo/FunApplyDetailVo.java

@@ -20,6 +20,12 @@ public class FunApplyDetailVo {
     @ApiModelProperty(value = "申请授权资源Vo集合")
     private List<AppFunAuthResourceVo> resourceInfos;
 
+    @ApiModelProperty(value = "申请撤销授权资源Vo集合")
+    private List<AppFunAuthResourceVo> delResourceInfos;
+
+    @ApiModelProperty(value = "已通过授权的资源Vo集合")
+    private List<AppFunAuthResourceVo> existResourceInfos;
+
     @ApiModelProperty(value = "工作流流程图详情 由审批中心提供")
     private FlowPictureVo flowPictureInfo;
 

+ 4 - 1
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/selfauth/vo/WorkFlowVo.java

@@ -16,6 +16,9 @@ import java.util.Date;
 @Data
 public class WorkFlowVo {
 
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
     @ApiModelProperty(value = "审批单编号(申请单号)")
     private String applicantOrdNo;
 
@@ -66,7 +69,7 @@ public class WorkFlowVo {
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date startTime;
 
-    @ApiModelProperty(value = "权限有效终止时间(2020-01-01 00:00:00)")
+    @ApiModelProperty(value = "权限有效终止时间(2020-01-01 23:59:59)")
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date endTime;

+ 1 - 1
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/SubSyncController.java

@@ -114,7 +114,7 @@ public class SubSyncController {
     }
 
 
-    @ApiOperation(value = "授权主体-数据分级同步")
+    @ApiOperation(value = "授权主体-字段分类同步")
     @GetMapping(value = "fieldClaSync")
     public Result fieldClaSync() {
         ResponseStatus response = dataResourceFacade.fieldClaSync();

+ 0 - 17
src/main/java/com/dragoninfo/dcuc/authweb/util/ConstantsUtils.java

@@ -1,17 +0,0 @@
-package com.dragoninfo.dcuc.authweb.util;
-
-/**
- * @Author yica
- * @Date 2021/2/22 16:55
- **/
-public class ConstantsUtils {
-    /**
-     * 服务鉴权自定义命名空间
-     */
-    public static final String AUTHENTICATION_SPACE ="SERVICE:AUTHENTICATION:" ;
-    /**
-     * 服务鉴权过期时间(小时)
-     */
-    public static final Integer  AUTHENTICATION_TIME_OUT_HOURS =1 ;
-
-}