From 24a0c40654afc75c9da879ebb4c9a4c93c57e806 Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Wed, 07 Jun 2023 12:00:54 +0800 Subject: [PATCH] 微信支付 --- 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 db57367..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.WECHAT.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