Selaa lähdekoodia

Merge branch 'feat-signcert-20220301'

shc 3 vuotta sitten
vanhempi
commit
cbddd331a1

+ 5 - 0
db/v2.0/220301.sql

@@ -17,6 +17,7 @@ create table if not exists hnqzx.sys_user_sub
     cert_video1_url   varchar(255)     null comment '认证视频1',
     cert_video2_url   varchar(255)     null comment '认证视频1',
     agreement_url     varchar(255)     null comment '协议',
+    request_id        varchar(255)     null comment '请求流水号',
     create_time       datetime         null comment '创建时间',
     create_user       int              null comment '创建人',
     update_time       datetime         null comment '更新时间',
@@ -24,3 +25,7 @@ create table if not exists hnqzx.sys_user_sub
 )
     comment '用户签约认证主体信息表' charset = utf8mb4;
 
+
+alter table sys_user
+    add bank_phone varchar(11) null comment '银行预留手机号';
+

+ 5 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/entity/SysUser.java

@@ -264,6 +264,11 @@ public class SysUser implements Serializable {
 	@ApiModelProperty(value="银行卡账号")
 	private String bankCardNumber;
 
+	/**
+	 * 银行预留手机号
+	 */
+	private String bankPhone;
+
 	/**
 	 * 人力家认证状态
 	 */

+ 10 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/vo/UserVO.java

@@ -232,6 +232,11 @@ public class UserVO implements Serializable {
 
 	private String bankCardNumber;
 
+	/**
+	 * 银行预留手机号
+	 */
+	private String bankPhone;
+
 	/**
 	 * 人力家认证状态
 	 */
@@ -255,4 +260,9 @@ public class UserVO implements Serializable {
 	 */
 	private String[] certStatusArr;
 
+	/**
+	 * 不同渠道认证信息列表 ?为SysUserSubVO对象
+	 */
+	private List<?> certList;
+
 }

+ 2 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -31,7 +31,6 @@ import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
 import com.qunzhixinxi.hnqz.admin.config.UpmsConfig;
 import com.qunzhixinxi.hnqz.admin.entity.SysCertResultRecord;
 import com.qunzhixinxi.hnqz.admin.entity.SysDeptSub;
-import com.qunzhixinxi.hnqz.admin.entity.SysUserSub;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaAgent;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaDistribution;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaDrugEnt;
@@ -60,7 +59,6 @@ import com.qunzhixinxi.hnqz.admin.entity.vo.SysUserSubVO;
 import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.SubjectTypeEnum;
-import com.qunzhixinxi.hnqz.admin.enums.UserSignPurposeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.UserSignResultEnum;
 import com.qunzhixinxi.hnqz.admin.mapper.SysCertResultRecordMapper;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
@@ -621,6 +619,8 @@ public class ApiController {
 				mapOne.put("userSign", sysU.getUserSign());
 				mapOne.put("certRemark", sysU.getCertRemark());
 				mapOne.put("taxHelperAgreementSignature", sysU.getTaxHelperAgreementSignature());
+				mapOne.put("bankCardNumber", sysU.getBankCardNumber());
+				mapOne.put("bankPhone", sysU.getBankPhone());
 
 				if (redisTemplate.hasKey(CacheConstants.USER_NOTICE_KEY + sysU.getUserId())) {
 					mapOne.put("notice", true);

+ 74 - 52
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/SysUserController.java

@@ -20,8 +20,6 @@
 package com.qunzhixinxi.hnqz.admin.controller;
 
 import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.map.MapUtil;
-import cn.hutool.core.util.ArrayUtil;
 import cn.hutool.core.util.IdcardUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.bean.BeanUtil;
@@ -41,13 +39,14 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysRole;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUserRole;
 import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
-import com.qunzhixinxi.hnqz.admin.config.UpmsConfig;
 import com.qunzhixinxi.hnqz.admin.entity.SysDeptSub;
 import com.qunzhixinxi.hnqz.admin.entity.SysUserSub;
 import com.qunzhixinxi.hnqz.admin.entity.dto.CommonUserDTO;
 import com.qunzhixinxi.hnqz.admin.entity.input.UserCertificationInput;
 import com.qunzhixinxi.hnqz.admin.entity.model.excel.CommonUserExcelModel;
+import com.qunzhixinxi.hnqz.admin.entity.vo.SysUserSubVO;
 import com.qunzhixinxi.hnqz.admin.enums.GigTypeEnum;
+import com.qunzhixinxi.hnqz.admin.enums.OladingCertStatus;
 import com.qunzhixinxi.hnqz.admin.enums.RenlijiaCertStatus;
 import com.qunzhixinxi.hnqz.admin.enums.SubjectTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.YeeCertStatus;
@@ -56,11 +55,8 @@ import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptSubService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserSubService;
-import com.qunzhixinxi.hnqz.admin.service.WmDaAgentService;
-import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntService;
 import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
 import com.qunzhixinxi.hnqz.common.core.util.R;
-import com.qunzhixinxi.hnqz.common.ding.service.DingService;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
 import com.qunzhixinxi.hnqz.common.qcc.entity.EmployeeGetListDataItem;
 import com.qunzhixinxi.hnqz.common.qcc.entity.EmployeeGetListResponse;
@@ -69,7 +65,6 @@ import com.qunzhixinxi.hnqz.common.qcc.service.QccService;
 import com.qunzhixinxi.hnqz.common.security.annotation.Inner;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import com.qunzhixinxi.hnqz.common.taxhelper.enums.TaxHelperCertStatus;
-import com.qunzhixinxi.hnqz.common.taxhelper.service.TaxHelperService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
@@ -1469,52 +1464,79 @@ public class SysUserController {
 			sysDeptSub.setDeptId(userVO.getDeptId());
 			sysDeptSub.setEnableFlag(SubjectTypeEnum.ENABLE_FLAG_TRUE.getCode());
 			List<SysDeptSub> subList = sysDeptSubService.list(Wrappers.query(sysDeptSub));
-			// 查询当前用户认证渠道
-			List<SysUserSub> userSubList = sysUserSubService.list(Wrappers.<SysUserSub>lambdaQuery()
-					.eq(SysUserSub::getUserId, userVO.getUserId()));
-
-			if (CollUtil.isNotEmpty(userSubList) && CollUtil.isNotEmpty(subList)) {
-				Map<GigTypeEnum, String> certStatusMap = userSubList.stream()
-						.collect(Collectors.toMap(SysUserSub::getGigType,
-								sysUserSub -> {
-									String certStatuName = "";
-									switch (sysUserSub.getGigType()) {
-										case TAX_HELPOR:
-											certStatuName = TaxHelperCertStatus.resolve(sysUserSub.getCertStatus()).getDesc();
-											break;
-										case YEE:
-											certStatuName = YeeCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).getMessage();
-											break;
-										case REN_LI_JIA:
-											certStatuName = RenlijiaCertStatus.resolve(sysUserSub.getCertStatus()).getMessage();
-											break;
-										case OLADING:
-											certStatuName = YeeCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).getMessage();
-											break;
-										default:
-											certStatuName = "";
-									}
-									return certStatuName;
-								}));
-				List<String> subTypeList = subList.stream().map(SysDeptSub::getSubjectType).collect(Collectors.toList());
-				List<String> certStatusNameList = new ArrayList<>();
-				if (subTypeList.contains(String.valueOf(GigTypeEnum.REN_LI_JIA.getCode()))) {
-					certStatusNameList.add(StrUtil.isBlank(certStatusMap.get(GigTypeEnum.REN_LI_JIA)) ?
-							RenlijiaCertStatus.CER_STATUS_4.getMessage() : certStatusMap.get(GigTypeEnum.REN_LI_JIA));
-				}
-				if (subTypeList.contains(String.valueOf(GigTypeEnum.TAX_HELPOR.getCode()))) {
-					certStatusNameList.add(StrUtil.isBlank(certStatusMap.get(GigTypeEnum.TAX_HELPOR)) ?
-							TaxHelperCertStatus.UN_CERT.getDesc() : certStatusMap.get(GigTypeEnum.TAX_HELPOR));
-				}
-				if (subTypeList.contains(String.valueOf(GigTypeEnum.YEE.getCode()))) {
-					certStatusNameList.add(StrUtil.isBlank(certStatusMap.get(GigTypeEnum.YEE)) ?
-							YeeCertStatus.UN_SIGNED.getMessage() : certStatusMap.get(GigTypeEnum.YEE));
-				}
-				if (subTypeList.contains(String.valueOf(GigTypeEnum.OLADING.getCode()))) {
-					certStatusNameList.add(StrUtil.isBlank(certStatusMap.get(GigTypeEnum.OLADING)) ?
-							YeeCertStatus.UN_SIGNED.getMessage() : certStatusMap.get(GigTypeEnum.OLADING));
+
+			if (CollUtil.isNotEmpty(subList)) {
+				// 查询当前用户认证渠道
+				List<SysUserSub> userSubList = sysUserSubService.list(Wrappers.<SysUserSub>lambdaQuery()
+						.eq(SysUserSub::getUserId, userVO.getUserId()));
+
+				if (CollUtil.isNotEmpty(userSubList)) {
+					// 不同渠道认证信息列表
+					List<SysUserSubVO> certList = new ArrayList<>();
+					userSubList.forEach(sysUserSub -> {
+						SysUserSubVO userSubVO = BeanUtil.copyProperties(sysUserSub, SysUserSubVO.class, "certStatus");
+						switch (sysUserSub.getGigType()) {
+							case REN_LI_JIA:
+								userSubVO.setCertStatus(RenlijiaCertStatus.resolve(sysUserSub.getCertStatus()).name());
+								break;
+							case TAX_HELPOR:
+								userSubVO.setCertStatus(TaxHelperCertStatus.resolve(sysUserSub.getCertStatus()).name());
+								break;
+							case YEE:
+								userSubVO.setCertStatus(YeeCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
+								break;
+							case OLADING:
+								userSubVO.setCertStatus(OladingCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
+								break;
+							default:
+						}
+						certList.add(userSubVO);
+					});
+					userVO.setCertList(certList);
+
+					// 不同渠道认证名称,封装成中文名称数组格式
+					Map<GigTypeEnum, String> certStatusMap = userSubList.stream()
+							.collect(Collectors.toMap(SysUserSub::getGigType,
+									sysUserSub -> {
+										String certStatuName = "";
+										switch (sysUserSub.getGigType()) {
+											case TAX_HELPOR:
+												certStatuName = TaxHelperCertStatus.resolve(sysUserSub.getCertStatus()).getDesc();
+												break;
+											case YEE:
+												certStatuName = YeeCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).getMessage();
+												break;
+											case REN_LI_JIA:
+												certStatuName = RenlijiaCertStatus.resolve(sysUserSub.getCertStatus()).getMessage();
+												break;
+											case OLADING:
+												certStatuName = OladingCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).getMessage();
+												break;
+											default:
+												certStatuName = "";
+										}
+										return certStatuName;
+									}));
+					List<String> subTypeList = subList.stream().map(SysDeptSub::getSubjectType).collect(Collectors.toList());
+					List<String> certStatusNameList = new ArrayList<>();
+					if (subTypeList.contains(String.valueOf(GigTypeEnum.REN_LI_JIA.getCode()))) {
+						certStatusNameList.add(StrUtil.isBlank(certStatusMap.get(GigTypeEnum.REN_LI_JIA)) ?
+								RenlijiaCertStatus.CER_STATUS_4.getMessage() : certStatusMap.get(GigTypeEnum.REN_LI_JIA));
+					}
+					if (subTypeList.contains(String.valueOf(GigTypeEnum.TAX_HELPOR.getCode()))) {
+						certStatusNameList.add(StrUtil.isBlank(certStatusMap.get(GigTypeEnum.TAX_HELPOR)) ?
+								TaxHelperCertStatus.UN_CERT.getDesc() : certStatusMap.get(GigTypeEnum.TAX_HELPOR));
+					}
+					if (subTypeList.contains(String.valueOf(GigTypeEnum.YEE.getCode()))) {
+						certStatusNameList.add(StrUtil.isBlank(certStatusMap.get(GigTypeEnum.YEE)) ?
+								YeeCertStatus.UN_SIGNED.getMessage() : certStatusMap.get(GigTypeEnum.YEE));
+					}
+					if (subTypeList.contains(String.valueOf(GigTypeEnum.OLADING.getCode()))) {
+						certStatusNameList.add(StrUtil.isBlank(certStatusMap.get(GigTypeEnum.OLADING)) ?
+								OladingCertStatus.UN_SIGNED.getMessage() : certStatusMap.get(GigTypeEnum.OLADING));
+					}
+					userVO.setCertStatusArr(certStatusNameList.toArray(new String[0]));
 				}
-				userVO.setCertStatusArr(certStatusNameList.toArray(new String[0]));
 			}
 
 		});

+ 38 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/SysUserSignCertController.java

@@ -6,9 +6,11 @@ import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 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.service.SysUserService;
 import com.qunzhixinxi.hnqz.admin.service.gig.SysUserSignCertService;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
@@ -38,8 +40,36 @@ public class SysUserSignCertController {
 
 	private final SysUserSignCertService sysUserSignCertService;
 
+	private final SysUserService sysUserService;
+
 	private final RedisTemplate redisTemplate;
 
+	/**
+	 * 保存银行卡信息
+	 *
+	 * @param userSignCertDTO
+	 * @return
+	 */
+	@SysLog("保存银行卡信息")
+	@PostMapping("/save-bank-info")
+	public R<?> saveBankInfo(@RequestBody UserSignCertDTO userSignCertDTO) {
+		if (userSignCertDTO.getUserId() == null) {
+			return R.failed("userId不能为空");
+		}
+		if (StrUtil.isBlank(userSignCertDTO.getBankPhone()) || !Validator.isMobile(userSignCertDTO.getBankPhone())) {
+			return R.failed("银行预留手机号不正确");
+		}
+		if (StrUtil.length(userSignCertDTO.getBankCardNumber()) < 16) {
+			return R.failed("银行卡号不正确");
+		}
+		SysUser sysUser = new SysUser();
+		sysUser.setUserId(userSignCertDTO.getUserId());
+		sysUser.setBankCardNumber(userSignCertDTO.getBankCardNumber());
+		sysUser.setBankPhone(userSignCertDTO.getBankPhone());
+
+		return R.ok(sysUserService.updateById(sysUser));
+	}
+
 	/**
 	 * 保存用户基础信息
 	 *
@@ -144,7 +174,11 @@ public class SysUserSignCertController {
 			return R.failed("数据异常");
 		}
 		for (SysUserSub userSub : userSubList) {
-			if (!userSignCertDTO.getGigTypeList().contains(GigTypeEnum.REN_LI_JIA) && StrUtil.isBlank(userSub.getAgreementUrl())) {
+			if (userSignCertDTO.getGigTypeList().contains(GigTypeEnum.REN_LI_JIA)) {
+				// 人力家不校验
+				continue;
+			}
+			if (StrUtil.isBlank(userSub.getAgreementUrl())) {
 				return R.failed("协议不能为空");
 			}
 			if (!StrUtil.isAllNotBlank(userSub.getIdCardBackUrl(), userSub.getIdCardFrontUrl(),
@@ -172,6 +206,9 @@ public class SysUserSignCertController {
 		if (StrUtil.isBlank(userSignCertDTO.getBankPhone())) {
 			return R.failed("银行预留手机号不能为空");
 		}
+		if (StrUtil.isBlank(userSignCertDTO.getBankCardNumber())) {
+			return R.failed("银行卡号不能为空");
+		}
 		sysUserSignCertService.bindCardVerification(userSignCertDTO);
 
 		return R.ok();

+ 7 - 3
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mq/GigSignCertReceiver.java

@@ -117,9 +117,6 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 							break;
 						case REN_LI_JIA:
 							// TODO
-							// 本次结果存入redis
-							redisTemplate.opsForValue().set(CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + user.getUserId(),
-									JSONUtil.toJsonStr(subjectTypes), 1, TimeUnit.MINUTES);
 							break;
 						case OLADING:
 							oladingHandler(user, dept, subjectResult);
@@ -173,6 +170,13 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 			if (userSignCertDTO != null) {
 				if (StrUtil.isNotBlank(userSignCertDTO.getBankCardNumber())) {
 					updateWrapper.set(SysUserSub::getBankCardNumber, userSignCertDTO.getBankCardNumber());
+					updateWrapper.set(SysUserSub::getBankPhone, userSignCertDTO.getBankPhone());
+					// 更新user表银行卡
+					SysUser sysUser = new SysUser();
+					sysUser.setUserId(user.getUserId());
+					sysUser.setBankCardNumber(userSignCertDTO.getBankCardNumber());
+					sysUser.setBankPhone(userSignCertDTO.getBankPhone());
+					sysUserService.updateById(sysUser);
 				}
 				// redis删除银行卡号
 				redisTemplate.delete(cacheKeyPrefix);

+ 9 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/SysUserService.java

@@ -25,6 +25,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.qunzhixinxi.hnqz.admin.api.dto.UserDTO;
 import com.qunzhixinxi.hnqz.admin.api.dto.UserInfo;
 import com.qunzhixinxi.hnqz.admin.api.dto.UserPwd;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
 import com.qunzhixinxi.hnqz.admin.entity.dto.CommonUserDTO;
@@ -122,6 +123,14 @@ public interface SysUserService extends IService<SysUser> {
 
 	SysUser getByIdIgnore(String taskUserId);
 
+	/**
+	 * 人力家认证
+	 * @param sysUser
+	 * @param sysDept
+	 * @return
+	 */
+	Map<String, String> certByRenLiJia(SysUser sysUser, SysDept sysDept);
+
 	R batchChannelCert(UserCertificationInput input);
 
 	R getAuthInfo(UserCertificationInput input);

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

@@ -17,7 +17,6 @@ import com.qunzhixinxi.hnqz.admin.config.UpmsConfig;
 import com.qunzhixinxi.hnqz.admin.entity.SysDeptSub;
 import com.qunzhixinxi.hnqz.admin.entity.SysUserSub;
 import com.qunzhixinxi.hnqz.admin.entity.dto.UserSignCertDTO;
-import com.qunzhixinxi.hnqz.admin.entity.input.UserCertificationInput;
 import com.qunzhixinxi.hnqz.admin.entity.model.GigBaseInfoModel;
 import com.qunzhixinxi.hnqz.admin.entity.model.GigInfoModel;
 import com.qunzhixinxi.hnqz.admin.entity.model.GigUserInfoModel;
@@ -39,7 +38,6 @@ import com.qunzhixinxi.hnqz.admin.service.SysUserService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserSubService;
 import com.qunzhixinxi.hnqz.admin.service.gig.SysUserSignCertService;
 import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
-import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.rabbitmq.client.RabbitMqClient;
 import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
@@ -56,6 +54,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
@@ -164,11 +163,14 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 		// 查询user
 		SysUser queryUser = sysUserService.getById(userSignCertDTO.getUserId());
 
-		if (StrUtil.isNotBlank(userSignCertDTO.getIdCardNumber())) {
+		if (StrUtil.isNotBlank(userSignCertDTO.getIdCardNumber()) || StrUtil.isNotBlank(userSignCertDTO.getBankPhone())
+				|| StrUtil.isNotBlank(userSignCertDTO.getBankCardNumber())) {
 			// 更新用户信息
 			SysUser updateUser = new SysUser();
 			updateUser.setUserId(userSignCertDTO.getUserId());
 			updateUser.setIdCardNumber(userSignCertDTO.getIdCardNumber());
+			updateUser.setBankPhone(userSignCertDTO.getBankPhone());
+			updateUser.setBankCardNumber(userSignCertDTO.getBankCardNumber());
 			sysUserService.updateById(updateUser);
 		}
 		// 更新用户签约认证主体信息
@@ -382,23 +384,34 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 				break;
 			case REN_LI_JIA:
 				// 人力家直接调用原有发短信接口
-				UserCertificationInput input = new UserCertificationInput();
-				input.setUserId(sysUser.getUserId());
-				input.setIdCardNumber(sysUser.getIdCardNumber());
-				input.setBankCardNumber(userSub.getBankCardNumber());
-				input.setSubList(new String[]{String.valueOf(GigTypeEnum.REN_LI_JIA.getCode())});
-				R r = sysUserService.batchChannelCert(input);
+				SysDept dept = new SysDept();
+				dept.setDeptId(sysUser.getDeptId());
+				Map<String, String> renLiJiaResult = sysUserService.certByRenLiJia(sysUser, dept);
 				// 更新状态
 				SysUserSub updateUserSub = new SysUserSub();
 				updateUserSub.setId(userSub.getId());
-				RenlijiaCertStatus certStatus =
-						r.getCode() == 0 ? RenlijiaCertStatus.CER_STATUS_3 : RenlijiaCertStatus.CER_STATUS_2;
-				updateUserSub.setCertStatus(certStatus.getCode());
-				updateUserSub.setCertRemark(r.getMsg());
-				updateUserSub.setCallbackStatus(GigCallBackStatus.IN_PROGRESS);
+				Integer renLijiaCertStatus =
+						Optional.ofNullable(sysUser.getRljCertStatus()).orElseGet(RenlijiaCertStatus.CER_STATUS_4::getCode);
+				// 结果状态
+				RenlijiaCertStatus certStatus = RenlijiaCertStatus.resolve(renLijiaCertStatus);
+				updateUserSub.setCertStatus(sysUser.getRljCertStatus());
+				// 发起成功或认证成功,才修改CallbackStatus状态
+				if (RenlijiaCertStatus.CER_STATUS_1.equals(certStatus) || RenlijiaCertStatus.CER_STATUS_3.equals(certStatus)) {
+					updateUserSub.setCallbackStatus(GigCallBackStatus.IN_PROGRESS);
+				} else {
+					updateUserSub.setCallbackStatus(GigCallBackStatus.RETURNED);
+				}
+				updateUserSub.setCertRemark(renLiJiaResult.get("msg"));
 				updateUserSub.setUpdateTime(LocalDateTime.now());
 				updateUserSub.setUpdateUser(0);
 				sysUserSubService.updateById(updateUserSub);
+				// 结果放到redis
+				String key = CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + userSub.getUserId();
+				Map<String, String> subMap = new HashMap<>();
+				subMap.put("certStatus", certStatus.name());
+				Map<String, Object> result = MapUtil.newHashMap(1);
+				result.put("REN_LI_JIA", subMap);
+				redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
 				// 默认返回false,不触发发送mq
 				flag = false;
 			default:
@@ -481,6 +494,7 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 		// 基础信息
 		GigBaseInfoModel baseInfoModel = new GigBaseInfoModel();
 		baseInfoModel.setGigType(userSub.getGigType());
+		baseInfoModel.setGigChannel(userSub.getGigChannel());
 		baseInfoModel.setBankCardOpt("captcha");
 		baseInfoModel.setNotifyUrl(taxNotifyConfig.getNotifyUrl());
 		// 用户信息
@@ -489,8 +503,8 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 		userInfoModel.setUsername(sysUser.getUsername());
 		userInfoModel.setEntCode(dept.getTaxCode());
 		userInfoModel.setIdCard(sysUser.getIdCardNumber());
-		userInfoModel.setBankPhone(userSub.getBankPhone());
-		userInfoModel.setBankCard(userSub.getBankCardNumber());
+		userInfoModel.setBankPhone(userSignCertDTO.getBankPhone());
+		userInfoModel.setBankCard(userSignCertDTO.getBankCardNumber());
 
 		GigInfoModel infoModel = new GigInfoModel();
 		infoModel.setBaseInfo(baseInfoModel);
@@ -517,32 +531,39 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 			throw new RuntimeException("数据异常");
 		}
 		BaseMap gigInfo = new BaseMap();
-		userSubList.forEach(userSub -> {
-			// 新银行卡号缓存到redis
-			String cacheKey = String.format("%s_%s_%s", CacheConstants.BIND_CARD_CONFIRM_NEW_BANK_CARD, userSub.getUserId(), userSub.getGigType().name());
-			redisTemplate.opsForValue().set(cacheKey, userSignCertDTO);
-
-			// 查询user
-			SysUser sysUser = sysUserService.getById(userSignCertDTO.getUserId());
-			// 查询dept
-			SysDept dept = sysDeptService.getById(sysUser.getDeptId());
-			// 封装请求数据
-			if (GigTypeEnum.TAX_HELPOR.equals(userSub.getGigType())) {
-				gigInfo.put(userSub.getGigType().name(),
-						this.buildTaxHelperBindCardConfirmModel(sysUser, userSub, dept.getTaxCode(), userSignCertDTO.getBankCardNumber(), userSignCertDTO.getVerifyCode()));
-			} else if (GigTypeEnum.YEE.equals(userSub.getGigType())) {
-				gigInfo.put(userSub.getGigType().name(),
-						this.buildYeeBindCardConfirmModel(sysUser, userSub, dept.getTaxCode(), userSignCertDTO.getBankCardNumber()));
-			} else if (GigTypeEnum.OLADING.equals(userSub.getGigType())) {
-				gigInfo.put(userSub.getGigType().name(),
-						this.buildOladingBindCardConfirmModel(sysUser, userSub, dept.getTaxCode(), userSignCertDTO.getBankCardNumber()));
-			}
-			// 更新为进行中状态
-			SysUserSub updateUserSub = new SysUserSub();
-			updateUserSub.setId(userSub.getId());
-			updateUserSub.setCallbackStatus(GigCallBackStatus.IN_PROGRESS);
-			sysUserSubService.updateById(updateUserSub);
-		});
+		userSubList.stream()
+				// 人力家暂过滤掉
+				.filter(sysUserSub -> !GigTypeEnum.REN_LI_JIA.equals(sysUserSub.getGigType()))
+				.forEach(userSub -> {
+					// 新银行卡号缓存到redis
+					String cacheKey = String.format("%s_%s_%s", CacheConstants.BIND_CARD_CONFIRM_NEW_BANK_CARD, userSub.getUserId(), userSub.getGigType().name());
+					redisTemplate.opsForValue().set(cacheKey, userSignCertDTO);
+
+					// 查询user
+					SysUser sysUser = sysUserService.getById(userSignCertDTO.getUserId());
+					// 查询dept
+					SysDept dept = sysDeptService.getById(sysUser.getDeptId());
+					// 封装请求数据
+					if (GigTypeEnum.TAX_HELPOR.equals(userSub.getGigType())) {
+						userSub.setBankPhone(userSignCertDTO.getBankPhone());
+						userSub.setBankCardNumber(userSignCertDTO.getBankCardNumber());
+						gigInfo.put(userSub.getGigType().name(),
+								this.buildTaxHelperBindCardConfirmModel(sysUser, userSub, dept.getTaxCode(), userSignCertDTO.getBankCardNumber(), userSignCertDTO.getVerifyCode()));
+					} else if (GigTypeEnum.YEE.equals(userSub.getGigType())) {
+						gigInfo.put(userSub.getGigType().name(),
+								this.buildYeeBindCardConfirmModel(sysUser, userSub, dept.getTaxCode(), userSignCertDTO.getBankCardNumber()));
+					} else if (GigTypeEnum.OLADING.equals(userSub.getGigType())) {
+						gigInfo.put(userSub.getGigType().name(),
+								this.buildOladingBindCardConfirmModel(sysUser, userSub, dept.getTaxCode(), userSignCertDTO.getBankCardNumber()));
+					}
+					// 更新为进行中状态
+					SysUserSub updateUserSub = new SysUserSub();
+					updateUserSub.setId(userSub.getId());
+					updateUserSub.setCallbackStatus(GigCallBackStatus.IN_PROGRESS);
+					updateUserSub.setUpdateTime(LocalDateTime.now());
+					updateUserSub.setUpdateUser(0);
+					sysUserSubService.updateById(updateUserSub);
+				});
 
 		if (CollUtil.isNotEmpty(gigInfo)) {
 			// 发送mq

+ 9 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/SysUserServiceImpl.java

@@ -696,7 +696,15 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 		return resultMap;
 	}
 
-	private Map<String, String> certByRenLiJia(SysUser sysUser, SysDept sysDept) {
+	/**
+	 * 人力家认证
+	 *
+	 * @param sysUser
+	 * @param sysDept
+	 * @return
+	 */
+	@Override
+	public Map<String, String> certByRenLiJia(SysUser sysUser, SysDept sysDept) {
 		Map<String, String> resultMap = new HashMap<>(2);
 		resultMap.put("msg", "人力家接口调用失败");
 		SysDeptSub subCondition = new SysDeptSub();

+ 1 - 0
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/SysUserMapper.xml

@@ -623,6 +623,7 @@
 		u.rlj_cert_status,
 		u.cert_remark,
 		u.bank_card_number,
+	  	u.bank_phone,
 		u.tax_helper_agreement_signature
 		FROM
 		sys_user  u