Administrator
2025-05-21 5fea0979a485fde02e3a76d6d3786f4182c9c9e2
src/main/java/cc/mrbird/febs/mall/service/impl/ApiSaleServiceImpl.java
@@ -1,7 +1,9 @@
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;
@@ -15,6 +17,7 @@
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;
@@ -36,6 +39,8 @@
    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();
@@ -62,15 +67,13 @@
                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);
        MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(id);
@@ -155,6 +158,13 @@
                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();
@@ -162,7 +172,16 @@
                apiLevelListInfoVo.setMemberCode(mallMember.getStoreMaster());
                apiLevelListInfoVo.setCode(happySaleLevel.getCode());
                apiLevelListInfoVo.setContent(happySaleLevel.getContent());
                apiLevelListInfoVo.setHeaderPng(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);
            });
        }
@@ -289,17 +308,26 @@
        Map<Integer, HappyMemberLevel> happyMemberLevelMap = happyMemberLevels.stream()
                .collect(Collectors.toMap(HappyMemberLevel::getCode, happyMemberLevel -> happyMemberLevel));
        if (CollUtil.isNotEmpty(happyMemberLevels)) {
            happyMemberLevels.forEach(happyMemberLevel -> {
            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() + 1)) ?
                                 0 : happyMemberLevelMap.get(happyMemberLevel.getCode() + 1).getUpgradeScore()
            );
                        ObjectUtil.isEmpty(happyMemberLevelMap.get(happyMemberLevel.getCode())) ?
                                0 : happyMemberLevelMap.get(happyMemberLevel.getCode()).getUpgradeScore()
                );
                apiLevelListInfoVos.add(vo);
            });
            }
        }
        return new FebsResponse().success().data(apiLevelListInfoVos);
    }