|
@@ -53,13 +53,16 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
|
|
|
/**
|
|
|
* 自由职家回调业务处理
|
|
|
*
|
|
|
- * @param interfaceName
|
|
|
* @param requestId
|
|
|
- * @param data
|
|
|
+ * @param req
|
|
|
*/
|
|
|
@Override
|
|
|
- public void oladingNotify(String interfaceName, String requestId, Map<String, Object> data) {
|
|
|
- // 接口名称
|
|
|
+ public void oladingNotify(String requestId, OladingCommonRequest.Req req) {
|
|
|
+ // 请求接口名称
|
|
|
+ String interfaceName = req.getName();
|
|
|
+ // 请求data
|
|
|
+ Map<String, Object> data = req.getData();
|
|
|
+ // 接口名称enum
|
|
|
OladingCommonRequest.InterfaceName interfaceNameEnum = Enum.valueOf(OladingCommonRequest.InterfaceName.class, interfaceName);
|
|
|
// 状态
|
|
|
String status = "CREATE_ORDER_DETAIL".equals(interfaceName) ? (String) data.get("remit_status") : (String) data.get("status");
|
|
@@ -74,21 +77,19 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
|
|
|
case SIGN_UP:
|
|
|
// 签约
|
|
|
OladingCommonRequest.SignUpStatus signUpCertStatus = Enum.valueOf(OladingCommonRequest.SignUpStatus.class, status);
|
|
|
- if (OladingCommonRequest.SignUpStatus.SIGN.equals(signUpCertStatus)) {
|
|
|
- this.oladingSignUp(requestIdPrefix, signUpCertStatus);
|
|
|
- }
|
|
|
+ this.oladingSignUp(requestIdPrefix, signUpCertStatus, req);
|
|
|
break;
|
|
|
case UPLOAD_ID_CARD_IMAGE:
|
|
|
// 证照上传
|
|
|
OladingCommonRequest.UploadIdCardImageStatus uploadIdCertStatus =
|
|
|
Enum.valueOf(OladingCommonRequest.UploadIdCardImageStatus.class, status);
|
|
|
- this.oladingUploadIdCardImage(requestIdPrefix, uploadIdCertStatus);
|
|
|
+ this.oladingUploadIdCardImage(requestIdPrefix, uploadIdCertStatus, req);
|
|
|
break;
|
|
|
case UPLOAD_TAXPAYER_AGREEMENT:
|
|
|
// 上传企业纳税人协议
|
|
|
OladingCommonRequest.UploadTaxpayerAgreementStatus agreementStatus =
|
|
|
Enum.valueOf(OladingCommonRequest.UploadTaxpayerAgreementStatus.class, status);
|
|
|
- this.oladingUploadTaxpayerAgreement(requestIdPrefix, agreementStatus);
|
|
|
+ this.oladingUploadTaxpayerAgreement(requestIdPrefix, agreementStatus, req);
|
|
|
break;
|
|
|
case CREATE_ORDER_V2:
|
|
|
// 创建代付订单结果
|
|
@@ -237,45 +238,67 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
|
|
|
*
|
|
|
* @param requestId
|
|
|
* @param signUpCertStatus
|
|
|
+ * @param req
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void oladingSignUp(String requestId, OladingCommonRequest.SignUpStatus signUpCertStatus) {
|
|
|
+ public void oladingSignUp(String requestId, OladingCommonRequest.SignUpStatus signUpCertStatus, OladingCommonRequest.Req req) {
|
|
|
// 先查询requestId是否存在
|
|
|
SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
|
|
|
- .eq(SysUserSub::getGigType, GigTypeEnum.OLADING)
|
|
|
.eq(SysUserSub::getRequestId, requestId));
|
|
|
if (userSub == null) {
|
|
|
+ log.error("{} requestId不存在", requestId);
|
|
|
throw new ValidateCodeException("requestId不存在");
|
|
|
}
|
|
|
|
|
|
Map<String, String> subMap = new HashMap<>();
|
|
|
SysUserSub updateUserSub = new SysUserSub();
|
|
|
if (OladingCommonRequest.SignUpStatus.SIGN.equals(signUpCertStatus)) {
|
|
|
- // 如果成功,则发送证照上传MQ
|
|
|
- log.info("=============================发送证照上传MQ==================================");
|
|
|
- UserSignCertDTO userSignCertDTO = new UserSignCertDTO();
|
|
|
- userSignCertDTO.setUserId(userSub.getUserId());
|
|
|
- userSignCertDTO.setGigTypeList(Collections.singletonList(GigTypeEnum.OLADING));
|
|
|
- sysUserSignCertService.batchChannelCert(userSignCertDTO);
|
|
|
subMap.put("certStatus", OladingCertStatus.SIGNED.name());
|
|
|
updateUserSub.setCertStatus(Integer.valueOf(OladingCertStatus.SIGNED.getCode()));
|
|
|
} else {
|
|
|
subMap.put("certStatus", OladingCertStatus.UN_SIGNED.name());
|
|
|
updateUserSub.setCertStatus(Integer.valueOf(OladingCertStatus.UN_SIGNED.getCode()));
|
|
|
- updateUserSub.setCallbackStatus(GigCallBackStatus.RETURNED);
|
|
|
}
|
|
|
updateUserSub.setId(userSub.getId());
|
|
|
updateUserSub.setUpdateTime(LocalDateTime.now());
|
|
|
updateUserSub.setUpdateUser(0);
|
|
|
+ updateUserSub.setCallbackStatus(GigCallBackStatus.RETURNED);
|
|
|
+ if ("0".equals(req.getCode())) {
|
|
|
+ updateUserSub.setFailReason(String.valueOf(req.getData().get("failReason")));
|
|
|
+ } else {
|
|
|
+ updateUserSub.setFailReason(req.getMessage());
|
|
|
+ }
|
|
|
// 更新状态
|
|
|
sysUserSubService.updateById(updateUserSub);
|
|
|
|
|
|
// 结果放到redis
|
|
|
String key = CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + userSub.getUserId();
|
|
|
- Map<String, Object> result = MapUtil.newHashMap(1);
|
|
|
- result.put("OLADING", subMap);
|
|
|
+ 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()
|
|
|
+ .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());
|
|
|
+ }
|
|
|
+
|
|
|
redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
|
|
|
+
|
|
|
+ // 如果成功,则发送证照上传MQ
|
|
|
+ if (OladingCommonRequest.SignUpStatus.SIGN.equals(signUpCertStatus)) {
|
|
|
+ log.info("=============================发送证照上传MQ==================================");
|
|
|
+ UserSignCertDTO userSignCertDTO = new UserSignCertDTO();
|
|
|
+ userSignCertDTO.setUserId(userSub.getUserId());
|
|
|
+ userSignCertDTO.setGigTypeList(Collections.singletonList(userSub.getGigType()));
|
|
|
+ sysUserSignCertService.batchChannelCert(userSignCertDTO);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -285,44 +308,65 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
|
|
|
* @param uploadIdCertStatus
|
|
|
*/
|
|
|
@Override
|
|
|
- public void oladingUploadIdCardImage(String requestId, OladingCommonRequest.UploadIdCardImageStatus uploadIdCertStatus) {
|
|
|
+ public void oladingUploadIdCardImage(String requestId, OladingCommonRequest.UploadIdCardImageStatus uploadIdCertStatus, OladingCommonRequest.Req req) {
|
|
|
// 先查询requestId是否存在
|
|
|
SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
|
|
|
- .eq(SysUserSub::getGigType, GigTypeEnum.OLADING)
|
|
|
.eq(SysUserSub::getRequestId, requestId));
|
|
|
if (userSub == null) {
|
|
|
+ log.error("{} requestId不存在", requestId);
|
|
|
throw new ValidateCodeException("requestId不存在");
|
|
|
}
|
|
|
|
|
|
Map<String, String> subMap = new HashMap<>();
|
|
|
LambdaUpdateWrapper<SysUserSub> updateUserSubWrapper = Wrappers.lambdaUpdate();
|
|
|
+ updateUserSubWrapper.eq(SysUserSub::getId, userSub.getId());
|
|
|
if (OladingCommonRequest.UploadIdCardImageStatus.IDENTIFY_SUCCESS.equals(uploadIdCertStatus)) {
|
|
|
- // 如果成功,则发送协议上传MQ
|
|
|
- log.info("=============================发送协议上传MQ==================================");
|
|
|
- UserSignCertDTO userSignCertDTO = new UserSignCertDTO();
|
|
|
- userSignCertDTO.setUserId(userSub.getUserId());
|
|
|
- userSignCertDTO.setGigTypeList(Collections.singletonList(GigTypeEnum.OLADING));
|
|
|
- sysUserSignCertService.batchChannelCert(userSignCertDTO);
|
|
|
subMap.put("certStatus", OladingCertStatus.SIGNED.name());
|
|
|
updateUserSubWrapper.set(SysUserSub::getCertStatus, Integer.valueOf(OladingCertStatus.SIGNED.getCode()));
|
|
|
} else {
|
|
|
subMap.put("certStatus", OladingCertStatus.SIGNED.name());
|
|
|
updateUserSubWrapper.set(SysUserSub::getCertStatus, Integer.valueOf(OladingCertStatus.SIGNED.getCode()));
|
|
|
- updateUserSubWrapper.set(SysUserSub::getCallbackStatus, GigCallBackStatus.RETURNED);
|
|
|
updateUserSubWrapper.set(SysUserSub::getIdCardFrontUrl, null);
|
|
|
updateUserSubWrapper.set(SysUserSub::getIdCardBackUrl, null);
|
|
|
}
|
|
|
- updateUserSubWrapper.eq(SysUserSub::getId, userSub.getId());
|
|
|
updateUserSubWrapper.set(SysUserSub::getUpdateTime, LocalDateTime.now());
|
|
|
updateUserSubWrapper.set(SysUserSub::getUpdateUser, 0);
|
|
|
+ updateUserSubWrapper.set(SysUserSub::getCallbackStatus, GigCallBackStatus.RETURNED);
|
|
|
+ if ("0".equals(req.getCode())) {
|
|
|
+ updateUserSubWrapper.set(SysUserSub::getFailReason, String.valueOf(req.getData().get("failReason")));
|
|
|
+ } else {
|
|
|
+ updateUserSubWrapper.set(SysUserSub::getFailReason, req.getMessage());
|
|
|
+ }
|
|
|
// 更新状态
|
|
|
sysUserSubService.update(updateUserSubWrapper);
|
|
|
|
|
|
// 结果放到redis
|
|
|
String key = CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + userSub.getUserId();
|
|
|
- Map<String, Object> result = MapUtil.newHashMap(1);
|
|
|
- result.put("OLADING", subMap);
|
|
|
+ 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()
|
|
|
+ .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());
|
|
|
+ }
|
|
|
+
|
|
|
redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
|
|
|
+
|
|
|
+ // 如果成功,则发送协议上传MQ
|
|
|
+ if (OladingCommonRequest.UploadIdCardImageStatus.IDENTIFY_SUCCESS.equals(uploadIdCertStatus)) {
|
|
|
+ log.info("=============================发送协议上传MQ==================================");
|
|
|
+ UserSignCertDTO userSignCertDTO = new UserSignCertDTO();
|
|
|
+ userSignCertDTO.setUserId(userSub.getUserId());
|
|
|
+ userSignCertDTO.setGigTypeList(Collections.singletonList(userSub.getGigType()));
|
|
|
+ sysUserSignCertService.batchChannelCert(userSignCertDTO);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -332,35 +376,63 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
|
|
|
* @param agreementStatus
|
|
|
*/
|
|
|
@Override
|
|
|
- public void oladingUploadTaxpayerAgreement(String requestId, OladingCommonRequest.UploadTaxpayerAgreementStatus agreementStatus) {
|
|
|
+ public void oladingUploadTaxpayerAgreement(String requestId, OladingCommonRequest.UploadTaxpayerAgreementStatus agreementStatus, OladingCommonRequest.Req req) {
|
|
|
// 先查询requestId是否存在
|
|
|
SysUserSub userSub = sysUserSubService.getOne(Wrappers.<SysUserSub>lambdaQuery()
|
|
|
- .eq(SysUserSub::getGigType, GigTypeEnum.OLADING)
|
|
|
.eq(SysUserSub::getRequestId, requestId));
|
|
|
if (userSub == null) {
|
|
|
+ log.error("{} requestId不存在", requestId);
|
|
|
throw new ValidateCodeException("requestId不存在");
|
|
|
}
|
|
|
|
|
|
Map<String, String> subMap = new HashMap<>();
|
|
|
- SysUserSub updateUserSub = new SysUserSub();
|
|
|
+ LambdaUpdateWrapper<SysUserSub> updateUserSubWrapper = Wrappers.lambdaUpdate();
|
|
|
+ updateUserSubWrapper.eq(SysUserSub::getId, userSub.getId());
|
|
|
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()));
|
|
|
} else {
|
|
|
- subMap.put("certStatus", OladingCertStatus.SIGNED.name()); // TODO 更新状态
|
|
|
- updateUserSub.setCertStatus(Integer.valueOf(OladingCertStatus.SIGNED.getCode()));
|
|
|
+ subMap.put("certStatus", OladingCertStatus.SIGNED.name());
|
|
|
+ updateUserSubWrapper.set(SysUserSub::getCertStatus, Integer.valueOf(OladingCertStatus.SIGNED.getCode()));
|
|
|
+ }
|
|
|
+ updateUserSubWrapper.set(SysUserSub::getUpdateTime, LocalDateTime.now());
|
|
|
+ updateUserSubWrapper.set(SysUserSub::getUpdateUser, 0);
|
|
|
+ updateUserSubWrapper.set(SysUserSub::getCallbackStatus, GigCallBackStatus.RETURNED);
|
|
|
+ if ("0".equals(req.getCode())) {
|
|
|
+ updateUserSubWrapper.set(SysUserSub::getFailReason, String.valueOf(req.getData().get("failReason")));
|
|
|
+ } else {
|
|
|
+ updateUserSubWrapper.set(SysUserSub::getFailReason, req.getMessage());
|
|
|
}
|
|
|
- updateUserSub.setId(userSub.getId());
|
|
|
- updateUserSub.setCallbackStatus(GigCallBackStatus.RETURNED);
|
|
|
- updateUserSub.setUpdateTime(LocalDateTime.now());
|
|
|
- updateUserSub.setUpdateUser(0);
|
|
|
// 更新状态
|
|
|
- sysUserSubService.updateById(updateUserSub);
|
|
|
+ sysUserSubService.update(updateUserSubWrapper);
|
|
|
|
|
|
// 结果放到redis
|
|
|
String key = CacheConstants.USER_SIGN_CERT_RESPONSE_KEY + userSub.getUserId();
|
|
|
- Map<String, Object> result = MapUtil.newHashMap(1);
|
|
|
- result.put("OLADING", subMap);
|
|
|
+ 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()
|
|
|
+ .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());
|
|
|
+ }
|
|
|
+
|
|
|
redisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(result), 1, TimeUnit.MINUTES);
|
|
|
+
|
|
|
+ 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);
|
|
|
+ }
|
|
|
}
|
|
|
}
|