123
This commit is contained in:
69
ruoyi-cai/src/main/java/com/ruoyi/cai/manager/ImService.java
Normal file
69
ruoyi-cai/src/main/java/com/ruoyi/cai/manager/ImService.java
Normal file
@@ -0,0 +1,69 @@
|
||||
package com.ruoyi.cai.manager;
|
||||
|
||||
import com.ruoyi.cai.domain.Account;
|
||||
import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.domain.UserVisitor;
|
||||
import com.ruoyi.cai.dto.app.dto.ImMessageDTO;
|
||||
import com.ruoyi.cai.dto.app.vo.ImResp;
|
||||
import com.ruoyi.cai.dto.app.vo.user.UserStarOrVisitorList;
|
||||
import com.ruoyi.cai.enums.ImTypeEnum;
|
||||
import com.ruoyi.cai.enums.SystemConfigEnum;
|
||||
import com.ruoyi.cai.service.AccountService;
|
||||
import com.ruoyi.cai.service.UserFollowService;
|
||||
import com.ruoyi.cai.service.UserService;
|
||||
import com.ruoyi.cai.service.UserVisitorService;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@Component
|
||||
public class ImService {
|
||||
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
@Autowired
|
||||
private SystemConfigManager systemConfigManager;
|
||||
@Autowired
|
||||
private AccountService accountService;
|
||||
@Autowired
|
||||
private UserFollowService userFollowService;
|
||||
|
||||
public ImResp sendMessage(Long fromUserId, ImMessageDTO message) {
|
||||
ImTypeEnum typeEnum = ImTypeEnum.getByType(message.getType());
|
||||
if(typeEnum == null || fromUserId == null){
|
||||
throw new ServiceException("参数异常");
|
||||
}
|
||||
// 检测用户是否被封号
|
||||
User user = userService.getById(fromUserId);
|
||||
if(user.getStatus() == 1){
|
||||
throw new ServiceException("该账户已被封禁,无法发送消息");
|
||||
}
|
||||
// 自定义消息跳过所有流程
|
||||
if(typeEnum == ImTypeEnum.CUSTOM){
|
||||
Account account = accountService.getByUserId(fromUserId);
|
||||
ImResp resp = new ImResp();
|
||||
resp.setCoin(account.getCoin()+ account.getIncomeCoin());
|
||||
return resp;
|
||||
}
|
||||
Long toUserId = message.getToUserId();
|
||||
Set<Long> systemCustomerService = systemConfigManager.getSystemConfigOfLongSet(SystemConfigEnum.SYSTEM_CUSTOMER_SERVICE);
|
||||
boolean fileType = typeEnum.isFileType();
|
||||
if(fileType){
|
||||
if(!systemCustomerService.contains(fromUserId) && !systemCustomerService.contains(toUserId)){
|
||||
boolean star = userFollowService.checkStar(toUserId, fromUserId);
|
||||
if(!star){
|
||||
throw new ServiceException("对方关注你才能发送图片|语音|视频");
|
||||
}
|
||||
}
|
||||
}
|
||||
// 正则判断违规数据替换
|
||||
if(typeEnum == ImTypeEnum.MESSAGE && !systemCustomerService.contains(fromUserId) && !systemCustomerService.contains(toUserId)){
|
||||
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user