|
@@ -16,6 +16,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
|
import com.qunzhixinxi.hnqz.admin.config.TaxNotifyConfig;
|
|
|
import com.qunzhixinxi.hnqz.admin.config.UpmsConfig;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.SysDeptSub;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.SysUserExtRecord;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.SysUserSub;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.dto.UserSignCertDTO;
|
|
@@ -34,6 +35,7 @@ import com.qunzhixinxi.hnqz.admin.enums.OladingCertStatus;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.PayChannel;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.RenlijiaCertStatus;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.SubjectLocation;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.SubjectTypeEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.YeeCertStatus;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysDeptSubService;
|
|
@@ -156,14 +158,6 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
case OLADING:
|
|
|
userSubVO.setCertStatus(OladingCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
|
|
|
break;
|
|
|
- case JIN_YUAN:
|
|
|
- // 渠道是金园,则展示阿拉钉的状态
|
|
|
- userSubVO.setCertStatus(OladingCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
|
|
|
- break;
|
|
|
- case XIN_TAI_ZI:
|
|
|
- // 渠道是河南薪泰梓,则展示阿拉钉的状态
|
|
|
- userSubVO.setCertStatus(OladingCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
|
|
|
- break;
|
|
|
default:
|
|
|
}
|
|
|
|
|
@@ -208,10 +202,10 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void saveBaseInfo(UserSignCertDTO userSignCertDTO) {
|
|
|
-// HnqzUser user = SecurityUtils.getUser();
|
|
|
-// Integer operateUserId = user.getId();
|
|
|
-// // 查询user
|
|
|
-// SysUser queryUser = sysUserService.getById(userSignCertDTO.getUserId());
|
|
|
+ HnqzUser user = SecurityUtils.getUser();
|
|
|
+ Integer operateUserId = user.getId();
|
|
|
+ // 查询user
|
|
|
+ SysUser queryUser = sysUserService.getById(userSignCertDTO.getUserId());
|
|
|
|
|
|
if (StrUtil.isNotBlank(userSignCertDTO.getIdCardNumber()) || StrUtil.isNotBlank(userSignCertDTO.getBankPhone())
|
|
|
|| StrUtil.isNotBlank(userSignCertDTO.getBankCardNumber())) {
|
|
@@ -224,50 +218,53 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
updateUser.setUpdateTime(LocalDateTime.now());
|
|
|
sysUserService.updateById(updateUser);
|
|
|
}
|
|
|
-// // 更新用户签约认证主体信息
|
|
|
-// userSignCertDTO.getGigTypeList().forEach(gigType -> {
|
|
|
-// // 税邦云单独设置渠道类型
|
|
|
-// GigChannelEnum gigChannel;
|
|
|
-// if (GigTypeEnum.TAX_HELPOR.equals(gigType)) {
|
|
|
-// // 读取用户所认证的企业的结算渠道
|
|
|
-// SysDeptSub deptSub = sysDeptSubService.getOne(Wrappers.<SysDeptSub>lambdaQuery()
|
|
|
-// .eq(SysDeptSub::getDeptId, queryUser.getDeptId())
|
|
|
-// .eq(SysDeptSub::getSubjectType, GigTypeEnum.TAX_HELPOR.getCode())
|
|
|
-// .eq(SysDeptSub::getEnableFlag, SubjectTypeEnum.ENABLE_FLAG_TRUE.getCode()));
|
|
|
-// if (deptSub != null) {
|
|
|
-// gigChannel = GigChannelEnum.resolve(Integer.parseInt(deptSub.getSubjectType()));
|
|
|
-// } else {
|
|
|
-// gigChannel = GigChannelEnum.DEFAULT;
|
|
|
-// }
|
|
|
-// } else {
|
|
|
-// gigChannel = GigChannelEnum.DEFAULT;
|
|
|
-// }
|
|
|
-// SysUserSub queryUserSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
|
|
|
-// .eq(SysUserSub::getUserId, userSignCertDTO.getUserId())
|
|
|
-// .eq(SysUserSub::getGigType, gigType));
|
|
|
-// if (queryUserSub != null) {
|
|
|
-// SysUserSub updateUserSub = new SysUserSub();
|
|
|
-// updateUserSub.setId(queryUserSub.getId());
|
|
|
-// updateUserSub.setCallbackStatus(GigCallBackStatus.NOT_SUBMIT);
|
|
|
-// updateUserSub.setGigChannel(gigChannel);
|
|
|
-// updateUserSub.setBankCardNumber(userSignCertDTO.getBankCardNumber());
|
|
|
-// updateUserSub.setUpdateTime(LocalDateTime.now());
|
|
|
-// updateUserSub.setUpdateUser(operateUserId);
|
|
|
-// sysUserSubService.updateById(updateUserSub);
|
|
|
-// } else {
|
|
|
-// SysUserSub userSub = new SysUserSub();
|
|
|
-// userSub.setUserId(userSignCertDTO.getUserId());
|
|
|
-// userSub.setDeptId(queryUser.getDeptId());
|
|
|
-// userSub.setGigType(gigType);
|
|
|
-// userSub.setGigChannel(gigChannel);
|
|
|
-// userSub.setCallbackStatus(GigCallBackStatus.NOT_SUBMIT);
|
|
|
-// userSub.setBankCardNumber(userSignCertDTO.getBankCardNumber());
|
|
|
-// userSub.setBankPhone(userSignCertDTO.getBankPhone());
|
|
|
-// userSub.setCreateUser(operateUserId);
|
|
|
-// userSub.setCreateTime(LocalDateTime.now());
|
|
|
-// sysUserSubService.save(userSub);
|
|
|
-// }
|
|
|
-// });
|
|
|
+ // 更新用户签约认证主体信息
|
|
|
+ userSignCertDTO.getSubjectLocationList().forEach(subjectLocation -> {
|
|
|
+ // 税邦云单独设置渠道类型
|
|
|
+ GigChannelEnum gigChannel;
|
|
|
+ if (GigTypeEnum.TAX_HELPOR.equals(subjectLocation)) {
|
|
|
+ // 读取用户所认证的企业的结算渠道
|
|
|
+ SysDeptSub deptSub = sysDeptSubService.getOne(Wrappers.<SysDeptSub>lambdaQuery()
|
|
|
+ .eq(SysDeptSub::getDeptId, queryUser.getDeptId())
|
|
|
+ .eq(SysDeptSub::getSubjectType, subjectLocation.getGigType().getCode())
|
|
|
+ .eq(SysDeptSub::getSubjectLocation, subjectLocation)
|
|
|
+ .eq(SysDeptSub::getEnableFlag, SubjectTypeEnum.ENABLE_FLAG_TRUE.getCode()));
|
|
|
+ if (deptSub != null) {
|
|
|
+ gigChannel = GigChannelEnum.resolve(Integer.parseInt(deptSub.getSubjectType()));
|
|
|
+ } else {
|
|
|
+ gigChannel = GigChannelEnum.DEFAULT;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ gigChannel = GigChannelEnum.DEFAULT;
|
|
|
+ }
|
|
|
+ SysUserSub queryUserSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
|
|
|
+ .eq(SysUserSub::getUserId, userSignCertDTO.getUserId())
|
|
|
+ .eq(SysUserSub::getDeptId, queryUser.getDeptId())
|
|
|
+ .eq(SysUserSub::getGigType, subjectLocation.getGigType())
|
|
|
+ .eq(SysUserSub::getSubjectLocation, subjectLocation));
|
|
|
+ if (queryUserSub != null) {
|
|
|
+ SysUserSub updateUserSub = new SysUserSub();
|
|
|
+ updateUserSub.setId(queryUserSub.getId());
|
|
|
+ updateUserSub.setCallbackStatus(GigCallBackStatus.NOT_SUBMIT);
|
|
|
+ updateUserSub.setGigChannel(gigChannel);
|
|
|
+ updateUserSub.setBankCardNumber(userSignCertDTO.getBankCardNumber());
|
|
|
+ updateUserSub.setUpdateTime(LocalDateTime.now());
|
|
|
+ updateUserSub.setUpdateUser(operateUserId);
|
|
|
+ sysUserSubService.updateById(updateUserSub);
|
|
|
+ } else {
|
|
|
+ SysUserSub userSub = new SysUserSub();
|
|
|
+ userSub.setUserId(userSignCertDTO.getUserId());
|
|
|
+ userSub.setDeptId(queryUser.getDeptId());
|
|
|
+ userSub.setGigType(subjectLocation.getGigType());
|
|
|
+ userSub.setGigChannel(gigChannel);
|
|
|
+ userSub.setCallbackStatus(GigCallBackStatus.NOT_SUBMIT);
|
|
|
+ userSub.setBankCardNumber(userSignCertDTO.getBankCardNumber());
|
|
|
+ userSub.setBankPhone(userSignCertDTO.getBankPhone());
|
|
|
+ userSub.setCreateUser(operateUserId);
|
|
|
+ userSub.setCreateTime(LocalDateTime.now());
|
|
|
+ sysUserSubService.save(userSub);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -357,6 +354,13 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
if (sysUser == null) {
|
|
|
return false;
|
|
|
}
|
|
|
+ // 查询认证数据
|
|
|
+ SysUserExtRecord userExtRecord = sysUserExtRecordService.getOne(Wrappers.<SysUserExtRecord>lambdaQuery()
|
|
|
+ .eq(SysUserExtRecord::getUserId, userId)
|
|
|
+ .eq(SysUserExtRecord::getDelFlag, DelEnum.NOT_DEL.val()));
|
|
|
+ if (userExtRecord == null) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
// 查询dept
|
|
|
SysDept dept = sysDeptService.getById(sysUser.getDeptId());
|
|
|
// 查询当前用户关联的userSub
|
|
@@ -370,15 +374,15 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
|
|
|
if (CollUtil.isNotEmpty(userSubList)) {
|
|
|
// 过滤出阿拉钉的渠道
|
|
|
- Collection<GigTypeEnum> oladingTypeList =
|
|
|
- CollUtil.intersection(userSignCertDTO.getGigTypeList(),
|
|
|
- CollUtil.toList(GigTypeEnum.OLADING, GigTypeEnum.JIN_YUAN, GigTypeEnum.XIN_TAI_ZI)).stream()
|
|
|
- .sorted(Comparator.comparing(GigTypeEnum::getCode))
|
|
|
+ Collection<SubjectLocation> oladingList =
|
|
|
+ CollUtil.intersection(userSignCertDTO.getSubjectLocationList(),
|
|
|
+ SubjectLocation.getByGigType(GigTypeEnum.OLADING)).stream()
|
|
|
+ .sorted(Comparator.comparing(SubjectLocation::getSort))
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
// 封装请求数据
|
|
|
userSubList.stream()
|
|
|
- .sorted(Comparator.comparing(sysUserSub -> sysUserSub.getGigType().getCode()))
|
|
|
+ .sorted(Comparator.comparing(sysUserSub -> sysUserSub.getSubjectLocation().getSort()))
|
|
|
.filter(sysUserSub -> {
|
|
|
// 过滤掉认证成功的数据
|
|
|
if (GigTypeEnum.TAX_HELPOR.equals(sysUserSub.getGigType())
|
|
@@ -390,10 +394,6 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
return true;
|
|
|
} else if (GigTypeEnum.OLADING.equals(sysUserSub.getGigType())) {
|
|
|
return true;
|
|
|
- } else if (GigTypeEnum.JIN_YUAN.equals(sysUserSub.getGigType())) {
|
|
|
- return true;
|
|
|
- } else if (GigTypeEnum.XIN_TAI_ZI.equals(sysUserSub.getGigType())) {
|
|
|
- return true;
|
|
|
} else if (GigTypeEnum.REN_LI_JIA.equals(sysUserSub.getGigType())
|
|
|
&& RenlijiaCertStatus.CER_STATUS_1.getCode() != sysUserSub.getCertStatus()) {
|
|
|
return true;
|
|
@@ -402,7 +402,7 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
}).forEach(userSub -> {
|
|
|
|
|
|
// 发起前置判断
|
|
|
- if (!this.preSignCert(sysUser, userSub, userSignCertDTO, oladingTypeList)) {
|
|
|
+ if (!this.preSignCert(sysUser, userSub, userSignCertDTO, oladingList)) {
|
|
|
// false直接返回,不发送mq
|
|
|
log.info("本次不发起认证,userSubId={}", userSub.getId());
|
|
|
return;
|
|
@@ -438,61 +438,15 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
* @param sysUser 用户信息
|
|
|
* @param userSub userSub信息
|
|
|
* @param userSignCertDTO 发起参数
|
|
|
- * @param oladingTypeList 阿拉钉渠道类型list
|
|
|
+ * @param localtionList 阿拉钉税源地list
|
|
|
*/
|
|
|
- private boolean preSignCert(SysUser sysUser, SysUserSub userSub, UserSignCertDTO userSignCertDTO, Collection<GigTypeEnum> oladingTypeList) {
|
|
|
+ private boolean preSignCert(SysUser sysUser, SysUserSub userSub, UserSignCertDTO userSignCertDTO, Collection<SubjectLocation> localtionList) {
|
|
|
// 校验是否有进行中的
|
|
|
if (GigCallBackStatus.IN_PROGRESS.equals(userSub.getCallbackStatus())) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
switch (userSub.getGigType()) {
|
|
|
- case XIN_TAI_ZI:
|
|
|
- // 钉灵工-河南薪泰梓
|
|
|
- // 发起认证前,金园数科,转换对应关系为 阿拉钉-金园数科
|
|
|
- userSub.setGigType(GigTypeEnum.OLADING);
|
|
|
- userSub.setGigChannel(GigChannelEnum.XIN_TAI_ZI);
|
|
|
-
|
|
|
- // 如果需要传核身视频,则返回true
|
|
|
- if (userSignCertDTO.getUploadFaceID() != null && userSignCertDTO.getUploadFaceID()) {
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- // 已认证不发起
|
|
|
- if (OladingCertStatus.CERT.getCode().equals(String.valueOf(userSub.getCertStatus()))) {
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- // 如果同时包含阿拉钉多个渠道,则只选第一个发起
|
|
|
- if (oladingTypeList.size() > 1 && !oladingTypeList.stream().findFirst().get().equals(GigTypeEnum.XIN_TAI_ZI)) {
|
|
|
- // 同时选择了阿拉钉金园数科、海南飞亿、河南薪泰梓渠道的两个及以上,则先发起第一个,完成之后再依次发起其他的
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- return true;
|
|
|
- case JIN_YUAN:
|
|
|
- // 钉灵工-金园数科
|
|
|
- // 发起认证前,金园数科,转换对应关系为 阿拉钉-金园数科
|
|
|
- userSub.setGigType(GigTypeEnum.OLADING);
|
|
|
- userSub.setGigChannel(GigChannelEnum.JIN_YUAN);
|
|
|
-
|
|
|
- // 如果需要传核身视频,则返回true
|
|
|
- if (userSignCertDTO.getUploadFaceID() != null && userSignCertDTO.getUploadFaceID()) {
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- // 已认证不发起
|
|
|
- if (OladingCertStatus.CERT.getCode().equals(String.valueOf(userSub.getCertStatus()))) {
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- // 如果同时包含阿拉钉多个渠道,则只选第一个发起
|
|
|
- if (oladingTypeList.size() > 1 && !oladingTypeList.stream().findFirst().get().equals(GigTypeEnum.JIN_YUAN)) {
|
|
|
- // 同时选择了阿拉钉金园数科、海南飞亿、河南薪泰梓渠道的两个及以上,则先发起第一个,完成之后再依次发起其他的
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- return true;
|
|
|
case OLADING:
|
|
|
// 阿拉钉-海南飞亿
|
|
|
// 如果需要传核身视频,则返回true
|
|
@@ -505,8 +459,8 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- // 如果同时包含阿拉钉多个渠道,则只选第一个发起
|
|
|
- if (oladingTypeList.size() > 1 && !oladingTypeList.stream().findFirst().get().equals(GigTypeEnum.OLADING)) {
|
|
|
+ // 如果同时包含阿拉钉多个渠道,则只选第一个发起,其余不发起
|
|
|
+ if (localtionList.size() > 1 && !localtionList.stream().findFirst().get().equals(userSub.getSubjectLocation())) {
|
|
|
// 同时选择了阿拉钉金园数科、海南飞亿、河南薪泰梓渠道的两个及以上,则先发起第一个,完成之后再依次发起其他的
|
|
|
return false;
|
|
|
}
|
|
@@ -614,6 +568,7 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
baseInfoModel.setRequestId(requestId);
|
|
|
baseInfoModel.setGigType(userSub.getGigType());
|
|
|
baseInfoModel.setGigChannel(userSub.getGigChannel());
|
|
|
+ baseInfoModel.setGigLocation(userSub.getSubjectLocation());
|
|
|
// 用户信息
|
|
|
GigUserInfoModel userInfoModel = new GigUserInfoModel();
|
|
|
userInfoModel.setUserId(sysUser.getUserId());
|