后台-用户等级-监听代理身份变动

This commit is contained in:
khalil
2025-06-09 14:48:28 +08:00
parent ec6ab91f8b
commit 410c120b8c
3 changed files with 67 additions and 0 deletions

View File

@@ -7,6 +7,7 @@ import com.accompany.admin.mapper.recharge.RechargeUserAdminMapper;
import com.accompany.admin.service.guild.GuildApplyAdminService;
import com.accompany.admin.service.recharge.RechargeUserAdminService;
import com.accompany.admin.vo.recharge.RechargeUserAdminVo;
import com.accompany.business.event.RechargeUserChangeEvent;
import com.accompany.business.model.guild.GuildMember;
import com.accompany.business.service.guild.GuildMemberService;
import com.accompany.business.service.user.UsersService;
@@ -26,6 +27,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -55,6 +57,8 @@ public class RechargeUserAdminServiceImpl implements RechargeUserAdminService {
private GuildApplyAdminService guildApplyAdminService;
@Autowired
private UsersService usersService;
@Autowired
private ApplicationContext applicationContext;
@Override
public Page<RechargeUserAdminVo> page(String searchValue, Integer partitionId, Long searchType, PageReq req, Byte subChildren, Long manageErbanNo) {
@@ -108,12 +112,17 @@ public class RechargeUserAdminServiceImpl implements RechargeUserAdminService {
Long uid = user.getUid();
List<Users> deleteCache = new ArrayList<>();
deleteCache.add(user);
RechargeUserChangeEvent changeEvent = null;
Date now = new Date();
if (rechargeUser == null) {
rechargeUser = new RechargeUser();
rechargeUser.setUid(uid);
rechargeUser.setCreateTime(now);
rechargeUser.setManageUid(0L);
changeEvent = new RechargeUserChangeEvent(uid);
}
long type = 0;
if (rechargeUser.getManageUid() == 0) {
@@ -126,6 +135,10 @@ public class RechargeUserAdminServiceImpl implements RechargeUserAdminService {
rechargeUser.setUpdateTime(now);
rechargeUserService.saveOrUpdate(rechargeUser);
if (null != changeEvent){
applicationContext.publishEvent(changeEvent);
}
List<Long> saveSubErbanNos = param.getSubErbanNos();
Set<Long> saveSubUids = new HashSet<>();
List<RechargeUserVo> delSubRechargeUsers = new ArrayList<>();
@@ -173,6 +186,9 @@ public class RechargeUserAdminServiceImpl implements RechargeUserAdminService {
for (Long subUid : saveSubUids) {
type = saveRechargeUserRegion(param.getUserRegions(), type, subUid, now);
rechargeUser = existSubMap.get(subUid);
RechargeUserChangeEvent subChargeEvent = null;
if (rechargeUser == null) {
rechargeUser = new RechargeUser();
rechargeUser.setId(null);
@@ -182,10 +198,16 @@ public class RechargeUserAdminServiceImpl implements RechargeUserAdminService {
rechargeUser.setStarLevel(0);
rechargeUser.setHasGuildCharge(param.getHasGuildCharge());
rechargeUser.setCreateTime(now);
subChargeEvent = new RechargeUserChangeEvent(subUid);
}
rechargeUser.setType(type);
rechargeUser.setUpdateTime(now);
rechargeUserService.saveOrUpdate(rechargeUser);
if (null != subChargeEvent){
applicationContext.publishEvent(subChargeEvent);
}
}
}
@@ -193,8 +215,11 @@ public class RechargeUserAdminServiceImpl implements RechargeUserAdminService {
for (RechargeUserVo delSubRechargeUser : delSubRechargeUsers) {
this.del(delSubRechargeUser.getId());
deleteCache.add(usersBaseService.getUsersByUid(delSubRechargeUser.getUid()));
applicationContext.publishEvent(new RechargeUserChangeEvent(delSubRechargeUser.getUid()));
}
}
for (Users users : deleteCache) {
usersService.deleteUserRelateCaches(users);
}

View File

@@ -0,0 +1,10 @@
package com.accompany.business.event;
import org.springframework.context.ApplicationEvent;
public class RechargeUserChangeEvent extends ApplicationEvent {
public RechargeUserChangeEvent(Object source) {
super(source);
}
}

View File

@@ -0,0 +1,32 @@
package com.accompany.business.event.listener;
import com.accompany.business.event.RechargeUserChangeEvent;
import com.accompany.business.mybatismapper.DiamondGiveHistoryMapper;
import com.accompany.payment.service.UserRechargeLevelService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationListener;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
@Component
public class RechargeUserChangeListener implements ApplicationListener<RechargeUserChangeEvent> {
@Autowired
private DiamondGiveHistoryMapper diamondGiveHistoryMapper;
@Autowired
private UserRechargeLevelService service;
@Async
@Override
public void onApplicationEvent(RechargeUserChangeEvent event) {
Long uid = (Long) event.getSource();
BigDecimal totalReceiveGoldNum = diamondGiveHistoryMapper.getUserTotalReceiveGold(uid);
BigDecimal last60TotalReceiveGoldNum = diamondGiveHistoryMapper.getUserLast60TotalReceiveGold(uid);
service.statistics(uid, totalReceiveGoldNum, last60TotalReceiveGoldNum);
}
}