소스 검색

feat: 阿拉钉多渠道发起和回调修改

lixuesong 3 년 전
부모
커밋
1bd882072e

+ 8 - 4
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mq/GigSignCertReceiver.java

@@ -112,7 +112,7 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 
 						switch (gigTypeEnum) {
 							case TAX_HELPOR:
-								taxHelperHandler(user, dept, subjectResult);
+								this.taxHelperHandler(user, dept, subjectResult);
 								// 本次结果存入redis
 								redisTemplate.opsForValue().set(CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + user.getUserId(),
 										JSONUtil.toJsonStr(subjectTypes), 1, TimeUnit.MINUTES);
@@ -121,7 +121,7 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 								// TODO
 								break;
 							case OLADING:
-								oladingHandler(user, dept, subjectResult);
+								this.oladingHandler(user, dept, subjectResult);
 								break;
 							case YEE:
 //								yeeHandler(user, dept, subjectResult);
@@ -269,10 +269,10 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 	private void oladingHandler(SysUser user, SysDept dept, JSONObject subjectResult) {
 
 		// 处理阿拉钉-海南飞亿
-		Map<String, String> o1Map = oladingChannelHandler(user, dept, subjectResult, GigTypeEnum.OLADING);
+		Map<String, String> o1Map = this.oladingChannelHandler(user, dept, subjectResult, GigTypeEnum.OLADING);
 
 		// 处理阿拉钉-金园数科
-		Map<String, String> o2Map = oladingChannelHandler(user, dept, subjectResult, GigTypeEnum.JIN_YUAN);
+		Map<String, String> o2Map = this.oladingChannelHandler(user, dept, subjectResult, GigTypeEnum.JIN_YUAN);
 
 		// 结果放到redis
 		Map<String, Object> resultMap = new HashMap<>();
@@ -297,7 +297,11 @@ public class GigSignCertReceiver extends BaseRabbiMqHandler<String> {
 		SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
 				.eq(SysUserSub::getDeptId, dept.getDeptId())
 				.eq(SysUserSub::getUserId, user.getUserId())
+				.eq(SysUserSub::getCallbackStatus, GigCallBackStatus.IN_PROGRESS)
 				.eq(SysUserSub::getGigType, gigType));
+		if (userSub == null) {
+			return null;
+		}
 
 		// 拼接更新条件
 		LambdaUpdateWrapper<SysUserSub> updateWrapper = Wrappers.<SysUserSub>lambdaUpdate()

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

@@ -362,11 +362,6 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 			return false;
 		}
 
-		// 如果同时包含阿拉钉金园数科、海南飞亿,则只选一个发起
-		if (userSignCertDTO.getGigTypeList().containsAll(CollUtil.toList(GigTypeEnum.OLADING, GigTypeEnum.JIN_YUAN))) {
-			userSignCertDTO.setGigTypeList(Collections.singletonList(GigTypeEnum.OLADING));
-		}
-
 		switch (userSub.getGigType()) {
 			case JIN_YUAN:
 				// 阿拉钉-金园数科
@@ -381,6 +376,18 @@ public class SysUserSignCertServiceImpl implements SysUserSignCertService {
 //					return false;
 //				}
 
+				// 如果同时包含阿拉钉金园数科、海南飞亿,则只选海南飞亿发起
+				if (userSignCertDTO.getGigTypeList().containsAll(CollUtil.toList(GigTypeEnum.OLADING, GigTypeEnum.JIN_YUAN))
+						&& GigTypeEnum.JIN_YUAN.equals(userSub.getGigType())) {
+					userSignCertDTO.setGigTypeList(Collections.singletonList(GigTypeEnum.OLADING));
+					// 更新金园数科为签约中
+					SysUserSub jyUserSub = new SysUserSub();
+					jyUserSub.setId(userSub.getId());
+					jyUserSub.setCertStatus(Integer.valueOf(OladingCertStatus.SIGNING.getCode()));
+					sysUserSubService.updateById(jyUserSub);
+					return false;
+				}
+
 				// 发起认证前,金园数科,转换对应关系为 阿拉钉-金园数科
 				userSub.setGigType(GigTypeEnum.OLADING);
 				userSub.setGigChannel(GigChannelEnum.JIN_YUAN);