From 1d0d712b4f2b489e020cbf23eaf20e386eee1561 Mon Sep 17 00:00:00 2001
From: Hentua <wangdoubleone@gmail.com>
Date: Thu, 15 Jun 2023 01:46:42 +0800
Subject: [PATCH] fix
---
src/main/java/cc/mrbird/febs/pay/service/impl/WxPayServiceImpl.java | 60 ++++++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 40 insertions(+), 20 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 4fd8f86..b0fa8fc 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
@@ -2,16 +2,16 @@
import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
+import cc.mrbird.febs.common.enumerates.GoodsToLevelEnums;
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.entity.MallOrderItem;
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.mall.service.*;
import cc.mrbird.febs.pay.properties.WxPayProperties;
import cc.mrbird.febs.pay.service.IPayService;
import cc.mrbird.febs.rabbit.producter.AgentProducer;
@@ -47,9 +47,6 @@
public class WxPayServiceImpl implements IPayService {
@Autowired
- private ICommonService commonService;
-
- @Autowired
private MallOrderInfoMapper orderInfoMapper;
@Autowired
@@ -59,10 +56,16 @@
private WxPayProperties wxPayProperties;
@Autowired
- private MallMqRecordMapper mallMqRecordMapper;
+ private AgentProducer agentProducer;
@Autowired
- private AgentProducer agentProducer;
+ private IMallAchieveService mallAchieveService;
+
+ @Autowired
+ private IApiMallMemberService mallMemberService;
+
+ @Autowired
+ private IApiMallMemberWalletService memberWalletService;
@Value("${spring.profiles.active}")
private String active;
@@ -112,20 +115,37 @@
orderInfo.setPayTradeNo(params.get("transaction_id"));
orderInfoMapper.updateById(orderInfo);
- commonService.changeWallet(orderInfo.getId(), FlowTypeEnum.BALANCE.getValue());
+ MallMember member = mallMemberService.getById(orderInfo.getMemberId());
- /**
- * 插入一条待处理记录
- * mq处理之后,更新状态
- */
- MallMqRecord mallMqRecord = new MallMqRecord();
- mallMqRecord.setOrderId(orderInfo.getId());
- mallMqRecord.setState(2);
- mallMqRecord.setRetryTimes(2);
- mallMqRecordMapper.insert(mallMqRecord);
- //发送补贴消息
- agentProducer.sendPerkMoneyMsg(orderInfo.getId());
+ // 商品级别 会员/代理/股东
+ int goodsLevel = 0;
+ BigDecimal score = BigDecimal.ZERO;
+ for (MallOrderItem item : orderInfo.getItems()) {
+ // 计算静态倍数
+ if(item.getIsNormal() == 2) {
+ score = score.add(item.getPrice().multiply(item.getStaticMulti()));
+ }
+
+ // 判断会员层级
+ if (item.getIsNormal() == 2 && goodsLevel < item.getGoodsLevel()) {
+ goodsLevel = item.getGoodsLevel();
+ }
+
+ mallAchieveService.add(item.getId());
+ }
+
+ // 根据用户购买的商品设置其等级
+ member.setLevel(GoodsToLevelEnums.getLevelByAccountLevel(goodsLevel));
+ member.setAccountLevel(goodsLevel);
+ this.mallMemberService.updateById(member);
+
+ memberWalletService.add(score, member.getId(), "score");
+
//发送代理自动升级消息
agentProducer.sendAutoLevelUpMsg(orderInfo.getMemberId());
+ //发送直推返利消息
+ agentProducer.sendOrderReturn(orderInfo.getId());
+ // 发送分红消息
+ agentProducer.sendOrderBonus(orderInfo.getId());
}
}
--
Gitblit v1.9.1