|
|
|
@ -37,6 +37,7 @@ import org.springframework.cache.annotation.Cacheable; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Date; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Objects; |
|
|
|
@ -51,6 +52,7 @@ public class FriendServiceImpl extends ServiceImpl<FriendMapper, Friend> impleme |
|
|
|
private final PrivateMessageMapper privateMessageMapper; |
|
|
|
private final UserMapper userMapper; |
|
|
|
private final IMClient imClient; |
|
|
|
private final FriendMapper friendMapper; |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<Friend> findAllFriends() { |
|
|
|
@ -152,6 +154,55 @@ public class FriendServiceImpl extends ServiceImpl<FriendMapper, Friend> impleme |
|
|
|
sendSyncDndMessage(dto.getFriendId(), dto.getIsDnd()); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void changeFriendRelation(Long customerId, Long targetId, Long userId) { |
|
|
|
LambdaQueryWrapper<Friend> wrapper = Wrappers.lambdaQuery(); |
|
|
|
wrapper.eq(Friend::getUserId, customerId); |
|
|
|
wrapper.eq(Friend::getFriendId, userId); |
|
|
|
Friend friend = this.getOne(wrapper); |
|
|
|
|
|
|
|
LambdaQueryWrapper<Friend> wrapperAnother = Wrappers.lambdaQuery(); |
|
|
|
wrapper.eq(Friend::getUserId, userId); |
|
|
|
wrapper.eq(Friend::getFriendId, customerId); |
|
|
|
Friend friendAnother = this.getOne(wrapperAnother); |
|
|
|
|
|
|
|
if (Objects.isNull(friend) || Objects.isNull(friendAnother)) { |
|
|
|
throw new GlobalException("用户不存在"); |
|
|
|
} |
|
|
|
|
|
|
|
// 删除原有关系
|
|
|
|
List<Long> ids = new ArrayList<>(); |
|
|
|
ids.add(friend.getId()); |
|
|
|
ids.add(friendAnother.getId()); |
|
|
|
this.baseMapper.deleteByIds(ids); |
|
|
|
|
|
|
|
//获取转移目标客服对象
|
|
|
|
User user = userMapper.selectById(targetId); |
|
|
|
if(Objects.isNull(user)){ |
|
|
|
throw new GlobalException("转移目标客服不存在"); |
|
|
|
} |
|
|
|
|
|
|
|
//新增关系
|
|
|
|
List<Friend> friendsList = new ArrayList<>(); |
|
|
|
|
|
|
|
Friend friendNew = new Friend(); |
|
|
|
friendNew.setUserId(targetId); |
|
|
|
friendNew.setFriendId(userId); |
|
|
|
friendNew.setFriendNickName(friend.getFriendNickName()); |
|
|
|
friendNew.setDeleted(false); |
|
|
|
friendsList.add(friendNew); |
|
|
|
|
|
|
|
Friend friendNewAnother = new Friend(); |
|
|
|
friendNewAnother.setUserId(userId); |
|
|
|
friendNewAnother.setFriendId(targetId); |
|
|
|
friendNewAnother.setFriendNickName(user.getNickName()); |
|
|
|
friendNewAnother.setFriendHeadImage(user.getHeadImageThumb()); |
|
|
|
friendNewAnother.setDeleted(false); |
|
|
|
friendsList.add(friendNewAnother); |
|
|
|
|
|
|
|
friendMapper.insert(friendsList); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 单向解除好友关系 |
|
|
|
* |
|
|
|
|