Просмотр исходного кода

feat: 易联-金园数科 认证接入

lixuesong 3 лет назад
Родитель
Сommit
92644f4a25

+ 5 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/dto/UserSignCertDTO.java

@@ -76,4 +76,9 @@ public class UserSignCertDTO implements Serializable {
 	 * 令牌
 	 */
 	private String token;
+
+	/**
+	 * 是否上传核身视频
+	 */
+	private Boolean uploadFaceID;
 }

+ 5 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/model/GigUserInfoModel.java

@@ -112,4 +112,9 @@ public class GigUserInfoModel implements Serializable {
 	 * 地址
 	 */
 	private String address;
+
+	/**
+	 * 是否上传核身视频
+	 */
+	private Boolean uploadFaceID;
 }

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

@@ -0,0 +1,40 @@
+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;
+	}
+}

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

@@ -12,7 +12,6 @@ import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackageSettleNote;
 import com.qunzhixinxi.hnqz.admin.entity.dto.UserSignCertDTO;
 import com.qunzhixinxi.hnqz.admin.enums.GigCallBackStatus;
-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.WmScorePackageService;
@@ -243,9 +242,9 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
 	public void oladingSignUp(String requestId, OladingCommonRequest.SignUpStatus signUpCertStatus) {
 		// 先查询requestId是否存在
 		SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
-				.eq(SysUserSub::getGigType, GigTypeEnum.OLADING)
 				.eq(SysUserSub::getRequestId, requestId));
 		if (userSub == null) {
+			log.error("{} requestId不存在", requestId);
 			throw new ValidateCodeException("requestId不存在");
 		}
 
@@ -256,7 +255,7 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
 			log.info("=============================发送证照上传MQ==================================");
 			UserSignCertDTO userSignCertDTO = new UserSignCertDTO();
 			userSignCertDTO.setUserId(userSub.getUserId());
-			userSignCertDTO.setGigTypeList(Collections.singletonList(GigTypeEnum.OLADING));
+			userSignCertDTO.setGigTypeList(Collections.singletonList(userSub.getGigType()));
 			sysUserSignCertService.batchChannelCert(userSignCertDTO);
 			subMap.put("certStatus", OladingCertStatus.SIGNED.name());
 			updateUserSub.setCertStatus(Integer.valueOf(OladingCertStatus.SIGNED.getCode()));
@@ -274,7 +273,7 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
 		// 结果放到redis
 		String key = CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + userSub.getUserId();
 		Map<String, Object> result = MapUtil.newHashMap(1);
-		result.put("OLADING", subMap);
+		result.put(userSub.getGigType().name(), subMap);
 		redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
 	}
 
@@ -288,9 +287,9 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
 	public void oladingUploadIdCardImage(String requestId, OladingCommonRequest.UploadIdCardImageStatus uploadIdCertStatus) {
 		// 先查询requestId是否存在
 		SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
-				.eq(SysUserSub::getGigType, GigTypeEnum.OLADING)
 				.eq(SysUserSub::getRequestId, requestId));
 		if (userSub == null) {
+			log.error("{} requestId不存在", requestId);
 			throw new ValidateCodeException("requestId不存在");
 		}
 
@@ -301,8 +300,9 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
 			log.info("=============================发送协议上传MQ==================================");
 			UserSignCertDTO userSignCertDTO = new UserSignCertDTO();
 			userSignCertDTO.setUserId(userSub.getUserId());
-			userSignCertDTO.setGigTypeList(Collections.singletonList(GigTypeEnum.OLADING));
+			userSignCertDTO.setGigTypeList(Collections.singletonList(userSub.getGigType()));
 			sysUserSignCertService.batchChannelCert(userSignCertDTO);
+
 			subMap.put("certStatus", OladingCertStatus.SIGNED.name());
 			updateUserSubWrapper.set(SysUserSub::getCertStatus, Integer.valueOf(OladingCertStatus.SIGNED.getCode()));
 		} else {
@@ -321,7 +321,7 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
 		// 结果放到redis
 		String key = CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + userSub.getUserId();
 		Map<String, Object> result = MapUtil.newHashMap(1);
-		result.put("OLADING", subMap);
+		result.put(userSub.getGigType().name(), subMap);
 		redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
 	}
 
@@ -335,19 +335,27 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
 	public void oladingUploadTaxpayerAgreement(String requestId, OladingCommonRequest.UploadTaxpayerAgreementStatus agreementStatus) {
 		// 先查询requestId是否存在
 		SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
-				.eq(SysUserSub::getGigType, GigTypeEnum.OLADING)
 				.eq(SysUserSub::getRequestId, requestId));
 		if (userSub == null) {
+			log.error("{} requestId不存在", requestId);
 			throw new ValidateCodeException("requestId不存在");
 		}
 
 		Map<String, String> subMap = new HashMap<>();
 		SysUserSub updateUserSub = new SysUserSub();
 		if (OladingCommonRequest.UploadTaxpayerAgreementStatus.SUCCESS.equals(agreementStatus)) {
+			// 如果成功,则发送核身视频上传MQ
+			log.info("=============================发送核身视频上传MQ==================================");
+			UserSignCertDTO userSignCertDTO = new UserSignCertDTO();
+			userSignCertDTO.setUserId(userSub.getUserId());
+			userSignCertDTO.setGigTypeList(Collections.singletonList(userSub.getGigType()));
+			userSignCertDTO.setUploadFaceID(true);
+			sysUserSignCertService.batchChannelCert(userSignCertDTO);
+
 			subMap.put("certStatus", OladingCertStatus.CERT.name());
 			updateUserSub.setCertStatus(Integer.valueOf(OladingCertStatus.CERT.getCode()));
 		} else {
-			subMap.put("certStatus", OladingCertStatus.SIGNED.name()); // TODO 更新状态
+			subMap.put("certStatus", OladingCertStatus.SIGNED.name());
 			updateUserSub.setCertStatus(Integer.valueOf(OladingCertStatus.SIGNED.getCode()));
 		}
 		updateUserSub.setId(userSub.getId());
@@ -360,7 +368,7 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
 		// 结果放到redis
 		String key = CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + userSub.getUserId();
 		Map<String, Object> result = MapUtil.newHashMap(1);
-		result.put("OLADING", subMap);
+		result.put(userSub.getGigType().name(), subMap);
 		redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
 	}
 }

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

@@ -24,6 +24,7 @@ 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;
@@ -299,7 +300,14 @@ 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())
+						&& !OladingCertStatus.CERT.getCode().equals(String.valueOf(sysUserSub.getCertStatus()))) {
+					// 易联并且渠道是金园数科(自由职家)
+					return true;
+				} else if (GigTypeEnum.YEE.equals(sysUserSub.getGigType())
+						&& GigYeeChannelEnum.DEFAULT.equals(sysUserSub.getGigChannel())
 						&& !YeeCertStatus.SIGNED.getCode().equals(String.valueOf(sysUserSub.getCertStatus()))) {
+					// 易联并且渠道是默认
 					return true;
 				} else if (GigTypeEnum.OLADING.equals(sysUserSub.getGigType())
 						&& !OladingCertStatus.CERT.getCode().equals(String.valueOf(sysUserSub.getCertStatus()))) {
@@ -317,8 +325,10 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 				}
 				// 请求流水号
 				String requestId = RandomStringUtils.randomAlphabetic(16);
+				// 是否需要传核身视频
+				boolean uploadFaceID = userSignCertDTO.getUploadFaceID() != null && userSignCertDTO.getUploadFaceID();
 				// 封装请求参数
-				GigInfoModel infoModel = buildChannelCertModel(sysUser, userSub, dept.getTaxCode(), requestId);
+				GigInfoModel infoModel = this.buildChannelCertModel(sysUser, userSub, dept.getTaxCode(), requestId, uploadFaceID);
 				// 更新为进行中状态
 				SysUserSub updateUserSub = new SysUserSub();
 				updateUserSub.setId(userSub.getId());
@@ -427,9 +437,10 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 	 * @param userSub
 	 * @param entCode
 	 * @param requestId
+	 * @param uploadFaceID
 	 * @return
 	 */
-	private GigInfoModel buildChannelCertModel(SysUser sysUser, SysUserSub userSub, String entCode, String requestId) {
+	private GigInfoModel buildChannelCertModel(SysUser sysUser, SysUserSub userSub, String entCode, String requestId, boolean uploadFaceID) {
 		// 基础信息
 		GigBaseInfoModel baseInfoModel = new GigBaseInfoModel();
 		baseInfoModel.setRequestId(requestId);
@@ -445,11 +456,12 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 		userInfoModel.setIdCard(sysUser.getIdCardNumber());
 		userInfoModel.setIdCardType(MemberIDCardType.ID_CARD);
 		userInfoModel.setMemberType(MemberType.YAOYI_EXCLUSIVE_PERSONNEL);
-		userInfoModel.setEmail("gig_service@yaoyi.net"); // TODO
+		userInfoModel.setEmail("gig_service@yaoyi.net");
 		userInfoModel.setAddress("北京市-房山区-长阳镇");
 		userInfoModel.setPayChannel(PayChannel.BANK_CARD);
 		userInfoModel.setBankPhone(userSub.getBankPhone());
 		userInfoModel.setBankCard(userSub.getBankCardNumber());
+		userInfoModel.setUploadFaceID(uploadFaceID);
 		userInfoModel.setIdCardFront(StrUtil.isBlank(userSub.getIdCardFrontUrl())
 				? null : userSub.getIdCardFrontUrl().startsWith("https")
 				? userSub.getIdCardFrontUrl() : upmsConfig.getClientUrl() + userSub.getIdCardFrontUrl());