Browse Source

feat: 众蚁云签约gig联调

李学松 2 years ago
parent
commit
639e5c4f56

+ 17 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/GigThirdApiController.java

@@ -78,6 +78,23 @@ public class GigThirdApiController {
 //	 */
 //	private static final String ALGORITHM_TYPE = "HmacSHA256";
 
+	/**
+	 * 众蚁云异步通知回调
+	 *
+	 * @param body
+	 * @param headers
+	 * @return
+	 */
+	@Inner(value = false)
+	@SysLog("众蚁云异步通知回调")
+	@PostMapping("/zhongyiyun/sign-notify")
+	public String zhongYiYunRequest(@RequestBody String body, @RequestHeader HttpHeaders headers) {
+		log.info("众蚁云请求方法参数:body={}, headers={}", body, headers);
+
+//		return "fail";
+		return "success";
+	}
+
 	/**
 	 * 汇企云异步通知回调
 	 *

+ 2 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/enums/ZhongYiYunCertStatus.java

@@ -16,7 +16,8 @@ public enum ZhongYiYunCertStatus {
 	// 签约状态
 	UN_SIGN(0, "未签约"),
 	CERT(1, "已认证"),
-	SIGN(2, "已签约");
+	SIGN(2, "已签约"),
+	SIGNING(3, "签约中");
 
 	private final int code;
 

+ 48 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mq/GigSignCertReceiver.java

@@ -141,6 +141,9 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 							case HUI_QI_YUN:
 								this.huiQiYunHandler(user, dept, subjectResult);
 								break;
+							case ZHONG_YI_YUN:
+								this.zhongYiYunHandler(user, dept, subjectResult);
+								break;
 							default:
 						}
 					});
@@ -157,6 +160,51 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
         });
     }
 
+	/**
+	 * 众蚁云结果处理
+	 *
+	 * @param user          用户
+	 * @param dept          部门
+	 * @param subjectResult 结果
+	 */
+	private void zhongYiYunHandler(SysUser user, SysDept dept, JSONObject subjectResult) {
+		String code = subjectResult.getStr("code");
+		String certStatus = subjectResult.getStr("certStatus");
+		LocalDateTime now = LocalDateTime.now();
+		ZhongYiYunCertStatus zhongYiYunCertStatus = Enum.valueOf(ZhongYiYunCertStatus.class, certStatus);
+
+		// 拼接更新条件
+		LambdaUpdateWrapper<SysUserSub> updateWrapper = Wrappers.<SysUserSub>lambdaUpdate()
+				.eq(SysUserSub::getUserId, user.getUserId())
+				.eq(SysUserSub::getDeptId, dept.getDeptId())
+				.eq(SysUserSub::getSubjectLocation, SubjectLocation.HUI_QI_YUN)
+				.eq(SysUserSub::getGigType, GigTypeEnum.HUI_QI_YUN)
+				.set(SysUserSub::getCallbackStatus, GigCallBackStatus.RETURNED)
+				.set(SysUserSub::getUpdateTime, now)
+				.set(SysUserSub::getUpdateUser, 0)
+				.set(SysUserSub::getCertRemark, JSONUtil.toJsonStr(subjectResult));
+
+		if (HUI_QI_YUN_SUCCESS_CODE.equals(code)) {
+			if (ZhongYiYunCertStatus.SIGN.equals(zhongYiYunCertStatus)) {
+				// 汇企云已签约 即对应这里的已认证
+				updateWrapper.set(SysUserSub::getCertStatus, ZhongYiYunCertStatus.CERT.getCode());
+			} else {
+				updateWrapper.set(SysUserSub::getCertStatus, zhongYiYunCertStatus.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(SubjectLocation.HUI_QI_YUN.getType(), 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);
+	}
+
 	/**
 	 * 汇企云结果处理
 	 *

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

@@ -393,12 +393,12 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 				this.updateUserCertStatus(userSub.getId(), "内部状态对其", HuiQiYunCertStatus.SIGN.getCode(), null);
 				return R.ok();
 			case ZHONG_YI_YUN:
-				// 众蚁云 TODO
+				// 众蚁云
 				if (userSub.getCertStatus() > HuiQiYunCertStatus.UN_SIGN.getCode()) {
 					return R.ok();
 				}
 				this.updateUserCertStatus(userSub.getId(), "内部状态对其", ZhongYiYunCertStatus.SIGN.getCode(), null);
-				break;
+				return R.ok();
 			default:
 				message = "不支持该税源地操作";
 		}