| | |
| | | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | 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) { |
| | |
| | | } |
| | | |
| | | @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 |
| | |
| | | } 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(); |
| | | } |
| | | |
| | |
| | | return this.baseMapper.selectInfoByInviteId(inviteId); |
| | | } |
| | | |
| | | private final AsyncService asyncService; |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void modifyReferer(MallMember member) { |
| | |
| | | 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); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | @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)) { |