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