From 97f3f122c5434324d100dd1f47b2738d26f2d7dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=89=AF=28004796=29?= Date: Mon, 1 Apr 2024 17:09:25 +0800 Subject: [PATCH] 123 --- .../com/ruoyi/test/business/UserTest.java | 8 ++++++ .../java/com/ruoyi/cai/chat/ChatManager.java | 7 +++++ .../enums/account/AccountChangeCodeEnum.java | 1 + .../com/ruoyi/cai/manager/AwardManager.java | 28 +++++++++++++------ .../com/ruoyi/cai/manager/HomeManager.java | 10 +------ .../ruoyi/cai/manager/UserForbidManager.java | 27 ++++++++++++++++++ .../service/impl/AnchorApplyServiceImpl.java | 6 +++- .../service/impl/UserForbidServiceImpl.java | 8 ++++++ .../com/ruoyi/common/helper/LoginHelper.java | 11 ++++++++ 9 files changed, 87 insertions(+), 19 deletions(-) diff --git a/ruoyi-admin/src/test/java/com/ruoyi/test/business/UserTest.java b/ruoyi-admin/src/test/java/com/ruoyi/test/business/UserTest.java index fa6d16c4..9fb77358 100644 --- a/ruoyi-admin/src/test/java/com/ruoyi/test/business/UserTest.java +++ b/ruoyi-admin/src/test/java/com/ruoyi/test/business/UserTest.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSON; import com.ruoyi.cai.domain.User; import com.ruoyi.cai.domain.UserCount; import com.ruoyi.cai.im.ImManager; +import com.ruoyi.cai.manager.AwardManager; import com.ruoyi.cai.service.DynamicService; import com.ruoyi.cai.service.UserCountService; import com.ruoyi.cai.service.UserService; @@ -31,6 +32,13 @@ public class UserTest { private ImManager imManager; @Autowired private DynamicService dynamicService; + @Autowired + private AwardManager awardManager; + + @Test + public void joinAnchorInvite(){ + awardManager.giveJoinAnchor(1003L); + } @Test public void clean(){ diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/chat/ChatManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/chat/ChatManager.java index 9256e59e..db6d6017 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/chat/ChatManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/chat/ChatManager.java @@ -14,6 +14,7 @@ import com.ruoyi.cai.dto.app.vo.chat.VideoChargingResp; import com.ruoyi.cai.enums.SystemConfigEnum; import com.ruoyi.cai.manager.IdManager; import com.ruoyi.cai.manager.SystemConfigManager; +import com.ruoyi.cai.manager.UserForbidManager; import com.ruoyi.cai.service.*; import com.ruoyi.cai.ws.bean.Room; import com.ruoyi.cai.ws.constant.RedisConstant; @@ -54,6 +55,8 @@ public class ChatManager { private RedissonClient redissonClient; @Autowired private AccountService accountService; + @Autowired + private UserForbidManager userForbidManager; private String setWsToken(Long roomId,Long fromUid,Long toUid,Long userId){ String token = IdManager.nextIdStr(); @@ -88,6 +91,10 @@ public class ChatManager { Long userId = LoginHelper.getUserId(); User fromUser = userService.getById(userId); User toUser = userService.getById(callReq.getToUid()); + if(fromUser != null){ + throw new ServiceException("用户不存在"); + } + userForbidManager.checkForbid(userId); if(toUser == null){ throw new ServiceException("主播不存在"); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/account/AccountChangeCodeEnum.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/account/AccountChangeCodeEnum.java index 8c6497b7..5009bb1b 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/account/AccountChangeCodeEnum.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/account/AccountChangeCodeEnum.java @@ -25,6 +25,7 @@ public enum AccountChangeCodeEnum { GUARD_INVITE(505,AccountCateEnum.SYSTEM,"邀请奖励(守护)",AccountTypeEnum.INCOME_COIN,"",true), REGISTER_AWARD(506,AccountCateEnum.SYSTEM,"注册奖励",AccountTypeEnum.INCOME_COIN,"",null), RANK_AWARD(507,AccountCateEnum.SYSTEM,"排行榜奖励",AccountTypeEnum.INCOME_COIN,"",null), + JOIN_ANCHOR_INVITE(508,AccountCateEnum.SYSTEM,"邀请奖励(主播入驻)",AccountTypeEnum.INCOME_COIN,"",true), IM_INCOME(701,AccountCateEnum.IM,"收到私信",AccountTypeEnum.INCOME_COIN,"",true), IM_COIN_OUT(702,AccountCateEnum.IM,"私信支出",AccountTypeEnum.COIN,"",false), diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/AwardManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/AwardManager.java index 5d2ea92a..2007d22e 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/AwardManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/AwardManager.java @@ -1,6 +1,7 @@ package com.ruoyi.cai.manager; import cn.hutool.extra.spring.SpringUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.cai.domain.Rank; import com.ruoyi.cai.domain.User; @@ -44,27 +45,36 @@ public class AwardManager { @Autowired private YunxinHttpService yunxinHttpService; - public void giveJoinAnchorAsync(Long userId){ + public void giveJoinAnchorAsync(Long anchorUserId){ AwardManager bean = SpringUtil.getBean(AwardManager.class); ExecutorConstant.COMMON_EXECUTOR.execute(() -> { - bean.giveJoinAnchor(userId); + bean.giveJoinAnchor(anchorUserId); }); } @Transactional(rollbackFor = Exception.class) - public void giveJoinAnchor(Long userId) { + public void giveJoinAnchor(Long anchorUserId) { Long price = systemConfigManager.getSystemConfigOfLong(SystemConfigEnum.JOIN_ANCHOR_INVITE_AWARD); if(price == 0){ return; } - User user = userService.getById(userId); - if(user == null){ - log.error("主播入驻邀请奖励领取失败 用户不存在 userId={}",userId); + User anchorUser = userService.getById(anchorUserId); + if(anchorUser == null){ + log.error("主播入驻邀请奖励领取失败 主播不存在 userId={}",anchorUserId); return; } -// accountMapper.incsIncomeCoin(userId,price); -// accountChangeLogService.saveLogNoAdmin(user.getId(),user.getUsercode(), AccountChangeCodeEnum.FAST_PAY_AWARD,price,traceId); - + Long inviteUserId = anchorUser.getInviteId(); + if(inviteUserId == null){ + log.warn("主播邀请入驻无需分成,没有检测到邀请人 anchorUser={}", JSON.toJSONString(anchorUser)); + return; + } + User inviteUser = userService.getById(inviteUserId); + if(inviteUser == null){ + log.error("主播邀请入驻无需分成,没有检测到邀请人,邀请人不存在 anchorUser={}", JSON.toJSONString(anchorUser)); + return; + } + accountMapper.incsIncomeCoin(inviteUser.getId(),price); + accountChangeLogService.saveLogNoAdmin(inviteUser.getId(),inviteUser.getUsercode(), AccountChangeCodeEnum.JOIN_ANCHOR_INVITE,price,null,anchorUserId); } public void giveRegisterAsync(Long userId){ diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/HomeManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/HomeManager.java index e0d65a8e..5dd71f01 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/HomeManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/HomeManager.java @@ -154,15 +154,7 @@ public class HomeManager { config.setOssDomain(systemConfigManager.getSystemConfig(SystemConfigEnum.COS_DOMAIN)); config.setOpenWithdraw(systemConfigManager.getSystemConfigOfBool(SystemConfigEnum.OPEN_WITHDRAW)); Long userId = LoginHelper.getUserId(); - User user = userService.getById(userId); - String imei = ServletUtils.getImei(); - UserForbidManager.CheckForbid forbid = userForbidManager.checkForbid(user.getId(), user.getUsercode(), imei, ServletUtils.getClientIP()); - if(forbid != null && forbid.isForbid()){ - throw new ServiceException(forbid.getMessage()); - } - if(user.getStatus() != 0){ - throw new ServiceException("用户已封禁,请联系客服"); - } + userForbidManager.checkForbid(userId); if(userId != null){ LoginNotifyDTO loginUserDTO = new LoginNotifyDTO(); loginUserDTO.setUserId(userId); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/UserForbidManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/UserForbidManager.java index 86faa99f..9be8b7de 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/UserForbidManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/UserForbidManager.java @@ -17,6 +17,8 @@ import com.ruoyi.cai.mq.handleDelay.dto.ForbidDelayDto; import com.ruoyi.cai.service.*; import com.ruoyi.cai.util.CaiDateUtil; import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.helper.LoginHelper; +import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.StringUtils; import lombok.Data; import lombok.extern.slf4j.Slf4j; @@ -124,6 +126,31 @@ public class UserForbidManager { userForbidService.forbid(userForbidLog,user); } + public void checkForbid(User user){ + Long userId = null; + String userCode = null; + if(user != null){ + userCode = user.getUsercode(); + userId = user.getId(); + } + String imei = ServletUtils.getImei(); + UserForbidManager.CheckForbid forbid = this.checkForbid(userId, userCode, imei, ServletUtils.getClientIP()); + if(forbid != null && forbid.isForbid()){ + throw new ServiceException(forbid.getMessage()); + } + if(user != null && user.getStatus() != 0){ + throw new ServiceException("用户已封禁,请联系客服"); + } + } + + public void checkForbid(Long userId){ + User user = null; + if(userId != null){ + user = userService.getById(userId); + } + checkForbid(user); + } + public CheckForbid checkForbid(Long userId,String usercode, String IMEI, String ip){ ForbidTypeEnum typeEnum; CheckForbid noForbid = CheckForbid.noForbid(); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AnchorApplyServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AnchorApplyServiceImpl.java index c7385a7d..0834e822 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AnchorApplyServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AnchorApplyServiceImpl.java @@ -12,6 +12,7 @@ import com.ruoyi.cai.dto.commom.anchor.CheckAnchorAutoResp; import com.ruoyi.cai.enums.AuditStatusEnum; import com.ruoyi.cai.enums.GenderEnum; import com.ruoyi.cai.enums.SystemConfigEnum; +import com.ruoyi.cai.manager.AwardManager; import com.ruoyi.cai.manager.LockManager; import com.ruoyi.cai.manager.SystemConfigManager; import com.ruoyi.cai.mapper.AnchorApplyMapper; @@ -48,6 +49,8 @@ public class AnchorApplyServiceImpl extends ServiceImpl