From cd59cd93b4eceee7b5f948a19d4e78371348fcd0 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Thu, 27 Jun 2024 10:29:27 +0800 Subject: [PATCH] 后台 --- src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 209 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 188 insertions(+), 21 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java index 1e1ee93..4c607a3 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java @@ -2,10 +2,7 @@ import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; -import cc.mrbird.febs.common.enumerates.AgentLevelEnum; -import cc.mrbird.febs.common.enumerates.FlowTypeEnum; -import cc.mrbird.febs.common.enumerates.GreenScoreEnum; -import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; +import cc.mrbird.febs.common.enumerates.*; import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.common.utils.AppContants; import cc.mrbird.febs.common.utils.LoginUserUtil; @@ -14,6 +11,7 @@ import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.entity.MallNewsInfo; import cc.mrbird.febs.mall.mapper.*; +import cc.mrbird.febs.mall.service.AsyncService; import cc.mrbird.febs.mall.service.IAdminMallMemberService; import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; import cc.mrbird.febs.mall.service.IMallMoneyFlowService; @@ -39,8 +37,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -78,6 +75,7 @@ private final MallScoreRecordMapper mallScoreRecordMapper; private final MallScoreAchieveReleaseMapper mallScoreAchieveReleaseMapper; private final NBYHService nbyhService; + private final MallMemberAmountMapper mallMemberAmountMapper; @Override public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) { @@ -295,23 +293,70 @@ } @Override - public IPage<AdminAgentVo> getAgentList(AgentDto agentDto, QueryRequest request) { - Page<AdminAgentVo> page = new Page<>(request.getPageNum(), request.getPageSize()); - IPage<AdminAgentVo> adminAgentVos = this.baseMapper.getAgentListInPage(page, agentDto); - List<AdminAgentVo> records = adminAgentVos.getRecords(); - if(CollUtil.isNotEmpty(records)){ - for(AdminAgentVo adminAgentVo : records){ - String inviteId = adminAgentVo.getInviteId(); - //直接下级 - List<MallMember> mallMembers = mallMemberMapper.selectChildAgentListByInviteId(inviteId); - adminAgentVo.setMemberNum(CollUtil.isEmpty(mallMembers) ? 0 : mallMembers.size()); + public FebsResponse getAgentList(AgentDto agentDto, QueryRequest request) { + List<AdminMallMemberVo> adminMallMemberVos = new ArrayList<>(); + if(StrUtil.isEmpty(agentDto.getAccountLogin())){ + return new FebsResponse().success().data(adminMallMemberVos); + } + String accountLogin = agentDto.getAccountLogin(); + MallMember mallMember = this.baseMapper.selectByAccountLogin(accountLogin); + if(ObjectUtil.isEmpty(mallMember)){ + return new FebsResponse().success().data(adminMallMemberVos); + } - //获取总数 - List<MallMember> allMallMembers =mallMemberMapper.selectAllChildAgentListByInviteId(inviteId); - adminAgentVo.setAllMemberNum(CollUtil.isEmpty(allMallMembers) ? 0 : allMallMembers.size()); + ArrayList<Long> memberIdList = new ArrayList<>(); + memberIdList.add(mallMember.getId()); + + QueryWrapper<MallMember> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("referrer_id",mallMember.getInviteId()); + List<MallMember> mallMembers = this.baseMapper.selectList(objectQueryWrapper); + if(CollUtil.isNotEmpty(mallMembers)){ + for(MallMember directMember : mallMembers){ + //第一代 + memberIdList.add(directMember.getId()); + + QueryWrapper<MallMember> directWrapper = new QueryWrapper<>(); + directWrapper.eq("referrer_id",directMember.getInviteId()); + List<MallMember> refMembers = this.baseMapper.selectList(directWrapper); + if(CollUtil.isNotEmpty(refMembers)){ + for(MallMember refMember : refMembers){ + //第二代 + memberIdList.add(refMember.getId()); + } + } } } - return adminAgentVos; + + for(Long id : memberIdList){ + AdminMallMemberVo adminMallMemberVo = new AdminMallMemberVo(); + + MallMember member = this.baseMapper.selectById(id); + adminMallMemberVo.setAccountLogin(member.getAccountLogin()); + + BigDecimal chargeAmount = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_CHARGE.getValue()); + adminMallMemberVo.setChargeAmount(chargeAmount); + BigDecimal withDrawAmount = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_WITHDRAW.getValue()); + adminMallMemberVo.setWithDrawAmount(withDrawAmount); + + MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(id); + adminMallMemberVo.setBalance(mallMemberWallet.getBalance()); + + BigDecimal amountBuy = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_PICK_NUM.getValue()); + adminMallMemberVo.setAmountBuy(amountBuy); + + BigDecimal playerPerk = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_PERK.getValue()); + BigDecimal ownerPerk = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.OWNER_PERK.getValue()); + BigDecimal add = amountBuy.add(playerPerk).add(ownerPerk); + adminMallMemberVo.setAmountPerk(add); + + adminMallMemberVos.add(adminMallMemberVo); + } + + Map<String, Object> data = new HashMap<>(2); + data.put("rows", adminMallMemberVos); + data.put("total", adminMallMemberVos.size()); + + return new FebsResponse().success().data(data); } @Override @@ -476,7 +521,12 @@ } else { iApiMallMemberWalletService.add(mallSystemPayDto.getAddBalance(), mallSystemPayDto.getId(), filedType); } - mallMoneyFlowService.addMoneyFlow(memberId, bigDecimal, MoneyFlowTypeEnum.SYSTEM.getValue(), null, type); + mallMoneyFlowService.addMoneyFlow( + memberId, + bigDecimal, + GameFlowTypeEnum.PLAYER_CHARGE.getValue(), + MallUtils.getOrderNum("CZ"), + GameFlowTypeEnum.PLAYER_CHARGE.getDescrition()); return new FebsResponse().success(); } @@ -641,6 +691,7 @@ return this.baseMapper.selectInfoByInviteId(inviteId); } + private final AsyncService asyncService; @Override @Transactional(rollbackFor = Exception.class) public void modifyReferer(MallMember member) { @@ -666,6 +717,15 @@ for (MallMember child : childs) { child.setReferrerIds(member.getInviteId() + "," + refererIds); this.baseMapper.updateById(child); + } + + log.info("异步更新用户信息"); + List<MallMember> mallMembers = this.baseMapper.selectList(null); + if(CollUtil.isEmpty(mallMembers)){ + return; + } + for(MallMember mallMemberDown : mallMembers){ + asyncService.updateAllMemberReferrerId(mallMemberDown); } } @@ -875,6 +935,113 @@ } + @Override + public IPage<AdminMallMemberVo> getFcmMallMemberList(MallMember mallMember, QueryRequest request) { + Page<AdminMallMemberVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<AdminMallMemberVo> adminMallMemberVoIPage = this.baseMapper.getFcmMallMemberList(page, mallMember); + List<AdminMallMemberVo> records = adminMallMemberVoIPage.getRecords(); + if(CollUtil.isNotEmpty(records)){ + for(AdminMallMemberVo adminMallMemberVo : records){ + Long id = adminMallMemberVo.getId(); + BigDecimal chargeAmount = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_CHARGE.getValue()); + adminMallMemberVo.setChargeAmount(chargeAmount); + BigDecimal withDrawAmount = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_WITHDRAW.getValue()); + adminMallMemberVo.setWithDrawAmount(withDrawAmount); + BigDecimal amountBuy = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_PICK_NUM.getValue()); + adminMallMemberVo.setAmountBuy(amountBuy); + BigDecimal playerPerk = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_PERK.getValue()); + BigDecimal ownerPerk = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.OWNER_PERK.getValue()); + BigDecimal add = amountBuy.add(playerPerk).add(ownerPerk); + adminMallMemberVo.setAmountPerk(add); + } + } + + + return adminMallMemberVoIPage; + } + + @Override + public FebsResponse frozenWith(Long id, int i) { + + MallMember mallMember = mallMemberMapper.selectById(id); + if(ObjectUtil.isEmpty(mallMember)) { + return new FebsResponse().fail().message("会员信息不存在"); + } + mallMember.setIsFrozen(i); + mallMemberMapper.updateById(mallMember); + return new FebsResponse().success(); + } + + @Override + public FebsResponse updateSystemPayInfo(MallSystemPayDto mallSystemPayDto) { + Long amountId = mallSystemPayDto.getId(); + MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectById(amountId); + MallMember mallMember = mallMemberMapper.selectById(mallMemberAmount.getMemberId()); + if(ObjectUtil.isEmpty(mallMember)){ + throw new FebsException("会员不存在"); + } + BigDecimal bigDecimal = mallSystemPayDto.getAddBalance(); + Integer type = mallSystemPayDto.getType(); + Integer flowType = 0; + if (type == 1) { + BigDecimal add = mallMemberAmount.getTrendsNft().add(bigDecimal); + if(BigDecimal.ZERO.compareTo(add) > 0){ + throw new FebsException("输入合适的值"); + } + mallMemberAmount.setTrendsNft(add); + mallMemberAmountMapper.updateTrendsNftById(mallMemberAmount); + flowType = FlowTypeNewEnum.NFT.getValue(); + } else if (type == 2) { + BigDecimal add = mallMemberAmount.getFcmCntAva().add(bigDecimal); + if(BigDecimal.ZERO.compareTo(add) > 0){ + throw new FebsException("输入合适的值"); + } + mallMemberAmount.setFcmCntAva(add); + mallMemberAmountMapper.updateFcmCntAvaById(mallMemberAmount); + flowType = FlowTypeNewEnum.FCM_COIN.getValue(); + } else if (type == 3) { + BigDecimal add = mallMemberAmount.getTokenAva().add(bigDecimal); + if(BigDecimal.ZERO.compareTo(add) > 0){ + throw new FebsException("输入合适的值"); + } + mallMemberAmount.setTokenAva(add); + mallMemberAmountMapper.updateTokenAvaById(mallMemberAmount); + flowType = FlowTypeNewEnum.TOKEN.getValue(); + } else { + throw new FebsException("参数错误"); + } + String orderNo = MallUtils.getOrderNum("BF"); + mallMoneyFlowService.addMoneyFlow( + mallMemberAmount.getMemberId(), + bigDecimal, + MoneyFlowTypeNewEnum.SYSTEM_PEY.getValue(), + orderNo, + mallMemberAmount.getMemberId(), + flowType, + MoneyFlowTypeNewEnum.SYSTEM_PEY.getDescrition()); + return new FebsResponse().success(); + } + + @Override + public MallMemberVo getMallmemberAmountByMemberId(long id) { + MallMemberVo mallMemberVo = mallMemberMapper.getMallmemberAmountByMemberId(id); + return mallMemberVo; + } + + @Override + public IPage<MallMemberCharge> memberChargeList(MoneyChargeListDto moneyChargeListDto, QueryRequest request) { + Page<MallMemberCharge> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<MallMemberCharge> mallMemberChargeIPage = mallMemberMapper.getMemberChargeListInPage(page, moneyChargeListDto); + return mallMemberChargeIPage; + } + + @Override + public IPage<MallMemberWithdraw> memberWithDrawList(MoneyChargeListDto moneyChargeListDto, QueryRequest request) { + Page<MallMemberWithdraw> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<MallMemberWithdraw> mallMemberWithdrawIPage = mallMemberMapper.getMemberWithDrawListInPage(page, moneyChargeListDto); + return mallMemberWithdrawIPage; + } + private String refererIds(String parentId) { boolean flag = false; if (StrUtil.isBlank(parentId)) { -- Gitblit v1.9.1