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