KKSU
2025-01-03 4275ffd2707f4c27abdfeff847735140a0c7a69e
feat(mall): 优化充值功能并添加失败处理机制

- 修改 buyVip 和 growCharge 方法的返回值结构,使用 message 字段替代 data 字段展示操作结果- 在 growCharge 方法中增加充值失败处理逻辑,发送延时消息更新充值记录状态
- 新增 ApiGoChargeVo 对象用于封装充值相关信息
1 files modified
21 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java 21 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java
@@ -563,12 +563,14 @@
        agentProducer.sendBuyVipSuccessMsg(mallCharge.getId());
        return new FebsResponse().success().data("操作成功");
        return new FebsResponse().success().message("操作成功");
    }
    @Override
    public FebsResponse growCharge(ApiGrowChargeDto apiGrowChargeDto) {
        Long memberId = LoginUserUtil.getLoginUser().getId();
        ApiGoChargeVo apiGoChargeVo = new ApiGoChargeVo();
        BigDecimal amount = apiGrowChargeDto.getAmount();
        if(BigDecimal.ZERO.compareTo(amount) >= 0){
@@ -667,7 +669,22 @@
        }
        mallChargeMapper.insert(mallCharge);
        return new FebsResponse().success().data("操作成功");
        apiGoChargeVo.setFailTime(mallCharge.getFailTime());
        apiGoChargeVo.setAddress(mallCharge.getAddress());
        apiGoChargeVo.setAmount(mallCharge.getAmount());
        apiGoChargeVo.setSysAddress(mallCharge.getSysAddress());
        apiGoChargeVo.setSysAddressType(mallCharge.getType());
        /**
         * 充值接口调用后,发送一个延时队列
         *  功能:延迟时间为【failMinutes】后,更新充值记录为失败。
         */
        ApiMemberChargeFailDto apiMemberChargeFailDto = new ApiMemberChargeFailDto();
        apiMemberChargeFailDto.setChargeId(mallCharge.getId());
        apiMemberChargeFailDto.setFailTime(Integer.parseInt(failMinutes) * 60L* 1000L);
        agentProducer.sendMemberChargeFailMsg(apiMemberChargeFailDto);
        return new FebsResponse().success().data(apiGoChargeVo);
    }
    @Override