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

feat: 阿拉丁回调后改为顺序先发证照、后发协议mq

lixuesong 3 жил өмнө
parent
commit
7a4666f34a

+ 18 - 1
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/dto/OladingCommonRequest.java

@@ -83,7 +83,7 @@ public class OladingCommonRequest implements Serializable {
 	 */
 	@Getter
 	@AllArgsConstructor
-	public enum CertStatus {
+	public enum SignUpStatus {
 
 		// 签约状态
 		UN_SIGN(0, "未签约"),
@@ -112,4 +112,21 @@ public class OladingCommonRequest implements Serializable {
 
 		private final String message;
 	}
+
+	/**
+	 * 协议上传状态;已受理、上传成功、上传失败
+	 */
+	@Getter
+	@AllArgsConstructor
+	public enum UploadTaxpayerAgreementStatus {
+
+		// 协议上传状态
+		ACCEPT(0, "已受理"),
+		SUCCESS(1, "上传成功"),
+		FAIL(2, "上传失败");
+
+		private final Integer code;
+
+		private final String message;
+	}
 }

+ 8 - 40
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/GigThirdApiController.java

@@ -5,7 +5,6 @@ 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;
@@ -108,48 +107,17 @@ public class GigThirdApiController {
 			// 3.实际操作
 
 			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.oladingSignUp(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());
-						}
-						if (certStatus != null) {
-							gigThirdApiService.oladingUploadIdCardImage(requestIdPrefix, certStatus);
-						}
-						break;
-
-					case UPLOAD_TAXPAYER_AGREEMENT:
-						// 上传企业纳税人协议回调
-//							gigThirdApiService.
-						break;
-					default:
-
-				}
+				gigThirdApiService.oladingNotify(interfaceName, requestId, data);
 			}
-
-			response.getWriter().write("SUCCESS");
-			response.getWriter().flush();
 		} catch (Exception e) {
 			log.error("自由职家统一请求异常", e);
+		} finally {
+			try {
+				response.getWriter().write("SUCCESS");
+				response.getWriter().flush();
+			} catch (Exception e) {
+				log.error("response返回异常", e);
+			}
 		}
 
 	}

+ 4 - 7
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/enums/OladingCertStatus.java

@@ -19,13 +19,10 @@ public enum OladingCertStatus {
 
 	// 签约状态
     UN_SIGNED("0", "未签约"),
-    SIGNED("1", "已签约"),
-	SIGNING("2", "签约中"), // TODO
-	IDENTIFY_SUCCESS("3", "已认证"),
-	IDENTIFY_FAIL("4", "认证失败"),
-	AGREEMENT_SUCCESS("5", "上传成功"),
-	AGREEMENT_FAIL("6", "上传失败"),
-	FINISH("7", "已完成");
+	CERT("1", "已认证"),
+    SIGNED("2", "已签约"),
+	SIGNING("3", "签约中"),
+	UN_CERT("4", "未认证");
 
     private final String code;
 

+ 2 - 9
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mq/GigSignCertReceiver.java

@@ -17,8 +17,6 @@ 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.OladingCertStatus;
-import com.qunzhixinxi.hnqz.admin.enums.RenlijiaCertStatus;
 import com.qunzhixinxi.hnqz.admin.enums.YeeCertStatus;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserService;
@@ -118,7 +116,6 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 							// TODO
 							break;
 						case OLADING:
-							// TODO
 							oladingHandler(user, dept, subjectResult);
 							break;
 						case YEE:
@@ -222,26 +219,22 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 	}
 
 	/**
-	 * 自由职家数据处理
+	 * 自由职家数据处理(这里只保存mq回调结果,实际业务处理放到阿拉丁直接回调接口里了)
 	 *
 	 * @param user
 	 * @param dept
 	 * @param subjectResult
 	 */
 	private void oladingHandler(SysUser user, SysDept dept, JSONObject subjectResult) {
-		String certStatus = subjectResult.getStr("certStatus");
 		LocalDateTime now = LocalDateTime.now();
-		OladingCertStatus oladingCertStatus = Enum.valueOf(OladingCertStatus.class, certStatus);
-
 		// 拼接更新条件
 		LambdaUpdateWrapper<SysUserSub> updateWrapper = Wrappers.<SysUserSub>lambdaUpdate()
 				.eq(SysUserSub::getUserId, user.getUserId())
 				.eq(SysUserSub::getDeptId, dept.getDeptId())
+				.eq(SysUserSub::getGigType, GigTypeEnum.OLADING)
 				.set(SysUserSub::getUpdateTime, now)
 				.set(SysUserSub::getUpdateUser, 0)
 				.set(SysUserSub::getCertRemark, JSONUtil.toJsonStr(subjectResult));
-		updateWrapper.eq(SysUserSub::getGigType, GigTypeEnum.OLADING);
-		updateWrapper.set(SysUserSub::getCertStatus, oladingCertStatus.getCode());
 		sysUserSubService.update(updateWrapper);
 	}
 

+ 13 - 9
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/gig/GigThirdApiService.java

@@ -1,5 +1,9 @@
 package com.qunzhixinxi.hnqz.admin.service.gig;
 
+import com.qunzhixinxi.hnqz.admin.api.dto.OladingCommonRequest;
+
+import java.util.Map;
+
 /**
  * 第三方零工接口处理
  *
@@ -10,34 +14,34 @@ public interface GigThirdApiService {
 
 	/**
 	 * 自由职家回调业务处理
-	 *
+	 *  @param interfaceName
 	 * @param requestId
-	 * @param certStatus
+	 * @param data
 	 */
-	void oladingNotify(String requestId, Integer certStatus);
+	void oladingNotify(String interfaceName, String requestId, Map<String, Object> data);
 
 	/**
 	 * 自由职家签约结果回调
 	 *
 	 * @param requestId
-	 * @param certStatus
+	 * @param signUpCertStatus
 	 */
-	void oladingSignUp(String requestId, Integer certStatus);
+	void oladingSignUp(String requestId, OladingCommonRequest.SignUpStatus signUpCertStatus);
 
 	/**
 	 * 自由职家证照上传结果回调
 	 *
 	 * @param requestId
-	 * @param certStatus
+	 * @param uploadIdCertStatus
 	 */
-	void oladingUploadIdCardImage(String requestId, Integer certStatus);
+	void oladingUploadIdCardImage(String requestId, OladingCommonRequest.UploadIdCardImageStatus uploadIdCertStatus);
 
 	/**
 	 * 自由职家上传企业纳税人协议回调
 	 *
 	 * @param requestId
-	 * @param certStatus
+	 * @param agreementStatus
 	 */
-	void oladingUploadTaxpayerAgreement(String requestId, Integer certStatus);
+	void oladingUploadTaxpayerAgreement(String requestId, OladingCommonRequest.UploadTaxpayerAgreementStatus agreementStatus);
 
 }

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

@@ -1,6 +1,8 @@
 package com.qunzhixinxi.hnqz.admin.service.gig.impl;
 
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.qunzhixinxi.hnqz.admin.api.dto.OladingCommonRequest;
 import com.qunzhixinxi.hnqz.admin.entity.SysUserSub;
 import com.qunzhixinxi.hnqz.admin.entity.dto.UserSignCertDTO;
 import com.qunzhixinxi.hnqz.admin.enums.GigCallBackStatus;
@@ -15,7 +17,9 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDateTime;
 import java.util.Collections;
+import java.util.Map;
 
 /**
  * @author lixuesong
@@ -32,24 +36,57 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
 
 	/**
 	 * 自由职家回调业务处理
-	 *
+	 *  @param interfaceName
 	 * @param requestId
-	 * @param certStatus
+	 * @param data
 	 */
 	@Override
-	public void oladingNotify(String requestId, Integer certStatus) {
-		// TODO
+	public void oladingNotify(String interfaceName, String requestId, Map<String, Object> data) {
+		// 接口名称
+		OladingCommonRequest.InterfaceName interfaceNameEnum = Enum.valueOf(OladingCommonRequest.InterfaceName.class, interfaceName);
+		// 状态
+		String status = (String) data.get("status");
+		// 截取前缀部分,从而获取到系统内部的requestId
+		String requestIdPrefix = StrUtil.split(requestId, StrUtil.UNDERLINE).get(0);
+
+		if (StrUtil.isBlank(status)) {
+			throw new ValidateCodeException("status为空");
+		}
+
+		switch (interfaceNameEnum) {
+			case SIGN_UP:
+				// 签约
+				OladingCommonRequest.SignUpStatus signUpCertStatus = Enum.valueOf(OladingCommonRequest.SignUpStatus.class, status);
+				if (OladingCommonRequest.SignUpStatus.SIGN.equals(signUpCertStatus)) {
+					this.oladingSignUp(requestIdPrefix, signUpCertStatus);
+				}
+				break;
+			case UPLOAD_ID_CARD_IMAGE:
+				// 证照上传
+				OladingCommonRequest.UploadIdCardImageStatus uploadIdCertStatus =
+						Enum.valueOf(OladingCommonRequest.UploadIdCardImageStatus.class, status);
+				this.oladingUploadIdCardImage(requestIdPrefix, uploadIdCertStatus);
+				break;
+			case UPLOAD_TAXPAYER_AGREEMENT:
+				// 上传企业纳税人协议
+				OladingCommonRequest.UploadTaxpayerAgreementStatus agreementStatus =
+						Enum.valueOf(OladingCommonRequest.UploadTaxpayerAgreementStatus.class, status);
+				this.oladingUploadTaxpayerAgreement(requestIdPrefix, agreementStatus);
+				break;
+			default:
+
+		}
 	}
 
 	/**
 	 * 自由职家签约结果回调
 	 *
 	 * @param requestId
-	 * @param certStatus
+	 * @param signUpCertStatus
 	 */
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void oladingSignUp(String requestId, Integer certStatus) {
+	public void oladingSignUp(String requestId, OladingCommonRequest.SignUpStatus signUpCertStatus) {
 		// 先查询requestId是否存在
 		SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
 				.eq(SysUserSub::getGigType, GigTypeEnum.OLADING)
@@ -57,14 +94,17 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
 		if (userSub == null) {
 			throw new ValidateCodeException("requestId不存在");
 		}
-		// 更新状态
-		SysUserSub updateUserSub = new SysUserSub();
-		updateUserSub.setId(userSub.getId());
-		updateUserSub.setCertStatus(certStatus);
-		sysUserSubService.updateById(updateUserSub);
 
-		// 如果成功,则发送证照上传、协议上传MQ
-		if (OladingCertStatus.SIGNED.getCode().equals(String.valueOf(certStatus))) {
+		if (OladingCommonRequest.SignUpStatus.SIGN.equals(signUpCertStatus)) {
+			// 更新状态
+			SysUserSub updateUserSub = new SysUserSub();
+			updateUserSub.setId(userSub.getId());
+			updateUserSub.setCertStatus(Integer.valueOf(OladingCertStatus.SIGNED.getCode()));
+			updateUserSub.setUpdateTime(LocalDateTime.now());
+			updateUserSub.setUpdateUser(0);
+			sysUserSubService.updateById(updateUserSub);
+			// 如果成功,则发送证照上传MQ
+			log.info("=============================发送证照上传MQ==================================");
 			UserSignCertDTO userSignCertDTO = new UserSignCertDTO();
 			userSignCertDTO.setUserId(userSub.getUserId());
 			userSignCertDTO.setGigTypeList(Collections.singletonList(GigTypeEnum.OLADING));
@@ -76,10 +116,10 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
 	 * 自由职家证照上传结果回调
 	 *
 	 * @param requestId
-	 * @param certStatus
+	 * @param uploadIdCertStatus
 	 */
 	@Override
-	public void oladingUploadIdCardImage(String requestId, Integer certStatus) {
+	public void oladingUploadIdCardImage(String requestId, OladingCommonRequest.UploadIdCardImageStatus uploadIdCertStatus) {
 		// 先查询requestId是否存在
 		SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
 				.eq(SysUserSub::getGigType, GigTypeEnum.OLADING)
@@ -87,24 +127,25 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
 		if (userSub == null) {
 			throw new ValidateCodeException("requestId不存在");
 		}
-		// 更新状态
-		SysUserSub updateUserSub = new SysUserSub();
-		updateUserSub.setId(userSub.getId());
-		updateUserSub.setCertStatus(certStatus);
-		if (OladingCertStatus.FINISH.getCode().equals(String.valueOf(certStatus))) {
-			updateUserSub.setCallbackStatus(GigCallBackStatus.RETURNED);
+
+		if (OladingCommonRequest.UploadIdCardImageStatus.IDENTIFY_SUCCESS.equals(uploadIdCertStatus)) {
+			// 如果成功,则发送协议上传MQ
+			log.info("=============================发送协议上传MQ==================================");
+			UserSignCertDTO userSignCertDTO = new UserSignCertDTO();
+			userSignCertDTO.setUserId(userSub.getUserId());
+			userSignCertDTO.setGigTypeList(Collections.singletonList(GigTypeEnum.OLADING));
+			sysUserSignCertService.batchChannelCert(userSignCertDTO);
 		}
-		sysUserSubService.updateById(updateUserSub);
 	}
 
 	/**
 	 * 自由职家上传企业纳税人协议回调
 	 *
 	 * @param requestId
-	 * @param certStatus
+	 * @param agreementStatus
 	 */
 	@Override
-	public void oladingUploadTaxpayerAgreement(String requestId, Integer certStatus) {
+	public void oladingUploadTaxpayerAgreement(String requestId, OladingCommonRequest.UploadTaxpayerAgreementStatus agreementStatus) {
 		// 先查询requestId是否存在
 		SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
 				.eq(SysUserSub::getGigType, GigTypeEnum.OLADING)
@@ -112,13 +153,16 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
 		if (userSub == null) {
 			throw new ValidateCodeException("requestId不存在");
 		}
-		// 更新状态
-		SysUserSub updateUserSub = new SysUserSub();
-		updateUserSub.setId(userSub.getId());
-		updateUserSub.setCertStatus(certStatus);
-		if (OladingCertStatus.FINISH.getCode().equals(String.valueOf(certStatus))) {
+
+		if (OladingCommonRequest.UploadTaxpayerAgreementStatus.SUCCESS.equals(agreementStatus)) {
+			// 更新状态
+			SysUserSub updateUserSub = new SysUserSub();
+			updateUserSub.setId(userSub.getId());
+			updateUserSub.setCertStatus(Integer.valueOf(OladingCertStatus.CERT.getCode()));
 			updateUserSub.setCallbackStatus(GigCallBackStatus.RETURNED);
+			updateUserSub.setUpdateTime(LocalDateTime.now());
+			updateUserSub.setUpdateUser(0);
+			sysUserSubService.updateById(updateUserSub);
 		}
-		sysUserSubService.updateById(updateUserSub);
 	}
 }