Browse Source

feat: 阿拉丁回调修改、requestId改为16+15拼接

lixuesong 3 years ago
parent
commit
09ff2f34f7

+ 19 - 3
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/dto/OladingCommonRequest.java

@@ -1,12 +1,9 @@
 package com.qunzhixinxi.hnqz.admin.api.dto;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Getter;
 
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.util.Map;
 
@@ -94,4 +91,23 @@ public class OladingCommonRequest implements Serializable {
 
 		private final String message;
 	}
+
+	/**
+	 * 证件照处理状态;已受理、认证通过、认证失败、纳税人信息不存在、证照未上传
+	 */
+	@Getter
+	@AllArgsConstructor
+	public enum UploadIdCardImageStatus {
+
+		// 证件照处理状态
+		ACCEPT(0, "已受理"),
+		IDENTIFY_SUCCESS(1, "认证通过"),
+		IDENTIFY_FAIL(2, "认证失败"),
+		NULL(3, "纳税人信息不存在"),
+		UN_IDENTIFY(4, "证照未上传");
+
+		private final Integer code;
+
+		private final String message;
+	}
 }

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

@@ -5,6 +5,7 @@ import cn.hutool.json.JSONUtil;
 import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
 import com.qunzhixinxi.hnqz.admin.api.dto.OladingCommonRequest;
 import com.qunzhixinxi.hnqz.admin.entity.OladingInputRecord;
+import com.qunzhixinxi.hnqz.admin.enums.OladingCertStatus;
 import com.qunzhixinxi.hnqz.admin.service.gig.GigThirdApiService;
 import com.qunzhixinxi.hnqz.admin.service.gig.OladingInputRecordService;
 import com.qunzhixinxi.hnqz.admin.util.HMACSignProvider;
@@ -76,7 +77,6 @@ public class GigThirdApiController {
 		if (StrUtil.isBlank(requestId)) {
 			requestId = (String) data.get("request_id");
 		}
-
 		String redisKey = String.format("%s_%s_%s", CacheConstants.OLADING_SIGN_UP_NOTIFY_KEY, interfaceName, requestId);
 		Boolean absent = redisTemplate.opsForValue().setIfAbsent(redisKey, reqStr, 30, TimeUnit.MINUTES);
 		if (!absent) {
@@ -107,22 +107,36 @@ public class GigThirdApiController {
 
 			// 3.实际操作
 
-			OladingCommonRequest.InterfaceName interfaceNameEnum = Enum.valueOf(OladingCommonRequest.InterfaceName.class, interfaceName);
-			switch (interfaceNameEnum) {
-				case SIGN_UP:
-					// 签约回调
-					String signUpStatus = (String) data.get("status");
-					OladingCommonRequest.CertStatus signUpCertStatus = Enum.valueOf(OladingCommonRequest.CertStatus.class, signUpStatus);
-					gigThirdApiService.oladingSignUpNotify(requestId, signUpCertStatus.getCode());
-					break;
-				case UPLOAD_ID_CARD_IMAGE:
-					// 证照上传回调 TODO
-					String updateStatus = (String) data.get("status");
-					OladingCommonRequest.CertStatus updateCertStatus = Enum.valueOf(OladingCommonRequest.CertStatus.class, updateStatus);
-					gigThirdApiService.oladingSignUpNotify(requestId, updateCertStatus.getCode());
-					break;
-				default:
-
+			if (StrUtil.isNotBlank(requestId)) {
+				String requestIdPrefix = StrUtil.split(requestId, StrUtil.UNDERLINE).get(0);
+				OladingCommonRequest.InterfaceName interfaceNameEnum = Enum.valueOf(OladingCommonRequest.InterfaceName.class, interfaceName);
+
+				switch (interfaceNameEnum) {
+					case SIGN_UP:
+						// 签约回调
+						String signUpStatus = (String) data.get("status");
+						OladingCommonRequest.CertStatus signUpCertStatus = Enum.valueOf(OladingCommonRequest.CertStatus.class, signUpStatus);
+						if (OladingCommonRequest.CertStatus.SIGN.equals(signUpCertStatus)) {
+							gigThirdApiService.oladingSignUpNotify(requestIdPrefix, Integer.valueOf(OladingCertStatus.SIGNED.getCode()));
+						}
+						break;
+					case UPLOAD_ID_CARD_IMAGE:
+						// 证照上传回调
+						String uploadStatus = (String) data.get("status");
+						OladingCommonRequest.UploadIdCardImageStatus updateCertStatus =
+								Enum.valueOf(OladingCommonRequest.UploadIdCardImageStatus.class, uploadStatus);
+						// 转为usersub的对应状态
+						Integer certStatus = null;
+						if (OladingCommonRequest.UploadIdCardImageStatus.IDENTIFY_SUCCESS.equals(updateCertStatus)) {
+							certStatus = Integer.valueOf(OladingCertStatus.IDENTIFY_SUCCESS.getCode());
+						} else if (OladingCommonRequest.UploadIdCardImageStatus.IDENTIFY_FAIL.equals(updateCertStatus)) {
+							certStatus = Integer.valueOf(OladingCertStatus.IDENTIFY_FAIL.getCode());
+						}
+						gigThirdApiService.oladingUploadIdCardImageNotify(requestIdPrefix, certStatus);
+						break;
+					default:
+
+				}
 			}
 
 			response.getWriter().write("SUCCESS");

+ 3 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/enums/OladingCertStatus.java

@@ -20,7 +20,9 @@ public enum OladingCertStatus {
 	// 签约状态
     UN_SIGNED("0", "未签约"),
     SIGNED("1", "已签约"),
-	SIGNING("2", "签约中");
+	SIGNING("2", "签约中"),
+	IDENTIFY_SUCCESS("3", "已认证"),
+	IDENTIFY_FAIL("4", "认证失败");
 
     private final String code;
 

+ 29 - 7
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/gig/impl/GigThirdApiServiceImpl.java

@@ -2,7 +2,9 @@ package com.qunzhixinxi.hnqz.admin.service.gig.impl;
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.qunzhixinxi.hnqz.admin.entity.SysUserSub;
+import com.qunzhixinxi.hnqz.admin.entity.dto.UserSignCertDTO;
 import com.qunzhixinxi.hnqz.admin.enums.GigTypeEnum;
+import com.qunzhixinxi.hnqz.admin.enums.OladingCertStatus;
 import com.qunzhixinxi.hnqz.admin.service.SysUserSubService;
 import com.qunzhixinxi.hnqz.admin.service.gig.GigThirdApiService;
 import com.qunzhixinxi.hnqz.admin.service.gig.SysUserSignCertService;
@@ -12,6 +14,8 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Collections;
+
 /**
  * @author lixuesong
  * @date 2022年04月17日 11:55
@@ -34,7 +38,6 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public void oladingSignUpNotify(String requestId, Integer certStatus) {
-
 		// 先查询requestId是否存在
 		SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
 				.eq(SysUserSub::getGigType, GigTypeEnum.OLADING)
@@ -49,12 +52,12 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
 		sysUserSubService.updateById(updateUserSub);
 
 		// 如果成功,则发送证照上传MQ TODO
-//		if (OladingCertStatus.SIGNED.getCode().equals(String.valueOf(status.getCode()))) {
-//			UserSignCertDTO userSignCertDTO = new UserSignCertDTO();
-//			userSignCertDTO.setUserId(userSub.getUserId());
-//			userSignCertDTO.setGigTypeList(Collections.singletonList(GigTypeEnum.OLADING));
-//			sysUserSignCertService.batchChannelCert(userSignCertDTO);
-//		}
+		if (OladingCertStatus.SIGNED.getCode().equals(certStatus)) {
+			UserSignCertDTO userSignCertDTO = new UserSignCertDTO();
+			userSignCertDTO.setUserId(userSub.getUserId());
+			userSignCertDTO.setGigTypeList(Collections.singletonList(GigTypeEnum.OLADING));
+			sysUserSignCertService.batchChannelCert(userSignCertDTO);
+		}
 	}
 
 	/**
@@ -65,6 +68,25 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
 	 */
 	@Override
 	public void oladingUploadIdCardImageNotify(String requestId, Integer certStatus) {
+		// 先查询requestId是否存在
+		SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
+				.eq(SysUserSub::getGigType, GigTypeEnum.OLADING)
+				.eq(SysUserSub::getRequestId, requestId));
+		if (userSub == null) {
+			throw new ValidateCodeException("requestId不存在");
+		}
+		// 更新状态
+		SysUserSub updateUserSub = new SysUserSub();
+		updateUserSub.setId(userSub.getId());
+		updateUserSub.setCertStatus(certStatus);
+		sysUserSubService.updateById(updateUserSub);
 
+		// 如果成功,则发送证照上传MQ TODO
+		if (OladingCertStatus.SIGNED.getCode().equals(certStatus)) {
+			UserSignCertDTO userSignCertDTO = new UserSignCertDTO();
+			userSignCertDTO.setUserId(userSub.getUserId());
+			userSignCertDTO.setGigTypeList(Collections.singletonList(GigTypeEnum.OLADING));
+			sysUserSignCertService.batchChannelCert(userSignCertDTO);
+		}
 	}
 }

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

@@ -2,7 +2,6 @@ package com.qunzhixinxi.hnqz.admin.service.gig.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -43,6 +42,7 @@ import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import com.qunzhixinxi.hnqz.common.taxhelper.enums.TaxHelperCertStatus;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.RandomStringUtils;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -338,7 +338,7 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 				return false;
 			}).forEach(userSub -> {
 				// 请求流水号
-				String requestId = IdUtil.fastSimpleUUID();
+				String requestId = RandomStringUtils.randomAlphabetic(16);
 				// 封装请求参数
 				GigInfoModel infoModel = buildChannelCertModel(sysUser, userSub, dept.getTaxCode(), requestId);
 				// 更新为进行中状态