Переглянути джерело

fix: 签约认证获取mq结果

lixuesong 3 роки тому
батько
коміт
164763420a

+ 25 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/enums/RenlijiaCertStatus.java

@@ -0,0 +1,25 @@
+package com.qunzhixinxi.hnqz.admin.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 人力家认证状态
+ *
+ * @author lixuesong
+ * @date 2022年03月11日 10:52
+ */
+@Getter
+@AllArgsConstructor
+public enum RenlijiaCertStatus {
+
+	// 认证状态
+	CER_STATUS_1(1, "认证成功"),
+	CER_STATUS_2(2, "认证失败"),
+	CER_STATUS_3(3, "认证中"),
+	CER_STATUS_4(4, "未认证");
+
+	private final int code;
+
+	private final String message;
+}

+ 19 - 37
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mq/GigSignCertReceiver.java

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
@@ -12,6 +13,7 @@ import com.qunzhixinxi.hnqz.admin.entity.SysUserSub;
 import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.GigTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.LockEnum;
+import com.qunzhixinxi.hnqz.admin.enums.RenlijiaCertStatus;
 import com.qunzhixinxi.hnqz.admin.enums.YeeCertStatus;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserService;
@@ -81,55 +83,35 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 							GigTypeEnum gigTypeEnum = Enum.valueOf(GigTypeEnum.class, s);
 							JSONObject statusResult = (JSONObject) o;
 							LocalDateTime now = LocalDateTime.now();
+							// 拼接更新条件
+							LambdaUpdateWrapper<SysUserSub> updateWrapper = Wrappers.<SysUserSub>lambdaUpdate()
+									.eq(SysUserSub::getUserId, user.getUserId())
+									.eq(SysUserSub::getDeptId, dept.getDeptId())
+									.set(SysUserSub::getUpdateTime, now)
+									.set(SysUserSub::getUpdateUser, 0)
+									.set(SysUserSub::getCertRemark, statusResult.getStr("message"));
 							switch (gigTypeEnum) {
 								case TAX_HELPOR:
-									TaxHelperCertStatus certStatus = Enum.valueOf(TaxHelperCertStatus.class, statusResult.getStr("certStatus"));
-									if ("2000".equals(statusResult.getStr("code"))) {
-										sysUserSubService.update(Wrappers.<SysUserSub>lambdaUpdate()
-												.eq(SysUserSub::getUserId, user.getUserId())
-												.eq(SysUserSub::getDeptId, dept.getDeptId())
-												.set(SysUserSub::getUpdateTime, now)
-												.set(SysUserSub::getUpdateUser, 0)
-												.set(SysUserSub::getCertStatus, certStatus.getCode())
-												.set(SysUserSub::getCertRemark, statusResult.getStr("message")));
-									} else {
-										sysUserSubService.update(Wrappers.<SysUserSub>lambdaUpdate()
-												.eq(SysUserSub::getUserId, user.getUserId())
-												.eq(SysUserSub::getDeptId, dept.getDeptId())
-												.set(SysUserSub::getUpdateTime, now)
-												.set(SysUserSub::getUpdateUser, 0)
-												.set(SysUserSub::getCertStatus, certStatus.getCode())
-												.set(SysUserSub::getCertRemark, statusResult.getStr("message")));
-									}
+									TaxHelperCertStatus taxHelperCertStatus = Enum.valueOf(TaxHelperCertStatus.class, statusResult.getStr("certStatus"));
+									updateWrapper.set(SysUserSub::getGigType, GigTypeEnum.TAX_HELPOR);
+									updateWrapper.set(SysUserSub::getCertStatus, taxHelperCertStatus.getCode());
 									break;
 								case REN_LI_JIA:
+									RenlijiaCertStatus renlijiaCertStatus = Enum.valueOf(RenlijiaCertStatus.class, statusResult.getStr("certStatus"));
+									updateWrapper.set(SysUserSub::getGigType, GigTypeEnum.REN_LI_JIA);
+									updateWrapper.set(SysUserSub::getCertStatus, renlijiaCertStatus.getCode());
 									break;
 								case OLADING:
 									break;
 								case YEE:
 									YeeCertStatus yeeCertStatus = Enum.valueOf(YeeCertStatus.class, statusResult.getStr("certStatus"));
-									if ("2000".equals(statusResult.getStr("code"))) {
-										sysUserSubService.update(Wrappers.<SysUserSub>lambdaUpdate()
-												.eq(SysUserSub::getUserId, user.getUserId())
-												.eq(SysUserSub::getDeptId, dept.getDeptId())
-												.set(SysUserSub::getUpdateTime, now)
-												.set(SysUserSub::getUpdateUser, 0)
-												.set(SysUserSub::getCertStatus, yeeCertStatus.getCode())
-												.set(SysUserSub::getCertRemark, statusResult.getStr("message")));
-									} else {
-										sysUserSubService.update(Wrappers.<SysUserSub>lambdaUpdate()
-												.eq(SysUserSub::getUserId, user.getUserId())
-												.eq(SysUserSub::getDeptId, dept.getDeptId())
-												.set(SysUserSub::getUpdateTime, now)
-												.set(SysUserSub::getUpdateUser, 0)
-												.set(SysUserSub::getCertStatus, yeeCertStatus.getCode())
-												.set(SysUserSub::getCertRemark, statusResult.getStr("message")));
-									}
+									updateWrapper.set(SysUserSub::getGigType, GigTypeEnum.YEE);
+									updateWrapper.set(SysUserSub::getCertStatus, yeeCertStatus.getCode());
 									break;
 								default:
 							}
-
-							// TODO
+							// 更新
+							sysUserSubService.update(updateWrapper);
 						});
 					}
 				}

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

@@ -3,6 +3,7 @@ package com.qunzhixinxi.hnqz.admin.service.gig.impl;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
@@ -20,6 +21,7 @@ import com.qunzhixinxi.hnqz.admin.enums.GigTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.MemberIDCardType;
 import com.qunzhixinxi.hnqz.admin.enums.MemberType;
 import com.qunzhixinxi.hnqz.admin.enums.PayChannel;
+import com.qunzhixinxi.hnqz.admin.enums.YeeCertStatus;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserSubService;
@@ -28,6 +30,7 @@ import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
 import com.qunzhixinxi.hnqz.common.rabbitmq.client.RabbitMqClient;
 import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
+import com.qunzhixinxi.hnqz.common.taxhelper.enums.TaxHelperCertStatus;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -179,14 +182,37 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 		Integer userId = userSignCertDTO.getUserId();
 		// 根据用户id查询用户信息、认证信息
 		SysUser sysUser = sysUserService.getById(userId);
+		if (sysUser == null) {
+			return false;
+		}
 		// 查询dept
 		SysDept dept = sysDeptService.getById(sysUser.getDeptId());
-		List<SysUserSub> userSubList = sysUserSubService.list(Wrappers.<SysUserSub>lambdaQuery()
-				.eq(SysUserSub::getUserId, userId));
+		LambdaQueryWrapper<SysUserSub> userSubWrapper = Wrappers.lambdaQuery();
+		userSubWrapper.eq(SysUserSub::getUserId, userId);
+		if (CollUtil.isNotEmpty(userSignCertDTO.getGigTypeList())) {
+			userSubWrapper.in(SysUserSub::getGigType, userSignCertDTO.getGigTypeList());
+		}
+		List<SysUserSub> userSubList = sysUserSubService.list(userSubWrapper);
 		if (CollUtil.isNotEmpty(userSubList)) {
 			// 封装请求数据 TODO 只把未认证或认证失败的发起认证
 			BaseMap gigInfo = new BaseMap();
-			userSubList.forEach(userSub -> {
+			userSubList.stream()
+					.filter(sysUserSub -> {
+						// 过滤掉认证成功的数据
+						if (GigTypeEnum.TAX_HELPOR.equals(sysUserSub.getGigType())
+								&& TaxHelperCertStatus.CHECKED_UNBIND.getCode() != sysUserSub.getCertStatus()
+								&& TaxHelperCertStatus.CERT.getCode() != sysUserSub.getCertStatus()) {
+							return true;
+						} else if (GigTypeEnum.YEE.equals(sysUserSub.getGigType())
+								&& !YeeCertStatus.SIGNED.getCode().equals(String.valueOf(sysUserSub.getCertStatus()))) {
+							return true;
+						} else if (GigTypeEnum.OLADING.equals(sysUserSub.getGigType())) {
+							// TODO
+						} else if (GigTypeEnum.REN_LI_JIA.equals(sysUserSub.getGigType())) {
+							// TODO
+						}
+						return false;
+					}).forEach(userSub -> {
 				// 基础信息
 				GigBaseInfoModel baseInfoModel = new GigBaseInfoModel();
 				baseInfoModel.setGigType(userSub.getGigType());