|
@@ -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();
|