Эх сурвалжийг харах

Merge branch 'feat-20220615-yeejinyuan' into temp-pre

lixuesong 3 жил өмнө
parent
commit
10f07b8218

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

@@ -17,7 +17,8 @@ public enum GigChannelEnum {
 	// 渠道
 	DEFAULT(0, "默认渠道"),
 	CICC(1, "中金"),
-	PINGAN(2, "平安银行");
+	PINGAN(2, "平安银行"),
+	JIN_YUAN(31, "金园数科");
 
 	@EnumValue
 	private int code;

+ 0 - 40
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/enums/GigYeeChannelEnum.java

@@ -1,40 +0,0 @@
-package com.qunzhixinxi.hnqz.admin.enums;
-
-import com.baomidou.mybatisplus.annotation.EnumValue;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * 易联零工渠道
- *
- * @author lixuesong
- * @date 2022年03月03日 14:06
- */
-@Getter
-@AllArgsConstructor
-public enum GigYeeChannelEnum {
-
-	// 渠道
-	DEFAULT(0, "默认渠道"),
-	JIN_YUAN(1, "金园数科");
-
-	@EnumValue
-	private int code;
-
-	private String desc;
-
-	/**
-	 * 根据枚举编码获取枚举对象
-	 *
-	 * @param code
-	 * @return
-	 */
-	public static GigYeeChannelEnum resolve(int code){
-		for (GigYeeChannelEnum channelEnum: GigYeeChannelEnum.values()){
-			if (channelEnum.code == code){
-				return channelEnum;
-			}
-		}
-		return DEFAULT;
-	}
-}

+ 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.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
 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.SysUser;
 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.GigTypeEnum;
 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.SysUserService;
 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 java.time.LocalDateTime;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
@@ -203,33 +205,46 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 	 * @param subjectResult
 	 */
 	private void yeeHandler(SysUser user, SysDept dept, JSONObject subjectResult) {
-		String code = subjectResult.getStr("code");
 		String certStatus = subjectResult.getStr("certStatus");
+		String uploadTaxPayerAgreementStatus = subjectResult.getStr("uploadTaxPayerAgreementStatus");
 		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()
 				.eq(SysUserSub::getUserId, user.getUserId())
 				.eq(SysUserSub::getDeptId, dept.getDeptId())
-				.set(SysUserSub::getCallbackStatus, GigCallBackStatus.RETURNED)
+				.eq(SysUserSub::getGigType, GigTypeEnum.YEE)
 				.set(SysUserSub::getUpdateTime, now)
 				.set(SysUserSub::getUpdateUser, 0)
 				.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);
 	}

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

@@ -24,7 +24,6 @@ import com.qunzhixinxi.hnqz.admin.entity.vo.SysUserSubVO;
 import com.qunzhixinxi.hnqz.admin.enums.GigCallBackStatus;
 import com.qunzhixinxi.hnqz.admin.enums.GigChannelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.GigTypeEnum;
-import com.qunzhixinxi.hnqz.admin.enums.GigYeeChannelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.LockEnum;
 import com.qunzhixinxi.hnqz.admin.enums.MemberIDCardType;
 import com.qunzhixinxi.hnqz.admin.enums.MemberType;
@@ -178,7 +177,7 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 		userSignCertDTO.getGigTypeList().forEach(gigType -> {
 			// 税邦云单独设置渠道类型
 			GigChannelEnum gigChannel;
-			if (GigTypeEnum.TAX_HELPOR.equals(gigType) || GigTypeEnum.YEE.equals(gigType)) {
+			if (GigTypeEnum.TAX_HELPOR.equals(gigType)) {
 				// 读取用户所认证的企业的结算渠道
 				SysDeptSub deptSub = sysDeptSubService.getOne(Wrappers.<SysDeptSub>lambdaQuery()
 						.eq(SysDeptSub::getDeptId, queryUser.getDeptId())
@@ -189,6 +188,17 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 				} else {
 					gigChannel = GigChannelEnum.DEFAULT;
 				}
+			} else if (GigTypeEnum.YEE.equals(gigType)) {
+				// 读取用户所认证的企业的结算渠道
+				SysDeptSub deptSub = sysDeptSubService.getOne(Wrappers.<SysDeptSub>lambdaQuery()
+						.eq(SysDeptSub::getDeptId, queryUser.getDeptId())
+						.eq(SysDeptSub::getSubjectType, GigTypeEnum.TAX_HELPOR.getCode())
+						.eq(SysDeptSub::getEnableFlag, SubjectTypeEnum.ENABLE_FLAG_TRUE.getCode()));
+				if (deptSub != null && "1".equals(deptSub.getSubjectType())) {
+					gigChannel = GigChannelEnum.JIN_YUAN;
+				} else {
+					gigChannel = GigChannelEnum.DEFAULT;
+				}
 			} else {
 				gigChannel = GigChannelEnum.DEFAULT;
 			}
@@ -300,12 +310,12 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 						&& TaxHelperCertStatus.CERT.getCode() != sysUserSub.getCertStatus()) {
 					return true;
 				} else if (GigTypeEnum.YEE.equals(sysUserSub.getGigType())
-						&& GigYeeChannelEnum.JIN_YUAN.equals(sysUserSub.getGigChannel())
+						&& GigChannelEnum.JIN_YUAN.equals(sysUserSub.getGigChannel())
 						&& !OladingCertStatus.CERT.getCode().equals(String.valueOf(sysUserSub.getCertStatus()))) {
 					// 易联并且渠道是金园数科(自由职家)
 					return true;
 				} else if (GigTypeEnum.YEE.equals(sysUserSub.getGigType())
-						&& GigYeeChannelEnum.DEFAULT.equals(sysUserSub.getGigChannel())
+						&& GigChannelEnum.DEFAULT.equals(sysUserSub.getGigChannel())
 						&& !YeeCertStatus.SIGNED.getCode().equals(String.valueOf(sysUserSub.getCertStatus()))) {
 					// 易联并且渠道是默认
 					return true;