From d1bcc7225fd2c25ccc5b35bebc5fe32cd6b78ad6 Mon Sep 17 00:00:00 2001 From: TS-QD1 Date: Thu, 20 Feb 2025 21:10:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9B=9E=E8=B0=83=E8=B6=85=E8=BF=87?= =?UTF-8?q?=E6=AC=A1=E6=95=B0=E5=90=8E=E5=81=9C=E6=AD=A2=EF=BC=8C=E6=95=B4?= =?UTF-8?q?=E7=90=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/account/AccountController.java | 13 ------------ .../operator/enums/SysCallbackStatusEnum.java | 3 ++- .../impl/AccountRechargeServiceImpl.java | 21 ++++++++++++++++++- .../service/sys/callback/SysCallbackTask.java | 10 +++++++-- 4 files changed, 30 insertions(+), 17 deletions(-) diff --git a/src/main/java/cn/com/tenlion/operator/controller/api/account/AccountController.java b/src/main/java/cn/com/tenlion/operator/controller/api/account/AccountController.java index c05958f..a055382 100644 --- a/src/main/java/cn/com/tenlion/operator/controller/api/account/AccountController.java +++ b/src/main/java/cn/com/tenlion/operator/controller/api/account/AccountController.java @@ -56,10 +56,6 @@ public class AccountController extends DefaultBaseController { private IAccountBankService iAccountBankService; @Autowired private IAccountRechargeService iAccountRechargeService; - @Autowired - private SysCallbackService sysCallbackService; - @Autowired - private SystemApiPathProperties systemApiPathProperties; @ApiOperation(value = "支付宝支付成功后回调", notes = "支付宝支付成功后回调") @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) @@ -92,15 +88,6 @@ public class AccountController extends DefaultBaseController { PayResultDTO payResultDTO = WXPay.queryPay(rechargeId); if (payResultDTO.getOrderStatus().equals("1") && payResultDTO.getMoney().equals(PayUtil.buiderMoney(dto.getRechargeMoney()))) { iAccountRechargeService.saveConfirmOnline(dto.getAccountRechargeId(), payResultDTO.getOrderId(), payResultDTO.getOrderSuccessTime()); - try { - JSONObject selfData = JSON.parseObject(dto.getSelfData()); - if (selfData.containsKey("type") && StringUtils.equals("PROJ_PKG", selfData.getString("type"))) { - LOG.debug("通知付打包款成功"); - sysCallbackService.save("项目打包付款成功", systemApiPathProperties.getCopyright() + "api/pay/pkg-pay-success/proj-id/" + selfData.getString("projId"), null); - } - } catch (Exception e) { - LOG.error(e.getMessage(), e); - } } } JSONObject json = new JSONObject(); diff --git a/src/main/java/cn/com/tenlion/operator/enums/SysCallbackStatusEnum.java b/src/main/java/cn/com/tenlion/operator/enums/SysCallbackStatusEnum.java index 584a384..4dd44a9 100644 --- a/src/main/java/cn/com/tenlion/operator/enums/SysCallbackStatusEnum.java +++ b/src/main/java/cn/com/tenlion/operator/enums/SysCallbackStatusEnum.java @@ -3,6 +3,7 @@ package cn.com.tenlion.operator.enums; public enum SysCallbackStatusEnum { SUCCESS, - UN_SUCCESS + UN_SUCCESS, + STOP } diff --git a/src/main/java/cn/com/tenlion/operator/service/accountrecharge/impl/AccountRechargeServiceImpl.java b/src/main/java/cn/com/tenlion/operator/service/accountrecharge/impl/AccountRechargeServiceImpl.java index 70d1d3a..ab17367 100644 --- a/src/main/java/cn/com/tenlion/operator/service/accountrecharge/impl/AccountRechargeServiceImpl.java +++ b/src/main/java/cn/com/tenlion/operator/service/accountrecharge/impl/AccountRechargeServiceImpl.java @@ -13,12 +13,15 @@ import cn.com.tenlion.operator.service.account.IAccountService; import cn.com.tenlion.operator.service.accountbank.IAccountBankService; import cn.com.tenlion.operator.service.accountitem.IAccountItemService; import cn.com.tenlion.operator.service.remote.IRemoteWangGengInvoiceService; +import cn.com.tenlion.operator.service.sys.callback.SysCallbackService; import cn.com.tenlion.operator.util.UserUtil; import cn.com.tenlion.operator.util.pay.ALiPay; import cn.com.tenlion.operator.util.pay.PayResultDTO; import cn.com.tenlion.operator.util.pay.PayUtil; import cn.com.tenlion.operator.util.pay.WXPay; import cn.com.tenlion.projectconfig.util.ProjectConfigUtil; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; import ink.wgink.common.base.DefaultBaseService; import ink.wgink.exceptions.ParamsException; import ink.wgink.exceptions.SaveException; @@ -72,6 +75,10 @@ public class AccountRechargeServiceImpl extends DefaultBaseService implements IA private IAccountItemService iAccountItemService; @Autowired private SystemApiPathProperties apiPathProperties; + @Autowired + private SysCallbackService sysCallbackService; + @Autowired + private SystemApiPathProperties systemApiPathProperties; @Override public void save(AccountRechargeVO accountRechargeVO) { @@ -561,8 +568,20 @@ public class AccountRechargeServiceImpl extends DefaultBaseService implements IA String accountItemId = iAccountItemService.saveReturnId(vo); // 2. 修改状态为2 updateCheck(dto.getAccountRechargeId(), RechargeCheckEnum.RECHARGE_SUCCESS, "线上充值", accountItemId, orderId, successTime); + if (!StringUtils.isBlank(dto.getSelfData())) { + try { + JSONObject selfData = JSON.parseObject(dto.getSelfData()); + if (selfData.containsKey("type") && StringUtils.equals("PROJ_PKG", selfData.getString("type"))) { + LOG.debug("通知付打包款成功"); + sysCallbackService.save("项目打包付款成功", systemApiPathProperties.getCopyright() + "api/pay/pkg-pay-success/proj-id/" + selfData.getString("projId"), null); + return; + } + } catch (Exception e) { + LOG.error(e.getMessage(), e); + } + } // 3. 调用第三方接口, 告知充值到账 - remoteWangGengInvoiceSerivceImpl.paySuccess(dto.getAccountId()); + sysCallbackService.save("项目充值到账", systemApiPathProperties.getCopyright() + "api/pay/recharge-success/user-id/" + dto.getAccountId(), null); } } diff --git a/src/main/java/cn/com/tenlion/operator/service/sys/callback/SysCallbackTask.java b/src/main/java/cn/com/tenlion/operator/service/sys/callback/SysCallbackTask.java index 4b4f468..93e7f39 100644 --- a/src/main/java/cn/com/tenlion/operator/service/sys/callback/SysCallbackTask.java +++ b/src/main/java/cn/com/tenlion/operator/service/sys/callback/SysCallbackTask.java @@ -58,8 +58,14 @@ public class SysCallbackTask implements Job { } } catch (Exception e) { LOG.error("回调异常: {}", e.getMessage(), e); - sysCallbackService.update(sysCallbackPO.getCallbackId(), SysCallbackStatusEnum.UN_SUCCESS, sysCallbackPO.getFailCount() + 1); - sysTaskService.runCallbackTask(sysCallbackPO.getCallbackId()); + int failCount = sysCallbackPO.getFailCount() + 1; + // 失败次数超过20次,停止回调 + if (failCount < 20) { + sysCallbackService.update(sysCallbackPO.getCallbackId(), SysCallbackStatusEnum.UN_SUCCESS, failCount); + sysTaskService.runCallbackTask(sysCallbackPO.getCallbackId()); + } else { + sysCallbackService.update(sysCallbackPO.getCallbackId(), SysCallbackStatusEnum.STOP, failCount); + } } }