|
@@ -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
|