소스 검색

feat: 结收mq返回的签约认证状态并修改

lixuesong 3 년 전
부모
커밋
9923a85ae9

+ 5 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/model/GigUserInfoModel.java

@@ -93,6 +93,11 @@ public class GigUserInfoModel implements Serializable {
 	 */
 	private String certVideo2;
 
+	/**
+	 * 协议签名
+	 */
+	private String signImageUrl;
+
 	/**
 	 * 邮箱
 	 */

+ 79 - 11
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mq/GigSignCertReceiver.java

@@ -1,14 +1,21 @@
 package com.qunzhixinxi.hnqz.admin.mq;
 
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
-import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmReportOpt;
-import com.qunzhixinxi.hnqz.admin.entity.WmTask;
-import com.qunzhixinxi.hnqz.admin.service.ReportExportService;
-import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
-import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
-import com.qunzhixinxi.hnqz.common.core.util.R;
+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.enums.DelEnum;
+import com.qunzhixinxi.hnqz.admin.enums.GigTypeEnum;
+import com.qunzhixinxi.hnqz.admin.enums.LockEnum;
+import com.qunzhixinxi.hnqz.admin.enums.UserSubCertStatusEnum;
+import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
+import com.qunzhixinxi.hnqz.admin.service.SysUserService;
+import com.qunzhixinxi.hnqz.admin.service.SysUserSubService;
 import com.qunzhixinxi.hnqz.common.rabbitmq.annotation.RabbitMqComponent;
 import com.qunzhixinxi.hnqz.common.rabbitmq.core.BaseRabbiMqHandler;
 import com.qunzhixinxi.hnqz.common.rabbitmq.listenter.MqListener;
@@ -20,8 +27,9 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener;
 import org.springframework.amqp.support.AmqpHeaders;
 import org.springframework.messaging.handler.annotation.Header;
 
-import java.util.HashMap;
-import java.util.Map;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.function.Predicate;
 
 /**
  * 接收用户签约认证的结果对列监听器
@@ -32,13 +40,73 @@ import java.util.Map;
 @RabbitMqComponent(value = "gigSignCertReceiver")
 public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 
+	private final SysDeptService sysDeptService;
+
+	private final SysUserService sysUserService;
+
+	private final SysUserSubService sysUserSubService;
 
     @RabbitHandler
     public void onMessage(String jsonStr, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
-        super.onMessage(jsonStr, deliveryTag, channel, (MqListener<String>) (String map, Channel channel1) -> {
+        super.onMessage(jsonStr, deliveryTag, channel, (MqListener<String>) (String result, Channel channel1) -> {
+
+			log.info("直接队列:接收用户签约认证的结果,手动ACK,接收消息TAG:{},消息内容:{}", deliveryTag, result);
 
-			System.out.println(map); // {"TAX_HELPOR":{"code":2000,"message":null,"data":{"authenticationStatus":0,"bindingCardStatus":"1","exception":null}}}
+			JSONObject jsonResult = JSONUtil.parseObj(result);
+			String username = jsonResult.getStr("username");
+			String entpriseCode = jsonResult.getStr("entpriseCode");
+			JSONObject subjectTypes = jsonResult.getJSONObject("subjectTypes");
+			if (StrUtil.isNotBlank(username) && StrUtil.isNotBlank(entpriseCode) && !subjectTypes.isEmpty()) {
+				List<SysDept> deptList = sysDeptService.list(Wrappers.<SysDept>lambdaQuery()
+						.eq(SysDept::getTaxCode, entpriseCode)
+						.eq(SysDept::getDelFlag, DelEnum.NOT_DEL.val())
+						.orderByDesc(SysDept::getCreateTime));
+				if (CollUtil.isNotEmpty(deptList)) {
+					SysDept dept = deptList.get(0);
+					SysUser user = sysUserService.getOne(Wrappers.<SysUser>lambdaQuery()
+							.eq(SysUser::getDeptId, dept.getDeptId())
+							.eq(SysUser::getUsername, username)
+							.eq(SysUser::getDelFlag, DelEnum.NOT_DEL.val())
+							.eq(SysUser::getLockFlag, LockEnum.UN_LOCK.val()));
+					if (user != null) {
+						// 根据不同渠道,更新对应的签约认证状态
+						subjectTypes.forEach((s, o) -> {
+							GigTypeEnum gigTypeEnum = Enum.valueOf(GigTypeEnum.class, s);
+							JSONObject statusResult = (JSONObject) o;
+							LocalDateTime now = LocalDateTime.now();
+							switch (gigTypeEnum) {
+								case TAX_HELPOR:
+									if ("2000".equals(statusResult.getStr("code"))) {
+										UserSubCertStatusEnum certStatus = Enum.valueOf(UserSubCertStatusEnum.class, "UNCHECKED_BIND");
+										sysUserSubService.update(Wrappers.<SysUserSub>lambdaUpdate()
+												.eq(SysUserSub::getUserId, user.getUserId())
+												.eq(SysUserSub::getDeptId, dept.getDeptId())
+												.set(SysUserSub::getUpdateTime, now)
+												.set(SysUserSub::getUpdateUser, "MQ")
+												.set(SysUserSub::getCertStatus, certStatus));
+									} else {
+										sysUserSubService.update(Wrappers.<SysUserSub>lambdaUpdate()
+												.eq(SysUserSub::getUserId, user.getUserId())
+												.eq(SysUserSub::getDeptId, dept.getDeptId())
+												.set(SysUserSub::getUpdateTime, now)
+												.set(SysUserSub::getUpdateUser, "MQ")
+												.set(SysUserSub::getCertRemark, statusResult.getStr("message")));
+									}
+									break;
+								case REN_LI_JIA:
+									break;
+								case OLADING:
+									break;
+								case YEE:
+									break;
+								default:
+							}
 
+							// TODO
+						});
+					}
+				}
+			}
 //            //业务处理
 //            log.info("直接队列:zb报告导出,手动ACK,接收消息TAG:{},消息内容:{}", deliveryTag, jsonStr);
 //            String requestBody = map.get("requestBody").toString();

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

@@ -208,6 +208,8 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 						? null : upmsConfig.getClientUrl() + userSub.getCertVideo1Url());
 				userInfoModel.setCertVideo2(StrUtil.isBlank(userSub.getCertVideo2Url())
 						? null : upmsConfig.getClientUrl() + userSub.getCertVideo2Url());
+				userInfoModel.setSignImageUrl(StrUtil.isBlank(userSub.getAgreementUrl())
+						? null : upmsConfig.getClientUrl() + userSub.getAgreementUrl());
 
 				GigInfoModel infoModel = new GigInfoModel();
 				infoModel.setBaseInfo(baseInfoModel);