123333
This commit is contained in:
@@ -0,0 +1,146 @@
|
||||
package com.ruoyi.cai.manager;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.ruoyi.cai.cache.RechargeTotalCache;
|
||||
import com.ruoyi.cai.cache.WithdrawTotalCache;
|
||||
import com.ruoyi.cai.cache.bean.RechargeTotalCacheBean;
|
||||
import com.ruoyi.cai.cache.bean.WithdrawTotalCacheBean;
|
||||
import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.dto.admin.vo.home.HomeStaticIndexVo;
|
||||
import com.ruoyi.cai.dto.admin.vo.rank.RankNodeAdminVo;
|
||||
import com.ruoyi.cai.enums.rank.RankTimeTypeEnum;
|
||||
import com.ruoyi.cai.rank.RankAdminManager;
|
||||
import com.ruoyi.cai.rank.RankManager;
|
||||
import com.ruoyi.cai.rank.RankNode;
|
||||
import com.ruoyi.cai.rank.bean.RankAdminNode;
|
||||
import com.ruoyi.cai.service.AnchorService;
|
||||
import com.ruoyi.cai.service.UserService;
|
||||
import com.ruoyi.cai.util.CaiNumUtil;
|
||||
import com.ruoyi.framework.OnlineUserTodayCache;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
public class AdminHomeManager {
|
||||
|
||||
@Autowired
|
||||
private OnlineUserTodayCache onlineUserTodayCache;
|
||||
@Autowired
|
||||
private AnchorService anchorService;
|
||||
@Autowired
|
||||
private RechargeTotalCache rechargeTotalCache;
|
||||
@Autowired
|
||||
private WithdrawTotalCache withdrawTotalCache;
|
||||
@Autowired
|
||||
private RankAdminManager rankAdminManager;
|
||||
@Autowired
|
||||
private RankManager rankManager;
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
|
||||
/**
|
||||
* @param rankType 1-魅力榜 2-邀请榜 3-充值榜 4-提现榜
|
||||
* @param rankTimeType
|
||||
*/
|
||||
public List<RankNodeAdminVo> rank(Integer rankType, RankTimeTypeEnum rankTimeType){
|
||||
if(rankType == null || rankTimeType == null){
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<RankNodeAdminVo> res = new ArrayList<>();
|
||||
List<RankNode> rankNodeList;
|
||||
if(rankType == 1){
|
||||
if(rankTimeType == RankTimeTypeEnum.DAY){
|
||||
rankNodeList = rankManager.getInviteRankToday(30);
|
||||
}else if(rankTimeType == RankTimeTypeEnum.WEEK){
|
||||
rankNodeList = rankManager.getInviteRankWeek(30);
|
||||
}else if(rankTimeType == RankTimeTypeEnum.MONTH){
|
||||
rankNodeList = rankManager.getInviteRankMonth(30);
|
||||
}else if(rankTimeType == RankTimeTypeEnum.TOTAL){
|
||||
rankNodeList = rankManager.getInviteRankTotal(30);
|
||||
}else{
|
||||
rankNodeList = Collections.emptyList();
|
||||
}
|
||||
res = rankNodeList.stream().map(i -> {
|
||||
RankNodeAdminVo vo = new RankNodeAdminVo();
|
||||
vo.setUserId(i.getUserId());
|
||||
vo.setValue(i.getScore());
|
||||
return vo;
|
||||
}).collect(Collectors.toList());
|
||||
}else if(rankType == 2){
|
||||
if(rankTimeType == RankTimeTypeEnum.DAY){
|
||||
rankNodeList = rankManager.getLoveRankToday(30);
|
||||
}else if(rankTimeType == RankTimeTypeEnum.WEEK){
|
||||
rankNodeList = rankManager.getLoveRankWeek(30);
|
||||
}else if(rankTimeType == RankTimeTypeEnum.MONTH){
|
||||
rankNodeList = rankManager.getLoveRankMonth(30);
|
||||
}else if(rankTimeType == RankTimeTypeEnum.TOTAL){
|
||||
rankNodeList = rankManager.getLoveRankTotal(30);
|
||||
}else{
|
||||
rankNodeList = Collections.emptyList();
|
||||
}
|
||||
res = rankNodeList.stream().map(i -> {
|
||||
RankNodeAdminVo vo = new RankNodeAdminVo();
|
||||
vo.setUserId(i.getUserId());
|
||||
vo.setValue(i.getScore());
|
||||
return vo;
|
||||
}).collect(Collectors.toList());
|
||||
}else if(rankType == 3){
|
||||
List<RankAdminNode> rank = rankAdminManager.getRechargeRank(LocalDate.now(), rankTimeType, 30);
|
||||
res = rank.stream().map(i -> {
|
||||
RankNodeAdminVo vo = new RankNodeAdminVo();
|
||||
vo.setUserId(i.getUserId());
|
||||
vo.setValue(i.getScore());
|
||||
return vo;
|
||||
}).collect(Collectors.toList());
|
||||
}else if(rankType == 4){
|
||||
List<RankAdminNode> rank = rankAdminManager.getWithdrawRank(LocalDate.now(), rankTimeType, 30);
|
||||
res = rank.stream().map(i -> {
|
||||
RankNodeAdminVo vo = new RankNodeAdminVo();
|
||||
vo.setUserId(i.getUserId());
|
||||
vo.setValue(i.getScore());
|
||||
return vo;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
if(CollectionUtils.isEmpty(res)){
|
||||
return res;
|
||||
}
|
||||
Set<Long> userIds = res.stream().map(RankNodeAdminVo::getUserId).collect(Collectors.toSet());
|
||||
List<User> userList = userService.listByIds(userIds);
|
||||
Map<Long, User> userMap = userList.stream().collect(Collectors.toMap(User::getId, Function.identity()));
|
||||
for (RankNodeAdminVo re : res) {
|
||||
User user = userMap.get(re.getUserId());
|
||||
if(user != null){
|
||||
re.setUsercode(user.getUsercode());
|
||||
re.setNickname(user.getNickname());
|
||||
re.setAvatar(user.getAvatar());
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public HomeStaticIndexVo staticIndex(){
|
||||
Long onlineTodayNum = onlineUserTodayCache.getOnlineTodayNum();
|
||||
Long onlineLastNum = onlineUserTodayCache.getOnlineLastNum();
|
||||
HomeStaticIndexVo vo = new HomeStaticIndexVo();
|
||||
vo.setTodayLoginNum(onlineTodayNum);
|
||||
vo.setTodayLoginDiffLast(CaiNumUtil.diffRate(onlineTodayNum,onlineLastNum));
|
||||
vo.setAnchorNum(anchorService.count(Wrappers.emptyWrapper()));
|
||||
RechargeTotalCacheBean todayRecharge = rechargeTotalCache.getToday();
|
||||
RechargeTotalCacheBean lastTodayRecharge = rechargeTotalCache.getLastToday();
|
||||
vo.setTodayRechargeAmountNum(todayRecharge.getAmount());
|
||||
vo.setTodayRechargeNum(todayRecharge.getNum());
|
||||
vo.setTodayRechargeAmountDiffLast(CaiNumUtil.diffRate(todayRecharge.getAmount(),lastTodayRecharge.getAmount()));
|
||||
WithdrawTotalCacheBean todayWithdraw = withdrawTotalCache.getToday();
|
||||
WithdrawTotalCacheBean lastTodayWithdraw = withdrawTotalCache.getLastToday();
|
||||
vo.setTodayWithdrawAmount(todayWithdraw.getAmount());
|
||||
vo.setTodayWithdrawNum(todayWithdraw.getNum());
|
||||
vo.setTodayWithdrawAmountDiffLast(CaiNumUtil.diffRate(todayWithdraw.getAmount(),lastTodayWithdraw.getAmount()));
|
||||
return vo;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.ruoyi.cai.manager;
|
||||
|
||||
import com.ruoyi.cai.cache.RechargeTotalCache;
|
||||
import com.ruoyi.cai.domain.Account;
|
||||
import com.ruoyi.cai.domain.ConsumeLog;
|
||||
import com.ruoyi.cai.domain.Gift;
|
||||
@@ -16,7 +17,9 @@ import com.ruoyi.cai.mq.handle.dto.WindowGiftNotifyDTO;
|
||||
import com.ruoyi.cai.mq.handle.dto.WindowRechargeNotifyDTO;
|
||||
import com.ruoyi.cai.notice.YunxinHttpService;
|
||||
import com.ruoyi.cai.pay.PayTypeEnum;
|
||||
import com.ruoyi.cai.rank.RankAdminManager;
|
||||
import com.ruoyi.cai.rank.RankManager;
|
||||
import com.ruoyi.cai.rank.bean.RankAdminBean;
|
||||
import com.ruoyi.cai.service.*;
|
||||
import com.ruoyi.cai.ws.bean.Room;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -123,10 +126,24 @@ public class ConsumerManager {
|
||||
rankManager.sendLoveRankMq(consumeLog.getSourceUserId(),consumeLog.getAnchorAmount(),consumeLog.getTraceId());
|
||||
return resp;
|
||||
}
|
||||
@Autowired
|
||||
private RechargeTotalCache rechargeTotalCache;
|
||||
@Autowired
|
||||
private RankAdminManager rankAdminManager;
|
||||
|
||||
public RechargeConsumerResp rechargeOrderSuccess(String tradeNo, Map<String,String> params, String appId, PayTypeEnum payTypeEnum){
|
||||
RechargeConsumerResp resp = rechargeOrderService.orderSuccess(tradeNo,params,appId,payTypeEnum);
|
||||
if(resp.isSuccess()){
|
||||
try {
|
||||
rechargeTotalCache.add(resp.getPrice());
|
||||
RankAdminBean rankAdminBean = new RankAdminBean();
|
||||
rankAdminBean.setRankType(3); // 充值榜单
|
||||
rankAdminBean.setUserId(resp.getUserId());
|
||||
rankAdminBean.setPrice(resp.getPrice());
|
||||
rankAdminManager.addRank(rankAdminBean);
|
||||
}catch (Exception e){
|
||||
log.error("充值每日实时统计失败",e);
|
||||
}
|
||||
try {
|
||||
amqpProducer.sendCalculateSales(resp.getConsumeLogId()+"");
|
||||
}catch (Exception e){
|
||||
|
||||
Reference in New Issue
Block a user