瀏覽代碼

feat: 人力家认证状态修改

lixuesong 3 年之前
父節點
當前提交
9738010e47

+ 100 - 68
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/SysUserController.java

@@ -1464,76 +1464,108 @@ public class SysUserController {
 			sysDeptSub.setDeptId(userVO.getDeptId());
 			sysDeptSub.setEnableFlag(SubjectTypeEnum.ENABLE_FLAG_TRUE.getCode());
 			List<SysDeptSub> subList = sysDeptSubService.list(Wrappers.query(sysDeptSub));
-			// 查询当前用户认证渠道
-			List<SysUserSub> userSubList = sysUserSubService.list(Wrappers.<SysUserSub>lambdaQuery()
-					.eq(SysUserSub::getUserId, userVO.getUserId()));
-
-			if (CollUtil.isNotEmpty(userSubList) && CollUtil.isNotEmpty(subList)) {
-				// 不同渠道认证信息列表
-				List<SysUserSubVO> certList = new ArrayList<>();
-				userSubList.forEach(sysUserSub -> {
-					SysUserSubVO userSubVO = BeanUtil.copyProperties(sysUserSub, SysUserSubVO.class, "certStatus");
-					switch (sysUserSub.getGigType()) {
-						case REN_LI_JIA:
-							userSubVO.setCertStatus(RenlijiaCertStatus.resolve(sysUserSub.getCertStatus()).name());
-							break;
-						case TAX_HELPOR:
-							userSubVO.setCertStatus(TaxHelperCertStatus.resolve(sysUserSub.getCertStatus()).name());
-							break;
-						case YEE:
-							userSubVO.setCertStatus(YeeCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
-							break;
-						case OLADING:
-							userSubVO.setCertStatus(OladingCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
-							break;
-						default:
+
+			if (CollUtil.isNotEmpty(subList)) {
+				// 查询当前用户认证渠道
+				List<SysUserSub> userSubList = sysUserSubService.list(Wrappers.<SysUserSub>lambdaQuery()
+						.eq(SysUserSub::getUserId, userVO.getUserId()));
+
+				if (CollUtil.isNotEmpty(userSubList)) {
+					// 不同渠道认证信息列表
+					List<SysUserSubVO> certList = new ArrayList<>();
+					userSubList.forEach(sysUserSub -> {
+						SysUserSubVO userSubVO = BeanUtil.copyProperties(sysUserSub, SysUserSubVO.class, "certStatus");
+						switch (sysUserSub.getGigType()) {
+							case REN_LI_JIA:
+								userSubVO.setCertStatus(RenlijiaCertStatus.resolve(sysUserSub.getCertStatus()).name());
+								break;
+							case TAX_HELPOR:
+								userSubVO.setCertStatus(TaxHelperCertStatus.resolve(sysUserSub.getCertStatus()).name());
+								break;
+							case YEE:
+								userSubVO.setCertStatus(YeeCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
+								break;
+							case OLADING:
+								userSubVO.setCertStatus(OladingCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
+								break;
+							default:
+						}
+						certList.add(userSubVO);
+					});
+					userVO.setCertList(certList);
+
+					// 不同渠道认证名称,封装成中文名称数组格式
+					Map<GigTypeEnum, String> certStatusMap = userSubList.stream()
+							.collect(Collectors.toMap(SysUserSub::getGigType,
+									sysUserSub -> {
+										String certStatuName = "";
+										switch (sysUserSub.getGigType()) {
+											case TAX_HELPOR:
+												certStatuName = TaxHelperCertStatus.resolve(sysUserSub.getCertStatus()).getDesc();
+												break;
+											case YEE:
+												certStatuName = YeeCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).getMessage();
+												break;
+											case REN_LI_JIA:
+												certStatuName = RenlijiaCertStatus.resolve(sysUserSub.getCertStatus()).getMessage();
+												break;
+											case OLADING:
+												certStatuName = YeeCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).getMessage();
+												break;
+											default:
+												certStatuName = "";
+										}
+										return certStatuName;
+									}));
+					List<String> subTypeList = subList.stream().map(SysDeptSub::getSubjectType).collect(Collectors.toList());
+					List<String> certStatusNameList = new ArrayList<>();
+					if (subTypeList.contains(String.valueOf(GigTypeEnum.REN_LI_JIA.getCode()))) {
+						certStatusNameList.add(StrUtil.isBlank(certStatusMap.get(GigTypeEnum.REN_LI_JIA)) ?
+								RenlijiaCertStatus.CER_STATUS_4.getMessage() : certStatusMap.get(GigTypeEnum.REN_LI_JIA));
 					}
-					certList.add(userSubVO);
-				});
-				userVO.setCertList(certList);
-
-				// 不同渠道认证名称,封装成中文名称数组格式
-				Map<GigTypeEnum, String> certStatusMap = userSubList.stream()
-						.collect(Collectors.toMap(SysUserSub::getGigType,
-								sysUserSub -> {
-									String certStatuName = "";
-									switch (sysUserSub.getGigType()) {
-										case TAX_HELPOR:
-											certStatuName = TaxHelperCertStatus.resolve(sysUserSub.getCertStatus()).getDesc();
-											break;
-										case YEE:
-											certStatuName = YeeCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).getMessage();
-											break;
-										case REN_LI_JIA:
-											certStatuName = RenlijiaCertStatus.resolve(sysUserSub.getCertStatus()).getMessage();
-											break;
-										case OLADING:
-											certStatuName = YeeCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).getMessage();
-											break;
-										default:
-											certStatuName = "";
-									}
-									return certStatuName;
-								}));
-				List<String> subTypeList = subList.stream().map(SysDeptSub::getSubjectType).collect(Collectors.toList());
-				List<String> certStatusNameList = new ArrayList<>();
-				if (subTypeList.contains(String.valueOf(GigTypeEnum.REN_LI_JIA.getCode()))) {
-					certStatusNameList.add(StrUtil.isBlank(certStatusMap.get(GigTypeEnum.REN_LI_JIA)) ?
-							RenlijiaCertStatus.CER_STATUS_4.getMessage() : certStatusMap.get(GigTypeEnum.REN_LI_JIA));
-				}
-				if (subTypeList.contains(String.valueOf(GigTypeEnum.TAX_HELPOR.getCode()))) {
-					certStatusNameList.add(StrUtil.isBlank(certStatusMap.get(GigTypeEnum.TAX_HELPOR)) ?
-							TaxHelperCertStatus.UN_CERT.getDesc() : certStatusMap.get(GigTypeEnum.TAX_HELPOR));
-				}
-				if (subTypeList.contains(String.valueOf(GigTypeEnum.YEE.getCode()))) {
-					certStatusNameList.add(StrUtil.isBlank(certStatusMap.get(GigTypeEnum.YEE)) ?
-							YeeCertStatus.UN_SIGNED.getMessage() : certStatusMap.get(GigTypeEnum.YEE));
-				}
-				if (subTypeList.contains(String.valueOf(GigTypeEnum.OLADING.getCode()))) {
-					certStatusNameList.add(StrUtil.isBlank(certStatusMap.get(GigTypeEnum.OLADING)) ?
-							YeeCertStatus.UN_SIGNED.getMessage() : certStatusMap.get(GigTypeEnum.OLADING));
+					if (subTypeList.contains(String.valueOf(GigTypeEnum.TAX_HELPOR.getCode()))) {
+						certStatusNameList.add(StrUtil.isBlank(certStatusMap.get(GigTypeEnum.TAX_HELPOR)) ?
+								TaxHelperCertStatus.UN_CERT.getDesc() : certStatusMap.get(GigTypeEnum.TAX_HELPOR));
+					}
+					if (subTypeList.contains(String.valueOf(GigTypeEnum.YEE.getCode()))) {
+						certStatusNameList.add(StrUtil.isBlank(certStatusMap.get(GigTypeEnum.YEE)) ?
+								YeeCertStatus.UN_SIGNED.getMessage() : certStatusMap.get(GigTypeEnum.YEE));
+					}
+					if (subTypeList.contains(String.valueOf(GigTypeEnum.OLADING.getCode()))) {
+						certStatusNameList.add(StrUtil.isBlank(certStatusMap.get(GigTypeEnum.OLADING)) ?
+								YeeCertStatus.UN_SIGNED.getMessage() : certStatusMap.get(GigTypeEnum.OLADING));
+					}
+					userVO.setCertStatusArr(certStatusNameList.toArray(new String[0]));
+				} else {
+					// userSub为空,则取历史数据,即sysUser的rljCertStatus、certStatus
+					// 不同渠道认证名称,封装成中文名称数组格式
+					userVO.setCertStatusArr(new String[]{RenlijiaCertStatus.resolve(userVO.getRljCertStatus()).getMessage(),
+							TaxHelperCertStatus.resolve(userVO.getCertStatus()).getDesc()});
+					// 不同渠道认证信息列表
+					List<SysUserSubVO> certList = new ArrayList<>();
+					SysUserSubVO renlijiaUserSub = new SysUserSubVO();
+//					renlijiaUserSub.set TODO
+					userSubList.forEach(sysUserSub -> {
+						SysUserSubVO userSubVO = BeanUtil.copyProperties(sysUserSub, SysUserSubVO.class, "certStatus");
+						switch (sysUserSub.getGigType()) {
+							case REN_LI_JIA:
+								userSubVO.setCertStatus(RenlijiaCertStatus.resolve(sysUserSub.getCertStatus()).name());
+								break;
+							case TAX_HELPOR:
+								userSubVO.setCertStatus(TaxHelperCertStatus.resolve(sysUserSub.getCertStatus()).name());
+								break;
+							case YEE:
+								userSubVO.setCertStatus(YeeCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
+								break;
+							case OLADING:
+								userSubVO.setCertStatus(OladingCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
+								break;
+							default:
+						}
+						certList.add(userSubVO);
+					});
+					userVO.setCertList(certList);
 				}
-				userVO.setCertStatusArr(certStatusNameList.toArray(new String[0]));
 			}
 
 		});

+ 9 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/SysUserService.java

@@ -25,6 +25,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.qunzhixinxi.hnqz.admin.api.dto.UserDTO;
 import com.qunzhixinxi.hnqz.admin.api.dto.UserInfo;
 import com.qunzhixinxi.hnqz.admin.api.dto.UserPwd;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
 import com.qunzhixinxi.hnqz.admin.entity.dto.CommonUserDTO;
@@ -122,6 +123,14 @@ public interface SysUserService extends IService<SysUser> {
 
 	SysUser getByIdIgnore(String taskUserId);
 
+	/**
+	 * 人力家认证
+	 * @param sysUser
+	 * @param sysDept
+	 * @return
+	 */
+	Map<String, String> certByRenLiJia(SysUser sysUser, SysDept sysDept);
+
 	R batchChannelCert(UserCertificationInput input);
 
 	R getAuthInfo(UserCertificationInput input);

+ 23 - 13
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/gig/impl/SysUserSignCertServiceImpl.java

@@ -17,7 +17,6 @@ import com.qunzhixinxi.hnqz.admin.config.UpmsConfig;
 import com.qunzhixinxi.hnqz.admin.entity.SysDeptSub;
 import com.qunzhixinxi.hnqz.admin.entity.SysUserSub;
 import com.qunzhixinxi.hnqz.admin.entity.dto.UserSignCertDTO;
-import com.qunzhixinxi.hnqz.admin.entity.input.UserCertificationInput;
 import com.qunzhixinxi.hnqz.admin.entity.model.GigBaseInfoModel;
 import com.qunzhixinxi.hnqz.admin.entity.model.GigInfoModel;
 import com.qunzhixinxi.hnqz.admin.entity.model.GigUserInfoModel;
@@ -39,7 +38,6 @@ import com.qunzhixinxi.hnqz.admin.service.SysUserService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserSubService;
 import com.qunzhixinxi.hnqz.admin.service.gig.SysUserSignCertService;
 import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
-import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.rabbitmq.client.RabbitMqClient;
 import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
@@ -56,6 +54,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
@@ -382,23 +381,34 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 				break;
 			case REN_LI_JIA:
 				// 人力家直接调用原有发短信接口
-				UserCertificationInput input = new UserCertificationInput();
-				input.setUserId(sysUser.getUserId());
-				input.setIdCardNumber(sysUser.getIdCardNumber());
-				input.setBankCardNumber(userSub.getBankCardNumber());
-				input.setSubList(new String[]{String.valueOf(GigTypeEnum.REN_LI_JIA.getCode())});
-				R r = sysUserService.batchChannelCert(input);
+				SysDept dept = new SysDept();
+				dept.setDeptId(sysUser.getDeptId());
+				Map<String, String> renLiJiaResult = sysUserService.certByRenLiJia(sysUser, dept);
 				// 更新状态
 				SysUserSub updateUserSub = new SysUserSub();
 				updateUserSub.setId(userSub.getId());
-				RenlijiaCertStatus certStatus =
-						r.getCode() == 0 ? RenlijiaCertStatus.CER_STATUS_3 : RenlijiaCertStatus.CER_STATUS_2;
-				updateUserSub.setCertStatus(certStatus.getCode());
-				updateUserSub.setCertRemark(r.getMsg());
-				updateUserSub.setCallbackStatus(GigCallBackStatus.IN_PROGRESS);
+				Integer renLijiaCertStatus =
+						Optional.ofNullable(sysUser.getRljCertStatus()).orElseGet(RenlijiaCertStatus.CER_STATUS_4::getCode);
+				// 结果状态
+				RenlijiaCertStatus certStatus = RenlijiaCertStatus.resolve(renLijiaCertStatus);
+				updateUserSub.setCertStatus(sysUser.getRljCertStatus());
+				// 发起成功或认证成功,才修改CallbackStatus状态
+				if (RenlijiaCertStatus.CER_STATUS_1.equals(certStatus) || RenlijiaCertStatus.CER_STATUS_3.equals(certStatus)) {
+					updateUserSub.setCallbackStatus(GigCallBackStatus.IN_PROGRESS);
+				} else {
+					updateUserSub.setCallbackStatus(GigCallBackStatus.RETURNED);
+				}
+				updateUserSub.setCertRemark(renLiJiaResult.get("msg"));
 				updateUserSub.setUpdateTime(LocalDateTime.now());
 				updateUserSub.setUpdateUser(0);
 				sysUserSubService.updateById(updateUserSub);
+				// 结果放到redis
+				String key = CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + userSub.getUserId();
+				Map<String, String> subMap = new HashMap<>();
+				subMap.put("certStatus", certStatus.name());
+				Map<String, Object> result = MapUtil.newHashMap(1);
+				result.put("REN_LI_JIA", subMap);
+				redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
 				// 默认返回false,不触发发送mq
 				flag = false;
 			default:

+ 9 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/SysUserServiceImpl.java

@@ -696,7 +696,15 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 		return resultMap;
 	}
 
-	private Map<String, String> certByRenLiJia(SysUser sysUser, SysDept sysDept) {
+	/**
+	 * 人力家认证
+	 *
+	 * @param sysUser
+	 * @param sysDept
+	 * @return
+	 */
+	@Override
+	public Map<String, String> certByRenLiJia(SysUser sysUser, SysDept sysDept) {
 		Map<String, String> resultMap = new HashMap<>(2);
 		resultMap.put("msg", "人力家接口调用失败");
 		SysDeptSub subCondition = new SysDeptSub();