|
@@ -135,16 +135,15 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
userSubVO.setCertStatus(TaxHelperCertStatus.resolve(sysUserSub.getCertStatus()).name());
|
|
userSubVO.setCertStatus(TaxHelperCertStatus.resolve(sysUserSub.getCertStatus()).name());
|
|
break;
|
|
break;
|
|
case YEE:
|
|
case YEE:
|
|
- if (GigChannelEnum.JIN_YUAN.equals(sysUserSub.getGigChannel())) {
|
|
|
|
- // 渠道是金园,则展示阿拉钉的状态
|
|
|
|
- userSubVO.setCertStatus(OladingCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
|
|
|
|
- } else {
|
|
|
|
- userSubVO.setCertStatus(YeeCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
|
|
|
|
- }
|
|
|
|
|
|
+ userSubVO.setCertStatus(YeeCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
|
|
break;
|
|
break;
|
|
case OLADING:
|
|
case OLADING:
|
|
userSubVO.setCertStatus(OladingCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
|
|
userSubVO.setCertStatus(OladingCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
|
|
break;
|
|
break;
|
|
|
|
+ case JIN_YUAN:
|
|
|
|
+ // 渠道是金园,则展示阿拉钉的状态
|
|
|
|
+ userSubVO.setCertStatus(OladingCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name());
|
|
|
|
+ break;
|
|
default:
|
|
default:
|
|
}
|
|
}
|
|
|
|
|
|
@@ -193,17 +192,6 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
} else {
|
|
} else {
|
|
gigChannel = GigChannelEnum.DEFAULT;
|
|
gigChannel = GigChannelEnum.DEFAULT;
|
|
}
|
|
}
|
|
- } else if (GigTypeEnum.YEE.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 && "1".equals(deptSub.getSubjectType())) {
|
|
|
|
- gigChannel = GigChannelEnum.JIN_YUAN;
|
|
|
|
- } else {
|
|
|
|
- gigChannel = GigChannelEnum.DEFAULT;
|
|
|
|
- }
|
|
|
|
} else {
|
|
} else {
|
|
gigChannel = GigChannelEnum.DEFAULT;
|
|
gigChannel = GigChannelEnum.DEFAULT;
|
|
}
|
|
}
|
|
@@ -315,17 +303,15 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
&& TaxHelperCertStatus.CERT.getCode() != sysUserSub.getCertStatus()) {
|
|
&& TaxHelperCertStatus.CERT.getCode() != sysUserSub.getCertStatus()) {
|
|
return true;
|
|
return true;
|
|
} else if (GigTypeEnum.YEE.equals(sysUserSub.getGigType())
|
|
} else if (GigTypeEnum.YEE.equals(sysUserSub.getGigType())
|
|
- && GigChannelEnum.JIN_YUAN.equals(sysUserSub.getGigChannel())) {
|
|
|
|
- // 易联并且渠道是金园数科(自由职家)
|
|
|
|
- return true;
|
|
|
|
- } else if (GigTypeEnum.YEE.equals(sysUserSub.getGigType())
|
|
|
|
- && GigChannelEnum.DEFAULT.equals(sysUserSub.getGigChannel())
|
|
|
|
&& !YeeCertStatus.SIGNED.getCode().equals(String.valueOf(sysUserSub.getCertStatus()))) {
|
|
&& !YeeCertStatus.SIGNED.getCode().equals(String.valueOf(sysUserSub.getCertStatus()))) {
|
|
// 易联并且渠道是默认
|
|
// 易联并且渠道是默认
|
|
return true;
|
|
return true;
|
|
} else if (GigTypeEnum.OLADING.equals(sysUserSub.getGigType())
|
|
} else if (GigTypeEnum.OLADING.equals(sysUserSub.getGigType())
|
|
&& !OladingCertStatus.CERT.getCode().equals(String.valueOf(sysUserSub.getCertStatus()))) {
|
|
&& !OladingCertStatus.CERT.getCode().equals(String.valueOf(sysUserSub.getCertStatus()))) {
|
|
return true;
|
|
return true;
|
|
|
|
+ } else if (GigTypeEnum.JIN_YUAN.equals(sysUserSub.getGigType())) {
|
|
|
|
+ // 易联并且渠道是金园数科(自由职家)
|
|
|
|
+ return true;
|
|
} else if (GigTypeEnum.REN_LI_JIA.equals(sysUserSub.getGigType())
|
|
} else if (GigTypeEnum.REN_LI_JIA.equals(sysUserSub.getGigType())
|
|
&& RenlijiaCertStatus.CER_STATUS_1.getCode() != sysUserSub.getCertStatus()) {
|
|
&& RenlijiaCertStatus.CER_STATUS_1.getCode() != sysUserSub.getCertStatus()) {
|
|
return true;
|
|
return true;
|
|
@@ -368,19 +354,14 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
* @param userSignCertDTO
|
|
* @param userSignCertDTO
|
|
*/
|
|
*/
|
|
private boolean preSignCert(SysUser sysUser, SysUserSub userSub, UserSignCertDTO userSignCertDTO) {
|
|
private boolean preSignCert(SysUser sysUser, SysUserSub userSub, UserSignCertDTO userSignCertDTO) {
|
|
- boolean flag = true;
|
|
|
|
// 校验是否有进行中的
|
|
// 校验是否有进行中的
|
|
if (GigCallBackStatus.IN_PROGRESS.equals(userSub.getCallbackStatus())) {
|
|
if (GigCallBackStatus.IN_PROGRESS.equals(userSub.getCallbackStatus())) {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
switch (userSub.getGigType()) {
|
|
switch (userSub.getGigType()) {
|
|
- case YEE:
|
|
|
|
- // 如果不是金园数科,则返回true
|
|
|
|
- // 否则继续执行case为OLADING下的代码(判断是否该用户对应姓名身份证已认证,是则直接同步)
|
|
|
|
- if (!GigChannelEnum.JIN_YUAN.equals(userSub.getGigChannel())) {
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
|
|
+ case JIN_YUAN:
|
|
|
|
+ // 阿拉丁-金园数科
|
|
// 如果需要传核身视频,则返回true
|
|
// 如果需要传核身视频,则返回true
|
|
if (userSignCertDTO.getUploadFaceID() != null && userSignCertDTO.getUploadFaceID()) {
|
|
if (userSignCertDTO.getUploadFaceID() != null && userSignCertDTO.getUploadFaceID()) {
|
|
return true;
|
|
return true;
|
|
@@ -389,48 +370,24 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
if (OladingCertStatus.CERT.getCode().equals(String.valueOf(userSub.getCertStatus()))) {
|
|
if (OladingCertStatus.CERT.getCode().equals(String.valueOf(userSub.getCertStatus()))) {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ // 如果存在相同手机号、身份证、姓名信息的用户,并且是认证过,则不发起,直接返回签约认证状态
|
|
|
|
+ if (checkExistCerted(sysUser, userSub)) {
|
|
|
|
+ // 直接返回,不发起
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 发起认证前,金园数科,转换对应关系为 阿拉钉-金园数科
|
|
|
|
+ userSub.setGigType(GigTypeEnum.OLADING);
|
|
|
|
+ userSub.setGigChannel(GigChannelEnum.JIN_YUAN);
|
|
|
|
+ return true;
|
|
case OLADING:
|
|
case OLADING:
|
|
// 如果存在相同手机号、身份证、姓名信息的用户,并且是认证过,则不发起,直接返回签约认证状态
|
|
// 如果存在相同手机号、身份证、姓名信息的用户,并且是认证过,则不发起,直接返回签约认证状态
|
|
- List<SysUser> existUserList = sysUserService.list(Wrappers.<SysUser>lambdaQuery()
|
|
|
|
- .eq(SysUser::getUsername, sysUser.getUsername())
|
|
|
|
- .eq(SysUser::getRealname, sysUser.getRealname())
|
|
|
|
- .eq(SysUser::getIdCardNumber, sysUser.getIdCardNumber())
|
|
|
|
- .eq(SysUser::getLockFlag, LockEnum.UN_LOCK.val())
|
|
|
|
- .ne(SysUser::getUserId, sysUser.getUserId()));
|
|
|
|
- if (CollUtil.isNotEmpty(existUserList)) {
|
|
|
|
- List<Integer> existUserIdList = existUserList.stream()
|
|
|
|
- .map(SysUser::getUserId)
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
- List<SysUserSub> existUserSubList = sysUserSubService.list(Wrappers.<SysUserSub>lambdaQuery()
|
|
|
|
- .in(SysUserSub::getUserId, existUserIdList)
|
|
|
|
- .in(SysUserSub::getCertStatus, Integer.valueOf(OladingCertStatus.CERT.getCode()))
|
|
|
|
- .eq(SysUserSub::getCallbackStatus, GigCallBackStatus.RETURNED)
|
|
|
|
- .and(wrapper -> {
|
|
|
|
- wrapper.eq(SysUserSub::getGigType, GigTypeEnum.OLADING);
|
|
|
|
- wrapper.or(wrapper1 -> wrapper1.eq(SysUserSub::getGigType, GigTypeEnum.YEE)
|
|
|
|
- .eq(SysUserSub::getGigChannel, GigChannelEnum.JIN_YUAN));
|
|
|
|
- }));
|
|
|
|
- if (CollUtil.isNotEmpty(existUserSubList)) {
|
|
|
|
- flag = false;
|
|
|
|
- SysUserSub existUserSub = existUserSubList.get(0);
|
|
|
|
- // 更新状态
|
|
|
|
- SysUserSub updateUserSub = new SysUserSub();
|
|
|
|
- updateUserSub.setId(userSub.getId());
|
|
|
|
- updateUserSub.setCertStatus(existUserSub.getCertStatus());
|
|
|
|
- updateUserSub.setCallbackStatus(GigCallBackStatus.RETURNED);
|
|
|
|
- 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", OladingCertStatus.resolve(String.valueOf(existUserSub.getCertStatus())).name());
|
|
|
|
- Map<String, Object> result = MapUtil.newHashMap(1);
|
|
|
|
- result.put(userSub.getGigType().name(), subMap);
|
|
|
|
- redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
|
|
|
|
- }
|
|
|
|
|
|
+ if (checkExistCerted(sysUser, userSub)) {
|
|
|
|
+ // 直接返回,不发起
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
- break;
|
|
|
|
|
|
+ return true;
|
|
case REN_LI_JIA:
|
|
case REN_LI_JIA:
|
|
// 人力家直接调用原有发短信接口
|
|
// 人力家直接调用原有发短信接口
|
|
SysDept dept = new SysDept();
|
|
SysDept dept = new SysDept();
|
|
@@ -462,11 +419,63 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
result.put("REN_LI_JIA", subMap);
|
|
result.put("REN_LI_JIA", subMap);
|
|
redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
|
|
redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
|
|
// 默认返回false,不触发发送mq
|
|
// 默认返回false,不触发发送mq
|
|
- flag = false;
|
|
|
|
|
|
+ return false;
|
|
default:
|
|
default:
|
|
}
|
|
}
|
|
|
|
|
|
- return flag;
|
|
|
|
|
|
+ // 默认发起认证
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 是否存在已认证的,存在则同步更新状态
|
|
|
|
+ *
|
|
|
|
+ * @param sysUser
|
|
|
|
+ * @param userSub
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ private boolean checkExistCerted(SysUser sysUser, SysUserSub userSub) {
|
|
|
|
+ List<SysUser> existUserList = sysUserService.list(Wrappers.<SysUser>lambdaQuery()
|
|
|
|
+ .eq(SysUser::getUsername, sysUser.getUsername())
|
|
|
|
+ .eq(SysUser::getRealname, sysUser.getRealname())
|
|
|
|
+ .eq(SysUser::getIdCardNumber, sysUser.getIdCardNumber())
|
|
|
|
+ .eq(SysUser::getLockFlag, LockEnum.UN_LOCK.val())
|
|
|
|
+ .ne(SysUser::getUserId, sysUser.getUserId()));
|
|
|
|
+ if (CollUtil.isNotEmpty(existUserList)) {
|
|
|
|
+ List<Integer> existUserIdList = existUserList.stream()
|
|
|
|
+ .map(SysUser::getUserId)
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ List<SysUserSub> existUserSubList = sysUserSubService.list(Wrappers.<SysUserSub>lambdaQuery()
|
|
|
|
+ .in(SysUserSub::getUserId, existUserIdList)
|
|
|
|
+ .in(SysUserSub::getCertStatus, Integer.valueOf(OladingCertStatus.CERT.getCode()))
|
|
|
|
+ .eq(SysUserSub::getCallbackStatus, GigCallBackStatus.RETURNED)
|
|
|
|
+ .and(wrapper -> {
|
|
|
|
+ wrapper.eq(SysUserSub::getGigType, GigTypeEnum.OLADING);
|
|
|
|
+ wrapper.or(wrapper1 -> wrapper1.eq(SysUserSub::getGigType, GigTypeEnum.YEE)
|
|
|
|
+ .eq(SysUserSub::getGigChannel, GigChannelEnum.JIN_YUAN));
|
|
|
|
+ }));
|
|
|
|
+ if (CollUtil.isNotEmpty(existUserSubList)) {
|
|
|
|
+ SysUserSub existUserSub = existUserSubList.get(0);
|
|
|
|
+ // 更新状态
|
|
|
|
+ SysUserSub updateUserSub = new SysUserSub();
|
|
|
|
+ updateUserSub.setId(userSub.getId());
|
|
|
|
+ updateUserSub.setCertStatus(existUserSub.getCertStatus());
|
|
|
|
+ updateUserSub.setCallbackStatus(GigCallBackStatus.RETURNED);
|
|
|
|
+ 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", OladingCertStatus.resolve(String.valueOf(existUserSub.getCertStatus())).name());
|
|
|
|
+ Map<String, Object> result = MapUtil.newHashMap(1);
|
|
|
|
+ result.put(userSub.getGigType().name(), subMap);
|
|
|
|
+ redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
|
|
|
|
+
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|