From adee5d271a70cbcb9ab45cec00795c9a7b34f6bf Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 25 Jul 2024 10:47:17 +0800
Subject: [PATCH] 后台
---
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 140 +++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 123 insertions(+), 17 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 0b52189..c66338d 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
@@ -7,10 +7,12 @@
import cc.mrbird.febs.common.utils.AppContants;
import cc.mrbird.febs.common.utils.LoginUserUtil;
import cc.mrbird.febs.common.utils.MallUtils;
+import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.mall.dto.*;
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;
@@ -36,8 +38,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;
/**
@@ -76,6 +77,7 @@
private final MallScoreAchieveReleaseMapper mallScoreAchieveReleaseMapper;
private final NBYHService nbyhService;
private final MallMemberAmountMapper mallMemberAmountMapper;
+ private final RedisUtils redisUtils;
@Override
public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) {
@@ -293,23 +295,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
@@ -474,7 +523,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();
}
@@ -639,6 +693,7 @@
return this.baseMapper.selectInfoByInviteId(inviteId);
}
+ private final AsyncService asyncService;
@Override
@Transactional(rollbackFor = Exception.class)
public void modifyReferer(MallMember member) {
@@ -664,6 +719,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);
}
}
@@ -877,6 +941,24 @@
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;
}
@@ -889,6 +971,16 @@
}
mallMember.setIsFrozen(i);
mallMemberMapper.updateById(mallMember);
+
+ String redisKey = AppContants.APP_LOGIN_PREFIX + mallMember.getId();
+ String existToken = redisUtils.getString(redisKey);
+ if (StrUtil.isNotBlank(existToken)) {
+ Object o = redisUtils.get(existToken);
+ if (ObjectUtil.isNotEmpty(o)) {
+ redisUtils.del(existToken);
+ }
+ }
+
return new FebsResponse().success();
}
@@ -948,6 +1040,20 @@
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