Преглед изворни кода

feat: 去除代申请,增加获取警员详情

huangzqa пре 1 година
родитељ
комит
6235573711

+ 5 - 1
approve-api/src/main/java/com/dragonsoft/dcuc/approve/enumresources/ReqBizDataEnum.java

@@ -24,7 +24,11 @@ public enum ReqBizDataEnum implements ICodeEnum {
     /**
      * 业务类型
      */
-    BIZ_TYPE("bizType", "业务类型", true);
+    BIZ_TYPE("bizType", "业务类型", true),
+    /**
+     * 业务内容
+     */
+    CONTENT("bizContent", "业务内容", true);
 
     private final String value;
 

+ 0 - 3
approve-api/src/main/java/com/dragonsoft/dcuc/approve/model/req/v3/ZeroTrustApproveAuthInfoVO.java

@@ -26,9 +26,6 @@ public class ZeroTrustApproveAuthInfoVO implements Serializable {
     @ApiModelProperty("申请类型")
     private String flowType;
 
-    @ApiModelProperty("申请人身份证号")
-    private String applicantIdcard;
-
     @ApiModelProperty("访问资源信息")
     private ResourceInfoReqVO resourceInfo;
 

+ 16 - 18
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/business/api/impl/ApiV3ApproveBusinessImpl.java

@@ -18,7 +18,8 @@ import com.dragonsoft.dcuc.approve.model.req.v3.ZeroTrustApproveAuthInfoVO;
 import com.dragonsoft.dcuc.approve.model.req.v3.ZeroTrustApproveCreateReqV3VO;
 import com.dragonsoft.dcuc.approve.model.resp.bim.ZeroTrustAppItemUserTokenInfoRespVO;
 import com.dragonsoft.dcuc.approve.model.resp.bim.ZeroTrustAppTokenInfoRespVO;
-import com.dragonsoft.dcuc.approve.model.vo.dcuc.OauthUserVO;
+import com.dragonsoft.dcuc.approve.model.vo.dcuc.ApiPoliceResultVo;
+import com.dragonsoft.dcuc.approve.model.vo.dcuc.UserContactVo;
 import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.security.SecurityUser;
@@ -142,7 +143,15 @@ public class ApiV3ApproveBusinessImpl implements IApiV3ApproveBusiness {
         }
         final SecurityUser securityUser = UserContextUtils.getCurrentUser();
         String applicantOrgName = securityUser.getSecurityOrgName();
+
         String applicantPhoneNo = "";
+        final ApiPoliceResultVo apiPoliceResultVo = dcucBusiness.policeDetailByIdcard(applicantIdcard);
+        if (ObjectUtil.isNotNull(apiPoliceResultVo)) {
+            final UserContactVo userContact = apiPoliceResultVo.getUserContact();
+            if (ObjectUtil.isNotNull(userContact)) {
+                applicantPhoneNo = userContact.getMobileWork();
+            }
+        }
 
         ApprovalInfoReqVO approvalInfoReqVO = new ApprovalInfoReqVO();
         approvalInfoReqVO.setProcessTitle(title);
@@ -196,28 +205,17 @@ public class ApiV3ApproveBusinessImpl implements IApiV3ApproveBusiness {
             return ResponseUtil.dtoFail(String.format("暂不支持该业务类型:%s", bizTypeObject));
         }
 
-        final Object content = bizData.get("content");
+        final Object content = getBizData(bizData, ReqBizDataEnum.CONTENT);
         final ZeroTrustApproveAuthInfoVO zeroTrustApproveAuthInfoVO = new ZeroTrustApproveAuthInfoVO();
         BeanUtil.copyProperties(content, zeroTrustApproveAuthInfoVO);
         final String flowType = zeroTrustApproveAuthInfoVO.getFlowType();
-        approvalInfoReqVO.setFlowType(flowType);
-        final String currentApplicantIdcard = approvalInfoReqVO.getApplicantIdcard();
-        final String applicantIdcard = zeroTrustApproveAuthInfoVO.getApplicantIdcard();
-
-        if (!currentApplicantIdcard.equals(applicantIdcard)) {
-            approvalInfoReqVO.setApplicantIdcard(applicantIdcard);
-            //  获取用户信息
-            final OauthUserVO oauthUserVO = dcucBusiness.getOauthUserInfoByIdcard(applicantIdcard);
-            if (ObjectUtil.isNull(oauthUserVO)) {
-                return ResponseUtil.dtoFail(String.format("申请人:%s 信息不存在", applicantIdcard));
-            }
-            approvalInfoReqVO.setApplicantName(oauthUserVO.getName());
-            approvalInfoReqVO.setApplicantOrgCode(oauthUserVO.getOrgCode());
-            approvalInfoReqVO.setApplicantOrgName(oauthUserVO.getOrgName());
-            // todo 获取联系方式
-            approvalInfoReqVO.setApplicantPhoneNo("");
+        FlowTypeEnum flowTypeEnum = EnumUtils.enumOf(FlowTypeEnum.class, flowType);
+        if (ObjectUtil.isNull(flowTypeEnum)) {
+            return ResponseUtil.dtoFail(String.format("找不到对应的flowType,值:【%s】", flowType));
         }
+        approvalInfoReqVO.setFlowType(flowType);
         final ResourceInfoReqVO resourceInfo = zeroTrustApproveAuthInfoVO.getResourceInfo();
+
         approvalInfoReqVO.setResourceInfoDTO(resourceInfo);
         return ResponseUtil.newInstance(approvalInfoReqVO);
     }

+ 7 - 0
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/business/external/IDcucBusiness.java

@@ -48,4 +48,11 @@ public interface IDcucBusiness {
      */
     ApiResultPage<ApiPoliceResultVo> policePage(ApiSearchReq apiSearchReq);
 
+    /**
+     * 根据身份证号查询警员信息
+     * @param idcard 身份证号
+     * @return 警员信息
+     */
+    ApiPoliceResultVo policeDetailByIdcard(String idcard);
+
 }

+ 49 - 8
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/business/external/impl/DcucBusinessImpl.java

@@ -56,6 +56,11 @@ public class DcucBusinessImpl implements IDcucBusiness {
      */
     public static final String ORG_SYNC_API = "/api/org-service/v3/orgs/search";
 
+    /**
+     * 警员详情PI
+     */
+    public static final String POLICE_DETAIL_API = "/api/user-service/v3/users/police/%s";
+
     private RestTemplate restTemplate;
 
     private ApproveProperties approveProperties;
@@ -85,7 +90,7 @@ public class DcucBusinessImpl implements IDcucBusiness {
         //构建请求头
 
         HttpEntity<Map<String, Object>> requestEntity;
-        
+
         SecurityUser currentUser = UserContextUtils.getCurrentUser();
         if (ObjectUtil.isNotNull(currentUser)) {
             HttpHeaders headers = ProofsUtil.buildHttpHeaders(currentUser);
@@ -116,7 +121,7 @@ public class DcucBusinessImpl implements IDcucBusiness {
     @Override
     public ApiOrgResultVo orgInfo(String orgCode) {
         //构建请求头
-        
+
         HttpEntity<Map<String, Object>> requestEntity;
         SecurityUser currentUser = UserContextUtils.getCurrentUser();
         if (ObjectUtil.isNotNull(currentUser)) {
@@ -152,7 +157,7 @@ public class DcucBusinessImpl implements IDcucBusiness {
 
         String userServiceUrl = approveProperties.getUserServiceUrl();
         String url = userServiceUrl + ORG_SYNC_API;
-        
+
         HttpHeaders httpHeaders = HttpHeaders.EMPTY;
         SecurityUser currentUser = UserContextUtils.getCurrentUser();
         if (ObjectUtil.isNotNull(currentUser)) {
@@ -188,10 +193,46 @@ public class DcucBusinessImpl implements IDcucBusiness {
 
     }
 
+
+    @Override
+    public ApiPoliceResultVo policeDetailByIdcard(String searchIdcard) {
+        Assert.notBlank(searchIdcard);
+        String requestName = "获取警员详情";
+
+        HttpEntity<Map<String, Object>> requestEntity;
+
+        SecurityUser currentUser = UserContextUtils.getCurrentUser();
+        if (ObjectUtil.isNotNull(currentUser)) {
+            HttpHeaders headers = ProofsUtil.buildHttpHeaders(currentUser);
+            requestEntity = new HttpEntity<>(headers);
+        } else {
+            requestEntity = new HttpEntity<>(Collections.emptyMap());
+        }
+        //远程调用用户中心接口
+        String userServiceUrl = approveProperties.getUserServiceUrl();
+        String url = userServiceUrl + String.format(POLICE_DETAIL_API, searchIdcard);
+        logger.info("向认证服务查询" + requestName + "请求路径:{}", url);
+        ResponseEntity<String> resEntity = restTemplate.exchange(url, HttpMethod.GET, requestEntity, String.class);
+        logger.info("向认证服务查询" + requestName + "返回结果resEntity=【{}】,请求url=【{}】", JSONObject.toJSONString(resEntity), url);
+        //判断请求是否成功
+        ApiPoliceResultVo oauthUserVO = null;
+        if (resEntity.getStatusCode() == HttpStatus.OK) {
+            ResponseDTO<OauthUserVO> responseDTO = JSONObject.parseObject(resEntity.getBody(), ResponseDTO.class);
+            if (responseDTO != null) {
+                if (ResponseUtil.isSuccess(responseDTO)) {
+                    responseDTO.getResult();
+                    oauthUserVO = JSONObject.parseObject(JSON.toJSONString(responseDTO.getResult()), ApiPoliceResultVo.class);
+                }
+            }
+        }
+        return oauthUserVO;
+    }
+
     @Override
     @SneakyThrows(JsonProcessingException.class)
     public ApiResultPage<ApiPoliceResultVo> policePage(ApiSearchReq apiSearchReq) {
         Assert.notNull(apiSearchReq);
+        String requestName = "获取警员列表";
 
         String userServiceUrl = approveProperties.getUserServiceUrl();
         String url = userServiceUrl + POLICE_SYNC_API;
@@ -203,23 +244,23 @@ public class DcucBusinessImpl implements IDcucBusiness {
         }
 
         RequestEntity<ApiSearchReq> apiSearchReqRequestEntity = new RequestEntity<>(apiSearchReq, httpHeaders, HttpMethod.POST, URI.create(url));
-        logger.info("请求人员信息参数:{}", JsonUtils.toJSONString(apiSearchReqRequestEntity));
+        logger.info(requestName + "参数:{}", JsonUtils.toJSONString(apiSearchReqRequestEntity));
         ResponseEntity<String> resEntity = restTemplate.exchange(apiSearchReqRequestEntity, String.class);
         String jsonString = JsonUtils.toJSONString(resEntity);
-        logger.info("请求人员信息返回参数:{}", jsonString);
+        logger.info(requestName + "返回参数:{}", jsonString);
         if (!resEntity.getStatusCode().is2xxSuccessful()) {
-            logger.error("请求获取机构信息错误:{}", jsonString);
+            logger.error(requestName + "信息错误:{}", jsonString);
             return null;
         }
 
         String body = resEntity.getBody();
         ApiResult apiResult = JSONObject.parseObject(body, ApiResult.class);
         if (ObjectUtil.isNull(apiResult)) {
-            logger.error("请求获取人员信息错误:{}", body);
+            logger.error(requestName + "信息错误:{}", body);
             return null;
         }
         if (!apiResult.getStatusCode().equalsIgnoreCase(ResponseStatus.SUCCESS_CODE)) {
-            logger.error("请求获取人员信息错误:{}", body);
+            logger.error(requestName + "信息错误:{}", body);
             return null;
         }