KKSU
2024-01-05 a5f55c1fa8b7969de39e3916d669fd4f7bebba7a
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -87,6 +87,7 @@
    private final MallProductSellRecordMapper mallProductSellRecordMapper;
    private final ICommonService commonService;
    private final MallMemberAmountMapper mallMemberAmountMapper;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -343,30 +344,31 @@
//                orderInfo.setPayMethod("支付宝支付");
                break;
            case "3":
                payResultStr = balancePay(orderInfo, payOrderDto.getTradePwd(), "balance");
                payResultStr = balancePayNew(orderInfo, payOrderDto.getTradePwd());
                orderInfo.setPayOrderNo(orderInfo.getOrderNo());
                orderInfo.setPayMethod("余额支付");
                orderInfo.setPayMethod("积分支付");
                orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
                orderInfo.setPayTime(new Date());
                orderInfo.setPayResult("1");
                this.baseMapper.updateById(orderInfo);
                commonService.changeWallet(orderInfo.getId(), FlowTypeEnum.BALANCE.getValue());
//                commonService.changeWallet(orderInfo.getId(), FlowTypeEnum.BALANCE.getValue());
                /**
                 * 插入一条待处理记录
                 * mq处理之后,更新状态
                 */
                MallMqRecord mallMqRecord = new MallMqRecord();
                mallMqRecord.setOrderId(orderInfo.getId());
                mallMqRecord.setState(2);
                mallMqRecord.setRetryTimes(2);
                mallMqRecord.setCreateTime(orderInfo.getPayTime());
                mallMqRecordMapper.insert(mallMqRecord);
                //发送补贴消息
                agentProducer.sendPerkMoneyMsg(orderInfo.getId());
                //发送代理自动升级消息
                agentProducer.sendAutoLevelUpMsg(member.getId());
//                MallMqRecord mallMqRecord = new MallMqRecord();
//                mallMqRecord.setOrderId(orderInfo.getId());
//                mallMqRecord.setState(2);
//                mallMqRecord.setRetryTimes(2);
//                mallMqRecord.setCreateTime(orderInfo.getPayTime());
//                mallMqRecordMapper.insert(mallMqRecord);
//                //发送补贴消息
//                agentProducer.sendPerkMoneyMsg(orderInfo.getId());
//                //发送代理自动升级消息
//                agentProducer.sendAutoLevelUpMsg(member.getId());
                break;
            case "4":
                if (orderInfo.getOrderType() != 2) {
@@ -469,6 +471,29 @@
        if (reduce == 2) {
            throw new FebsException("余额不足");
        }
        return orderInfo.getOrderNo();
    }
    private String balancePayNew(MallOrderInfo orderInfo, String tradePwd) {
        if (StrUtil.isBlank(tradePwd)) {
            throw new FebsException("支付密码错误");
        }
        MallMember mallMember = memberMapper.selectById(orderInfo.getMemberId());
        if (StrUtil.isBlank(mallMember.getTradePassword())) {
            throw new FebsException("未设置支付密码");
        }
        if (!SecureUtil.md5(tradePwd).equals(mallMember.getTradePassword())) {
            throw new FebsException("支付密码错误");
        }
        MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(mallMember.getId());
        BigDecimal subtract = mallMemberAmount.getGsd().subtract(orderInfo.getAmount());
        if(BigDecimal.ZERO.compareTo(subtract) > 0){
            throw new FebsException("积分不足");
        }
        mallMemberAmount.setGsd(subtract);
        mallMemberAmountMapper.updateGsdById(mallMemberAmount);
        return orderInfo.getOrderNo();
    }
@@ -815,6 +840,9 @@
        if(ObjectUtil.isEmpty(mallProductSellRecord)){
            return;
        }
        if(ProductEnum.PRODUCT_MATE_STATE_PAY.getValue() != mallProductSellRecord.getState()){
            return;
        }
        MallProductSell mallProductSell = mallProductSellMapper.selectById(mallProductSellRecord.getSellId());
        if(ObjectUtil.isEmpty(mallProductSell)){
            return;