KKSU
2024-05-07 237dc82b539966a08fca13bbedbeaafd0822aff2
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";