From 0bc524c2ad75096ab88b6fc5d5725012020b3ea9 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 21 Feb 2024 16:25:53 +0800
Subject: [PATCH] 抽奖
---
src/main/java/cc/mrbird/febs/pay/service/impl/WxPayServiceImpl.java | 33 ++++++++++++++++++++++++++++++---
1 files changed, 30 insertions(+), 3 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 9af7d05..9c4535b 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,8 +95,9 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public void payCallback(Map<String, String> params) {
- String orderNo = params.get("outTradeNo");
+ String orderNo = params.get("out_trade_no");
LambdaQueryWrapper<MallOrderInfo> query = new LambdaQueryWrapper<>();
query.eq(MallOrderInfo::getOrderNo, orderNo);
@@ -96,5 +111,17 @@
orderInfo.setPayTime(new Date());
orderInfo.setPayTradeNo(params.get("transaction_id"));
orderInfoMapper.updateById(orderInfo);
+
+ commonService.changeWallet(orderInfo.getId(), FlowTypeEnum.WECHAT.getValue());
+
+ /**
+ * 插入一条待处理记录
+ * mq处理之后,更新状态
+ */
+ MallMqRecord mallMqRecord = new MallMqRecord();
+ mallMqRecord.setOrderId(orderInfo.getId());
+ mallMqRecord.setState(2);
+ mallMqRecord.setRetryTimes(2);
+ mallMqRecordMapper.insert(mallMqRecord);
}
}
--
Gitblit v1.9.1