|
@@ -299,6 +299,16 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
List<SysUserSub> userSubList = sysUserSubService.list(userSubWrapper);
|
|
|
|
|
|
if (CollUtil.isNotEmpty(userSubList)) {
|
|
|
+ // 过滤出阿拉钉的渠道
|
|
|
+ Collection<GigTypeEnum> oladingTypeList =
|
|
|
+ CollUtil.intersection(userSignCertDTO.getGigTypeList(),
|
|
|
+ CollUtil.toList(GigTypeEnum.OLADING, GigTypeEnum.JIN_YUAN, GigTypeEnum.XIN_TAI_ZI));
|
|
|
+ if (!oladingTypeList.isEmpty()) {
|
|
|
+ // 选择的渠道的阿拉钉的部分记录到redis
|
|
|
+ String redisKey = CacheConstants.OLADING_CERT_SEND_CHANNEL + sysUser.getUserId();
|
|
|
+ redisTemplate.opsForValue().set(redisKey, JSONUtil.toJsonStr(oladingTypeList), 24, TimeUnit.HOURS);
|
|
|
+ }
|
|
|
+
|
|
|
// 封装请求数据
|
|
|
userSubList.stream().filter(sysUserSub -> {
|
|
|
// 过滤掉认证成功的数据
|
|
@@ -323,9 +333,9 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
}).forEach(userSub -> {
|
|
|
|
|
|
// 发起前置判断
|
|
|
- if (!this.preSignCert(sysUser, userSub, userSignCertDTO)) {
|
|
|
+ if (!this.preSignCert(sysUser, userSub, userSignCertDTO, oladingTypeList)) {
|
|
|
// false直接返回,不发送mq
|
|
|
- log.info("本次不发起认证,userSub={}", userSub.toString());
|
|
|
+ log.info("本次不发起认证,userSubId={}", userSub.getId());
|
|
|
return;
|
|
|
|
|
|
}
|
|
@@ -356,26 +366,17 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
/**
|
|
|
* 签约认证前的前置判断
|
|
|
*
|
|
|
- * @param sysUser
|
|
|
- * @param userSub
|
|
|
- * @param userSignCertDTO
|
|
|
+ * @param sysUser 用户信息
|
|
|
+ * @param userSub userSub信息
|
|
|
+ * @param userSignCertDTO 发起参数
|
|
|
+ * @param oladingTypeList 阿拉钉渠道类型list
|
|
|
*/
|
|
|
- private boolean preSignCert(SysUser sysUser, SysUserSub userSub, UserSignCertDTO userSignCertDTO) {
|
|
|
+ private boolean preSignCert(SysUser sysUser, SysUserSub userSub, UserSignCertDTO userSignCertDTO, Collection<GigTypeEnum> oladingTypeList) {
|
|
|
// 校验是否有进行中的
|
|
|
if (GigCallBackStatus.IN_PROGRESS.equals(userSub.getCallbackStatus())) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- // 过滤出阿拉钉的渠道
|
|
|
- Collection<GigTypeEnum> oladingTypeList =
|
|
|
- CollUtil.intersection(userSignCertDTO.getGigTypeList(),
|
|
|
- CollUtil.toList(GigTypeEnum.OLADING, GigTypeEnum.JIN_YUAN, GigTypeEnum.XIN_TAI_ZI));
|
|
|
- if (!oladingTypeList.isEmpty()) {
|
|
|
- // 选择的渠道的阿拉钉的部分记录到redis
|
|
|
- String redisKey = CacheConstants.OLADING_CERT_SEND_CHANNEL + sysUser.getUserId();
|
|
|
- redisTemplate.opsForValue().set(redisKey, JSONUtil.toJsonStr(oladingTypeList), 24, TimeUnit.HOURS);
|
|
|
- }
|
|
|
-
|
|
|
switch (userSub.getGigType()) {
|
|
|
case XIN_TAI_ZI:
|
|
|
// 钉灵工-河南薪泰梓
|
|
@@ -436,7 +437,7 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
|
|
|
}
|
|
|
|
|
|
// 如果同时包含阿拉钉多个渠道,则只选第一个发起
|
|
|
- if (oladingTypeList.size() > 1 && !oladingTypeList.stream().findFirst().get().equals(GigTypeEnum.XIN_TAI_ZI)) {
|
|
|
+ if (oladingTypeList.size() > 1 && !oladingTypeList.stream().findFirst().get().equals(GigTypeEnum.OLADING)) {
|
|
|
// 同时选择了阿拉钉金园数科、海南飞亿、河南薪泰梓渠道的两个及以上,则先发起第一个,完成之后再依次发起其他的
|
|
|
return false;
|
|
|
}
|