Эх сурвалжийг харах

fix: 阿拉钉同时发起修复

lixuesong 3 жил өмнө
parent
commit
78e9954349

+ 9 - 6
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mq/GigSignCertReceiver.java

@@ -284,13 +284,16 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 				this.oladingChannelHandler(user, dept, subjectResult, Enum.valueOf(GigTypeEnum.class, String.valueOf(o)))));
 
 		// 结果放到redis
-		Map<String, Object> resultMap = new HashMap<>(3);
+		Map<String, Map<String, String>> resultMap = new HashMap<>(3);
 		if (gigTypeArray.size() > 1) {
 			// 同时发起的情况,且是前一个渠道(按照redis存的渠道顺序发送)的状态已返回,则刷新状态到redis
+			List<GigTypeEnum> gigTypeEnumList = gigTypeArray.stream()
+					.map(o -> Enum.valueOf(GigTypeEnum.class, String.valueOf(o)))
+					.collect(Collectors.toList());
 			List<SysUserSub> subList = sysUserSubService.list(Wrappers.<SysUserSub>lambdaQuery()
 					.eq(SysUserSub::getUserId, user.getUserId())
 					.eq(SysUserSub::getDeptId, dept.getDeptId())
-					.in(SysUserSub::getGigType, gigTypeArray));
+					.in(SysUserSub::getGigType, gigTypeEnumList));
 			Map<String, Map<String, String>> dbResultMap = subList.stream()
 					.collect(Collectors.toMap(sysUserSub -> sysUserSub.getGigType().name(),
 							sysUserSub -> MapUtil.builder("certStatus",
@@ -308,11 +311,11 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 		if (gigTypeArray.size() > 1) {
 			String firstChannel = String.valueOf(gigTypeArray.get(0));
 			// 查询阿拉丁第一个渠道的认证状态
-			Map<String, String> certStatusMap = certResultMap.get(firstChannel);
-			// 查询阿拉钉第一个未发起认证的渠道
+			Map<String, String> certStatusMap = resultMap.get(firstChannel);
+			// 查询阿拉钉第一个未签约的渠道
 			String toSendChannel = "";
-			for (Map.Entry<String, Map<String, String>> entry : certResultMap.entrySet()) {
-				if (CollUtil.isEmpty(entry.getValue())) {
+			for (Map.Entry<String, Map<String, String>> entry : resultMap.entrySet()) {
+				if (OladingCertStatus.UN_SIGNED.name().equals(entry.getValue().get("certStatus"))) {
 					toSendChannel = entry.getKey();
 					break;
 				}