Browse Source

代码风格优化(阿里代码规约)

master
xie.bx 2 years ago
parent
commit
3b1d16e2d2
  1. 3
      im-client/src/main/java/com/bx/imclient/IMClient.java
  2. 3
      im-client/src/main/java/com/bx/imclient/sender/IMSender.java
  3. 2
      im-client/src/main/java/com/bx/imclient/task/AbstractMessageResultTask.java
  4. 9
      im-client/src/main/java/com/bx/imclient/task/GroupMessageResultResultTask.java
  5. 9
      im-client/src/main/java/com/bx/imclient/task/PrivateMessageResultResultTask.java
  6. 4
      im-platform/src/main/java/com/bx/implatform/controller/FileController.java
  7. 3
      im-platform/src/main/java/com/bx/implatform/controller/FriendController.java
  8. 3
      im-platform/src/main/java/com/bx/implatform/controller/GroupController.java
  9. 3
      im-platform/src/main/java/com/bx/implatform/controller/GroupMessageController.java
  10. 3
      im-platform/src/main/java/com/bx/implatform/controller/LoginController.java
  11. 3
      im-platform/src/main/java/com/bx/implatform/controller/PrivateMessageController.java
  12. 3
      im-platform/src/main/java/com/bx/implatform/controller/UserController.java
  13. 3
      im-platform/src/main/java/com/bx/implatform/controller/WebrtcController.java
  14. 1
      im-platform/src/main/java/com/bx/implatform/interceptor/AuthInterceptor.java
  15. 3
      im-platform/src/main/java/com/bx/implatform/listener/GroupMessageListener.java
  16. 4
      im-platform/src/main/java/com/bx/implatform/listener/PrivateMessageListener.java
  17. 35
      im-platform/src/main/java/com/bx/implatform/service/IFriendService.java
  18. 44
      im-platform/src/main/java/com/bx/implatform/service/IGroupMemberService.java
  19. 39
      im-platform/src/main/java/com/bx/implatform/service/IGroupMessageService.java
  20. 57
      im-platform/src/main/java/com/bx/implatform/service/IGroupService.java
  21. 38
      im-platform/src/main/java/com/bx/implatform/service/IPrivateMessageService.java
  22. 51
      im-platform/src/main/java/com/bx/implatform/service/IUserService.java
  23. 38
      im-platform/src/main/java/com/bx/implatform/service/impl/FriendServiceImpl.java
  24. 56
      im-platform/src/main/java/com/bx/implatform/service/impl/GroupMemberServiceImpl.java
  25. 37
      im-platform/src/main/java/com/bx/implatform/service/impl/GroupMessageServiceImpl.java
  26. 59
      im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java
  27. 40
      im-platform/src/main/java/com/bx/implatform/service/impl/PrivateMessageServiceImpl.java
  28. 57
      im-platform/src/main/java/com/bx/implatform/service/impl/UserServiceImpl.java
  29. 2
      im-platform/src/main/java/com/bx/implatform/vo/PrivateMessageVO.java
  30. 2
      im-platform/src/main/resources/application.yml
  31. 4
      im-server/src/main/java/com/bx/imserver/config/RedisConfig.java
  32. 4
      im-server/src/main/java/com/bx/imserver/netty/IMServerGroup.java
  33. 3
      im-server/src/main/java/com/bx/imserver/netty/processor/GroupMessageProcessor.java
  34. 7
      im-server/src/main/java/com/bx/imserver/netty/processor/HeartbeatProcessor.java
  35. 6
      im-server/src/main/java/com/bx/imserver/netty/processor/LoginProcessor.java
  36. 3
      im-server/src/main/java/com/bx/imserver/netty/processor/PrivateMessageProcessor.java
  37. 2
      im-server/src/main/java/com/bx/imserver/task/PullGroupMessageTask.java
  38. 2
      im-server/src/main/java/com/bx/imserver/task/PullPrivateMessageTask.java

3
im-client/src/main/java/com/bx/imclient/IMClient.java

@ -4,6 +4,7 @@ import com.bx.imclient.sender.IMSender;
import com.bx.imcommon.enums.IMTerminalType; import com.bx.imcommon.enums.IMTerminalType;
import com.bx.imcommon.model.IMGroupMessage; import com.bx.imcommon.model.IMGroupMessage;
import com.bx.imcommon.model.IMPrivateMessage; import com.bx.imcommon.model.IMPrivateMessage;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@ -11,9 +12,9 @@ import java.util.List;
import java.util.Map; import java.util.Map;
@Configuration @Configuration
@AllArgsConstructor
public class IMClient { public class IMClient {
@Autowired
private IMSender imSender; private IMSender imSender;
/** /**

3
im-client/src/main/java/com/bx/imclient/sender/IMSender.java

@ -8,6 +8,7 @@ import com.bx.imcommon.enums.IMListenerType;
import com.bx.imcommon.enums.IMSendCode; import com.bx.imcommon.enums.IMSendCode;
import com.bx.imcommon.enums.IMTerminalType; import com.bx.imcommon.enums.IMTerminalType;
import com.bx.imcommon.model.*; import com.bx.imcommon.model.*;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
@ -16,13 +17,13 @@ import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
@Service @Service
@AllArgsConstructor
public class IMSender { public class IMSender {
@Autowired @Autowired
@Qualifier("IMRedisTemplate") @Qualifier("IMRedisTemplate")
private RedisTemplate<String, Object> redisTemplate; private RedisTemplate<String, Object> redisTemplate;
@Autowired
private MessageListenerMulticaster listenerMulticaster; private MessageListenerMulticaster listenerMulticaster;
public<T> void sendPrivateMessage(IMPrivateMessage<T> message) { public<T> void sendPrivateMessage(IMPrivateMessage<T> message) {

2
im-client/src/main/java/com/bx/imclient/task/AbstractPullMessageTask.java → im-client/src/main/java/com/bx/imclient/task/AbstractMessageResultTask.java

@ -8,7 +8,7 @@ import javax.annotation.PreDestroy;
import java.util.concurrent.*; import java.util.concurrent.*;
@Slf4j @Slf4j
public abstract class AbstractPullMessageTask implements CommandLineRunner { public abstract class AbstractMessageResultTask implements CommandLineRunner {
private int threadNum = 8; private int threadNum = 8;

9
im-client/src/main/java/com/bx/imclient/task/PullSendResultGroupMessageTask.java → im-client/src/main/java/com/bx/imclient/task/GroupMessageResultResultTask.java

@ -5,21 +5,22 @@ import com.bx.imclient.listener.MessageListenerMulticaster;
import com.bx.imcommon.contant.IMRedisKey; import com.bx.imcommon.contant.IMRedisKey;
import com.bx.imcommon.enums.IMListenerType; import com.bx.imcommon.enums.IMListenerType;
import com.bx.imcommon.model.IMSendResult; import com.bx.imcommon.model.IMSendResult;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@Component @Component
public class PullSendResultGroupMessageTask extends AbstractPullMessageTask{ @AllArgsConstructor
public class GroupMessageResultResultTask extends AbstractMessageResultTask {
@Qualifier("IMRedisTemplate") @Resource(name = "IMRedisTemplate")
@Autowired
private RedisTemplate<String,Object> redisTemplate; private RedisTemplate<String,Object> redisTemplate;
@Autowired
private MessageListenerMulticaster listenerMulticaster; private MessageListenerMulticaster listenerMulticaster;
@Override @Override

9
im-client/src/main/java/com/bx/imclient/task/PullSendResultPrivateMessageTask.java → im-client/src/main/java/com/bx/imclient/task/PrivateMessageResultResultTask.java

@ -5,26 +5,27 @@ import com.bx.imclient.listener.MessageListenerMulticaster;
import com.bx.imcommon.contant.IMRedisKey; import com.bx.imcommon.contant.IMRedisKey;
import com.bx.imcommon.enums.IMListenerType; import com.bx.imcommon.enums.IMListenerType;
import com.bx.imcommon.model.IMSendResult; import com.bx.imcommon.model.IMSendResult;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
; ;
@Slf4j @Slf4j
@Component @Component
public class PullSendResultPrivateMessageTask extends AbstractPullMessageTask{ @AllArgsConstructor
public class PrivateMessageResultResultTask extends AbstractMessageResultTask {
@Qualifier("IMRedisTemplate") @Resource(name = "IMRedisTemplate")
@Autowired
private RedisTemplate<String,Object> redisTemplate; private RedisTemplate<String,Object> redisTemplate;
@Autowired
private MessageListenerMulticaster listenerMulticaster; private MessageListenerMulticaster listenerMulticaster;
@Override @Override

4
im-platform/src/main/java/com/bx/implatform/controller/FileController.java

@ -6,6 +6,7 @@ import com.bx.implatform.service.thirdparty.FileService;
import com.bx.implatform.vo.UploadImageVO; import com.bx.implatform.vo.UploadImageVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -16,10 +17,9 @@ import org.springframework.web.multipart.MultipartFile;
@Slf4j @Slf4j
@RestController @RestController
@Api(tags = "文件上传") @Api(tags = "文件上传")
@AllArgsConstructor
public class FileController { public class FileController {
@Autowired
private FileService fileService; private FileService fileService;
@ApiOperation(value = "上传图片",notes="上传图片,上传后返回原图和缩略图的url") @ApiOperation(value = "上传图片",notes="上传图片,上传后返回原图和缩略图的url")

3
im-platform/src/main/java/com/bx/implatform/controller/FriendController.java

@ -8,6 +8,7 @@ import com.bx.implatform.session.SessionContext;
import com.bx.implatform.vo.FriendVO; import com.bx.implatform.vo.FriendVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -19,9 +20,9 @@ import java.util.stream.Collectors;
@Api(tags = "好友") @Api(tags = "好友")
@RestController @RestController
@RequestMapping("/friend") @RequestMapping("/friend")
@AllArgsConstructor
public class FriendController { public class FriendController {
@Autowired
private IFriendService friendService; private IFriendService friendService;
@GetMapping("/list") @GetMapping("/list")

3
im-platform/src/main/java/com/bx/implatform/controller/GroupController.java

@ -9,6 +9,7 @@ import com.bx.implatform.vo.GroupMemberVO;
import com.bx.implatform.vo.GroupVO; import com.bx.implatform.vo.GroupVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -21,9 +22,9 @@ import java.util.List;
@Api(tags = "群聊") @Api(tags = "群聊")
@RestController @RestController
@RequestMapping("/group") @RequestMapping("/group")
@AllArgsConstructor
public class GroupController { public class GroupController {
@Autowired
private IGroupService groupService; private IGroupService groupService;
@ApiOperation(value = "创建群聊",notes="创建群聊") @ApiOperation(value = "创建群聊",notes="创建群聊")

3
im-platform/src/main/java/com/bx/implatform/controller/GroupMessageController.java

@ -9,6 +9,7 @@ import com.bx.implatform.dto.GroupMessageDTO;
import com.bx.implatform.vo.PrivateMessageVO; import com.bx.implatform.vo.PrivateMessageVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -20,9 +21,9 @@ import java.util.List;
@Api(tags = "群聊消息") @Api(tags = "群聊消息")
@RestController @RestController
@RequestMapping("/message/group") @RequestMapping("/message/group")
@AllArgsConstructor
public class GroupMessageController { public class GroupMessageController {
@Autowired
private IGroupMessageService groupMessageService; private IGroupMessageService groupMessageService;

3
im-platform/src/main/java/com/bx/implatform/controller/LoginController.java

@ -10,6 +10,7 @@ import com.bx.implatform.dto.RegisterDTO;
import com.bx.implatform.vo.LoginVO; import com.bx.implatform.vo.LoginVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -19,9 +20,9 @@ import javax.validation.Valid;
@Api(tags = "用户登录和注册") @Api(tags = "用户登录和注册")
@RestController @RestController
@AllArgsConstructor
public class LoginController { public class LoginController {
@Autowired
private IUserService userService; private IUserService userService;
@PostMapping("/login") @PostMapping("/login")

3
im-platform/src/main/java/com/bx/implatform/controller/PrivateMessageController.java

@ -8,6 +8,7 @@ import com.bx.implatform.service.IPrivateMessageService;
import com.bx.implatform.dto.PrivateMessageDTO; import com.bx.implatform.dto.PrivateMessageDTO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -18,9 +19,9 @@ import java.util.List;
@Api(tags = "私聊消息") @Api(tags = "私聊消息")
@RestController @RestController
@RequestMapping("/message/private") @RequestMapping("/message/private")
@AllArgsConstructor
public class PrivateMessageController { public class PrivateMessageController {
@Autowired
private IPrivateMessageService privateMessageService; private IPrivateMessageService privateMessageService;
@PostMapping("/send") @PostMapping("/send")

3
im-platform/src/main/java/com/bx/implatform/controller/UserController.java

@ -11,6 +11,7 @@ import com.bx.implatform.vo.OnlineTerminalVO;
import com.bx.implatform.vo.UserVO; import com.bx.implatform.vo.UserVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -22,9 +23,9 @@ import java.util.List;
@Api(tags = "用户") @Api(tags = "用户")
@RestController @RestController
@RequestMapping("/user") @RequestMapping("/user")
@AllArgsConstructor
public class UserController { public class UserController {
@Autowired
private IUserService userService; private IUserService userService;

3
im-platform/src/main/java/com/bx/implatform/controller/WebrtcController.java

@ -6,6 +6,7 @@ import com.bx.implatform.result.ResultUtils;
import com.bx.implatform.service.IWebrtcService; import com.bx.implatform.service.IWebrtcService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -14,9 +15,9 @@ import java.util.List;
@Api(tags = "webrtc视频单人通话") @Api(tags = "webrtc视频单人通话")
@RestController @RestController
@RequestMapping("/webrtc/private") @RequestMapping("/webrtc/private")
@AllArgsConstructor
public class WebrtcController { public class WebrtcController {
@Autowired
private IWebrtcService webrtcService; private IWebrtcService webrtcService;
@ApiOperation(httpMethod = "POST", value = "呼叫视频通话") @ApiOperation(httpMethod = "POST", value = "呼叫视频通话")

1
im-platform/src/main/java/com/bx/implatform/interceptor/AuthInterceptor.java

@ -8,6 +8,7 @@ import com.bx.implatform.enums.ResultCode;
import com.bx.implatform.exception.GlobalException; import com.bx.implatform.exception.GlobalException;
import com.bx.implatform.session.UserSession; import com.bx.implatform.session.UserSession;
import com.bx.imcommon.util.JwtUtil; import com.bx.imcommon.util.JwtUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.method.HandlerMethod; import org.springframework.web.method.HandlerMethod;

3
im-platform/src/main/java/com/bx/implatform/listener/GroupMessageListener.java

@ -7,6 +7,7 @@ import com.bx.imcommon.enums.IMSendCode;
import com.bx.implatform.vo.GroupMessageVO; import com.bx.implatform.vo.GroupMessageVO;
import com.bx.imcommon.model.IMSendResult; import com.bx.imcommon.model.IMSendResult;
import com.bx.implatform.contant.RedisKey; import com.bx.implatform.contant.RedisKey;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
@ -14,9 +15,9 @@ import org.springframework.data.redis.core.RedisTemplate;
@Slf4j @Slf4j
@IMListener(type = IMListenerType.GROUP_MESSAGE) @IMListener(type = IMListenerType.GROUP_MESSAGE)
@AllArgsConstructor
public class GroupMessageListener implements MessageListener<GroupMessageVO> { public class GroupMessageListener implements MessageListener<GroupMessageVO> {
@Autowired
private RedisTemplate<String,Object> redisTemplate; private RedisTemplate<String,Object> redisTemplate;
@Override @Override

4
im-platform/src/main/java/com/bx/implatform/listener/PrivateMessageListener.java

@ -10,18 +10,20 @@ import com.bx.imcommon.model.IMSendResult;
import com.bx.implatform.entity.PrivateMessage; import com.bx.implatform.entity.PrivateMessage;
import com.bx.implatform.enums.MessageStatus; import com.bx.implatform.enums.MessageStatus;
import com.bx.implatform.service.IPrivateMessageService; import com.bx.implatform.service.IPrivateMessageService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
@Slf4j @Slf4j
@IMListener(type = IMListenerType.PRIVATE_MESSAGE) @IMListener(type = IMListenerType.PRIVATE_MESSAGE)
public class PrivateMessageListener implements MessageListener<PrivateMessageVO> { public class PrivateMessageListener implements MessageListener<PrivateMessageVO> {
@Lazy
@Autowired @Autowired
private IPrivateMessageService privateMessageService; private IPrivateMessageService privateMessageService;
@Override @Override
public void process(IMSendResult<PrivateMessageVO> result){ public void process(IMSendResult<PrivateMessageVO> result){
PrivateMessageVO messageInfo = result.getData(); PrivateMessageVO messageInfo = result.getData();

35
im-platform/src/main/java/com/bx/implatform/service/IFriendService.java

@ -9,15 +9,50 @@ import java.util.List;
public interface IFriendService extends IService<Friend> { public interface IFriendService extends IService<Friend> {
/**
* 判断用户2是否用户1的好友
*
* @param userId1 用户1的id
* @param userId2 用户2的id
* @return true/false
*/
Boolean isFriend(Long userId1, Long userId2); Boolean isFriend(Long userId1, Long userId2);
/**
* 查询用户的所有好友
*
* @param userId 用户id
* @return 好友列表
*/
List<Friend> findFriendByUserId(Long userId); List<Friend> findFriendByUserId(Long userId);
/**
* 添加好友互相建立好友关系
*
* @param friendId 好友的用户id
*/
void addFriend(Long friendId); void addFriend(Long friendId);
/**
* 删除好友双方都会解除好友关系
*
* @param friendId 好友的用户id
*/
void delFriend(Long friendId); void delFriend(Long friendId);
/**
* 更新好友信息主要是头像和昵称
*
* @param vo 好友vo
*/
void update(FriendVO vo); void update(FriendVO vo);
/**
* 查询指定的某个好友信息
*
* @param friendId 好友的用户id
* @return 好友信息
*/
FriendVO findFriend(Long friendId); FriendVO findFriend(Long friendId);
} }

44
im-platform/src/main/java/com/bx/implatform/service/IGroupMemberService.java

@ -9,18 +9,60 @@ import java.util.List;
public interface IGroupMemberService extends IService<GroupMember> { public interface IGroupMemberService extends IService<GroupMember> {
/**
* 根据群聊id和用户id查询群聊成员
*
* @param groupId 群聊id
* @param userId 用户id
* @return 群聊成员信息
*/
GroupMember findByGroupAndUserId(Long groupId,Long userId); GroupMember findByGroupAndUserId(Long groupId,Long userId);
/**
* 根据用户id查询群聊成员
*
* @param userId 用户id
* @return 成员列表
*/
List<GroupMember> findByUserId(Long userId); List<GroupMember> findByUserId(Long userId);
/**
* 根据群聊id查询群聊成员包括已退出
*
* @param groupId 群聊id
* @return 群聊成员列表
*/
List<GroupMember> findByGroupId(Long groupId); List<GroupMember> findByGroupId(Long groupId);
/**
* 根据群聊id查询没有退出的群聊成员id
*
* @param groupId 群聊id
* @return 群聊成员id列表
*/
List<Long> findUserIdsByGroupId(Long groupId); List<Long> findUserIdsByGroupId(Long groupId);
/**
* 批量添加成员
*
* @param groupId 群聊id
* @param members 成员列表
* @return 成功或失败
*/
boolean saveOrUpdateBatch(Long groupId,List<GroupMember> members); boolean saveOrUpdateBatch(Long groupId,List<GroupMember> members);
/**
* 根据群聊id删除移除成员
*
* @param groupId 群聊id
*/
void removeByGroupId(Long groupId); void removeByGroupId(Long groupId);
/**
*根据群聊id和用户id移除成员
*
* @param groupId 群聊id
* @param userId 用户id
*/
void removeByGroupAndUserId(Long groupId,Long userId); void removeByGroupAndUserId(Long groupId,Long userId);
} }

39
im-platform/src/main/java/com/bx/implatform/service/IGroupMessageService.java

@ -10,16 +10,49 @@ import java.util.List;
public interface IGroupMessageService extends IService<GroupMessage> { public interface IGroupMessageService extends IService<GroupMessage> {
/**
Long sendMessage(GroupMessageDTO vo); * 发送群聊消息(高并发接口查询mysql接口都要进行缓存)
*
* @param dto 群聊消息
* @return 群聊id
*/
Long sendMessage(GroupMessageDTO dto);
/**
* 撤回消息
*
* @param id 消息id
*/
void recallMessage(Long id); void recallMessage(Long id);
/**
*
* 异步拉取群聊消息通过websocket异步推送
*/
void pullUnreadMessage(); void pullUnreadMessage();
/**
* 拉取消息只能拉取最近1个月的消息一次拉取100条
*
* @param minId 消息起始id
* @return 聊天消息列表
*/
List<GroupMessageVO> loadMessage(Long minId); List<GroupMessageVO> loadMessage(Long minId);
/**
* 消息已读,同步其他终端清空未读数量
*
* @param groupId 群聊
*/
void readedMessage(Long groupId); void readedMessage(Long groupId);
/**
* 拉取历史聊天记录
*
* @param groupId 群聊id
* @param page 页码
* @param size 页码大小
* @return 聊天记录列表
*/
List<GroupMessageVO> findHistoryMessage(Long groupId, Long page, Long size); List<GroupMessageVO> findHistoryMessage(Long groupId, Long page, Long size);
} }

57
im-platform/src/main/java/com/bx/implatform/service/IGroupService.java

@ -11,24 +11,79 @@ import java.util.List;
public interface IGroupService extends IService<Group> { public interface IGroupService extends IService<Group> {
/**
* 创建新群聊
*
* @param vo 群聊信息
* @return 群聊信息
**/
GroupVO createGroup(GroupVO vo); GroupVO createGroup(GroupVO vo);
/**
* 修改群聊信息
*
* @param vo 群聊信息
* @return 群聊信息
**/
GroupVO modifyGroup(GroupVO vo); GroupVO modifyGroup(GroupVO vo);
/**
* 删除群聊
*
* @param groupId 群聊id
**/
void deleteGroup(Long groupId); void deleteGroup(Long groupId);
/**
* 退出群聊
*
* @param groupId 群聊id
*/
void quitGroup(Long groupId); void quitGroup(Long groupId);
/**
* 将用户踢出群聊
*
* @param groupId 群聊id
* @param userId 用户id
*/
void kickGroup(Long groupId,Long userId); void kickGroup(Long groupId,Long userId);
/**
* 查询当前用户的所有群聊
*
* @return 群聊信息列表
**/
List<GroupVO> findGroups(); List<GroupVO> findGroups();
/**
* 邀请好友进群
*
* @param vo 群id好友id列表
**/
void invite(GroupInviteVO vo); void invite(GroupInviteVO vo);
/**
* 根据id查找群聊并进行缓存
*
* @param groupId 群聊id
* @return 群聊实体
*/
Group getById(Long groupId); Group getById(Long groupId);
/**
* 根据id查找群聊
*
* @param groupId 群聊id
* @return 群聊vo
*/
GroupVO findById(Long groupId); GroupVO findById(Long groupId);
/**
* 查询群成员
*
* @param groupId 群聊id
* @return List<GroupMemberVO>
**/
List<GroupMemberVO> findGroupMembers(Long groupId); List<GroupMemberVO> findGroupMembers(Long groupId);
} }

38
im-platform/src/main/java/com/bx/implatform/service/IPrivateMessageService.java

@ -10,15 +10,49 @@ import java.util.List;
public interface IPrivateMessageService extends IService<PrivateMessage> { public interface IPrivateMessageService extends IService<PrivateMessage> {
Long sendMessage(PrivateMessageDTO vo); /**
* 发送私聊消息(高并发接口查询mysql接口都要进行缓存)
*
* @param dto 私聊消息
* @return 消息id
*/
Long sendMessage(PrivateMessageDTO dto);
/**
* 撤回消息
*
* @param id 消息id
*/
void recallMessage(Long id); void recallMessage(Long id);
/**
* 拉取历史聊天记录
*
* @param friendId 好友id
* @param page 页码
* @param size 页码大小
* @return 聊天记录列表
*/
List<PrivateMessageVO> findHistoryMessage(Long friendId, Long page,Long size); List<PrivateMessageVO> findHistoryMessage(Long friendId, Long page,Long size);
/**
* 异步拉取私聊消息通过websocket异步推送
*/
void pullUnreadMessage(); void pullUnreadMessage();
/**
* 拉取消息只能拉取最近1个月的消息一次拉取100条
*
* @param minId 消息起始id
* @return 聊天消息列表
*/
List<PrivateMessageVO> loadMessage(Long minId); List<PrivateMessageVO> loadMessage(Long minId);
/**
* 消息已读,将整个会话的消息都置为已读状态
*
* @param friendId 好友id
*/
void readedMessage(Long friendId); void readedMessage(Long friendId);
} }

51
im-platform/src/main/java/com/bx/implatform/service/IUserService.java

@ -14,22 +14,73 @@ import java.util.List;
public interface IUserService extends IService<User> { public interface IUserService extends IService<User> {
/**
* 用户登录
*
* @param dto 登录dto
* @return 登录token
*/
LoginVO login(LoginDTO dto); LoginVO login(LoginDTO dto);
/**
* 修改用户密码
*
* @param dto 修改密码dto
*/
void modifyPassword(ModifyPwdDTO dto); void modifyPassword(ModifyPwdDTO dto);
/**
* 用refreshToken换取新 token
*
* @param refreshToken 刷新token
* @return 登录token
*/
LoginVO refreshToken(String refreshToken); LoginVO refreshToken(String refreshToken);
/**
* 用户注册
*
* @param dto 注册dto
*/
void register(RegisterDTO dto); void register(RegisterDTO dto);
/**
* 根据用户名查询用户
*
* @param username 用户名
* @return 用户信息
*/
User findUserByUserName(String username); User findUserByUserName(String username);
/**
* 更新用户信息好友昵称和群聊昵称等冗余信息也会更新
*
* @param vo 用户信息vo
*/
void update(UserVO vo); void update(UserVO vo);
/**
* 根据用户昵id查询用户以及在线状态
*
* @param id 用户id
* @return 用户信息
*/
UserVO findUserById(Long id); UserVO findUserById(Long id);
/**
* 根据用户昵称查询用户最多返回20条数据
*
* @param name 用户名或昵称
* @return 用户列表
*/
List<UserVO> findUserByName(String name); List<UserVO> findUserByName(String name);
/**
* 获取用户在线的终端类型
*
* @param userIds 用户id多个用,分割
* @return 在线用户终端
*/
List<OnlineTerminalVO> getOnlineTerminals(String userIds); List<OnlineTerminalVO> getOnlineTerminals(String userIds);

38
im-platform/src/main/java/com/bx/implatform/service/impl/FriendServiceImpl.java

@ -35,12 +35,6 @@ public class FriendServiceImpl extends ServiceImpl<FriendMapper, Friend> impleme
private final UserMapper userMapper; private final UserMapper userMapper;
/**
* 查询用户的所有好友
*
* @param userId 用户id
* @return 好友列表
*/
@Override @Override
public List<Friend> findFriendByUserId(Long userId) { public List<Friend> findFriendByUserId(Long userId) {
LambdaQueryWrapper<Friend> queryWrapper = Wrappers.lambdaQuery(); LambdaQueryWrapper<Friend> queryWrapper = Wrappers.lambdaQuery();
@ -49,11 +43,7 @@ public class FriendServiceImpl extends ServiceImpl<FriendMapper, Friend> impleme
} }
/**
* 添加好友互相建立好友关系
*
* @param friendId 好友的用户id
*/
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void addFriend(Long friendId) { public void addFriend(Long friendId) {
@ -69,11 +59,7 @@ public class FriendServiceImpl extends ServiceImpl<FriendMapper, Friend> impleme
} }
/**
* 删除好友双方都会解除好友关系
*
* @param friendId 好友的用户id
*/
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void delFriend(Long friendId) { public void delFriend(Long friendId) {
@ -86,12 +72,7 @@ public class FriendServiceImpl extends ServiceImpl<FriendMapper, Friend> impleme
} }
/**
* 判断用户2是否用户1的好友
*
* @param userId1 用户1的id
* @param userId2 用户2的id
*/
@Cacheable(key="#userId1+':'+#userId2") @Cacheable(key="#userId1+':'+#userId2")
@Override @Override
public Boolean isFriend(Long userId1, Long userId2) { public Boolean isFriend(Long userId1, Long userId2) {
@ -103,11 +84,7 @@ public class FriendServiceImpl extends ServiceImpl<FriendMapper, Friend> impleme
} }
/**
* 更新好友信息主要是头像和昵称
*
* @param vo 好友vo
*/
@Override @Override
public void update(FriendVO vo) { public void update(FriendVO vo) {
long userId = SessionContext.getSession().getUserId(); long userId = SessionContext.getSession().getUserId();
@ -168,12 +145,7 @@ public class FriendServiceImpl extends ServiceImpl<FriendMapper, Friend> impleme
} }
/**
* 查询指定的某个好友信息
*
* @param friendId 好友的用户id
* @return 好友信息
*/
@Override @Override
public FriendVO findFriend(Long friendId) { public FriendVO findFriend(Long friendId) {
UserSession session = SessionContext.getSession(); UserSession session = SessionContext.getSession();

56
im-platform/src/main/java/com/bx/implatform/service/impl/GroupMemberServiceImpl.java

@ -23,12 +23,7 @@ import java.util.stream.Collectors;
public class GroupMemberServiceImpl extends ServiceImpl<GroupMemberMapper, GroupMember> implements IGroupMemberService { public class GroupMemberServiceImpl extends ServiceImpl<GroupMemberMapper, GroupMember> implements IGroupMemberService {
/**
* 添加群聊成员
*
* @param member 成员
* @return 成功或失败
*/
@CacheEvict(key="#member.getGroupId()") @CacheEvict(key="#member.getGroupId()")
@Override @Override
public boolean save(GroupMember member) { public boolean save(GroupMember member) {
@ -36,26 +31,14 @@ public class GroupMemberServiceImpl extends ServiceImpl<GroupMemberMapper, Group
} }
/**
* 批量添加成员
*
* @param groupId 群聊id
* @param members 成员列表
* @return 成功或失败
*/
@CacheEvict(key="#groupId") @CacheEvict(key="#groupId")
@Override @Override
public boolean saveOrUpdateBatch(Long groupId,List<GroupMember> members) { public boolean saveOrUpdateBatch(Long groupId,List<GroupMember> members) {
return super.saveOrUpdateBatch(members); return super.saveOrUpdateBatch(members);
} }
/**
* 根据群聊id和用户id查询群聊成员
*
* @param groupId 群聊id
* @param userId 用户id
* @return 群聊成员信息
*/
@Override @Override
public GroupMember findByGroupAndUserId(Long groupId, Long userId) { public GroupMember findByGroupAndUserId(Long groupId, Long userId) {
QueryWrapper<GroupMember> wrapper = new QueryWrapper<>(); QueryWrapper<GroupMember> wrapper = new QueryWrapper<>();
@ -64,13 +47,6 @@ public class GroupMemberServiceImpl extends ServiceImpl<GroupMemberMapper, Group
return this.getOne(wrapper); return this.getOne(wrapper);
} }
/**
* 根据用户id查询群聊成员
*
* @param userId 用户id
* @return 成员列表
*/
@Override @Override
public List<GroupMember> findByUserId(Long userId) { public List<GroupMember> findByUserId(Long userId) {
LambdaQueryWrapper<GroupMember> memberWrapper = Wrappers.lambdaQuery(); LambdaQueryWrapper<GroupMember> memberWrapper = Wrappers.lambdaQuery();
@ -79,13 +55,6 @@ public class GroupMemberServiceImpl extends ServiceImpl<GroupMemberMapper, Group
return this.list(memberWrapper); return this.list(memberWrapper);
} }
/**
* 根据群聊id查询群聊成员包括已退出
*
* @param groupId 群聊id
* @return 群聊成员列表
*/
@Override @Override
public List<GroupMember> findByGroupId(Long groupId) { public List<GroupMember> findByGroupId(Long groupId) {
LambdaQueryWrapper<GroupMember> memberWrapper = Wrappers.lambdaQuery(); LambdaQueryWrapper<GroupMember> memberWrapper = Wrappers.lambdaQuery();
@ -93,13 +62,6 @@ public class GroupMemberServiceImpl extends ServiceImpl<GroupMemberMapper, Group
return this.list(memberWrapper); return this.list(memberWrapper);
} }
/**
* 根据群聊id查询没有退出的群聊成员id
*
* @param groupId 群聊id
* @return 群聊成员id列表
*/
@Cacheable(key="#groupId") @Cacheable(key="#groupId")
@Override @Override
public List<Long> findUserIdsByGroupId(Long groupId) { public List<Long> findUserIdsByGroupId(Long groupId) {
@ -110,12 +72,6 @@ public class GroupMemberServiceImpl extends ServiceImpl<GroupMemberMapper, Group
return members.stream().map(GroupMember::getUserId).collect(Collectors.toList()); return members.stream().map(GroupMember::getUserId).collect(Collectors.toList());
} }
/**
* 根据群聊id删除移除成员
*
* @param groupId 群聊id
*/
@CacheEvict(key = "#groupId") @CacheEvict(key = "#groupId")
@Override @Override
public void removeByGroupId(Long groupId) { public void removeByGroupId(Long groupId) {
@ -125,12 +81,6 @@ public class GroupMemberServiceImpl extends ServiceImpl<GroupMemberMapper, Group
this.update(wrapper); this.update(wrapper);
} }
/**
*根据群聊id和用户id移除成员
*
* @param groupId 群聊id
* @param userId 用户id
*/
@CacheEvict(key = "#groupId") @CacheEvict(key = "#groupId")
@Override @Override
public void removeByGroupAndUserId(Long groupId, Long userId) { public void removeByGroupAndUserId(Long groupId, Long userId) {

37
im-platform/src/main/java/com/bx/implatform/service/impl/GroupMessageServiceImpl.java

@ -45,12 +45,7 @@ public class GroupMessageServiceImpl extends ServiceImpl<GroupMessageMapper, Gro
private RedisTemplate<String, Object> redisTemplate; private RedisTemplate<String, Object> redisTemplate;
private IMClient imClient; private IMClient imClient;
/**
* 发送群聊消息(高并发接口查询mysql接口都要进行缓存)
*
* @param dto 群聊消息
* @return 群聊id
*/
@Override @Override
public Long sendMessage(GroupMessageDTO dto) { public Long sendMessage(GroupMessageDTO dto) {
UserSession session = SessionContext.getSession(); UserSession session = SessionContext.getSession();
@ -92,11 +87,6 @@ public class GroupMessageServiceImpl extends ServiceImpl<GroupMessageMapper, Gro
} }
/**
* 撤回消息
*
* @param id 消息id
*/
@Override @Override
public void recallMessage(Long id) { public void recallMessage(Long id) {
UserSession session = SessionContext.getSession(); UserSession session = SessionContext.getSession();
@ -146,9 +136,6 @@ public class GroupMessageServiceImpl extends ServiceImpl<GroupMessageMapper, Gro
} }
/**
* 异步拉取群聊消息通过websocket异步推送
*/
@Override @Override
public void pullUnreadMessage() { public void pullUnreadMessage() {
UserSession session = SessionContext.getSession(); UserSession session = SessionContext.getSession();
@ -187,12 +174,7 @@ public class GroupMessageServiceImpl extends ServiceImpl<GroupMessageMapper, Gro
} }
/**
* 拉取消息只能拉取最近1个月的消息一次拉取100条
*
* @param minId 消息起始id
* @return 聊天消息列表
*/
@Override @Override
public List<GroupMessageVO> loadMessage(Long minId) { public List<GroupMessageVO> loadMessage(Long minId) {
UserSession session = SessionContext.getSession(); UserSession session = SessionContext.getSession();
@ -243,11 +225,7 @@ public class GroupMessageServiceImpl extends ServiceImpl<GroupMessageMapper, Gro
return vos; return vos;
} }
/**
* 消息已读,同步其他终端清空未读数量
*
* @param groupId 群聊
*/
@Override @Override
public void readedMessage(Long groupId) { public void readedMessage(Long groupId) {
UserSession session = SessionContext.getSession(); UserSession session = SessionContext.getSession();
@ -279,14 +257,7 @@ public class GroupMessageServiceImpl extends ServiceImpl<GroupMessageMapper, Gro
} }
/**
* 拉取历史聊天记录
*
* @param groupId 群聊id
* @param page 页码
* @param size 页码大小
* @return 聊天记录列表
*/
@Override @Override
public List<GroupMessageVO> findHistoryMessage(Long groupId, Long page, Long size) { public List<GroupMessageVO> findHistoryMessage(Long groupId, Long page, Long size) {
page = page > 0 ? page : 1; page = page > 0 ? page : 1;

59
im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java

@ -49,12 +49,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
private IFriendService friendsService; private IFriendService friendsService;
private IMClient imClient; private IMClient imClient;
/**
* 创建新群聊
*
* @param vo 群聊信息
* @return 群聊信息
**/
@Override @Override
public GroupVO createGroup(GroupVO vo) { public GroupVO createGroup(GroupVO vo) {
UserSession session = SessionContext.getSession(); UserSession session = SessionContext.getSession();
@ -79,12 +74,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
return vo; return vo;
} }
/**
* 修改群聊信息
*
* @param vo 群聊信息
* @return 群聊信息
**/
@CacheEvict(value = "#vo.getId()") @CacheEvict(value = "#vo.getId()")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
@ -110,11 +100,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
} }
/**
* 删除群聊
*
* @param groupId 群聊id
**/
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@CacheEvict(value = "#groupId") @CacheEvict(value = "#groupId")
@Override @Override
@ -133,11 +119,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
} }
/**
* 退出群聊
*
* @param groupId 群聊id
*/
@Override @Override
public void quitGroup(Long groupId) { public void quitGroup(Long groupId) {
Long userId = SessionContext.getSession().getUserId(); Long userId = SessionContext.getSession().getUserId();
@ -151,12 +133,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
} }
/**
* 将用户踢出群聊
*
* @param groupId 群聊id
* @param userId 用户id
*/
@Override @Override
public void kickGroup(Long groupId, Long userId) { public void kickGroup(Long groupId, Long userId) {
UserSession session = SessionContext.getSession(); UserSession session = SessionContext.getSession();
@ -186,12 +163,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
return vo; return vo;
} }
/**
* 根据id查找群聊并进行缓存
*
* @param groupId 群聊id
* @return 群聊实体
*/
@Cacheable(value = "#groupId") @Cacheable(value = "#groupId")
@Override @Override
public Group getById(Long groupId){ public Group getById(Long groupId){
@ -207,11 +179,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
/**
* 查询当前用户的所有群聊
*
* @return 群聊信息列表
**/
@Override @Override
public List<GroupVO> findGroups() { public List<GroupVO> findGroups() {
UserSession session = SessionContext.getSession(); UserSession session = SessionContext.getSession();
@ -235,11 +203,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
}).collect(Collectors.toList()); }).collect(Collectors.toList());
} }
/**
* 邀请好友进群
*
* @Param GroupInviteVO 群id好友id列表
**/
@Override @Override
public void invite(GroupInviteVO vo) { public void invite(GroupInviteVO vo) {
UserSession session = SessionContext.getSession(); UserSession session = SessionContext.getSession();
@ -280,12 +244,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
log.info("邀请进入群聊,群聊id:{},群聊名称:{},被邀请用户id:{}",group.getId(),group.getName(),vo.getFriendIds()); log.info("邀请进入群聊,群聊id:{},群聊名称:{},被邀请用户id:{}",group.getId(),group.getName(),vo.getFriendIds());
} }
/**
* 查询群成员
*
* @Param groupId 群聊id
* @return List<GroupMemberVO>
**/
@Override @Override
public List<GroupMemberVO> findGroupMembers(Long groupId) { public List<GroupMemberVO> findGroupMembers(Long groupId) {
List<GroupMember> members = groupMemberService.findByGroupId(groupId); List<GroupMember> members = groupMemberService.findByGroupId(groupId);

40
im-platform/src/main/java/com/bx/implatform/service/impl/PrivateMessageServiceImpl.java

@ -44,12 +44,7 @@ public class PrivateMessageServiceImpl extends ServiceImpl<PrivateMessageMapper,
private IMClient imClient; private IMClient imClient;
/**
* 发送私聊消息(高并发接口查询mysql接口都要进行缓存)
*
* @param dto 私聊消息
* @return 消息id
*/
@Override @Override
public Long sendMessage(PrivateMessageDTO dto) { public Long sendMessage(PrivateMessageDTO dto) {
UserSession session = SessionContext.getSession(); UserSession session = SessionContext.getSession();
@ -75,11 +70,6 @@ public class PrivateMessageServiceImpl extends ServiceImpl<PrivateMessageMapper,
return msg.getId(); return msg.getId();
} }
/**
* 撤回消息
*
* @param id 消息id
*/
@Override @Override
public void recallMessage(Long id) { public void recallMessage(Long id) {
UserSession session = SessionContext.getSession(); UserSession session = SessionContext.getSession();
@ -119,14 +109,7 @@ public class PrivateMessageServiceImpl extends ServiceImpl<PrivateMessageMapper,
} }
/**
* 拉取历史聊天记录
*
* @param friendId 好友id
* @param page 页码
* @param size 页码大小
* @return 聊天记录列表
*/
@Override @Override
public List<PrivateMessageVO> findHistoryMessage(Long friendId, Long page, Long size) { public List<PrivateMessageVO> findHistoryMessage(Long friendId, Long page, Long size) {
page = page > 0 ? page : 1; page = page > 0 ? page : 1;
@ -149,9 +132,7 @@ public class PrivateMessageServiceImpl extends ServiceImpl<PrivateMessageMapper,
return messageInfos; return messageInfos;
} }
/**
* 异步拉取私聊消息通过websocket异步推送
*/
@Override @Override
public void pullUnreadMessage() { public void pullUnreadMessage() {
UserSession session = SessionContext.getSession(); UserSession session = SessionContext.getSession();
@ -188,12 +169,7 @@ public class PrivateMessageServiceImpl extends ServiceImpl<PrivateMessageMapper,
} }
/**
* 拉取消息只能拉取最近1个月的消息一次拉取100条
*
* @param minId 消息起始id
* @return 聊天消息列表
*/
@Override @Override
public List<PrivateMessageVO> loadMessage(Long minId) { public List<PrivateMessageVO> loadMessage(Long minId) {
UserSession session = SessionContext.getSession(); UserSession session = SessionContext.getSession();
@ -234,12 +210,8 @@ public class PrivateMessageServiceImpl extends ServiceImpl<PrivateMessageMapper,
} }
/**
* 消息已读,将整个会话的消息都置为已读状态 @Transactional(rollbackFor = Exception.class)
*
* @param friendId 好友id
*/
@Transactional
@Override @Override
public void readedMessage(Long friendId) { public void readedMessage(Long friendId) {
UserSession session = SessionContext.getSession(); UserSession session = SessionContext.getSession();

57
im-platform/src/main/java/com/bx/implatform/service/impl/UserServiceImpl.java

@ -50,12 +50,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
private JwtProperties jwtProperties; private JwtProperties jwtProperties;
private IMClient imClient; private IMClient imClient;
/**
* 用户登录
*
* @param dto 登录dto
* @return 登录token
*/
@Override @Override
public LoginVO login(LoginDTO dto) { public LoginVO login(LoginDTO dto) {
@ -81,15 +75,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
return vo; return vo;
} }
/**
* 用refreshToken换取新 token
*
* @param refreshToken 刷新token
* @return 登录token
*/
@Override @Override
public LoginVO refreshToken(String refreshToken) { public LoginVO refreshToken(String refreshToken) {
//验证 token //验证 token
@ -108,11 +93,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
return vo; return vo;
} }
/**
* 用户注册
*
* @param dto 注册dto
*/
@Override @Override
public void register(RegisterDTO dto) { public void register(RegisterDTO dto) {
User user = this.findUserByUserName(dto.getUserName()); User user = this.findUserByUserName(dto.getUserName());
@ -138,12 +119,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
log.info("用户修改密码,用户id:{},用户名:{},昵称:{}",user.getId(),user.getUserName(),user.getNickName()); log.info("用户修改密码,用户id:{},用户名:{},昵称:{}",user.getId(),user.getUserName(),user.getNickName());
} }
/**
* 根据用户名查询用户
*
* @param username 用户名
* @return 用户信息
*/
@Override @Override
public User findUserByUserName(String username) { public User findUserByUserName(String username) {
LambdaQueryWrapper<User> queryWrapper = Wrappers.lambdaQuery(); LambdaQueryWrapper<User> queryWrapper = Wrappers.lambdaQuery();
@ -152,12 +128,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
} }
/**
* 更新用户信息好友昵称和群聊昵称等冗余信息也会更新 @Transactional(rollbackFor = Exception.class)
*
* @param vo 用户信息vo
*/
@Transactional
@Override @Override
public void update(UserVO vo) { public void update(UserVO vo) {
UserSession session = SessionContext.getSession(); UserSession session = SessionContext.getSession();
@ -197,12 +169,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
log.info("用户信息更新,用户:{}}", user); log.info("用户信息更新,用户:{}}", user);
} }
/**
* 根据用户昵id查询用户以及在线状态
*
* @param id 用户id
* @return 用户信息
*/
@Override @Override
public UserVO findUserById(Long id) { public UserVO findUserById(Long id) {
User user = this.getById(id); User user = this.getById(id);
@ -211,12 +178,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
return vo; return vo;
} }
/**
* 根据用户昵称查询用户最多返回20条数据
*
* @param name 用户名或昵称
* @return 用户列表
*/
@Override @Override
public List<UserVO> findUserByName(String name) { public List<UserVO> findUserByName(String name) {
LambdaQueryWrapper<User> queryWrapper = Wrappers.lambdaQuery(); LambdaQueryWrapper<User> queryWrapper = Wrappers.lambdaQuery();
@ -235,13 +197,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
} }
/**
* 获取用户在线的终端类型
*
* @param userIds 用户id多个用,分割
* @return 在线用户终端
*/
@Override @Override
public List<OnlineTerminalVO> getOnlineTerminals(String userIds) { public List<OnlineTerminalVO> getOnlineTerminals(String userIds) {
List<Long> userIdList = Arrays.stream(userIds.split(",")) List<Long> userIdList = Arrays.stream(userIds.split(","))

2
im-platform/src/main/java/com/bx/implatform/vo/PrivateMessageVO.java

@ -13,7 +13,7 @@ import java.util.Date;
public class PrivateMessageVO { public class PrivateMessageVO {
@ApiModelProperty(value = " 消息id") @ApiModelProperty(value = " 消息id")
private long id; private Long id;
@ApiModelProperty(value = " 发送者id") @ApiModelProperty(value = " 发送者id")
private Long sendId; private Long sendId;

2
im-platform/src/main/resources/application.yml

@ -3,8 +3,6 @@ server:
port: 8888 port: 8888
#配置项目的数据源 #配置项目的数据源
spring: spring:
main:
allow-circular-references: true
mvc: mvc:
pathmatch: pathmatch:
matching-strategy: ant_path_matcher matching-strategy: ant_path_matcher

4
im-server/src/main/java/com/bx/imserver/config/RedisConfig.java

@ -19,10 +19,6 @@ import javax.annotation.Resource;
@Configuration @Configuration
public class RedisConfig { public class RedisConfig {
@Resource
private RedisConnectionFactory factory;
@Bean @Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate(); RedisTemplate<String, Object> redisTemplate = new RedisTemplate();

4
im-server/src/main/java/com/bx/imserver/netty/IMServerGroup.java

@ -1,6 +1,7 @@
package com.bx.imserver.netty; package com.bx.imserver.netty;
import com.bx.imcommon.contant.IMRedisKey; import com.bx.imcommon.contant.IMRedisKey;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner; import org.springframework.boot.CommandLineRunner;
@ -12,14 +13,13 @@ import java.util.List;
@Slf4j @Slf4j
@Component @Component
@AllArgsConstructor
public class IMServerGroup implements CommandLineRunner { public class IMServerGroup implements CommandLineRunner {
public static volatile long serverId = 0; public static volatile long serverId = 0;
@Autowired
RedisTemplate<String,Object> redisTemplate; RedisTemplate<String,Object> redisTemplate;
@Autowired
private List<IMServer> imServers; private List<IMServer> imServers;
/*** /***

3
im-server/src/main/java/com/bx/imserver/netty/processor/GroupMessageProcessor.java

@ -9,6 +9,7 @@ import com.bx.imcommon.model.IMUserInfo;
import com.bx.imcommon.model.IMSendResult; import com.bx.imcommon.model.IMSendResult;
import com.bx.imserver.netty.UserChannelCtxMap; import com.bx.imserver.netty.UserChannelCtxMap;
import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelHandlerContext;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
@ -19,9 +20,9 @@ import java.util.List;
@Slf4j @Slf4j
@Component @Component
@AllArgsConstructor
public class GroupMessageProcessor extends AbstractMessageProcessor<IMRecvInfo> { public class GroupMessageProcessor extends AbstractMessageProcessor<IMRecvInfo> {
@Autowired
private RedisTemplate<String,Object> redisTemplate; private RedisTemplate<String,Object> redisTemplate;
@Async @Async

7
im-server/src/main/java/com/bx/imserver/netty/processor/HeartbeatProcessor.java

@ -10,6 +10,7 @@ import com.bx.imserver.constant.ChannelAttrKey;
import com.bx.imserver.netty.ws.WebSocketServer; import com.bx.imserver.netty.ws.WebSocketServer;
import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelHandlerContext;
import io.netty.util.AttributeKey; import io.netty.util.AttributeKey;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
@ -20,13 +21,9 @@ import java.util.concurrent.TimeUnit;
@Slf4j @Slf4j
@Component @Component
@AllArgsConstructor
public class HeartbeatProcessor extends AbstractMessageProcessor<IMHeartbeatInfo> { public class HeartbeatProcessor extends AbstractMessageProcessor<IMHeartbeatInfo> {
@Autowired
private WebSocketServer wsServer;
@Autowired
RedisTemplate<String,Object> redisTemplate; RedisTemplate<String,Object> redisTemplate;
@Override @Override

6
im-server/src/main/java/com/bx/imserver/netty/processor/LoginProcessor.java

@ -14,6 +14,8 @@ import com.bx.imserver.netty.IMServerGroup;
import com.bx.imserver.netty.UserChannelCtxMap; import com.bx.imserver.netty.UserChannelCtxMap;
import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelHandlerContext;
import io.netty.util.AttributeKey; import io.netty.util.AttributeKey;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
@ -25,10 +27,10 @@ import java.util.concurrent.TimeUnit;
@Slf4j @Slf4j
@Component @Component
@RequiredArgsConstructor
public class LoginProcessor extends AbstractMessageProcessor<IMLoginInfo> { public class LoginProcessor extends AbstractMessageProcessor<IMLoginInfo> {
@Autowired private final RedisTemplate<String,Object> redisTemplate;
RedisTemplate<String,Object> redisTemplate;
@Value("${jwt.accessToken.secret}") @Value("${jwt.accessToken.secret}")
private String accessTokenSecret; private String accessTokenSecret;

3
im-server/src/main/java/com/bx/imserver/netty/processor/PrivateMessageProcessor.java

@ -9,6 +9,7 @@ import com.bx.imcommon.model.IMUserInfo;
import com.bx.imcommon.model.IMSendResult; import com.bx.imcommon.model.IMSendResult;
import com.bx.imserver.netty.UserChannelCtxMap; import com.bx.imserver.netty.UserChannelCtxMap;
import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelHandlerContext;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
@ -16,9 +17,9 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
@AllArgsConstructor
public class PrivateMessageProcessor extends AbstractMessageProcessor<IMRecvInfo> { public class PrivateMessageProcessor extends AbstractMessageProcessor<IMRecvInfo> {
@Autowired
private RedisTemplate<String,Object> redisTemplate; private RedisTemplate<String,Object> redisTemplate;
@Override @Override

2
im-server/src/main/java/com/bx/imserver/task/PullUnreadGroupMessageTask.java → im-server/src/main/java/com/bx/imserver/task/PullGroupMessageTask.java

@ -15,7 +15,7 @@ import java.util.concurrent.TimeUnit;
@Slf4j @Slf4j
@Component @Component
public class PullUnreadGroupMessageTask extends AbstractPullMessageTask { public class PullGroupMessageTask extends AbstractPullMessageTask {
@Autowired @Autowired
private RedisTemplate<String,Object> redisTemplate; private RedisTemplate<String,Object> redisTemplate;

2
im-server/src/main/java/com/bx/imserver/task/PullUnreadPrivateMessageTask.java → im-server/src/main/java/com/bx/imserver/task/PullPrivateMessageTask.java

@ -16,7 +16,7 @@ import java.util.concurrent.TimeUnit;
@Slf4j @Slf4j
@Component @Component
public class PullUnreadPrivateMessageTask extends AbstractPullMessageTask { public class PullPrivateMessageTask extends AbstractPullMessageTask {
@Autowired @Autowired
Loading…
Cancel
Save