Kaynağa Gözat

Merge branch 'develop' into 'master'

feature(人员增量同步开发): 人员增量同步开发

See merge request dcuc-tjdsj/auth-back!124
马志强 3 yıl önce
ebeveyn
işleme
75225c34c0

+ 121 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/authservice/v1/controller/StaffRoleAuthController.java

@@ -0,0 +1,121 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v1.controller;
+
+import com.dragoninfo.dcuc.app.entity.ApplyInfo;
+import com.dragoninfo.dcuc.app.facade.IApplyInfoFacade;
+import com.dragoninfo.dcuc.auth.auth.entity.RoleInfo;
+import com.dragoninfo.dcuc.auth.auth.facade.IRoleFacade;
+import com.dragoninfo.dcuc.auth.auth.facade.IStaffAssignAuthInfoFacade;
+import com.dragoninfo.dcuc.auth.auth.vo.RoleInfoApiVo;
+import com.dragoninfo.dcuc.auth.auth.vo.StaffRoleAuthApiVo;
+import com.dragoninfo.dcuc.authweb.util.VersionUtils;
+import com.dragoninfo.dcuc.common.entity.ApiResult;
+import com.dragoninfo.dcuc.common.entity.ApiSearchReq;
+import com.dragoninfo.dcuc.common.utils.SearchableUtil;
+import com.dragonsoft.duceap.base.enums.BooleanEnum;
+import com.dragonsoft.duceap.core.search.Searchable;
+import com.dragonsoft.duceap.core.search.enums.SearchOperator;
+import com.dragonsoft.duceap.core.search.filter.Condition;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @author mazq
+ * @date 2022/2/17
+ **/
+@Slf4j
+@RestController
+@Api(tags = {"人员-角色授权查询接口"})
+@RequestMapping(value = "/api/auth-service/" + VersionUtils.VERSION_UID_V1 + "/staff-role-auth")
+public class StaffRoleAuthController {
+
+    @Autowired
+    private IRoleFacade roleFacade;
+
+    @Autowired
+    private IApplyInfoFacade applyInfoFacade;
+
+    @Autowired
+    private IStaffAssignAuthInfoFacade staffAssignAuthInfoFacade;
+
+    @ApiOperation("应用下的角色列表查询(不分页)")
+    @PostMapping("role/search")
+    public ApiResult roleInfoList(@RequestBody ApiSearchReq apiSearchReq) {
+        Map<String, SearchOperator[]> requestMap = new HashMap<>();
+        requestMap.put("appCode", new SearchOperator[]{SearchOperator.eq});
+        Searchable searchable;
+        try {
+            searchable = SearchableUtil.parseApiSearchReqToSearchable(apiSearchReq, requestMap);
+        } catch (IllegalArgumentException e) {
+            String message = e.getMessage();
+            return ApiResult.setFailMessage(message);
+        }
+        //参数校验
+        Condition appCodeEq = searchable.getSearchFilter("appCode", SearchOperator.eq);
+        if(null == appCodeEq) {
+            return ApiResult.setFailMessage("应用编码不能为空");
+        }
+        ApplyInfo appInfo = applyInfoFacade.getAppByCode(appCodeEq.getValue().toString());
+        if(null == appInfo) {
+            return ApiResult.setFailMessage("应用不存在");
+        }
+        if(BooleanEnum.TRUE.value.equals(appInfo.getApplyStatus())) {
+            return ApiResult.setFailMessage("应用已禁用");
+        }
+
+        List<RoleInfo> roles = roleFacade.getRolesByAppId(appInfo.getId());
+        List<RoleInfoApiVo> apiVos = roles.stream().map(e -> {
+            RoleInfoApiVo apiVo = new RoleInfoApiVo();
+            apiVo.setAppCode(appInfo.getApplyCode());
+            apiVo.setAppName(appInfo.getApplyName());
+            apiVo.setRoleCode(e.getCode());
+            apiVo.setRoleName(e.getName());
+            return apiVo;
+        }).collect(Collectors.toList());
+        return ApiResult.setSuccessResult(apiVos);
+    }
+
+    @ApiOperation("应用下的角色授权列表")
+    @PostMapping("role/staff-auth")
+    public ApiResult staffRoleAuthResult(@RequestBody ApiSearchReq apiSearchReq) {
+        Map<String, SearchOperator[]> requestMap = new HashMap<>();
+        requestMap.put("appCode", new SearchOperator[]{SearchOperator.eq});
+        requestMap.put("roleCode", new SearchOperator[]{SearchOperator.eq, SearchOperator.in});
+        requestMap.put("orgCode", new SearchOperator[]{SearchOperator.eq});
+        requestMap.put("userName", new SearchOperator[]{SearchOperator.like});
+        requestMap.put("postStatus", new SearchOperator[]{SearchOperator.eq, SearchOperator.in});
+        Searchable searchable;
+        try {
+            searchable = SearchableUtil.parseApiSearchReqToSearchable(apiSearchReq, requestMap, 1000);
+        } catch (IllegalArgumentException e) {
+            String message = e.getMessage();
+            return ApiResult.setFailMessage(message);
+        }
+        //参数校验
+        Condition appCodeEq = searchable.getSearchFilter("appCode", SearchOperator.eq);
+        if(null == appCodeEq) {
+            return ApiResult.setFailMessage("应用编码不能为空");
+        }
+        ApplyInfo appInfo = applyInfoFacade.getAppByCode(appCodeEq.getValue().toString());
+        if(null == appInfo) {
+            return ApiResult.setFailMessage("应用不存在");
+        }
+        if(BooleanEnum.TRUE.value.equals(appInfo.getApplyStatus())) {
+            return ApiResult.setFailMessage("应用已禁用");
+        }
+        searchable.addSearchFilter("appId", SearchOperator.eq, appInfo.getId());
+        Page<StaffRoleAuthApiVo> page = staffAssignAuthInfoFacade.apiStaffRoleAuthResult(searchable.toSearchDTO());
+        return ApiResult.setSuccessPage(page.getTotalElements(), page.getContent());
+    }
+}

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

@@ -43,7 +43,7 @@ public class SubSyncController {
         if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
             return Result.success();
         } else {
-            return Result.fail(response.getMessage());
+            return Result.failMessage(response.getMessage());
         }
     }
 
@@ -55,7 +55,29 @@ public class SubSyncController {
         if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
             return Result.success();
         } else {
-            return Result.fail(response.getMessage());
+            return Result.failMessage(response.getMessage());
+        }
+    }
+
+    @ApiOperation(value = "授权主体-人员信息信息同步")
+    @GetMapping(value = "userAddSync")
+    public Result userAddSync() {
+        ResponseStatus response = userCenterApiFacade.userAddSync();
+        if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
+            return Result.success();
+        } else {
+            return Result.failMessage(response.getMessage());
+        }
+    }
+
+    @ApiOperation(value = "授权主体-人员信息信息同步")
+    @GetMapping(value = "orgAddSync")
+    public Result orgAddSync() {
+        ResponseStatus response = userCenterApiFacade.orgAddSync();
+        if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
+            return Result.success();
+        } else {
+            return Result.failMessage(response.getMessage());
         }
     }
 
@@ -66,7 +88,7 @@ public class SubSyncController {
         if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
             return Result.success();
         } else {
-            return Result.fail(response.getMessage());
+            return Result.failMessage(response.getMessage());
         }
     }
 
@@ -77,7 +99,7 @@ public class SubSyncController {
         if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
             return Result.success();
         } else {
-            return Result.fail(response.getMessage());
+            return Result.failMessage(response.getMessage());
         }
     }
 
@@ -88,7 +110,7 @@ public class SubSyncController {
         if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
             return Result.success();
         } else {
-            return Result.fail(response.getMessage());
+            return Result.failMessage(response.getMessage());
         }
     }
 
@@ -100,7 +122,7 @@ public class SubSyncController {
         if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
             return Result.success();
         } else {
-            return Result.fail(response.getMessage());
+            return Result.failMessage(response.getMessage());
         }
     }
 
@@ -112,7 +134,7 @@ public class SubSyncController {
         if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
             return Result.success();
         } else {
-            return Result.fail(response.getMessage());
+            return Result.failMessage(response.getMessage());
         }
     }
 
@@ -124,7 +146,7 @@ public class SubSyncController {
         if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
             return Result.success();
         } else {
-            return Result.fail(response.getMessage());
+            return Result.failMessage(response.getMessage());
         }
     }
 

+ 9 - 9
src/main/resources/logback.xml

@@ -17,21 +17,21 @@
     </appender>
 
     <!-- project default level -->
-    <logger name="java.sql.Connection" level="INFO" additivity="false"/>
-    <logger name="java.sql.Statement" level="INFO" additivity="false"/>
-    <logger name="java.sql.PreparedStatement" level="INFO" additivity="false">
+    <logger name="java.sql.Connection" level="INFO"/>
+    <logger name="java.sql.Statement" level="INFO"/>
+    <logger name="java.sql.PreparedStatement" level="INFO">
         <appender-ref ref="console"/>
         <appender-ref ref="rollingFile"/>
     </logger>
-    <logger name="com.dragonsoft" level="DEBUG" additivity="false"/>
-    <logger name="com.dragoninfo" level="DEBUG" additivity="false"/>
-    <logger name="org.jasig.cas.client.validation" level="DEBUG" additivity="false"/>
-    <logger name="org.jasig.cas.client.util" level="DEBUG" additivity="false"/>
+    <logger name="com.dragonsoft" level="DEBUG"/>
+    <logger name="com.dragoninfo" level="DEBUG"/>
+    <logger name="org.jasig.cas.client.validation" level="DEBUG"/>
+    <logger name="org.jasig.cas.client.util" level="DEBUG"/>
     <!--log4jdbc -->
-    <logger name="jdbc.sqltiming" level="INFO" additivity="false"/>
+    <logger name="jdbc.sqltiming" level="INFO"/>
 
 
-    <root level="INFO" additivity="false">
+    <root level="INFO">
         <appender-ref ref="console"/>
         <appender-ref ref="rollingFile"/>
     </root>