Browse Source

fix: 重复发起签约导致状态被修改

lixuesong 1 năm trước cách đây
mục cha
commit
729f66b0aa

+ 27 - 3
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mq/GigSignCertReceiver.java

@@ -230,6 +230,18 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 		LocalDateTime now = LocalDateTime.now();
 		ZhongYiYunCertStatus zhongYiYunCertStatus = Enum.valueOf(ZhongYiYunCertStatus.class, certStatus);
 
+		// 查询当前认证状态
+		SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
+				.eq(SysUserSub::getDeptId, dept.getDeptId())
+				.eq(SysUserSub::getUserId, user.getUserId())
+				.eq(SysUserSub::getGigType, GigTypeEnum.QI_FU)
+				.eq(SysUserSub::getSubjectLocation, SubjectLocation.QI_FU));
+		if (ZhongYiYunCertStatus.CERT.getCode() == userSub.getCertStatus()) {
+			// 已认证成功,无需操作
+			log.info("已认证成功,无需操作");
+			return;
+		}
+
 		// 拼接更新条件
 		LambdaUpdateWrapper<SysUserSub> updateWrapper = Wrappers.<SysUserSub>lambdaUpdate()
 				.eq(SysUserSub::getUserId, user.getUserId())
@@ -240,8 +252,8 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 				.set(SysUserSub::getUpdateUser, 0)
 				.set(SysUserSub::getCertRemark, JSONUtil.toJsonStr(subjectResult));
 
-		if (ZhongYiYunCertStatus.SIGN.equals(zhongYiYunCertStatus)) {
-			// 众蚁云已签约 即对应这里的已认证
+		if (ZhongYiYunCertStatus.SIGN.equals(zhongYiYunCertStatus) || "10027".equals(code)) {
+			// 众蚁云已签约 即对应这里的已认证, 10027:该用户信息已经做过签约! 也要同步改为已认证
 			updateWrapper.set(SysUserSub::getCertStatus, ZhongYiYunCertStatus.CERT.getCode());
 			updateWrapper.set(SysUserSub::getCallbackStatus, GigCallBackStatus.RETURNED);
 		} else {
@@ -322,6 +334,18 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 		LocalDateTime now = LocalDateTime.now();
 		ZhongYiYunCertStatus zhongYiYunCertStatus = Enum.valueOf(ZhongYiYunCertStatus.class, certStatus);
 
+		// 查询当前认证状态
+		SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
+				.eq(SysUserSub::getDeptId, dept.getDeptId())
+				.eq(SysUserSub::getUserId, user.getUserId())
+				.eq(SysUserSub::getGigType, GigTypeEnum.ZHONG_YI_YUN)
+				.eq(SysUserSub::getSubjectLocation, SubjectLocation.ZHONG_YI_YUN));
+		if (ZhongYiYunCertStatus.CERT.getCode() == userSub.getCertStatus()) {
+			// 已认证成功,无需操作
+			log.info("已认证成功,无需操作");
+			return;
+		}
+
 		// 拼接更新条件
 		LambdaUpdateWrapper<SysUserSub> updateWrapper = Wrappers.<SysUserSub>lambdaUpdate()
 				.eq(SysUserSub::getUserId, user.getUserId())
@@ -332,7 +356,7 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 				.set(SysUserSub::getUpdateUser, 0)
 				.set(SysUserSub::getCertRemark, JSONUtil.toJsonStr(subjectResult));
 
-		if (ZhongYiYunCertStatus.SIGN.equals(zhongYiYunCertStatus)) {
+		if (ZhongYiYunCertStatus.SIGN.equals(zhongYiYunCertStatus) || "10027".equals(code)) {
 			// 众蚁云已签约 即对应这里的已认证
 			updateWrapper.set(SysUserSub::getCertStatus, ZhongYiYunCertStatus.CERT.getCode());
 			updateWrapper.set(SysUserSub::getCallbackStatus, GigCallBackStatus.RETURNED);