浏览代码

feat: 保存用户时复用已有的认证信息

lixuesong 3 年之前
父节点
当前提交
68a9039f7b

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

@@ -47,6 +47,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 用户签约认证服务
@@ -155,11 +156,35 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 			SysUser updateUser = new SysUser();
 			updateUser.setUserId(userSignCertDTO.getUserId());
 			updateUser.setIdCardNumber(userSignCertDTO.getIdCardNumber());
-//		updateUser.setBankCardNumber(userSignCertDTO.getBankCardNumber());
 			sysUserService.updateById(updateUser);
 		}
+		// 查找是否有可复用的认证信息
+		List<SysUserSub> userSubList =this.listUserSignCert(userSignCertDTO.getUserId());
+		List<SysUserSub> copyUserSubList = userSubList.stream().filter(sysUserSub -> {
+			// 过滤只要认证成功的数据
+			if (GigTypeEnum.TAX_HELPOR.equals(sysUserSub.getGigType())
+					&& TaxHelperCertStatus.CHECKED_UNBIND.getCode() == sysUserSub.getCertStatus()
+					&& TaxHelperCertStatus.CERT.getCode() == sysUserSub.getCertStatus()) {
+				return true;
+			} else if (GigTypeEnum.YEE.equals(sysUserSub.getGigType())
+					&& YeeCertStatus.SIGNED.getCode().equals(String.valueOf(sysUserSub.getCertStatus()))) {
+				return true;
+			} else if (GigTypeEnum.OLADING.equals(sysUserSub.getGigType())
+					&& YeeCertStatus.SIGNED.getCode().equals(String.valueOf(sysUserSub.getCertStatus()))) {
+				return true;
+			} else if (GigTypeEnum.REN_LI_JIA.equals(sysUserSub.getGigType())
+					&& RenlijiaCertStatus.CER_STATUS_1.getCode() == sysUserSub.getCertStatus()) {
+				return true;
+			}
+			return false;
+		}).collect(Collectors.toList());
+		SysUserSub copyUserSub = null;
+		if (CollUtil.isNotEmpty(copyUserSubList)) {
+			copyUserSub = copyUserSubList.get(0);
+		}
 		// 更新用户签约认证主体信息
-		userSignCertDTO.getGigTypeList().forEach(gigType -> {
+		final SysUserSub finalCopyUserSub = copyUserSub;
+		userSignCertDTO.getGigTypeList().forEach(gigType -> { // TODO
 			SysUserSub userSub = new SysUserSub();
 			userSub.setUserId(userSignCertDTO.getUserId());
 			userSub.setDeptId(user.getDeptId());
@@ -191,6 +216,12 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 				queryUserSub.setBankCardNumber(userSignCertDTO.getBankCardNumber());
 				queryUserSub.setUpdateTime(LocalDateTime.now());
 				queryUserSub.setUpdateUser(operateUserId);
+				if (finalCopyUserSub != null) {
+					queryUserSub.setIdCardFrontUrl(finalCopyUserSub.getIdCardFrontUrl());
+					queryUserSub.setIdCardBackUrl(finalCopyUserSub.getIdCardBackUrl());
+					queryUserSub.setCertVideo1Url(finalCopyUserSub.getCertVideo1Url());
+					queryUserSub.setCertVideo2Url(finalCopyUserSub.getCertVideo2Url());
+				}
 				sysUserSubService.updateById(queryUserSub);
 			} else {
 				sysUserSubService.save(userSub);