Browse Source

代码风格优化

master
xsx 2 years ago
parent
commit
f210926742
  1. 39
      im-platform/src/main/java/com/bx/implatform/service/impl/FriendServiceImpl.java
  2. 16
      im-platform/src/main/java/com/bx/implatform/service/impl/GroupMemberServiceImpl.java
  3. 20
      im-platform/src/main/java/com/bx/implatform/service/impl/GroupMessageServiceImpl.java
  4. 19
      im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java
  5. 8
      im-platform/src/main/java/com/bx/implatform/service/impl/PrivateMessageServiceImpl.java
  6. 22
      im-platform/src/main/java/com/bx/implatform/service/impl/UserServiceImpl.java
  7. 6
      im-platform/src/main/java/com/bx/implatform/service/impl/WebrtcServiceImpl.java

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

@ -1,6 +1,8 @@
package com.bx.implatform.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bx.implatform.contant.RedisKey;
import com.bx.implatform.entity.Friend;
@ -8,14 +10,14 @@ import com.bx.implatform.entity.User;
import com.bx.implatform.enums.ResultCode;
import com.bx.implatform.exception.GlobalException;
import com.bx.implatform.mapper.FriendMapper;
import com.bx.implatform.mapper.UserMapper;
import com.bx.implatform.service.IFriendService;
import com.bx.implatform.service.IUserService;
import com.bx.implatform.session.SessionContext;
import com.bx.implatform.session.UserSession;
import com.bx.implatform.vo.FriendVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.aop.framework.AopContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
@ -26,25 +28,24 @@ import java.util.List;
@Slf4j
@CacheConfig(cacheNames= RedisKey.IM_CACHE_FRIEND)
@Service
@AllArgsConstructor
@CacheConfig(cacheNames= RedisKey.IM_CACHE_FRIEND)
public class FriendServiceImpl extends ServiceImpl<FriendMapper, Friend> implements IFriendService {
@Autowired
private IUserService userService;
private final UserMapper userMapper;
/**
* 查询用户的所有好友
*
* @param userId 用户id
* @return
* @return 好友列表
*/
@Override
public List<Friend> findFriendByUserId(Long userId) {
QueryWrapper<Friend> queryWrapper = new QueryWrapper();
queryWrapper.lambda().eq(Friend::getUserId,userId);
List<Friend> friends = this.list(queryWrapper);
return friends;
LambdaQueryWrapper<Friend> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.eq(Friend::getUserId,userId);
return this.list(queryWrapper);
}
@ -52,9 +53,8 @@ public class FriendServiceImpl extends ServiceImpl<FriendMapper, Friend> impleme
* 添加好友互相建立好友关系
*
* @param friendId 好友的用户id
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public void addFriend(Long friendId) {
long userId = SessionContext.getSession().getUserId();
@ -73,9 +73,8 @@ public class FriendServiceImpl extends ServiceImpl<FriendMapper, Friend> impleme
* 删除好友双方都会解除好友关系
*
* @param friendId 好友的用户id
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public void delFriend(Long friendId) {
long userId = SessionContext.getSession().getUserId();
@ -92,7 +91,6 @@ public class FriendServiceImpl extends ServiceImpl<FriendMapper, Friend> impleme
*
* @param userId1 用户1的id
* @param userId2 用户2的id
* @return
*/
@Cacheable(key="#userId1+':'+#userId2")
@Override
@ -109,7 +107,6 @@ public class FriendServiceImpl extends ServiceImpl<FriendMapper, Friend> impleme
* 更新好友信息主要是头像和昵称
*
* @param vo 好友vo
* @return
*/
@Override
public void update(FriendVO vo) {
@ -135,7 +132,6 @@ public class FriendServiceImpl extends ServiceImpl<FriendMapper, Friend> impleme
*
* @param userId 用户id
* @param friendId 好友的用户id
* @return
*/
@CacheEvict(key="#userId+':'+#friendId")
public void bindFriend(Long userId, Long friendId) {
@ -147,7 +143,7 @@ public class FriendServiceImpl extends ServiceImpl<FriendMapper, Friend> impleme
Friend friend = new Friend();
friend.setUserId(userId);
friend.setFriendId(friendId);
User friendInfo = userService.getById(friendId);
User friendInfo = userMapper.selectById(friendId);
friend.setFriendHeadImage(friendInfo.getHeadImage());
friend.setFriendNickName(friendInfo.getNickName());
this.save(friend);
@ -160,7 +156,6 @@ public class FriendServiceImpl extends ServiceImpl<FriendMapper, Friend> impleme
*
* @param userId 用户id
* @param friendId 好友的用户id
* @return
*/
@CacheEvict(key="#userId+':'+#friendId")
public void unbindFriend(Long userId, Long friendId) {
@ -169,9 +164,7 @@ public class FriendServiceImpl extends ServiceImpl<FriendMapper, Friend> impleme
.eq(Friend::getUserId,userId)
.eq(Friend::getFriendId,friendId);
List<Friend> friends = this.list(queryWrapper);
friends.stream().forEach(friend -> {
this.removeById(friend.getId());
});
friends.forEach(friend -> this.removeById(friend.getId()));
}
@ -179,7 +172,7 @@ public class FriendServiceImpl extends ServiceImpl<FriendMapper, Friend> impleme
* 查询指定的某个好友信息
*
* @param friendId 好友的用户id
* @return
* @return 好友信息
*/
@Override
public FriendVO findFriend(Long friendId) {

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

@ -18,8 +18,8 @@ import java.util.List;
import java.util.stream.Collectors;
@CacheConfig(cacheNames = RedisKey.IM_CACHE_GROUP_MEMBER_ID)
@Service
@CacheConfig(cacheNames = RedisKey.IM_CACHE_GROUP_MEMBER_ID)
public class GroupMemberServiceImpl extends ServiceImpl<GroupMemberMapper, GroupMember> implements IGroupMemberService {
@ -27,7 +27,7 @@ public class GroupMemberServiceImpl extends ServiceImpl<GroupMemberMapper, Group
* 添加群聊成员
*
* @param member 成员
* @return
* @return 成功或失败
*/
@CacheEvict(key="#member.getGroupId()")
@Override
@ -41,7 +41,7 @@ public class GroupMemberServiceImpl extends ServiceImpl<GroupMemberMapper, Group
*
* @param groupId 群聊id
* @param members 成员列表
* @return
* @return 成功或失败
*/
@CacheEvict(key="#groupId")
@Override
@ -54,7 +54,7 @@ public class GroupMemberServiceImpl extends ServiceImpl<GroupMemberMapper, Group
*
* @param groupId 群聊id
* @param userId 用户id
* @return
* @return 群聊成员信息
*/
@Override
public GroupMember findByGroupAndUserId(Long groupId, Long userId) {
@ -69,7 +69,7 @@ public class GroupMemberServiceImpl extends ServiceImpl<GroupMemberMapper, Group
* 根据用户id查询群聊成员
*
* @param userId 用户id
* @return
* @return 成员列表
*/
@Override
public List<GroupMember> findByUserId(Long userId) {
@ -84,7 +84,7 @@ public class GroupMemberServiceImpl extends ServiceImpl<GroupMemberMapper, Group
* 根据群聊id查询群聊成员包括已退出
*
* @param groupId 群聊id
* @return
* @return 群聊成员列表
*/
@Override
public List<GroupMember> findByGroupId(Long groupId) {
@ -98,7 +98,7 @@ public class GroupMemberServiceImpl extends ServiceImpl<GroupMemberMapper, Group
* 根据群聊id查询没有退出的群聊成员id
*
* @param groupId 群聊id
* @return
* @return 群聊成员id列表
*/
@Cacheable(key="#groupId")
@Override
@ -115,7 +115,6 @@ public class GroupMemberServiceImpl extends ServiceImpl<GroupMemberMapper, Group
* 根据群聊id删除移除成员
*
* @param groupId 群聊id
* @return
*/
@CacheEvict(key = "#groupId")
@Override
@ -131,7 +130,6 @@ public class GroupMemberServiceImpl extends ServiceImpl<GroupMemberMapper, Group
*
* @param groupId 群聊id
* @param userId 用户id
* @return
*/
@CacheEvict(key = "#groupId")
@Override

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

@ -8,11 +8,10 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bx.imclient.IMClient;
import com.bx.imcommon.contant.IMConstant;
import com.bx.implatform.util.DateTimeUtils;
import com.bx.implatform.vo.GroupMessageVO;
import com.bx.imcommon.model.IMGroupMessage;
import com.bx.imcommon.model.IMUserInfo;
import com.bx.implatform.contant.RedisKey;
import com.bx.implatform.dto.GroupMessageDTO;
import com.bx.implatform.entity.Group;
import com.bx.implatform.entity.GroupMember;
import com.bx.implatform.entity.GroupMessage;
@ -27,10 +26,10 @@ import com.bx.implatform.service.IGroupService;
import com.bx.implatform.session.SessionContext;
import com.bx.implatform.session.UserSession;
import com.bx.implatform.util.BeanUtils;
import com.bx.implatform.dto.GroupMessageDTO;
import com.google.common.collect.Lists;
import com.bx.implatform.util.DateTimeUtils;
import com.bx.implatform.vo.GroupMessageVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
@ -39,14 +38,11 @@ import java.util.stream.Collectors;
@Slf4j
@Service
@AllArgsConstructor
public class GroupMessageServiceImpl extends ServiceImpl<GroupMessageMapper, GroupMessage> implements IGroupMessageService {
@Autowired
private IGroupService groupService;
@Autowired
private IGroupMemberService groupMemberService;
@Autowired
private RedisTemplate<String, Object> redisTemplate;
@Autowired
private IMClient imClient;
/**
@ -105,7 +101,7 @@ public class GroupMessageServiceImpl extends ServiceImpl<GroupMessageMapper, Gro
public void recallMessage(Long id) {
UserSession session = SessionContext.getSession();
GroupMessage msg = this.getById(id);
if (msg == null) {
if (Objects.isNull(msg)) {
throw new GlobalException(ResultCode.PROGRAM_ERROR, "消息不存在");
}
if (!msg.getSendId().equals(session.getUserId())) {
@ -203,7 +199,7 @@ public class GroupMessageServiceImpl extends ServiceImpl<GroupMessageMapper, Gro
List<GroupMember> members = groupMemberService.findByUserId(session.getUserId());
List<Long> ids = members.stream().map(GroupMember::getGroupId).collect(Collectors.toList());
if(CollectionUtil.isEmpty(ids)){
return Collections.EMPTY_LIST;
return new ArrayList<>();
}
// 只能拉取最近1个月的
Date minDate = DateTimeUtils.addMonths(new Date(), -1);
@ -221,7 +217,7 @@ public class GroupMessageServiceImpl extends ServiceImpl<GroupMessageMapper, Gro
GroupMessageVO vo = BeanUtils.copyProperties(m, GroupMessageVO.class);
// 被@用户列表
List<String> atIds = Arrays.asList(StrUtil.split(m.getAtUserIds(),","));
vo.setAtUserIds(atIds.stream().map(id->Long.parseLong(id)).collect(Collectors.toList()));
vo.setAtUserIds(atIds.stream().map(Long::parseLong).collect(Collectors.toList()));
return vo;
}).collect(Collectors.toList());
// 消息状态,数据库没有存群聊的消息状态,需要从redis取

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

@ -23,9 +23,9 @@ import com.bx.implatform.util.BeanUtils;
import com.bx.implatform.vo.GroupInviteVO;
import com.bx.implatform.vo.GroupMemberVO;
import com.bx.implatform.vo.GroupVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
@ -42,18 +42,11 @@ import java.util.stream.Collectors;
@Slf4j
@CacheConfig(cacheNames = RedisKey.IM_CACHE_GROUP)
@Service
@AllArgsConstructor
public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements IGroupService {
@Autowired
private IUserService userService;
@Autowired
private IGroupMemberService groupMemberService;
@Autowired
private IFriendService friendsService;
@Autowired
private IMClient imClient;
/**
@ -92,7 +85,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
* @return 群聊信息
**/
@CacheEvict(value = "#vo.getId()")
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public GroupVO modifyGroup(GroupVO vo) {
UserSession session = SessionContext.getSession();
@ -121,7 +114,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
*
* @param groupId 群聊id
**/
@Transactional
@Transactional(rollbackFor = Exception.class)
@CacheEvict(value = "#groupId")
@Override
public void deleteGroup(Long groupId) {
@ -301,9 +294,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
GroupMemberVO vo = BeanUtils.copyProperties(m,GroupMemberVO.class);
vo.setOnline(onlineUserIds.contains(m.getUserId()));
return vo;
}).sorted((m1,m2)->{
return m2.getOnline().compareTo(m1.getOnline());
}).collect(Collectors.toList());
}).sorted((m1,m2)-> m2.getOnline().compareTo(m1.getOnline())).collect(Collectors.toList());
}
}

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

@ -24,11 +24,12 @@ import com.bx.implatform.session.SessionContext;
import com.bx.implatform.session.UserSession;
import com.bx.implatform.util.BeanUtils;
import com.bx.implatform.dto.PrivateMessageDTO;
import lombok.AllArgsConstructor;
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.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@ -36,12 +37,11 @@ import java.util.stream.Collectors;
@Slf4j
@Service
@AllArgsConstructor
public class PrivateMessageServiceImpl extends ServiceImpl<PrivateMessageMapper, PrivateMessage> implements IPrivateMessageService {
@Autowired
private IFriendService friendService;
@Autowired
private IMClient imClient;
/**
@ -199,7 +199,7 @@ public class PrivateMessageServiceImpl extends ServiceImpl<PrivateMessageMapper,
UserSession session = SessionContext.getSession();
List<Friend> friends = friendService.findFriendByUserId(session.getUserId());
if (friends.isEmpty()) {
return Collections.EMPTY_LIST;
return new ArrayList<>();
}
List<Long> friendIds = friends.stream().map(Friend::getFriendId).collect(Collectors.toList());
// 获取当前用户的消息

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

@ -27,41 +27,29 @@ import com.bx.implatform.util.BeanUtils;
import com.bx.implatform.vo.LoginVO;
import com.bx.implatform.vo.OnlineTerminalVO;
import com.bx.implatform.vo.UserVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@Service
@AllArgsConstructor
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
@Autowired
RedisTemplate<String,Object> redisTemplate;
@Autowired
private PasswordEncoder passwordEncoder;
@Autowired
private IGroupMemberService groupMemberService;
@Autowired
private IFriendService friendService;
@Autowired
private JwtProperties jwtProperties;
@Autowired
private IMClient imClient;
/**
* 用户登录
*
@ -177,7 +165,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
throw new GlobalException(ResultCode.PROGRAM_ERROR,"不允许修改其他用户的信息!");
}
User user = this.getById(vo.getId());
if(null == user){
if(Objects.isNull(user)){
throw new GlobalException(ResultCode.PROGRAM_ERROR,"用户不存在");
}
// 更新好友昵称和头像

6
im-platform/src/main/java/com/bx/implatform/service/impl/WebrtcServiceImpl.java

@ -13,8 +13,8 @@ import com.bx.implatform.service.IWebrtcService;
import com.bx.implatform.session.SessionContext;
import com.bx.implatform.session.UserSession;
import com.bx.implatform.session.WebrtcSession;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
@ -25,13 +25,11 @@ import java.util.concurrent.TimeUnit;
@Slf4j
@Service
@AllArgsConstructor
public class WebrtcServiceImpl implements IWebrtcService {
@Autowired
private IMClient imClient;
@Autowired
private RedisTemplate<String, Object> redisTemplate;
@Autowired
private ICEServerConfig iceServerConfig;
@Override

Loading…
Cancel
Save