123
This commit is contained in:
@@ -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("主播不存在");
|
||||
}
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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){
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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<AnchorApplyMapper, Ancho
|
||||
private YunxinHttpService yunxinHttpService;
|
||||
@Autowired
|
||||
private RedissonClient redissonClient;
|
||||
@Autowired
|
||||
private AwardManager awardManager;
|
||||
|
||||
@Override
|
||||
public AnchorApply getByUserId(Long userId){
|
||||
@@ -126,7 +129,7 @@ public class AnchorApplyServiceImpl extends ServiceImpl<AnchorApplyMapper, Ancho
|
||||
try {
|
||||
joinAnchorLock.lock();
|
||||
anchorService.joinAnchor(userId, false);
|
||||
// TODO
|
||||
awardManager.giveJoinAnchorAsync(userId);
|
||||
return CheckAnchorAutoResp.builder().joinSuccess(true).build();
|
||||
}catch (Exception e){
|
||||
log.error("自动加入主播失败!",e);
|
||||
@@ -174,6 +177,7 @@ public class AnchorApplyServiceImpl extends ServiceImpl<AnchorApplyMapper, Ancho
|
||||
save.setGuardRate(systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.DEFAULT_ANCHOR_GUARD_PRICE));
|
||||
save.setGiftRate(systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.DEFAULT_ANCHOR_GIFT_PRICE));
|
||||
anchorService.save(save);
|
||||
awardManager.giveJoinAnchorAsync(userId);
|
||||
yunxinHttpService.passAnchorSendMessage(userId);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.ruoyi.cai.service.impl;
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -23,10 +24,13 @@ import com.ruoyi.cai.service.UserInfoService;
|
||||
import com.ruoyi.cai.service.UserService;
|
||||
import com.ruoyi.cai.util.CaiDateUtil;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.enums.UserType;
|
||||
import com.ruoyi.common.helper.LoginHelper;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@@ -52,6 +56,7 @@ public class UserForbidServiceImpl extends ServiceImpl<UserForbidMapper, UserFor
|
||||
private UserInfoService userInfoService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void forbid(UserForbidLog userForbidLog, User user) {
|
||||
ForbidTimeEnum forbidTime = ForbidTimeEnum.getByCode(userForbidLog.getForbidTime());
|
||||
ForbidTypeEnum forbidType = ForbidTypeEnum.getByCode(userForbidLog.getType());
|
||||
@@ -86,6 +91,9 @@ public class UserForbidServiceImpl extends ServiceImpl<UserForbidMapper, UserFor
|
||||
userService.update(Wrappers.lambdaUpdate(User.class).eq(User::getId,user.getId()).set(User::getStatus,1));
|
||||
anchorService.update(Wrappers.lambdaUpdate(Anchor.class).eq(Anchor::getId,user.getId()).set(Anchor::getStatus,1));
|
||||
}
|
||||
if(forbidType == ForbidTypeEnum.USER && user != null){
|
||||
LoginHelper.logoutApp(user.getId());
|
||||
}
|
||||
forbidCache.addForbid(one);
|
||||
try {
|
||||
// 12小时
|
||||
|
||||
Reference in New Issue
Block a user