فهرست منبع

feat: 调通正启之星签约、认证接口

lixuesong 2 سال پیش
والد
کامیت
db89bb2967

+ 4 - 3
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/enums/ZhengQiZhiXingCertStatus.java

@@ -13,8 +13,9 @@ import lombok.Getter;
 public enum ZhengQiZhiXingCertStatus {
 
 	// 签约状态
-	UN_SIGNED(0, "未签约"),
-	SIGNED(1, "已签约");
+	UN_SIGN(0, "未签约"),
+	CERT(1, "已认证"),
+	SIGN(2, "已签约");
 
 	private final int code;
 
@@ -32,7 +33,7 @@ public enum ZhengQiZhiXingCertStatus {
 				return certStatus;
 			}
 		}
-		return UN_SIGNED;
+		return UN_SIGN;
 
 	}
 }

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

@@ -14,13 +14,13 @@ import com.qunzhixinxi.hnqz.admin.api.dto.OladingCommonRequest;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.admin.entity.SysUserSub;
-import com.qunzhixinxi.hnqz.admin.entity.dto.UserSignCertDTO;
 import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.GigCallBackStatus;
 import com.qunzhixinxi.hnqz.admin.enums.GigTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.LockEnum;
 import com.qunzhixinxi.hnqz.admin.enums.OladingCertStatus;
 import com.qunzhixinxi.hnqz.admin.enums.SubjectLocation;
+import com.qunzhixinxi.hnqz.admin.enums.ZhengQiZhiXingCertStatus;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserSubService;
@@ -39,7 +39,6 @@ import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.messaging.handler.annotation.Header;
 
 import java.time.LocalDateTime;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -119,10 +118,6 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 						switch (gigTypeEnum) {
 							case TAX_HELPOR:
 								this.taxHelperHandler(user, dept, subjectResult);
-//								// 本次结果存入redis
-//								log.info("缓存认证结果到redis:{}", JSONUtil.toJsonStr(subjectTypes));
-//								redisTemplate.opsForValue().set(CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + user.getUserId(),
-//										JSONUtil.toJsonStr(subjectTypes), 1, TimeUnit.MINUTES);
 								break;
 							case REN_LI_JIA:
 								// TODO
@@ -133,6 +128,9 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 							case YEE:
 								this.yeeHandler(user, dept, subjectResult);
 								break;
+							case ZHENG_QI_ZHI_XING:
+								this.zhengQiZhiXingHandler(user, dept, subjectResult);
+								break;
 							default:
 						}
 					});
@@ -149,6 +147,43 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
         });
     }
 
+	/**
+	 * 正启之星结果处理
+	 *
+	 * @param user          用户
+	 * @param dept          部门
+	 * @param subjectResult 结果
+	 * @return
+	 **/
+	private void zhengQiZhiXingHandler(SysUser user, SysDept dept, JSONObject subjectResult) {
+		String code = subjectResult.getStr("code");
+		String certStatus = subjectResult.getStr("certStatus");
+		LocalDateTime now = LocalDateTime.now();
+		ZhengQiZhiXingCertStatus zhengQiZhiXingCertStatus = Enum.valueOf(ZhengQiZhiXingCertStatus.class, certStatus);
+		// 拼接更新条件
+		LambdaUpdateWrapper<SysUserSub> updateWrapper = Wrappers.<SysUserSub>lambdaUpdate()
+				.eq(SysUserSub::getUserId, user.getUserId())
+				.eq(SysUserSub::getDeptId, dept.getDeptId())
+				.eq(SysUserSub::getSubjectLocation, SubjectLocation.ZHENG_QI_ZHI_XING)
+				.eq(SysUserSub::getGigType, GigTypeEnum.ZHENG_QI_ZHI_XING)
+				.set(SysUserSub::getCallbackStatus, GigCallBackStatus.RETURNED)
+				.set(SysUserSub::getUpdateTime, now)
+				.set(SysUserSub::getUpdateUser, 0)
+				.set(SysUserSub::getCertRemark, JSONUtil.toJsonStr(subjectResult))
+				.set(SysUserSub::getCertStatus, zhengQiZhiXingCertStatus.getCode());
+
+		sysUserSubService.update(updateWrapper);
+
+		// 结果放到redis
+		Map<String, Map<String, String>> resultMap = new HashMap<>(1);
+		Map<String, String> subMap = new HashMap<>(1);
+		subMap.put("certStatus", certStatus);
+		resultMap.put("ZHENG_QI_ZHI_XING", subMap);
+		String key = CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + user.getUserId();
+		log.info("缓存认证结果到redis:{}", JSONUtil.toJsonStr(resultMap));
+		redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(resultMap), 1, TimeUnit.MINUTES);
+	}
+
 	/**
 	 * 税邦云数据处理
 	 *
@@ -181,27 +216,6 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 			updateWrapper.set(SysUserSub::getIdCardBackUrl, null);
 		}
 
-
-//		if (TAXHELPER_SUCCESS_CODE.equals(code)) {
-//			// 成功并且是换绑卡的情况,则更新银行卡号
-//			String cacheKeyPrefix = String.format("%s_%s_%s", CacheConstants.BIND_CARD_CONFIRM_NEW_BANK_CARD,
-//					user.getUserId(), GigTypeEnum.TAX_HELPOR.name());
-//			UserSignCertDTO userSignCertDTO = (UserSignCertDTO) redisTemplate.opsForValue().get(cacheKeyPrefix);
-//			if (userSignCertDTO != null) {
-//				if (StrUtil.isNotBlank(userSignCertDTO.getBankCardNumber())) {
-//					updateWrapper.set(SysUserSub::getBankCardNumber, userSignCertDTO.getBankCardNumber());
-//					updateWrapper.set(SysUserSub::getBankPhone, userSignCertDTO.getBankPhone());
-//					// 更新user表银行卡
-//					SysUser sysUser = new SysUser();
-//					sysUser.setUserId(user.getUserId());
-//					sysUser.setBankCardNumber(userSignCertDTO.getBankCardNumber());
-//					sysUser.setBankPhone(userSignCertDTO.getBankPhone());
-//					sysUserService.updateById(sysUser);
-//				}
-//				// redis删除银行卡号
-//				redisTemplate.delete(cacheKeyPrefix);
-//			}
-//		}
 		sysUserSubService.update(updateWrapper);
 
 		// 结果放到redis

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

@@ -302,7 +302,7 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 				return R.ok(MapUtil.builder("certStatus", OladingCertStatus.resolve(String.valueOf(userSub.getCertStatus()))).build());
 			}
 		} else if (userSignCertDTO.getSubjectLocation().getGigType().equals(GigTypeEnum.ZHENG_QI_ZHI_XING)) {
-			if (userSub.getCertStatus() > ZhengQiZhiXingCertStatus.UN_SIGNED.getCode()) {
+			if (userSub.getCertStatus() > ZhengQiZhiXingCertStatus.UN_SIGN.getCode()) {
 				return R.ok();
 			}
 		}
@@ -324,33 +324,45 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 		params.put("email", "service@yaoyi.net");
 		params.put("address", "北京市房山区");
 
+		log.info("签约/增员,req={}", JSONUtil.toJsonStr(params));
 		String postResult = HttpUtil.post(upmsConfig.getGigServiceUrl() + GIG_CERT_ACTION_SIGN_UP, JSONUtil.toJsonStr(params));
-		log.info("签约/增员,req={}, resp={}", JSONUtil.toJsonStr(params), postResult);
+		log.info("签约/增员,resp={}", postResult);
 
 		String message = "增员/签约失败";
-		int certStatus = 0;
+		Integer certStatus = null;
 		boolean successFlag = false;
 		String requestId = null;
 		if (JSONUtil.isJsonObj(postResult)) {
 			JSONObject jsonResult = JSONUtil.parseObj(postResult);
 			if (jsonResult.getInt("code") == 0) {
 				JSONObject data = jsonResult.getJSONObject("data");
-				if (userSignCertDTO.getSubjectLocation().getGigType().equals(GigTypeEnum.TAX_HELPOR)) {
-					if ("2000".equals(data.getStr("code"))) {
-						successFlag = true;
-						certStatus = TaxHelperCertStatus.ADD_MEMBER.getCode();
-					}
-					message = data.getStr("message");
-				} else if (userSignCertDTO.getSubjectLocation().getGigType().equals(GigTypeEnum.OLADING)) {
-					if ("0".equals(data.getStr("code"))) {
-						successFlag = true;
-						certStatus = Integer.parseInt(OladingCertStatus.SIGNING.getCode());
-						requestId = data.getStr("requestId");
-					} else if ("1004".equals(data.getStr("code"))) {
-						successFlag = true;
-						certStatus = Integer.parseInt(OladingCertStatus.SIGNING.getCode());
-					}
-					message = data.getStr("message");
+				message = data.getStr("message");
+
+				// 根据不同渠道 处理不同的返回结果
+				switch (userSignCertDTO.getSubjectLocation().getGigType()) {
+					case TAX_HELPOR:
+						if ("2000".equals(data.getStr("code"))) {
+							successFlag = true;
+							certStatus = TaxHelperCertStatus.ADD_MEMBER.getCode();
+						}
+						break;
+					case OLADING:
+						if ("0".equals(data.getStr("code"))) {
+							successFlag = true;
+							certStatus = Integer.parseInt(OladingCertStatus.SIGNING.getCode());
+							requestId = data.getStr("requestId");
+						} else if ("1004".equals(data.getStr("code"))) {
+							successFlag = true;
+							certStatus = Integer.parseInt(OladingCertStatus.SIGNING.getCode());
+						}
+						break;
+					case ZHENG_QI_ZHI_XING:
+						if ("200".equals(data.getStr("code"))) {
+							successFlag = true;
+							certStatus = ZhengQiZhiXingCertStatus.SIGN.getCode();
+						}
+						break;
+					default:
 				}
 			}
 		}
@@ -367,6 +379,7 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 
 		if (successFlag) {
 			if (userSignCertDTO.getSubjectLocation().getGigType().equals(GigTypeEnum.OLADING)) {
+				// 阿拉钉返回具体认证状态,区分签约中、已签约的情况
 				return R.ok(MapUtil.builder("certStatus", OladingCertStatus.resolve(String.valueOf(certStatus))).build());
 			}
 			return R.ok();
@@ -480,6 +493,8 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 				} else if (GigTypeEnum.REN_LI_JIA.equals(sysUserSub.getGigType())
 						&& RenlijiaCertStatus.CER_STATUS_1.getCode() != sysUserSub.getCertStatus()) {
 					return true;
+				} else if (GigTypeEnum.ZHENG_QI_ZHI_XING.equals(sysUserSub.getGigType())) {
+					return true;
 				}
 				return false;
 			}).forEach(userSub -> {