From 387515b2c1e8894fe92328fc329771aab1700f07 Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Fri, 07 Apr 2023 18:36:26 +0800 Subject: [PATCH] fix --- src/main/java/cc/mrbird/febs/pay/service/impl/WxPayServiceImpl.java | 35 +++++++++++++++++++++++++++++++++-- 1 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/pay/service/impl/WxPayServiceImpl.java b/src/main/java/cc/mrbird/febs/pay/service/impl/WxPayServiceImpl.java index c7f583f..4fd8f86 100644 --- a/src/main/java/cc/mrbird/febs/pay/service/impl/WxPayServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/pay/service/impl/WxPayServiceImpl.java @@ -1,14 +1,20 @@ package cc.mrbird.febs.pay.service.impl; import cc.mrbird.febs.common.enumerates.AgentLevelEnum; +import cc.mrbird.febs.common.enumerates.FlowTypeEnum; import cc.mrbird.febs.common.enumerates.OrderStatusEnum; import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.mall.entity.MallMember; +import cc.mrbird.febs.mall.entity.MallMqRecord; import cc.mrbird.febs.mall.entity.MallOrderInfo; +import cc.mrbird.febs.mall.mapper.MallMqRecordMapper; import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper; import cc.mrbird.febs.mall.service.IApiMallMemberService; +import cc.mrbird.febs.mall.service.IApiMallOrderInfoService; +import cc.mrbird.febs.mall.service.ICommonService; import cc.mrbird.febs.pay.properties.WxPayProperties; import cc.mrbird.febs.pay.service.IPayService; +import cc.mrbird.febs.rabbit.producter.AgentProducer; import cn.hutool.core.date.DateField; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUnit; @@ -25,6 +31,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.Date; @@ -40,7 +47,8 @@ public class WxPayServiceImpl implements IPayService { @Autowired - private IApiMallMemberService memberService; + private ICommonService commonService; + @Autowired private MallOrderInfoMapper orderInfoMapper; @@ -49,6 +57,12 @@ @Autowired private WxPayProperties wxPayProperties; + + @Autowired + private MallMqRecordMapper mallMqRecordMapper; + + @Autowired + private AgentProducer agentProducer; @Value("${spring.profiles.active}") private String active; @@ -68,7 +82,7 @@ if ("dev".equals(active) || "test".equals(active)) { request.setTotalFee(1); } else { - request.setTotalFee(orderInfo.getAmount().multiply(new BigDecimal(100)).intValue()); + request.setTotalFee(orderInfo.getAmount().subtract(orderInfo.getScoreAmount()).multiply(new BigDecimal(100)).intValue()); } try { @@ -81,6 +95,7 @@ } @Override + @Transactional(rollbackFor = Exception.class) public void payCallback(Map<String, String> params) { String orderNo = params.get("out_trade_no"); @@ -96,5 +111,21 @@ orderInfo.setPayTime(new Date()); orderInfo.setPayTradeNo(params.get("transaction_id")); orderInfoMapper.updateById(orderInfo); + + commonService.changeWallet(orderInfo.getId(), FlowTypeEnum.BALANCE.getValue()); + + /** + * 插入一条待处理记录 + * mq处理之后,更新状态 + */ + MallMqRecord mallMqRecord = new MallMqRecord(); + mallMqRecord.setOrderId(orderInfo.getId()); + mallMqRecord.setState(2); + mallMqRecord.setRetryTimes(2); + mallMqRecordMapper.insert(mallMqRecord); + //发送补贴消息 + agentProducer.sendPerkMoneyMsg(orderInfo.getId()); + //发送代理自动升级消息 + agentProducer.sendAutoLevelUpMsg(orderInfo.getMemberId()); } } -- Gitblit v1.9.1