From f16f74cacb9ef0ae4be89ed15353b6a449479d8c Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Wed, 28 May 2025 13:38:09 +0800 Subject: [PATCH] feat(mall): 添加轮播图背景图片功能 --- 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..4bc6271 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::getAmount).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