瀏覽代碼

Merge branch 'feat-20220718-oladinghenan' into temp-pre

# Conflicts:
#	hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mq/GigSignCertReceiver.java
lixuesong 3 年之前
父節點
當前提交
6cb8850c22

+ 2 - 2
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/constant/CacheConstants.java

@@ -116,8 +116,8 @@ public interface CacheConstants {
 	String OLADING_NOTIFY_KEY = "OLADING:NOTIFY:KEY:";
 
 	/**
-	 * 自由职家同时发起两个渠道记录key
+	 * 发起阿拉丁认证渠道记录key
 	 */
-	String OLADING_SEND_BOTH_CHANNEL = "OLADING:SEND:BOTH:CHANNEL:";
+	String OLADING_CERT_SEND_CHANNEL = "OLADING:CERT:SEND:CHANNEL:";
 
 }

+ 2 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/enums/GigChannelEnum.java

@@ -18,7 +18,8 @@ public enum GigChannelEnum {
 	DEFAULT(0, "默认渠道"),
 	CICC(1, "中金"),
 	PINGAN(2, "平安银行"),
-	JIN_YUAN(31, "金园数科");
+	JIN_YUAN(31, "金园数科"),
+	XIN_TAI_ZI(32, "河南薪泰梓");
 
 	@EnumValue
 	private int code;

+ 48 - 38
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mq/GigSignCertReceiver.java

@@ -3,6 +3,7 @@ package com.qunzhixinxi.hnqz.admin.mq;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -39,6 +40,7 @@ import org.springframework.messaging.handler.annotation.Header;
 import java.time.LocalDateTime;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
@@ -92,8 +94,6 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 					resMap.put("res", JSONUtil.toJsonStr(subjectTypes));
 					return resMap;
 				}
-				// 加redis锁 TODO
-//				redisTemplate.opsForValue().setIfAbsent()
 
 				List<SysDept> deptList = sysDeptService.list(Wrappers.<SysDept>lambdaQuery()
 						.eq(SysDept::getTaxCode, entpriseCode)
@@ -129,7 +129,7 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 								this.oladingHandler(user, dept, subjectResult);
 								break;
 							case YEE:
-//								yeeHandler(user, dept, subjectResult);
+								this.yeeHandler(user, dept, subjectResult);
 								break;
 							default:
 						}
@@ -257,11 +257,6 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 		}
 
 		sysUserSubService.update(updateWrapper);
-		// 如果是核身视频回调,则同步该账号的自由职家渠道认证状态 TODO
-	}
-
-	private void renlijiaHandler(SysUser user, SysDept dept, JSONObject subjectResult) {
-		// TODO
 	}
 
 	/**
@@ -273,51 +268,66 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 	 */
 	private void oladingHandler(SysUser user, SysDept dept, JSONObject subjectResult) {
 
-		// 处理阿拉钉-海南飞亿
-		Map<String, String> o1Map = this.oladingChannelHandler(user, dept, subjectResult, GigTypeEnum.OLADING);
+		// 查询redis是否有同时发起的标记
+		String oladingRedisKey = CacheConstants.OLADING_CERT_SEND_CHANNEL + user.getUserId();
+		String gigTypeJson = (String) redisTemplate.opsForValue().get(oladingRedisKey);
+		if (!JSONUtil.isJsonArray(gigTypeJson)) {
+			log.warn("redis没有查询到选择的渠道:{}", gigTypeJson);
+			return;
+		}
 
-		// 处理阿拉钉-金园数科
-		Map<String, String> o2Map = this.oladingChannelHandler(user, dept, subjectResult, GigTypeEnum.JIN_YUAN);
+		JSONArray gigTypeArray = JSONUtil.parseArray(gigTypeJson);
 
-		// 查询redis是否有同时发起的标记
-		String redisKey = CacheConstants.OLADING_SEND_BOTH_CHANNEL + user.getUserId();
-		Object userId = redisTemplate.opsForValue().get(redisKey);
+		// 根据选择的渠道,分别更新并查询认证状态
+		Map<String, Map<String, String>> certResultMap = new LinkedHashMap<>(3);
+		gigTypeArray.forEach(o -> certResultMap.put(String.valueOf(o),
+				this.oladingChannelHandler(user, dept, subjectResult, Enum.valueOf(GigTypeEnum.class, String.valueOf(o)))));
 
 		// 结果放到redis
-		Map<String, Object> resultMap = new HashMap<>();
-		if (userId != null) {
-			// 同时发起的情况,且是金园数科的状态已返回,则返回两个渠道状态
+		Map<String, Object> resultMap = new HashMap<>(3);
+		if (gigTypeArray.size() > 1) {
+			// 同时发起的情况,且是前一个渠道(按照redis存的渠道顺序发送)的状态已返回,则刷新状态到redis
 			List<SysUserSub> subList = sysUserSubService.list(Wrappers.<SysUserSub>lambdaQuery()
 					.eq(SysUserSub::getUserId, user.getUserId())
 					.eq(SysUserSub::getDeptId, dept.getDeptId())
-					.in(SysUserSub::getGigType, GigTypeEnum.OLADING, GigTypeEnum.JIN_YUAN));
-			Map<String, Map<String, String>> resultMap2 = subList.stream()
+					.in(SysUserSub::getGigType, gigTypeArray));
+			Map<String, Map<String, String>> dbResultMap = subList.stream()
 					.collect(Collectors.toMap(sysUserSub -> sysUserSub.getGigType().name(),
 							sysUserSub -> MapUtil.builder("certStatus",
 									OladingCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name()).build()));
-			resultMap.putAll(resultMap2);
-			// 删除同时发起的redis key
-//			redisTemplate.delete(redisKey);
+			resultMap.putAll(dbResultMap);
 		} else {
-			if (CollUtil.isNotEmpty(o1Map)) {
-				resultMap.put(GigTypeEnum.OLADING.name(), o1Map);
-			}
-			if (CollUtil.isNotEmpty(o2Map)) {
-				resultMap.put(GigTypeEnum.JIN_YUAN.name(), o2Map);
-			}
+			// 只有一个渠道的情况
+			resultMap.putAll(certResultMap);
 		}
 		String key = CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + user.getUserId();
 		redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(resultMap), 1, TimeUnit.MINUTES);
 
-		// 处理同时发起时另一个渠道需要的补发情况
-		Object userId2 = redisTemplate.opsForValue().get(redisKey);
-		if (userId2 != null && CollUtil.isNotEmpty(o1Map) && OladingCertStatus.CERT.name().equals(o1Map.get("certStatus"))) {
-			// 如果同一人同时存在海南飞亿、金园数科的渠道,则补发一次(由于阿拉钉同一人不同渠道的回调只有一次,所以这里需要补发)
-			log.info("=============================补发阿拉钉另一渠道MQ4==================================");
-			UserSignCertDTO reCertDTO = new UserSignCertDTO();
-			reCertDTO.setUserId(user.getUserId());
-			reCertDTO.setGigTypeList(Collections.singletonList(GigTypeEnum.JIN_YUAN));
-			sysUserSignCertService.batchChannelCert(reCertDTO);
+		// 处理同时发起时阿拉丁多个渠道的情况(补发)
+		if (gigTypeArray.size() > 1) {
+			String firstChannel = String.valueOf(gigTypeArray.get(0));
+			// 查询阿拉丁第一个渠道的认证状态
+			Map<String, String> certStatusMap = certResultMap.get(firstChannel);
+			// 查询阿拉钉第一个未发起认证的渠道
+			String toSendChannel = "";
+			for (Map.Entry<String, Map<String, String>> entry : certResultMap.entrySet()) {
+				if (CollUtil.isEmpty(entry.getValue())) {
+					toSendChannel = entry.getKey();
+					break;
+				}
+			}
+			// 校验需要补发的渠道,是否为第一个
+			if (StrUtil.isNotBlank(toSendChannel) && !StrUtil.equals(firstChannel, toSendChannel)) {
+				// 如果阿拉丁第一个渠道是已认证的,则补发下一个阿拉丁的渠道(由于阿拉钉同一人不同渠道的回调只有一次,所以这里出现多个渠道需要依次补发)
+				if (CollUtil.isNotEmpty(certStatusMap) && OladingCertStatus.CERT.name().equals(certStatusMap.get("certStatus"))) {
+
+					log.info("=============================补发阿拉钉另一渠道MQ:{}==================================", toSendChannel);
+					UserSignCertDTO reCertDTO = new UserSignCertDTO();
+					reCertDTO.setUserId(user.getUserId());
+					reCertDTO.setGigTypeList(Collections.singletonList(Enum.valueOf(GigTypeEnum.class, toSendChannel)));
+					sysUserSignCertService.batchChannelCert(reCertDTO);
+				}
+			}
 		}
 	}
 

+ 41 - 27
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/gig/impl/GigThirdApiServiceImpl.java

@@ -2,6 +2,7 @@ package com.qunzhixinxi.hnqz.admin.service.gig.impl;
 
 import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -276,17 +277,21 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
 		String key = CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + userSub.getUserId();
 		Map<String, Object> result = MapUtil.newHashMap(2);
 		result.put(userSub.getGigType().name(), new HashMap<>(subMap));
-		// 查询redis是否有同时发起的标记
-		String redisKey = CacheConstants.OLADING_SEND_BOTH_CHANNEL + userSub.getUserId();
-		Object userId = redisTemplate.opsForValue().get(redisKey);
-		if (userId != null && GigTypeEnum.OLADING.equals(userSub.getGigType())) {
-			// 将金园数科的状态,补充进来
-			SysUserSub feiyiSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
+
+		// 查询redis是否有同时发起的标记,查询出对应的状态放到redis
+		String oladingRedisKey = CacheConstants.OLADING_CERT_SEND_CHANNEL + userSub.getUserId();
+		String gigTypeJson = (String) redisTemplate.opsForValue().get(oladingRedisKey);
+		if (JSONUtil.isJsonArray(gigTypeJson)) {
+			JSONArray gigTypeArray = JSONUtil.parseArray(gigTypeJson);
+			List<SysUserSub> subList = sysUserSubService.list(Wrappers.<SysUserSub>lambdaQuery()
 					.eq(SysUserSub::getUserId, userSub.getUserId())
 					.eq(SysUserSub::getDeptId, userSub.getDeptId())
-					.eq(SysUserSub::getGigType, GigTypeEnum.JIN_YUAN));
-			result.put(GigTypeEnum.JIN_YUAN.name(),
-					MapUtil.builder("certStatus", OladingCertStatus.resolve(String.valueOf(feiyiSub.getCertStatus())).name()).build());
+					.in(SysUserSub::getGigType, gigTypeArray));
+			Map<String, Map<String, String>> dbResultMap = subList.stream()
+					.collect(Collectors.toMap(sysUserSub -> sysUserSub.getGigType().name(),
+							sysUserSub -> MapUtil.builder("certStatus",
+									OladingCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name()).build()));
+			result.putAll(dbResultMap);
 		}
 
 		redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
@@ -344,21 +349,26 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
 		String key = CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + userSub.getUserId();
 		Map<String, Object> result = MapUtil.newHashMap(2);
 		result.put(userSub.getGigType().name(), new HashMap<>(subMap));
-		// 查询redis是否有同时发起的标记
-		String redisKey = CacheConstants.OLADING_SEND_BOTH_CHANNEL + userSub.getUserId();
-		Object userId = redisTemplate.opsForValue().get(redisKey);
-		if (userId != null && GigTypeEnum.OLADING.equals(userSub.getGigType())) {
-			// 将金园数科的状态,补充进来
-			SysUserSub feiyiSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
+
+		// 查询redis是否有同时发起的标记,查询出对应的状态放到redis
+		String oladingRedisKey = CacheConstants.OLADING_CERT_SEND_CHANNEL + userSub.getUserId();
+		String gigTypeJson = (String) redisTemplate.opsForValue().get(oladingRedisKey);
+		if (JSONUtil.isJsonArray(gigTypeJson)) {
+			JSONArray gigTypeArray = JSONUtil.parseArray(gigTypeJson);
+			List<SysUserSub> subList = sysUserSubService.list(Wrappers.<SysUserSub>lambdaQuery()
 					.eq(SysUserSub::getUserId, userSub.getUserId())
 					.eq(SysUserSub::getDeptId, userSub.getDeptId())
-					.eq(SysUserSub::getGigType, GigTypeEnum.JIN_YUAN));
-			result.put(GigTypeEnum.JIN_YUAN.name(),
-					MapUtil.builder("certStatus", OladingCertStatus.resolve(String.valueOf(feiyiSub.getCertStatus())).name()).build());
+					.in(SysUserSub::getGigType, gigTypeArray));
+			Map<String, Map<String, String>> dbResultMap = subList.stream()
+					.collect(Collectors.toMap(sysUserSub -> sysUserSub.getGigType().name(),
+							sysUserSub -> MapUtil.builder("certStatus",
+									OladingCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name()).build()));
+			result.putAll(dbResultMap);
 		}
 
 		redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
 
+
 		// 如果成功,则发送协议上传MQ
 		if (OladingCommonRequest.UploadIdCardImageStatus.IDENTIFY_SUCCESS.equals(uploadIdCertStatus)) {
 			log.info("=============================发送协议上传MQ==================================");
@@ -410,17 +420,21 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
 		String key = CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + userSub.getUserId();
 		Map<String, Object> result = MapUtil.newHashMap(2);
 		result.put(userSub.getGigType().name(), new HashMap<>(subMap));
-		// 查询redis是否有同时发起的标记
-		String redisKey = CacheConstants.OLADING_SEND_BOTH_CHANNEL + userSub.getUserId();
-		Object userId = redisTemplate.opsForValue().get(redisKey);
-		if (userId != null && GigTypeEnum.JIN_YUAN.equals(userSub.getGigType())) {
-			// 将海南飞亿的状态,补充进来
-			SysUserSub feiyiSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
+
+		// 查询redis是否有同时发起的标记,查询出对应的状态放到redis
+		String oladingRedisKey = CacheConstants.OLADING_CERT_SEND_CHANNEL + userSub.getUserId();
+		String gigTypeJson = (String) redisTemplate.opsForValue().get(oladingRedisKey);
+		if (JSONUtil.isJsonArray(gigTypeJson)) {
+			JSONArray gigTypeArray = JSONUtil.parseArray(gigTypeJson);
+			List<SysUserSub> subList = sysUserSubService.list(Wrappers.<SysUserSub>lambdaQuery()
 					.eq(SysUserSub::getUserId, userSub.getUserId())
 					.eq(SysUserSub::getDeptId, userSub.getDeptId())
-					.eq(SysUserSub::getGigType, GigTypeEnum.OLADING));
-			result.put(GigTypeEnum.OLADING.name(),
-					MapUtil.builder("certStatus", OladingCertStatus.resolve(String.valueOf(feiyiSub.getCertStatus())).name()).build());
+					.in(SysUserSub::getGigType, gigTypeArray));
+			Map<String, Map<String, String>> dbResultMap = subList.stream()
+					.collect(Collectors.toMap(sysUserSub -> sysUserSub.getGigType().name(),
+							sysUserSub -> MapUtil.builder("certStatus",
+									OladingCertStatus.resolve(String.valueOf(sysUserSub.getCertStatus())).name()).build()));
+			result.putAll(dbResultMap);
 		}
 
 		redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);

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

@@ -51,7 +51,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.util.ArrayList;
-import java.util.Collections;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -308,12 +308,12 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 					return true;
 				} else if (GigTypeEnum.YEE.equals(sysUserSub.getGigType())
 						&& !YeeCertStatus.SIGNED.getCode().equals(String.valueOf(sysUserSub.getCertStatus()))) {
-					// 易联并且渠道是默认
 					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()) {
@@ -325,7 +325,7 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 				String requestId = RandomStringUtils.randomAlphabetic(16);
 
 				// 发起前置判断
-				if (!this.preSignCert(sysUser, userSub, userSignCertDTO, requestId)) {
+				if (!this.preSignCert(sysUser, userSub, userSignCertDTO)) {
 					// false直接返回,不发送mq
 					return;
 				}
@@ -357,17 +357,49 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 	 * @param sysUser
 	 * @param userSub
 	 * @param userSignCertDTO
-	 * @param requestId
 	 */
-	private boolean preSignCert(SysUser sysUser, SysUserSub userSub, UserSignCertDTO userSignCertDTO, String requestId) {
+	private boolean preSignCert(SysUser sysUser, SysUserSub userSub, UserSignCertDTO userSignCertDTO) {
 		// 校验是否有进行中的
 		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));
+		}
+
 		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);
@@ -382,18 +414,9 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 					return false;
 				}
 
-				// 如果存在相同手机号、身份证、姓名信息的用户,并且是认证过,则不发起,直接返回签约认证状态
-//				if (this.checkExistCerted(sysUser, userSub)) {
-//					// 直接返回,不发起
-//					return false;
-//				}
-
-				// 如果同时包含阿拉钉金园数科、海南飞亿,则只选海南飞亿发起
-				if (userSignCertDTO.getGigTypeList().containsAll(CollUtil.toList(GigTypeEnum.OLADING, GigTypeEnum.JIN_YUAN))) {
-					// 记录同时选择了阿拉钉金园数科、海南飞亿渠道,用来标记其在海南飞亿认证完后需要被发起
-					// 即,同时选择了阿拉钉金园数科、海南飞亿渠道,则先发起海南飞亿认证,完成之后再发起金园数科认证
-					String redisKey = CacheConstants.OLADING_SEND_BOTH_CHANNEL + sysUser.getUserId();
-					redisTemplate.opsForValue().set(redisKey, sysUser.getUserId());
+				// 如果同时包含阿拉钉多个渠道,则只选第一个发起
+				if (oladingTypeList.size() > 1 && !oladingTypeList.stream().findFirst().get().equals(GigTypeEnum.JIN_YUAN)) {
+					// 同时选择了阿拉钉金园数科、海南飞亿、河南薪泰梓渠道的两个及以上,则先发起第一个,完成之后再依次发起其他的
 					return false;
 				}
 
@@ -410,11 +433,12 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 					return false;
 				}
 
-				// 如果存在相同手机号、身份证、姓名信息的用户,并且是认证过,则不发起,直接返回签约认证状态
-//				if (this.checkExistCerted(sysUser, userSub)) {
-//					// 直接返回,不发起
-//					return false;
-//				}
+				// 如果同时包含阿拉钉多个渠道,则只选第一个发起
+				if (oladingTypeList.size() > 1 && !oladingTypeList.stream().findFirst().get().equals(GigTypeEnum.XIN_TAI_ZI)) {
+					// 同时选择了阿拉钉金园数科、海南飞亿、河南薪泰梓渠道的两个及以上,则先发起第一个,完成之后再依次发起其他的
+					return false;
+				}
+
 				return true;
 			case REN_LI_JIA:
 				// 人力家直接调用原有发短信接口