|
@@ -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.JSONObject;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
@@ -253,12 +254,15 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
|
|
|
|
|
|
Map<String, String> subMap = new HashMap<>();
|
|
|
SysUserSub updateUserSub = new SysUserSub();
|
|
|
+ OladingCertStatus currentCertStatus;
|
|
|
if (OladingCommonRequest.SignUpStatus.SIGN.equals(signUpCertStatus)) {
|
|
|
subMap.put("certStatus", OladingCertStatus.SIGNED.name());
|
|
|
updateUserSub.setCertStatus(Integer.valueOf(OladingCertStatus.SIGNED.getCode()));
|
|
|
+ currentCertStatus = OladingCertStatus.SIGNED;
|
|
|
} else {
|
|
|
subMap.put("certStatus", OladingCertStatus.UN_SIGNED.name());
|
|
|
updateUserSub.setCertStatus(Integer.valueOf(OladingCertStatus.UN_SIGNED.getCode()));
|
|
|
+ currentCertStatus = OladingCertStatus.UN_SIGNED;
|
|
|
}
|
|
|
updateUserSub.setId(userSub.getId());
|
|
|
updateUserSub.setUpdateTime(LocalDateTime.now());
|
|
@@ -274,10 +278,16 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
|
|
|
|
|
|
// 结果放到redis
|
|
|
String key = CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + userSub.getUserId();
|
|
|
- Map<String, Object> result = MapUtil.newHashMap(2);
|
|
|
- result.put(GigTypeEnum.OLADING.name(), new HashMap<>(subMap));
|
|
|
- result.put(GigTypeEnum.JIN_YUAN.name(), new HashMap<>(subMap));
|
|
|
- redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
|
|
|
+ if (redisTemplate.hasKey(key)) {
|
|
|
+ String qResult = (String) redisTemplate.opsForValue().get(key);
|
|
|
+ JSONObject qResultObj = JSONUtil.parseObj(qResult);
|
|
|
+ qResultObj.append(userSub.getGigType().name(), currentCertStatus.name());
|
|
|
+ redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(qResultObj), 1, TimeUnit.MINUTES);
|
|
|
+ } else {
|
|
|
+ Map<String, Object> result = MapUtil.newHashMap(2);
|
|
|
+ result.put(currentCertStatus.name(), new HashMap<>(subMap));
|
|
|
+ redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
|
|
|
+ }
|
|
|
|
|
|
// 如果成功,则发送证照上传MQ
|
|
|
if (OladingCommonRequest.SignUpStatus.SIGN.equals(signUpCertStatus)) {
|
|
@@ -286,6 +296,21 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
|
|
|
userSignCertDTO.setUserId(userSub.getUserId());
|
|
|
userSignCertDTO.setGigTypeList(Collections.singletonList(userSub.getGigType()));
|
|
|
sysUserSignCertService.batchChannelCert(userSignCertDTO);
|
|
|
+
|
|
|
+ // 查询是否存在另一渠道需要发起(海南飞亿、金园数科其中之一)
|
|
|
+ SysUserSub secUserSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
|
|
|
+ .eq(SysUserSub::getUserId, userSub.getUserId())
|
|
|
+ .eq(SysUserSub::getGigType, GigTypeEnum.OLADING)
|
|
|
+ .eq(SysUserSub::getCertStatus, Integer.parseInt(OladingCertStatus.SIGNING.getCode()))
|
|
|
+ .ne(SysUserSub::getId, userSub.getId()));
|
|
|
+ if (secUserSub != null) {
|
|
|
+ // 如果同一人同时存在海南飞亿、金园数科的渠道,则补发一次(由于阿拉钉同一人不同渠道的回调只有一次,所以这里需要补发)
|
|
|
+ log.info("=============================补发阿拉钉另一渠道MQ1==================================");
|
|
|
+ UserSignCertDTO reCertDTO = new UserSignCertDTO();
|
|
|
+ reCertDTO.setUserId(secUserSub.getUserId());
|
|
|
+ reCertDTO.setGigTypeList(Collections.singletonList(secUserSub.getGigType()));
|
|
|
+ sysUserSignCertService.batchChannelCert(reCertDTO);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -307,14 +332,17 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
|
|
|
|
|
|
Map<String, String> subMap = new HashMap<>();
|
|
|
LambdaUpdateWrapper<SysUserSub> updateUserSubWrapper = Wrappers.lambdaUpdate();
|
|
|
+ OladingCertStatus currentCertStatus;
|
|
|
if (OladingCommonRequest.UploadIdCardImageStatus.IDENTIFY_SUCCESS.equals(uploadIdCertStatus)) {
|
|
|
subMap.put("certStatus", OladingCertStatus.SIGNED.name());
|
|
|
updateUserSubWrapper.set(SysUserSub::getCertStatus, Integer.valueOf(OladingCertStatus.SIGNED.getCode()));
|
|
|
+ currentCertStatus = OladingCertStatus.SIGNED;
|
|
|
} else {
|
|
|
subMap.put("certStatus", OladingCertStatus.SIGNED.name());
|
|
|
updateUserSubWrapper.set(SysUserSub::getCertStatus, Integer.valueOf(OladingCertStatus.SIGNED.getCode()));
|
|
|
updateUserSubWrapper.set(SysUserSub::getIdCardFrontUrl, null);
|
|
|
updateUserSubWrapper.set(SysUserSub::getIdCardBackUrl, null);
|
|
|
+ currentCertStatus = OladingCertStatus.SIGNED;
|
|
|
}
|
|
|
updateUserSubWrapper.eq(SysUserSub::getUserId, userSub.getUserId());
|
|
|
updateUserSubWrapper.eq(SysUserSub::getDeptId, userSub.getDeptId());
|
|
@@ -334,10 +362,16 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
|
|
|
|
|
|
// 结果放到redis
|
|
|
String key = CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + userSub.getUserId();
|
|
|
- Map<String, Object> result = MapUtil.newHashMap(2);
|
|
|
- result.put(GigTypeEnum.OLADING.name(), new HashMap<>(subMap));
|
|
|
- result.put(GigTypeEnum.JIN_YUAN.name(), new HashMap<>(subMap));
|
|
|
- redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
|
|
|
+ if (redisTemplate.hasKey(key)) {
|
|
|
+ String qResult = (String) redisTemplate.opsForValue().get(key);
|
|
|
+ JSONObject qResultObj = JSONUtil.parseObj(qResult);
|
|
|
+ qResultObj.append(userSub.getGigType().name(), currentCertStatus.name());
|
|
|
+ redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(qResultObj), 1, TimeUnit.MINUTES);
|
|
|
+ } else {
|
|
|
+ Map<String, Object> result = MapUtil.newHashMap(2);
|
|
|
+ result.put(currentCertStatus.name(), new HashMap<>(subMap));
|
|
|
+ redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
|
|
|
+ }
|
|
|
|
|
|
// 如果成功,则发送协议上传MQ
|
|
|
if (OladingCommonRequest.UploadIdCardImageStatus.IDENTIFY_SUCCESS.equals(uploadIdCertStatus)) {
|
|
@@ -346,6 +380,21 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
|
|
|
userSignCertDTO.setUserId(userSub.getUserId());
|
|
|
userSignCertDTO.setGigTypeList(Collections.singletonList(userSub.getGigType()));
|
|
|
sysUserSignCertService.batchChannelCert(userSignCertDTO);
|
|
|
+
|
|
|
+ // 查询是否存在另一渠道需要发起(海南飞亿、金园数科其中之一)
|
|
|
+ SysUserSub secUserSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
|
|
|
+ .eq(SysUserSub::getUserId, userSub.getUserId())
|
|
|
+ .eq(SysUserSub::getGigType, GigTypeEnum.OLADING)
|
|
|
+ .eq(SysUserSub::getCertStatus, Integer.parseInt(OladingCertStatus.SIGNING.getCode()))
|
|
|
+ .ne(SysUserSub::getId, userSub.getId()));
|
|
|
+ if (secUserSub != null) {
|
|
|
+ // 如果同一人同时存在海南飞亿、金园数科的渠道,则补发一次(由于阿拉钉同一人不同渠道的回调只有一次,所以这里需要补发)
|
|
|
+ log.info("=============================补发阿拉钉另一渠道MQ2==================================");
|
|
|
+ UserSignCertDTO reCertDTO = new UserSignCertDTO();
|
|
|
+ reCertDTO.setUserId(secUserSub.getUserId());
|
|
|
+ reCertDTO.setGigTypeList(Collections.singletonList(secUserSub.getGigType()));
|
|
|
+ sysUserSignCertService.batchChannelCert(reCertDTO);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -366,28 +415,17 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
|
|
|
}
|
|
|
|
|
|
Map<String, String> subMap = new HashMap<>();
|
|
|
-// SysUserSub updateUserSub = new SysUserSub();
|
|
|
+ OladingCertStatus currentCertStatus;
|
|
|
LambdaUpdateWrapper<SysUserSub> updateUserSubWrapper = Wrappers.lambdaUpdate();
|
|
|
if (OladingCommonRequest.UploadTaxpayerAgreementStatus.SUCCESS.equals(agreementStatus)) {
|
|
|
subMap.put("certStatus", OladingCertStatus.CERT.name());
|
|
|
-// updateUserSub.setCertStatus(Integer.valueOf(OladingCertStatus.CERT.getCode()));
|
|
|
updateUserSubWrapper.set(SysUserSub::getCertStatus, Integer.valueOf(OladingCertStatus.CERT.getCode()));
|
|
|
+ currentCertStatus = OladingCertStatus.CERT;
|
|
|
} else {
|
|
|
subMap.put("certStatus", OladingCertStatus.SIGNED.name());
|
|
|
-// updateUserSub.setCertStatus(Integer.valueOf(OladingCertStatus.SIGNED.getCode()));
|
|
|
updateUserSubWrapper.set(SysUserSub::getCertStatus, Integer.valueOf(OladingCertStatus.SIGNED.getCode()));
|
|
|
+ currentCertStatus = OladingCertStatus.SIGNED;
|
|
|
}
|
|
|
-// updateUserSub.setId(userSub.getId());
|
|
|
-// updateUserSub.setCallbackStatus(GigCallBackStatus.RETURNED);
|
|
|
-// updateUserSub.setUpdateTime(LocalDateTime.now());
|
|
|
-// updateUserSub.setUpdateUser(0);
|
|
|
-// if ("0".equals(req.getCode())) {
|
|
|
-// updateUserSub.setFailReason(String.valueOf(req.getData().get("failReason")));
|
|
|
-// } else {
|
|
|
-// updateUserSub.setFailReason(req.getMessage());
|
|
|
-// }
|
|
|
- // 更新状态
|
|
|
-// sysUserSubService.updateById(updateUserSub);
|
|
|
updateUserSubWrapper.eq(SysUserSub::getUserId, userSub.getUserId());
|
|
|
updateUserSubWrapper.eq(SysUserSub::getDeptId, userSub.getDeptId());
|
|
|
// 同时修改自由职家、金园数科的状态和数据
|
|
@@ -406,19 +444,40 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
|
|
|
|
|
|
// 结果放到redis
|
|
|
String key = CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + userSub.getUserId();
|
|
|
- Map<String, Object> result = MapUtil.newHashMap(2);
|
|
|
- result.put(GigTypeEnum.OLADING.name(), new HashMap<>(subMap));
|
|
|
- result.put(GigTypeEnum.JIN_YUAN.name(), new HashMap<>(subMap));
|
|
|
- redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
|
|
|
+ if (redisTemplate.hasKey(key)) {
|
|
|
+ String qResult = (String) redisTemplate.opsForValue().get(key);
|
|
|
+ JSONObject qResultObj = JSONUtil.parseObj(qResult);
|
|
|
+ qResultObj.append(userSub.getGigType().name(), currentCertStatus.name());
|
|
|
+ redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(qResultObj), 1, TimeUnit.MINUTES);
|
|
|
+ } else {
|
|
|
+ Map<String, Object> result = MapUtil.newHashMap(2);
|
|
|
+ result.put(currentCertStatus.name(), new HashMap<>(subMap));
|
|
|
+ redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
|
|
|
+ }
|
|
|
|
|
|
- // 如果成功,则发送核身视频上传MQ
|
|
|
if (OladingCommonRequest.UploadTaxpayerAgreementStatus.SUCCESS.equals(agreementStatus)) {
|
|
|
+ // 如果成功,则发送核身视频上传MQ
|
|
|
log.info("=============================发送核身视频上传MQ==================================");
|
|
|
UserSignCertDTO userSignCertDTO = new UserSignCertDTO();
|
|
|
userSignCertDTO.setUserId(userSub.getUserId());
|
|
|
userSignCertDTO.setGigTypeList(Collections.singletonList(userSub.getGigType()));
|
|
|
userSignCertDTO.setUploadFaceID(true);
|
|
|
sysUserSignCertService.batchChannelCert(userSignCertDTO);
|
|
|
+
|
|
|
+ // 查询是否存在另一渠道需要发起(海南飞亿、金园数科其中之一)
|
|
|
+ SysUserSub secUserSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
|
|
|
+ .eq(SysUserSub::getUserId, userSub.getUserId())
|
|
|
+ .eq(SysUserSub::getGigType, GigTypeEnum.OLADING)
|
|
|
+ .eq(SysUserSub::getCertStatus, Integer.parseInt(OladingCertStatus.SIGNING.getCode()))
|
|
|
+ .ne(SysUserSub::getId, userSub.getId()));
|
|
|
+ if (secUserSub != null) {
|
|
|
+ // 如果同一人同时存在海南飞亿、金园数科的渠道,则补发一次(由于阿拉钉同一人不同渠道的回调只有一次,所以这里需要补发)
|
|
|
+ log.info("=============================补发阿拉钉另一渠道MQ3==================================");
|
|
|
+ UserSignCertDTO reCertDTO = new UserSignCertDTO();
|
|
|
+ reCertDTO.setUserId(secUserSub.getUserId());
|
|
|
+ reCertDTO.setGigTypeList(Collections.singletonList(secUserSub.getGigType()));
|
|
|
+ sysUserSignCertService.batchChannelCert(reCertDTO);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|