1.优化群解散
2.发布公告时同时发送群消息
This commit is contained in:
@@ -105,13 +105,11 @@ public class ContactDao extends ServiceImpl<ContactMapper, Contact> {
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
public Boolean removeByRoomId(Long roomId, List<Long> uidList) {
|
||||
LambdaQueryWrapper<Contact> wrapper = new QueryWrapper<Contact>().lambda().eq(Contact::getRoomId, roomId);
|
||||
if (CollectionUtil.isNotEmpty(uidList)) {
|
||||
LambdaQueryWrapper<Contact> wrapper = new QueryWrapper<Contact>().lambda()
|
||||
.eq(Contact::getRoomId, roomId)
|
||||
.in(Contact::getUid, uidList);
|
||||
return this.remove(wrapper);
|
||||
wrapper.in(Contact::getUid, uidList);
|
||||
}
|
||||
return false;
|
||||
return this.remove(wrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -212,14 +212,11 @@ public class GroupMemberDao extends ServiceImpl<GroupMemberMapper, GroupMember>
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
public Boolean removeByGroupId(Long groupId, List<Long> uidList) {
|
||||
LambdaQueryWrapper<GroupMember> wrapper = new QueryWrapper<GroupMember>().lambda().eq(GroupMember::getGroupId, groupId);
|
||||
if (CollectionUtil.isNotEmpty(uidList)) {
|
||||
LambdaQueryWrapper<GroupMember> wrapper = new QueryWrapper<GroupMember>()
|
||||
.lambda()
|
||||
.eq(GroupMember::getGroupId, groupId)
|
||||
.in(GroupMember::getUid, uidList);
|
||||
return this.remove(wrapper);
|
||||
wrapper.in(GroupMember::getUid, uidList);
|
||||
}
|
||||
return false;
|
||||
return this.remove(wrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -75,13 +75,13 @@ public class MessageDao extends ServiceImpl<MessageMapper, Message> {
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
public Boolean removeByRoomId(Long roomId, List<Long> uidList) {
|
||||
LambdaUpdateWrapper<Message> wrapper = new UpdateWrapper<Message>().lambda()
|
||||
.eq(Message::getRoomId, roomId)
|
||||
.set(Message::getStatus, MessageStatusEnum.DELETE.getStatus());
|
||||
|
||||
if (CollectionUtil.isNotEmpty(uidList)) {
|
||||
LambdaUpdateWrapper<Message> wrapper = new UpdateWrapper<Message>().lambda()
|
||||
.eq(Message::getRoomId, roomId)
|
||||
.in(Message::getFromUid, uidList)
|
||||
.set(Message::getStatus, MessageStatusEnum.DELETE.getStatus());
|
||||
return this.update(wrapper);
|
||||
wrapper.in(Message::getFromUid, uidList);
|
||||
}
|
||||
return false;
|
||||
return this.update(wrapper);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,8 @@ public enum MessageTypeEnum {
|
||||
VIDEO(6, "视频"),
|
||||
EMOJI(7, "表情"),
|
||||
SYSTEM(8, "系统消息"),
|
||||
MERGE(9, "合并消息"),
|
||||
NOTICE(10, "公告消息"),
|
||||
;
|
||||
|
||||
private final Integer type;
|
||||
|
||||
@@ -89,6 +89,17 @@ public class MessageAdapter {
|
||||
return chatMessageReq;
|
||||
}
|
||||
|
||||
/**
|
||||
* 群公告消息
|
||||
*/
|
||||
public static ChatMessageReq buildAnnouncementsMsg(Long roomId, Announcements announcements) {
|
||||
ChatMessageReq chatMessageReq = new ChatMessageReq();
|
||||
chatMessageReq.setRoomId(roomId);
|
||||
chatMessageReq.setMsgType(MessageTypeEnum.NOTICE.getType());
|
||||
chatMessageReq.setBody(announcements);
|
||||
return chatMessageReq;
|
||||
}
|
||||
|
||||
/**
|
||||
* 群通知
|
||||
*/
|
||||
@@ -102,10 +113,10 @@ public class MessageAdapter {
|
||||
/**
|
||||
* 群公告
|
||||
*/
|
||||
public static WsBaseResp<String> buildRoomGroupAnnouncement(String msg) {
|
||||
WsBaseResp<String> wsBaseResp = new WsBaseResp<>();
|
||||
public static WsBaseResp<Announcements> buildRoomGroupAnnouncement(Announcements announcements) {
|
||||
WsBaseResp<Announcements> wsBaseResp = new WsBaseResp<>();
|
||||
wsBaseResp.setType(WSRespTypeEnum.ROOM_GROUP_NOTICE_MSG.getType());
|
||||
wsBaseResp.setData(msg);
|
||||
wsBaseResp.setData(announcements);
|
||||
return wsBaseResp;
|
||||
}
|
||||
|
||||
|
||||
@@ -281,8 +281,6 @@ public class RoomAppServiceImpl implements RoomAppService {
|
||||
List<Long> uids = roomService.getGroupUsers(roomGroup.getId(), false);
|
||||
if(CollUtil.isNotEmpty(uids)){
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
pushService.sendPushMsg(MessageAdapter.buildRoomGroupAnnouncement(param.getContent()), uids, uid);
|
||||
|
||||
Announcements announcements = new Announcements();
|
||||
announcements.setContent(param.getContent());
|
||||
announcements.setRoomId(param.getRoomId());
|
||||
@@ -301,7 +299,13 @@ public class RoomAppServiceImpl implements RoomAppService {
|
||||
announcementsReadRecordList.add(readRecord);
|
||||
});
|
||||
// 批量添加未读消息
|
||||
return roomService.saveBatchAnnouncementsRecord(announcementsReadRecordList);
|
||||
Boolean saved = roomService.saveBatchAnnouncementsRecord(announcementsReadRecordList);
|
||||
if(saved){
|
||||
// 发送公告消息、推送群成员公告内容
|
||||
chatService.sendMsg(MessageAdapter.buildAnnouncementsMsg(param.getRoomId(), announcements), uid);
|
||||
pushService.sendPushMsg(MessageAdapter.buildRoomGroupAnnouncement(announcements), uids, uid);
|
||||
}
|
||||
return saved;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -321,6 +325,7 @@ public class RoomAppServiceImpl implements RoomAppService {
|
||||
announcements.setTop(param.getTop());
|
||||
Boolean edit = roomService.updateAnnouncement(announcements);
|
||||
if(edit){
|
||||
chatService.sendMsg(MessageAdapter.buildAnnouncementsMsg(param.getRoomId(), announcements), uid);
|
||||
pushService.sendPushMsg(MessageAdapter.buildEditRoomGroupAnnouncement(announcements), uids, uid);
|
||||
}
|
||||
return edit;
|
||||
|
||||
@@ -157,7 +157,7 @@ public class RoomServiceImpl implements RoomService {
|
||||
@Override
|
||||
public Boolean saveAnnouncements(Announcements announcements) {
|
||||
if(announcements.getTop()){
|
||||
announcementsDao.update(new UpdateWrapper<Announcements>().set("top", false).eq("top", true));
|
||||
announcementsDao.update(new UpdateWrapper<Announcements>().set("top", false).eq("top", true).eq("room_id", announcements.getRoomId()));
|
||||
}
|
||||
return announcementsDao.save(announcements);
|
||||
}
|
||||
@@ -215,7 +215,7 @@ public class RoomServiceImpl implements RoomService {
|
||||
@Override
|
||||
public Boolean updateAnnouncement(Announcements announcement) {
|
||||
if(announcement.getTop()){
|
||||
announcementsDao.update(new UpdateWrapper<Announcements>().set("top", false).eq("top", true));
|
||||
announcementsDao.update(new UpdateWrapper<Announcements>().set("top", false).eq("top", true).eq("room_id", announcement.getRoomId()));
|
||||
}
|
||||
return announcementsDao.updateById(announcement);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user