From 237dc82b539966a08fca13bbedbeaafd0822aff2 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Tue, 07 May 2024 15:43:01 +0800
Subject: [PATCH] 我的团队、商品的类别

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |   73 ++++++++++++++++++++++++++++++++++++
 1 files changed, 72 insertions(+), 1 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index 18dd2a9..0d2c1c5 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -95,6 +95,7 @@
     private final MallStoreMapper mallStoreMapper;
     private final MallStoreItemMapper mallStoreItemMapper;
     private final MallStoreMemberMapper mallStoreMemberMapper;
+    private final MallMemberLevelMapper mallMemberLevelMapper;
 
 
     @Value("${spring.profiles.active}")
@@ -379,12 +380,30 @@
         MallMember mallMember = this.baseMapper.selectById(memberId);
 
         List<TeamListVo> list = this.baseMapper.selectTeamListByInviteId(mallMember.getInviteId());
+        if(CollUtil.isNotEmpty(list)){
+            for(TeamListVo teamListVo : list){
+                String levelName = "";
+                if(1 == teamListVo.getLevelCode()){
+                    levelName = "一级";
+                }else if(2 == teamListVo.getLevelCode()){
+                    levelName = "二级";
+                }
+                teamListVo.setLevelName(levelName);
+            }
+        }
+
+        QueryWrapper<MallMemberLevel> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("member_id",memberId);
+        MallMemberLevel mallMemberLevel = mallMemberLevelMapper.selectOne(queryWrapper);
 
         MyTeamVo myTeamVo = new MyTeamVo();
+        myTeamVo.setLevelPercent(mallMemberLevel.getLevelPercent());
+        myTeamVo.setLevelCode(mallMemberLevel.getLevelCode());
         myTeamVo.setTeam(list);
         myTeamVo.setMyAchieve(this.mallOrderInfoMapper.selectAmountOrTeamAmount(mallMember.getInviteId(), 1));
         myTeamVo.setMyTeamAchieve(this.mallOrderInfoMapper.selectAmountOrTeamAmount(mallMember.getInviteId(), 2));
-        myTeamVo.setMyTeamCnt(this.baseMapper.selectAllChildAgentListByInviteId(mallMember.getInviteId()).size());
+        List<MallMember> mallMembers = this.baseMapper.selectChildAgentListByInviteId(mallMember.getInviteId());
+        myTeamVo.setMyTeamCnt(CollUtil.isEmpty(mallMembers) ? 0 : mallMembers.size());
         return new FebsResponse().success().data(myTeamVo);
     }
 
@@ -674,6 +693,12 @@
                         }
                     }
                     this.baseMapper.insert(mallMember);
+
+                    MallMemberLevel mallMemberLevel = new MallMemberLevel();
+                    mallMemberLevel.setMemberId(mallMember.getId());
+                    mallMemberLevel.setLevelCode(0);
+                    mallMemberLevel.setLevelPercent(BigDecimal.ZERO);
+                    mallMemberLevelMapper.insert(mallMemberLevel);
 
                     mallMember = this.baseMapper.selectMemberByOpenId(openId);
                     String inviteId = ShareCodeUtil.toSerialCode(mallMember.getId());
@@ -1307,6 +1332,52 @@
         return new FebsResponse().success().data(data);
     }
 
+    @Override
+    public FebsResponse levelUpdate(ApiLevelUpdateDto apiLevelUpdateDto) {
+        Long levelId = apiLevelUpdateDto.getLevelId();
+        MallMemberLevel mallMemberLevel = mallMemberLevelMapper.selectById(levelId);
+        if(ObjectUtil.isEmpty(mallMemberLevel)){
+            throw new FebsException("记录不存在");
+        }
+
+        DataDictionaryCustom memberLevelOneDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.MEMBER_LEVEL_ONE.getType(),
+                DataDictionaryEnum.MEMBER_LEVEL_ONE.getCode()
+        );
+        if(Integer.parseInt(memberLevelOneDic.getValue()) != mallMemberLevel.getLevelCode()){
+            throw new FebsException(StrUtil.format("{}才能设置层级和佣金比例}", memberLevelOneDic.getDescription()));
+        }
+
+        DataDictionaryCustom memberLevelTwoDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.MEMBER_LEVEL_TWO.getType(),
+                DataDictionaryEnum.MEMBER_LEVEL_TWO.getCode()
+        );
+        Integer levelCode = apiLevelUpdateDto.getLevelCode();
+        if(Integer.parseInt(memberLevelTwoDic.getValue()) != levelCode){
+            throw new FebsException(StrUtil.format("当前用户只能设置{}}", memberLevelTwoDic.getDescription()));
+        }
+
+        DataDictionaryCustom minPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.MEMBER_LEVEL_PERCENT_MIN.getType(),
+                DataDictionaryEnum.MEMBER_LEVEL_PERCENT_MIN.getCode()
+        );
+        DataDictionaryCustom maxPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.MEMBER_LEVEL_PERCENT_MAX.getType(),
+                DataDictionaryEnum.MEMBER_LEVEL_PERCENT_MAX.getCode()
+        );
+        BigDecimal minPercent = new BigDecimal(minPercentDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
+        BigDecimal maxPercent = new BigDecimal(maxPercentDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
+        BigDecimal levelPercent = apiLevelUpdateDto.getLevelPercent();
+        if(levelPercent.compareTo(minPercent) < 0 || levelPercent.compareTo(maxPercent) > 0){
+            throw new FebsException(StrUtil.format("佣金比例必须在{}和{}之间。", minPercent,maxPercent));
+        }
+
+        mallMemberLevel.setLevelCode(levelCode);
+        mallMemberLevel.setLevelPercent(levelPercent);
+        mallMemberLevelMapper.updateById(mallMemberLevel);
+        return new FebsResponse().success().message("操作成功");
+    }
+
     public static void main(String[] args) {
         Long userld = 173L;
         String shopAccount = "luohu";

--
Gitblit v1.9.1