فهرست منبع

fix: 阿拉钉河南薪泰梓-发起认证前置判断

lixuesong 3 سال پیش
والد
کامیت
3b158d0df6

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

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