Browse Source

feat: 易联-金园数科mq回调

lixuesong 3 years ago
parent
commit
25b8bbaf3f

+ 32 - 17
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mq/GigSignCertReceiver.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
 import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
 import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
 import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
+import com.qunzhixinxi.hnqz.admin.api.dto.OladingCommonRequest;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.admin.entity.SysUserSub;
 import com.qunzhixinxi.hnqz.admin.entity.SysUserSub;
@@ -17,7 +18,7 @@ import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.GigCallBackStatus;
 import com.qunzhixinxi.hnqz.admin.enums.GigCallBackStatus;
 import com.qunzhixinxi.hnqz.admin.enums.GigTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.GigTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.LockEnum;
 import com.qunzhixinxi.hnqz.admin.enums.LockEnum;
-import com.qunzhixinxi.hnqz.admin.enums.YeeCertStatus;
+import com.qunzhixinxi.hnqz.admin.enums.OladingCertStatus;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserSubService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserSubService;
@@ -35,6 +36,7 @@ import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.messaging.handler.annotation.Header;
 import org.springframework.messaging.handler.annotation.Header;
 
 
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
+import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeUnit;
@@ -203,33 +205,46 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 	 * @param subjectResult
 	 * @param subjectResult
 	 */
 	 */
 	private void yeeHandler(SysUser user, SysDept dept, JSONObject subjectResult) {
 	private void yeeHandler(SysUser user, SysDept dept, JSONObject subjectResult) {
-		String code = subjectResult.getStr("code");
 		String certStatus = subjectResult.getStr("certStatus");
 		String certStatus = subjectResult.getStr("certStatus");
+		String uploadTaxPayerAgreementStatus = subjectResult.getStr("uploadTaxPayerAgreementStatus");
 		LocalDateTime now = LocalDateTime.now();
 		LocalDateTime now = LocalDateTime.now();
-		YeeCertStatus yeeCertStatus = Enum.valueOf(YeeCertStatus.class, certStatus);
 
 
+		// 查询当前认证状态
+		SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
+				.eq(SysUserSub::getDeptId, dept.getDeptId())
+				.eq(SysUserSub::getUserId, user.getUserId())
+				.eq(SysUserSub::getGigType, GigTypeEnum.YEE));
 		// 拼接更新条件
 		// 拼接更新条件
 		LambdaUpdateWrapper<SysUserSub> updateWrapper = Wrappers.<SysUserSub>lambdaUpdate()
 		LambdaUpdateWrapper<SysUserSub> updateWrapper = Wrappers.<SysUserSub>lambdaUpdate()
 				.eq(SysUserSub::getUserId, user.getUserId())
 				.eq(SysUserSub::getUserId, user.getUserId())
 				.eq(SysUserSub::getDeptId, dept.getDeptId())
 				.eq(SysUserSub::getDeptId, dept.getDeptId())
-				.set(SysUserSub::getCallbackStatus, GigCallBackStatus.RETURNED)
+				.eq(SysUserSub::getGigType, GigTypeEnum.YEE)
 				.set(SysUserSub::getUpdateTime, now)
 				.set(SysUserSub::getUpdateTime, now)
 				.set(SysUserSub::getUpdateUser, 0)
 				.set(SysUserSub::getUpdateUser, 0)
 				.set(SysUserSub::getCertRemark, JSONUtil.toJsonStr(subjectResult));
 				.set(SysUserSub::getCertRemark, JSONUtil.toJsonStr(subjectResult));
-		updateWrapper.eq(SysUserSub::getGigType, GigTypeEnum.YEE);
-		updateWrapper.set(SysUserSub::getCertStatus, yeeCertStatus.getCode());
-		if (YEE_SUCCESS_CODE.equals(code)) {
-			// 成功并且是换绑卡的情况,则更新银行卡号
-			String cacheKeyPrefix = String.format("%s_%s_%s", CacheConstants.BIND_CARD_CONFIRM_NEW_BANK_CARD,
-					user.getUserId(), GigTypeEnum.YEE.name());
-			UserSignCertDTO userSignCertDTO = (UserSignCertDTO) redisTemplate.opsForValue().get(cacheKeyPrefix);
-			if (userSignCertDTO != null) {
-				if (StrUtil.isNotBlank(userSignCertDTO.getBankCardNumber())) {
-					updateWrapper.set(SysUserSub::getBankCardNumber, userSignCertDTO.getBankCardNumber());
-				}
-				// redis删除银行卡号
-				redisTemplate.delete(cacheKeyPrefix);
+		// 如果是已签约并且当前不是已认证,则设置一下状态(处理阿拉丁没有回调的情况)
+		if (OladingCommonRequest.SignUpStatus.SIGN.name().equals(certStatus)
+				&& !OladingCertStatus.CERT.getCode().equals(String.valueOf(userSub.getCertStatus()))) {
+			// 如果是已上传协议成功,则设置为已认证,否则还是已签约
+			SysUser updateUser = new SysUser();
+			Map<String, String> subMap = new HashMap<>();
+			if (OladingCommonRequest.UploadTaxpayerAgreementStatus.SUCCESS.name().equals(uploadTaxPayerAgreementStatus)) {
+				updateWrapper.set(SysUserSub::getCertStatus, Integer.parseInt(OladingCertStatus.CERT.getCode()));
+				subMap.put("certStatus", OladingCertStatus.CERT.name());
+			} else {
+				updateWrapper.set(SysUserSub::getCertStatus, Integer.parseInt(OladingCertStatus.SIGNED.getCode()));
+				subMap.put("certStatus", OladingCertStatus.SIGNED.name());
 			}
 			}
+			updateWrapper.set(SysUserSub::getCallbackStatus, GigCallBackStatus.RETURNED);
+			// 修改步进状态
+			updateUser.setUserId(user.getUserId());
+			updateUser.setUpdateTime(now);
+			sysUserService.updateById(updateUser);
+			// 结果放到redis
+			String key = CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + userSub.getUserId();
+			Map<String, Object> result = MapUtil.newHashMap(1);
+			result.put("YEE", subMap);
+			redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
 		}
 		}
 		sysUserSubService.update(updateWrapper);
 		sysUserSubService.update(updateWrapper);
 	}
 	}