This commit is contained in:
dute7liang
2024-01-26 22:44:14 +08:00
parent 97ba46f6e4
commit 35638b8664
29 changed files with 457 additions and 59 deletions

View File

@@ -2,6 +2,8 @@ package com.ruoyi.cai.manager;
import com.ruoyi.cai.domain.Account;
import com.ruoyi.cai.domain.ConsumeLog;
import com.ruoyi.cai.domain.Gift;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.dto.ConsumeResp;
import com.ruoyi.cai.dto.app.query.GiveGiftReq;
import com.ruoyi.cai.dto.app.query.GiveGuardReq;
@@ -9,7 +11,10 @@ import com.ruoyi.cai.dto.commom.consumer.GiftConsumerResp;
import com.ruoyi.cai.dto.commom.consumer.GuardConsumerResp;
import com.ruoyi.cai.dto.commom.consumer.RechargeConsumerResp;
import com.ruoyi.cai.dto.video.VideoSettleResp;
import com.ruoyi.cai.enums.SystemConfigEnum;
import com.ruoyi.cai.mq.AmqpProducer;
import com.ruoyi.cai.mq.handle.dto.WindowGiftDTO;
import com.ruoyi.cai.mq.handle.dto.WindowRechargeDTO;
import com.ruoyi.cai.notice.YunxinHttpService;
import com.ruoyi.cai.pay.PayTypeEnum;
import com.ruoyi.cai.rank.RankManager;
@@ -19,6 +24,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Map;
@Component
@@ -38,6 +45,10 @@ public class ConsumerManager {
private RankManager rankManager;
@Autowired
private YunxinHttpService yunxinHttpService;
@Autowired
private SystemConfigManager systemConfigManager;
@Autowired
private UserService userService;
public GuardConsumerResp sendGuard(GiveGuardReq query){
GuardConsumerResp resp = guardTotalService.giveGuard(query);
@@ -77,10 +88,28 @@ public class ConsumerManager {
yunxinHttpService.getGiftSendMessage(resp.getToUid(), resp.getGift(), resp.getAnchorIncomeCoin(), totalCoin);
}
// 发送方给接收方的消息
yunxinHttpService.sendGiftMessage(resp.getFromUid(),resp.getToUid(),resp.getGift(),query.getGiftCount());
yunxinHttpService.sendGiftMessage(resp.getFromUid(),resp.getToUid(),resp.getGift(),query.getGiftCount().intValue());
}catch (Exception e){
log.error("礼物赠送成功通知失败!",e);
}
try {
Long minPrice = systemConfigManager.getSystemConfigOfLong(SystemConfigEnum.WINDOW_GIFT_THRESHOLD);
Gift gift = resp.getGift();
if(gift.getPrice() > minPrice){
User fromUser = userService.getById(resp.getFromUid());
Integer rankHide = fromUser.getRankHide();
if(rankHide == 0){
WindowGiftDTO windowGift = new WindowGiftDTO();
windowGift.setFromId(resp.getFromUid());
windowGift.setToId(resp.getToUid());
windowGift.setGift(resp.getGift());
windowGift.setGiftNum(query.getGiftCount());
amqpProducer.sendWindowMq(windowGift);
}
}
}catch (Exception e){
log.error("发送充值飘窗!",e);
}
}
return resp;
}
@@ -114,6 +143,23 @@ public class ConsumerManager {
}catch (Exception e){
log.error("充值成功通知失败!",e);
}
try {
BigDecimal decimal = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.WINDOW_RECHARGE_THRESHOLD);
if(decimal.compareTo(resp.getPrice()) < 0){
Integer rankHide = resp.getUser().getRankHide();
if(rankHide == 0){
WindowRechargeDTO windowRecharge = new WindowRechargeDTO();
windowRecharge.setId(resp.getUserId());
windowRecharge.setNickname(resp.getUser().getNickname());
windowRecharge.setAvatar(resp.getUser().getAvatar());
windowRecharge.setAmount(resp.getPrice());
windowRecharge.setTime(LocalDateTime.now());
amqpProducer.sendWindowMq(windowRecharge);
}
}
}catch (Exception e){
log.error("发送充值飘窗!",e);
}
}
return resp;

View File

@@ -1,22 +1,48 @@
package com.ruoyi.cai.manager;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserFollow;
import com.ruoyi.cai.notice.YunxinHttpService;
import com.ruoyi.cai.service.UserFollowService;
import com.ruoyi.cai.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.stream.Collectors;
@Component
public class LoginAfterManager {
@Autowired
private YunxinHttpService yunxinHttpService;
@Autowired
private UserFollowService userFollowService;
@Autowired
private UserService userService;
public void loginAfter(Long userId){
// 给我的粉丝推送上线消息
User user = userService.getById(userId);
if(user == null){
return;
}
Page<UserFollow> page = new Page<>();
// page.setSize()
page.setSize(500);
long current = 0L;
while (true){
current++;
page.setCurrent(current);
Page<UserFollow> pageRes = userFollowService.page(page, Wrappers.lambdaQuery(UserFollow.class)
.eq(UserFollow::getFollowUser, userId));
List<UserFollow> records = pageRes.getRecords();
if(records.isEmpty()){
break;
}
List<Long> userIds = records.stream().map(UserFollow::getUserId).collect(Collectors.toList());
yunxinHttpService.sendOnlineAttentionNotice(userIds,user);
}
}