| | |
| | | import java.util.List; |
| | | |
| | | import com.ruoyi.call.compare.ArdCallSessionUserComparator; |
| | | import com.ruoyi.call.domain.ArdCallGroupUser; |
| | | import com.ruoyi.call.domain.ArdCallHistory; |
| | | import com.ruoyi.call.domain.ArdCallUnreadMessages; |
| | | import com.ruoyi.call.domain.*; |
| | | import com.ruoyi.call.mapper.ArdCallGroupUserMapper; |
| | | import com.ruoyi.call.mapper.ArdCallHistoryMapper; |
| | | import com.ruoyi.call.mapper.ArdCallUnreadMessagesMapper; |
| | | import com.ruoyi.call.service.IArdCallGroupService; |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.uuid.IdUtils; |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.call.mapper.ArdCallSessionUserMapper; |
| | | import com.ruoyi.call.domain.ArdCallSessionUser; |
| | | import com.ruoyi.call.service.IArdCallSessionUserService; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | private ArdCallSessionUserComparator ardCallSessionUserComparator; |
| | | @Resource |
| | | private ArdCallUnreadMessagesMapper ardCallUnreadMessagesMapper; |
| | | @Resource |
| | | private IArdCallGroupService ardCallGroupService; |
| | | @Resource |
| | | private ISysUserService sysUserService; |
| | | |
| | | /** |
| | | * 查询会话用户中间表 |
| | |
| | | @Override |
| | | public ArdCallSessionUser selectArdCallSessionUserById(String id) { |
| | | return ardCallSessionUserMapper.selectArdCallSessionUserById(id); |
| | | } |
| | | |
| | | @Override |
| | | public ArdCallSessionUser selectArdCallSessionUserBySesionId(String userId, String sessionId) { |
| | | ArdCallSessionUser ardCallSessionUser = ardCallSessionUserMapper.selectArdCallSessionUserBySesionId(userId, sessionId); |
| | | if (ardCallSessionUser != null) { |
| | | //获取未读数量 |
| | | ArdCallUnreadMessages ardCallUnreadMessages = ardCallUnreadMessagesMapper.getUnreadMessage(ardCallSessionUser.getSessionId(), ardCallSessionUser.getUserId()); |
| | | if (ardCallUnreadMessages != null) { |
| | | ardCallSessionUser.setUnReadCount(ardCallUnreadMessages.getUnreadCount()); |
| | | } else { |
| | | ardCallSessionUser.setUnReadCount(0); |
| | | } |
| | | //获取最后一条消息实体 |
| | | ArdCallHistory ardCallHistory = ardCallHistoryMapper.selectLastArdCallHistory(ardCallSessionUser.getSessionId()); |
| | | if (ardCallHistory != null) { |
| | | SysUser sysUser = sysUserService.selectUserById(ardCallHistory.getUserId()); |
| | | if (sysUser != null) { |
| | | ardCallHistory.setNickName(sysUser.getNickName()); |
| | | ardCallHistory.setAvatar(sysUser.getAvatar()); |
| | | } |
| | | ardCallSessionUser.setArdCallHistory(ardCallHistory); |
| | | } |
| | | //群聊targetNickName改为群名称 |
| | | if (ardCallSessionUser.getType().equals("1")) { |
| | | ArdCallGroup ardCallGroup = ardCallGroupService.selectArdCallGroupById(ardCallSessionUser.getTargetId()); |
| | | if (ardCallGroup != null) { |
| | | ardCallSessionUser.setTargetNickName(ardCallGroup.getName()); |
| | | } |
| | | } |
| | | } |
| | | return ardCallSessionUser; |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | //获取最后一条消息实体 |
| | | ArdCallHistory ardCallHistory = ardCallHistoryMapper.selectLastArdCallHistory(callSessionUser.getSessionId()); |
| | | callSessionUser.setArdCallHistory(ardCallHistory); |
| | | if(ardCallHistory != null) { |
| | | SysUser sysUser = sysUserService.selectUserById(ardCallHistory.getUserId()); |
| | | if (sysUser != null) { |
| | | ardCallHistory.setNickName(sysUser.getNickName()); |
| | | ardCallHistory.setAvatar(sysUser.getAvatar()); |
| | | } |
| | | callSessionUser.setArdCallHistory(ardCallHistory); |
| | | } |
| | | //群聊targetNickName改为群名称 |
| | | if (callSessionUser.getType().equals("1")) { |
| | | ArdCallGroup ardCallGroup = ardCallGroupService.selectArdCallGroupById(callSessionUser.getTargetId()); |
| | | if (ardCallGroup != null) { |
| | | callSessionUser.setTargetNickName(ardCallGroup.getName()); |
| | | } |
| | | } |
| | | }); |
| | | //过滤掉没有历史记录的会话 |
| | | ardCallSessionUsers = ardCallSessionUsers.stream().filter(obj -> obj.getArdCallHistory() != null).collect(Collectors.toList()); |