From a331c3be6000d3c81f88e0a564e2db63da99018b Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 21 May 2025 10:33:42 +0800
Subject: [PATCH] feat(score): 初始化积分设置页面的默认值

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiSaleServiceImpl.java |   89 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 79 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..2f8b711 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
@@ -1,17 +1,23 @@
 package cc.mrbird.febs.mall.service.impl;
 
 import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
 import cc.mrbird.febs.common.utils.LoginUserUtil;
+import cc.mrbird.febs.mall.dto.ScoreSettingDto;
 import cc.mrbird.febs.mall.dto.sale.ApiSaleListInfoDto;
 import cc.mrbird.febs.mall.dto.sale.ApiSaleRecordInfoDto;
 import cc.mrbird.febs.mall.dto.sale.ApiTeamListInfoDto;
 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.alibaba.fastjson.JSONObject;
 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 +36,11 @@
 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;
+    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
     @Override
     public FebsResponse saleInfo() {
         ApiSaleInfoVo apiSaleInfoVo = new ApiSaleInfoVo();
@@ -58,18 +67,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 +150,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.getHeaderPng());
+                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 +291,46 @@
         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)) {
+            int mostSignIn = 1;
+            DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                    DataDictionaryEnum.SCORE_SIGN_SETTING.getType(),
+                    DataDictionaryEnum.SCORE_SIGN_SETTING.getCode());
+            if (dic != null) {
+                ScoreSettingDto scoreSettingDto = JSONObject.parseObject(dic.getValue(), ScoreSettingDto.class);
+                mostSignIn = ObjectUtil.isEmpty(scoreSettingDto.getMostSignIn()) ? 1 : scoreSettingDto.getMostSignIn();
+            }
+            for (HappyMemberLevel happyMemberLevel : happyMemberLevels) {
+                ApiMemberLevelListInfoVo vo = new ApiMemberLevelListInfoVo();
+                BeanUtil.copyProperties(happyMemberLevel, vo);
+                vo.setMostSignIn(mostSignIn);
+                vo.setMemberCode(mallMember.getDirector());
+                vo.setMemberScore(mallMemberWallet.getScore());
+                vo.setUpgradeScore(
+                        ObjectUtil.isEmpty(happyMemberLevelMap.get(happyMemberLevel.getCode())) ?
+                                0 : happyMemberLevelMap.get(happyMemberLevel.getCode()).getUpgradeScore()
+                );
+                apiLevelListInfoVos.add(vo);
+            }
+        }
+        return new FebsResponse().success().data(apiLevelListInfoVos);
+    }
 
 
 }

--
Gitblit v1.9.1