|
@@ -244,7 +244,7 @@ public class WmTaxHelperController {
|
|
|
return R.ok(response);
|
|
|
} else {
|
|
|
// 上次认证成功
|
|
|
- if (CommonConstants.LAST_STATUS_SUCCESS_CODE == Integer.parseInt(response.getData())){
|
|
|
+ if (CommonConstants.LAST_STATUS_SUCCESS_CODE == Integer.parseInt(response.getData())) {
|
|
|
// 修改用户状态
|
|
|
user.setUpdateTime(LocalDateTime.now());
|
|
|
if (Objects.equals(user.getCertStatus(), TaxHelperCertStatus.ADD_MEMBER.getCode())
|
|
@@ -328,7 +328,7 @@ public class WmTaxHelperController {
|
|
|
record.setMethod("E证通认证状态查询");
|
|
|
record.setUserId(user.getUserId());
|
|
|
sysCertResultRecordMapper.insert(record);
|
|
|
- if (response.success()){
|
|
|
+ if (response.success()) {
|
|
|
// 认证成功更新用户状态
|
|
|
if ("1".equals(status)) {
|
|
|
switch (certStatus) {
|
|
@@ -736,14 +736,23 @@ public class WmTaxHelperController {
|
|
|
/**
|
|
|
* 结算回调操作
|
|
|
*
|
|
|
- * @param userId 用户id
|
|
|
- * @param body 回调内容(加密)
|
|
|
+ * @param userId 用户id
|
|
|
+ * @param body 回调内容(加密)
|
|
|
* @return 回调结果
|
|
|
*/
|
|
|
@Inner(value = false)
|
|
|
@PostMapping(value = "/{user_id}/settlementNotify")
|
|
|
public TaxHelperResponse taxHelperSettlementNotify(@PathVariable(value = "user_id") String userId,
|
|
|
@RequestBody String body) {
|
|
|
+ // 判断当前用户是否已经存在回调操作,避免多次回调
|
|
|
+ String cacheKey = CacheConstants.TAX_HELPER_SETTLEMENT_NOTIFY_KEY + userId;
|
|
|
+ boolean absent = redisTemplate.opsForValue().setIfAbsent(cacheKey, userId, 3, TimeUnit.SECONDS);
|
|
|
+
|
|
|
+ if (!absent) {
|
|
|
+ log.error("当前用户:{},正在处理结算回调操作。", userId);
|
|
|
+ return new TaxHelperResponse("4000", "结算通知回调重复");
|
|
|
+ }
|
|
|
+
|
|
|
try {
|
|
|
// 获取税邦云账号
|
|
|
SysSocialDetails condition = new SysSocialDetails();
|
|
@@ -755,35 +764,21 @@ public class WmTaxHelperController {
|
|
|
String resInfo = taxHelperService.decryptResp(body, randomKey);
|
|
|
JSONObject jsonObject = JSONUtil.parseObj(resInfo);
|
|
|
String code = jsonObject.getStr("code");
|
|
|
+ String streamId = jsonObject.getStr("streamId");
|
|
|
|
|
|
+ int settleStatus = 1;
|
|
|
// 回调成功操作
|
|
|
- if ("2000".equals(code)) {
|
|
|
- String streamId = jsonObject.getStr("streamId");
|
|
|
-
|
|
|
- if (StringUtils.isEmpty(streamId)) {
|
|
|
- log.info("streamId获取失败,{}", userId);
|
|
|
- } else {
|
|
|
- // 判断当前用户是否已经存在回调操作,避免多次回调
|
|
|
- String cacheKey = CacheConstants.TAX_HELPER_SETTLEMENT_NOTIFY_KEY + userId;
|
|
|
-
|
|
|
- boolean absent = redisTemplate.opsForValue().setIfAbsent(cacheKey, userId, 3, TimeUnit.SECONDS);
|
|
|
+ if (!"2000".equals(code)) {
|
|
|
+ settleStatus = 2;
|
|
|
+ }
|
|
|
|
|
|
- if (!absent) {
|
|
|
- log.error("当前用户:{},正在处理结算回调操作。", userId);
|
|
|
- return new TaxHelperResponse("4000", "结算通知回调重复");
|
|
|
- }
|
|
|
+ settleNoteService.settleNotify(streamId, settleStatus, true);
|
|
|
|
|
|
- settleNoteService.settleNotify(streamId, true);
|
|
|
- }
|
|
|
- return new TaxHelperResponse("2000", "结算通知回调成功");
|
|
|
- } else {
|
|
|
- return new TaxHelperResponse("4000", "结算通知回调失败");
|
|
|
- }
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
log.error("税邦云解密失败");
|
|
|
- return new TaxHelperResponse("4000", "回调信息解密失败");
|
|
|
}
|
|
|
+ return new TaxHelperResponse("2000", "结算通知回调成功");
|
|
|
}
|
|
|
|
|
|
|
|
@@ -798,8 +793,18 @@ public class WmTaxHelperController {
|
|
|
@Inner(value = false)
|
|
|
@PostMapping(value = "/{user_id}/{version}/settlementNotify")
|
|
|
public TaxHelperResponse taxHelperSettlementNotifyV2(@PathVariable(value = "user_id") String userId,
|
|
|
- @PathVariable(value = "version") String version,
|
|
|
- @RequestBody String body) {
|
|
|
+ @PathVariable(value = "version") String version,
|
|
|
+ @RequestBody String body) {
|
|
|
+
|
|
|
+ // 判断当前用户是否已经存在回调操作,避免多次回调
|
|
|
+ String cacheKey = CacheConstants.TAX_HELPER_SETTLEMENT_NOTIFY_KEY + userId;
|
|
|
+
|
|
|
+ boolean absent = redisTemplate.opsForValue().setIfAbsent(cacheKey, userId, 3, TimeUnit.SECONDS);
|
|
|
+
|
|
|
+ if (!absent) {
|
|
|
+ log.error("当前用户:{},正在处理结算回调操作。", userId);
|
|
|
+ return new TaxHelperResponse("4000", "结算通知回调重复");
|
|
|
+ }
|
|
|
|
|
|
try {
|
|
|
// 获取税邦云账号
|
|
@@ -812,40 +817,26 @@ public class WmTaxHelperController {
|
|
|
String resInfo = taxHelperService.decryptResp(body, randomKey);
|
|
|
JSONObject jsonObject = JSONUtil.parseObj(resInfo);
|
|
|
String code = jsonObject.getStr("code");
|
|
|
+ String streamId = jsonObject.getStr("streamId");
|
|
|
|
|
|
+ int settleStatus = 1;
|
|
|
// 回调成功操作
|
|
|
- if ("2000".equals(code)) {
|
|
|
- String streamId = jsonObject.getStr("streamId");
|
|
|
-
|
|
|
- if (StringUtils.isEmpty(streamId)) {
|
|
|
- log.info("streamId获取失败,{}", userId);
|
|
|
- } else {
|
|
|
- // 判断当前用户是否已经存在回调操作,避免多次回调
|
|
|
- String cacheKey = CacheConstants.TAX_HELPER_SETTLEMENT_NOTIFY_KEY + userId;
|
|
|
-
|
|
|
- boolean absent = redisTemplate.opsForValue().setIfAbsent(cacheKey, userId, 3, TimeUnit.SECONDS);
|
|
|
-
|
|
|
- if (!absent) {
|
|
|
- log.error("当前用户:{},正在处理结算回调操作。", userId);
|
|
|
- return new TaxHelperResponse("4000", "结算通知回调重复");
|
|
|
- }
|
|
|
+ if (!"2000".equals(code)) {
|
|
|
+ settleStatus = 2;
|
|
|
+ }
|
|
|
|
|
|
- R r = settleNoteService.settleNotify(streamId, !userId.contains("|"));
|
|
|
+ R<?> r = settleNoteService.settleNotify(streamId, settleStatus, !userId.contains("|"));
|
|
|
|
|
|
- //回调
|
|
|
- if ("v2".equals(version)){
|
|
|
- List<WmScorePackageSettleNote> noteList = (List<WmScorePackageSettleNote>) r.getData();
|
|
|
- partyARetryService.doRetryableSettleNoteCallBack(noteList);
|
|
|
- }
|
|
|
- }
|
|
|
- return new TaxHelperResponse("2000", "结算通知回调成功");
|
|
|
- } else {
|
|
|
- return new TaxHelperResponse("4000", "结算通知回调失败");
|
|
|
+ //回调
|
|
|
+ if ("v2".equals(version)) {
|
|
|
+ List<WmScorePackageSettleNote> noteList = (List<WmScorePackageSettleNote>) r.getData();
|
|
|
+ partyARetryService.doRetryableSettleNoteCallBack(noteList);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
} catch (Exception e) {
|
|
|
log.error("税邦云解密失败");
|
|
|
- return new TaxHelperResponse("4000", "回调信息解密失败");
|
|
|
}
|
|
|
+ return new TaxHelperResponse("2000", "结算通知回调成功");
|
|
|
}
|
|
|
}
|