| | |
| | | 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 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; |
| | |
| | | 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(); |
| | |
| | | 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); |
| | |
| | | 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.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); |
| | | }); |
| | | } |
| | |
| | | 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); |
| | | } |