From a7b8b0c439d0a705bced3fda9b04e38e44c26707 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Wed, 21 May 2025 10:53:00 +0800 Subject: [PATCH] fix(mall): 修复管理员禁用会员时未同步更新小程序登录状态 --- src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java | 29 +++++++++++------------------ 1 files changed, 11 insertions(+), 18 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java b/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java index e403f53..ffd0c68 100644 --- a/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java @@ -127,7 +127,7 @@ mallMemberWalletService.add(mineScore,memberId , "prizeScore"); // 记录会员购买获得的经验 - BigDecimal multiply = amount.multiply(minePercent); + BigDecimal multiply = amount.multiply(minePercent).setScale(2, RoundingMode.HALF_DOWN); mallMoneyFlowService.addMoneyFlow( memberId, multiply, @@ -139,6 +139,8 @@ ); // 更新会员钱包中的分数 mallMemberWalletService.add(multiply, memberId, "score"); + // 发送会员等级升级消息 + agentProducer.sendVipLevelUp(memberId); } // 计算推荐人获得的积分 if(StrUtil.isNotEmpty(member.getReferrerId())){ @@ -158,7 +160,7 @@ mallMemberWalletService.add(otherScore,refMember.getId() , "prizeScore"); // 记录会员购买获得的经验 - BigDecimal multiply = amount.multiply(otherPercent); + BigDecimal multiply = amount.multiply(otherPercent).setScale(2, RoundingMode.HALF_DOWN); mallMoneyFlowService.addMoneyFlow( refMember.getId(), multiply, @@ -170,12 +172,12 @@ ); // 更新会员钱包中的分数 mallMemberWalletService.add(multiply, refMember.getId(), "score"); + // 发送会员等级升级消息 + agentProducer.sendVipLevelUp(refMember.getId()); } } } - // 发送会员等级升级消息 - agentProducer.sendVipLevelUp(orderId); // 发送分销等级升级消息 agentProducer.sendSaleLevelUp(orderId); } @@ -190,20 +192,8 @@ @Override @Transactional(rollbackFor = Exception.class) public void levelUp(Long orderId) { - // 根据订单ID获取订单详细信息 - MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectOrderDetailsById(orderId); - // 如果订单信息为空,则直接返回 - if (mallOrderInfo == null) { - return; - } - // 如果订单状态不是完成状态,则直接返回 - if (mallOrderInfo.getStatus() != OrderStatusEnum.FINISH.getValue()) { - // 订单不是完成状态 - return; - } - // 根据订单中的会员ID获取会员信息 - MallMember member = mallMemberMapper.selectById(mallOrderInfo.getMemberId()); + MallMember member = mallMemberMapper.selectById(orderId); // 如果会员信息为空,则记录日志并返回 if (member == null) { log.info("会员不存在"); @@ -236,6 +226,9 @@ Integer code = happyMemberLevel.getCode(); // 如果当前会员等级与会员的导演等级相同,则直接返回 if(member.getDirector() == code){ + return; + } + if(member.getDirector() > code){ return; } @@ -286,7 +279,7 @@ .eq(MallMember::getAccountStatus, MallMember.ACCOUNT_STATUS_ENABLE) .eq(MallMember::getAccountType, MallMember.ACCOUNT_TYPE_NORMAL) .ne(MallMember::getStoreMaster, 0) - .orderByAsc(MallMember::getStoreMaster) + .orderByDesc(MallMember::getId) .last("limit 1") ); // 如果没有找到符合条件的团长,则记录日志并返回 -- Gitblit v1.9.1