From 61a8a1b57718b83b6f8ac09e817fabf09e96fdc0 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 19 May 2025 18:01:56 +0800
Subject: [PATCH] fix(member): 修正会员累计订单统计
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiSaleServiceImpl.java | 76 +++++++++++++++++++++++++++++++++-----
1 files changed, 66 insertions(+), 10 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiSaleServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiSaleServiceImpl.java
index d008859..0a6e6bc 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiSaleServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiSaleServiceImpl.java
@@ -8,10 +8,13 @@
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.ApiSaleService;
+import cc.mrbird.febs.mall.vo.memberLevel.ApiMemberLevelListInfoVo;
import cc.mrbird.febs.mall.vo.sale.*;
+import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -30,8 +33,10 @@
public class ApiSaleServiceImpl extends ServiceImpl<MallMemberMapper, MallMember> implements ApiSaleService {
private final HappySaleLevelMapper happySaleLevelMapper;
+ private final HappyMemberLevelMapper happyMemberLevelMapper;
private final MallAchieveRecordMapper mallAchieveRecordMapper;
private final MallMemberWalletMapper mallMemberWalletMapper;
+ private final MallMemberMapper mallMemberMapper;
@Override
public FebsResponse saleInfo() {
ApiSaleInfoVo apiSaleInfoVo = new ApiSaleInfoVo();
@@ -58,18 +63,17 @@
new LambdaQueryWrapper<MallAchieveRecord>()
.eq(MallAchieveRecord::getMemberId, id)
);
- if (CollUtil.isNotEmpty(mallAchieveRecords)) {
- apiSaleInfoVo.setTotalSaleAmount(
- CollUtil.isNotEmpty(mallAchieveRecords)
- ? mallAchieveRecords.stream().map(MallAchieveRecord::getCostAmount).reduce(BigDecimal.ZERO, BigDecimal::add)
- : BigDecimal.ZERO);
- apiSaleInfoVo.setOrderCnt(CollUtil.isNotEmpty(mallAchieveRecords) ? mallAchieveRecords.size() : 0);
- }
+ apiSaleInfoVo.setTotalSaleAmount(
+ CollUtil.isNotEmpty(mallAchieveRecords)
+ ? mallAchieveRecords.stream().map(MallAchieveRecord::getCostAmount).reduce(BigDecimal.ZERO, BigDecimal::add)
+ : BigDecimal.ZERO);
+ apiSaleInfoVo.setOrderCnt(CollUtil.isNotEmpty(mallAchieveRecords) ? mallAchieveRecords.size() : 0);
- List<MallMember> mallMembers = this.baseMapper.selectAllChildAgentListByInviteId(mallMember.getInviteId());
+ List<MallMember> mallMembers = this.baseMapper.selectByRefererId(mallMember.getInviteId());
apiSaleInfoVo.setTotalCnt(CollUtil.isNotEmpty(mallMembers) ? mallMembers.size() : 0);
- // todo 提现部分暂无
+ MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(id);
+ apiSaleInfoVo.setAvaAmount(mallMemberWallet.getCommission());
return new FebsResponse().success().data(apiSaleInfoVo);
}
@@ -142,17 +146,38 @@
public FebsResponse levelInfoList() {
ArrayList<ApiLevelListInfoVo> apiLevelListInfoVos = new ArrayList<>();
+ // 获取当前登录用户的ID
+ Long memberId = LoginUserUtil.getLoginUser().getId();
+ MallMember mallMember = this.baseMapper.selectById(memberId);
+
List<HappySaleLevel> happySaleLevels = happySaleLevelMapper.selectList(
new LambdaQueryWrapper<HappySaleLevel>()
.orderByAsc(HappySaleLevel::getCode)
+ );
+
+ List<MallMember> directMembers = mallMemberMapper.selectByRefererId(mallMember.getInviteId());
+ List<MallMember> teamMembers = mallMemberMapper.selectAllChildAgentListByInviteId(mallMember.getInviteId());
+ List<MallAchieveRecord> mallAchieveRecords = mallAchieveRecordMapper.selectList(
+ new LambdaQueryWrapper<MallAchieveRecord>()
+ .eq(MallAchieveRecord::getMemberId, memberId)
);
if (CollUtil.isNotEmpty(happySaleLevels)) {
happySaleLevels.forEach(happySaleLevel -> {
ApiLevelListInfoVo apiLevelListInfoVo = new ApiLevelListInfoVo();
apiLevelListInfoVo.setName(happySaleLevel.getName());
+ apiLevelListInfoVo.setMemberCode(mallMember.getStoreMaster());
apiLevelListInfoVo.setCode(happySaleLevel.getCode());
apiLevelListInfoVo.setContent(happySaleLevel.getContent());
- apiLevelListInfoVo.setIconPng(happySaleLevel.getIconPng());
+ apiLevelListInfoVo.setHeaderPng(happySaleLevel.getIconPng());
+ apiLevelListInfoVo.setTeamCnt(happySaleLevel.getTeamCnt());
+ apiLevelListInfoVo.setTeamCntNow(CollUtil.isNotEmpty(teamMembers) ? teamMembers.size() : 0);
+ apiLevelListInfoVo.setDirectCnt(happySaleLevel.getDirectCnt());
+ apiLevelListInfoVo.setDirectCntNow(CollUtil.isNotEmpty(directMembers) ? directMembers.size() : 0);
+ apiLevelListInfoVo.setTeamAmount(happySaleLevel.getTeamAmount());
+ apiLevelListInfoVo.setTeamAmountNow(
+ CollUtil.isNotEmpty(mallAchieveRecords)
+ ? mallAchieveRecords.stream().map(MallAchieveRecord::getCostAmount).reduce(BigDecimal.ZERO, BigDecimal::add)
+ : BigDecimal.ZERO);
apiLevelListInfoVos.add(apiLevelListInfoVo);
});
}
@@ -262,6 +287,37 @@
return new FebsResponse().success().data(apiSaleRecordInfoVo);
}
+ @Override
+ public FebsResponse memberLevelList() {
+ ArrayList<ApiMemberLevelListInfoVo> apiLevelListInfoVos = new ArrayList<>();
+
+ // 获取当前登录用户的ID
+ Long memberId = LoginUserUtil.getLoginUser().getId();
+ MallMember mallMember = this.baseMapper.selectById(memberId);
+ MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId);
+
+ List<HappyMemberLevel> happyMemberLevels = happyMemberLevelMapper.selectList(
+ new LambdaQueryWrapper<HappyMemberLevel>()
+ .orderByAsc(HappyMemberLevel::getCode)
+ );
+ //Stream 操作 happyMemberLevels,返回一个Map<code,HappyMemberLevel>
+ Map<Integer, HappyMemberLevel> happyMemberLevelMap = happyMemberLevels.stream()
+ .collect(Collectors.toMap(HappyMemberLevel::getCode, happyMemberLevel -> happyMemberLevel));
+ if (CollUtil.isNotEmpty(happyMemberLevels)) {
+ happyMemberLevels.forEach(happyMemberLevel -> {
+ ApiMemberLevelListInfoVo vo = new ApiMemberLevelListInfoVo();
+ BeanUtil.copyProperties(happyMemberLevel, vo);
+ vo.setMemberCode(mallMember.getDirector());
+ vo.setMemberScore(mallMemberWallet.getScore());
+ vo.setUpgradeScore(
+ ObjectUtil.isEmpty(happyMemberLevelMap.get(happyMemberLevel.getCode() + 1)) ?
+ 0 : happyMemberLevelMap.get(happyMemberLevel.getCode() + 1).getUpgradeScore()
+ );
+ apiLevelListInfoVos.add(vo);
+ });
+ }
+ return new FebsResponse().success().data(apiLevelListInfoVos);
+ }
}
--
Gitblit v1.9.1