mirror of
https://github.com/zongzibinbin/MallChat.git
synced 2026-03-13 21:53:41 +08:00
Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -50,4 +51,20 @@ public class GroupMemberDao extends ServiceImpl<GroupMemberMapper, GroupMember>
|
|||||||
.eq(GroupMember::getRole, GroupRoleEnum.LEADER.getType())
|
.eq(GroupMember::getRole, GroupRoleEnum.LEADER.getType())
|
||||||
.list();
|
.list();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量获取成员群角色
|
||||||
|
*
|
||||||
|
* @param groupId 群ID
|
||||||
|
* @param uidList 用户列表
|
||||||
|
* @return 成员群角色列表
|
||||||
|
*/
|
||||||
|
public Map<Long, Integer> getMemberMapRole(Long groupId, List<Long> uidList) {
|
||||||
|
List<GroupMember> list = lambdaQuery()
|
||||||
|
.eq(GroupMember::getGroupId, groupId)
|
||||||
|
.in(GroupMember::getUid, uidList)
|
||||||
|
.select(GroupMember::getUid, GroupMember::getRole)
|
||||||
|
.list();
|
||||||
|
return list.stream().collect(Collectors.toMap(GroupMember::getUid, GroupMember::getRole));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public interface ChatService {
|
|||||||
* @param request
|
* @param request
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
CursorPageBaseResp<ChatMemberResp> getMemberPage(List<Long> memberUidList, CursorPageBaseReq request);
|
CursorPageBaseResp<ChatMemberResp> getMemberPage(List<Long> memberUidList, MemberReq request);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取消息列表
|
* 获取消息列表
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ public class ChatServiceImpl implements ChatService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private RoomGroupCache roomGroupCache;
|
private RoomGroupCache roomGroupCache;
|
||||||
@Autowired
|
@Autowired
|
||||||
private MQProducer mqProducer;
|
private RoomGroupDao roomGroupDao;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发送消息
|
* 发送消息
|
||||||
@@ -141,7 +141,7 @@ public class ChatServiceImpl implements ChatService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CursorPageBaseResp<ChatMemberResp> getMemberPage(List<Long> memberUidList, CursorPageBaseReq request) {
|
public CursorPageBaseResp<ChatMemberResp> getMemberPage(List<Long> memberUidList, MemberReq request) {
|
||||||
Pair<ChatActiveStatusEnum, String> pair = ChatMemberHelper.getCursorPair(request.getCursor());
|
Pair<ChatActiveStatusEnum, String> pair = ChatMemberHelper.getCursorPair(request.getCursor());
|
||||||
ChatActiveStatusEnum activeStatusEnum = pair.getKey();
|
ChatActiveStatusEnum activeStatusEnum = pair.getKey();
|
||||||
String timeCursor = pair.getValue();
|
String timeCursor = pair.getValue();
|
||||||
@@ -164,6 +164,11 @@ public class ChatServiceImpl implements ChatService {
|
|||||||
timeCursor = cursorPage.getCursor();
|
timeCursor = cursorPage.getCursor();
|
||||||
isLast = cursorPage.getIsLast();
|
isLast = cursorPage.getIsLast();
|
||||||
}
|
}
|
||||||
|
// 获取群成员角色ID
|
||||||
|
List<Long> uidList = resultList.stream().map(ChatMemberResp::getUid).collect(Collectors.toList());
|
||||||
|
RoomGroup roomGroup = roomGroupDao.getByRoomId(request.getRoomId());
|
||||||
|
Map<Long, Integer> uidMapRole = groupMemberDao.getMemberMapRole(roomGroup.getId(), uidList);
|
||||||
|
resultList.forEach(member -> member.setRoleId(uidMapRole.get(member.getUid())));
|
||||||
//组装结果
|
//组装结果
|
||||||
return new CursorPageBaseResp<>(ChatMemberHelper.generateCursor(activeStatusEnum, timeCursor), isLast, resultList);
|
return new CursorPageBaseResp<>(ChatMemberHelper.generateCursor(activeStatusEnum, timeCursor), isLast, resultList);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,12 @@ public class ChatMemberResp {
|
|||||||
*/
|
*/
|
||||||
@ApiModelProperty("在线状态 1在线 2离线")
|
@ApiModelProperty("在线状态 1在线 2离线")
|
||||||
private Integer activeStatus;
|
private Integer activeStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 角色ID
|
||||||
|
*/
|
||||||
|
private Integer roleId;
|
||||||
|
|
||||||
@ApiModelProperty("最后一次上下线时间")
|
@ApiModelProperty("最后一次上下线时间")
|
||||||
private Date lastOptTime;
|
private Date lastOptTime;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user