update 聊天室误删客服bug修改

This commit is contained in:
yyb
2025-08-20 11:16:58 +08:00
parent 7258909381
commit 80b15dcf5b
6 changed files with 53 additions and 15 deletions

View File

@@ -48,8 +48,10 @@ public class WebSocketEventListener implements ApplicationListener<SessionDiscon
//游客断开链接,通知客服删除游客聊天室
stompService.customerCloseRoom(user.getName());
// 删除数据库中游客数据
int delete = chatRoomMapper.delete(new LambdaUpdateWrapper<ChatRoom>().eq(ChatRoom::getUserOneEmail, user.getName()));
int delete1 = chatMessageMapper.delete(new LambdaUpdateWrapper<ChatMessage>().eq(ChatMessage::getSendEmail, user.getName()));
int delete = chatRoomMapper.delete(new LambdaUpdateWrapper<ChatRoom>()
.eq(ChatRoom::getUserOneEmail, user.getName()).like(ChatRoom::getUserOneEmail, "guest_"));
int delete1 = chatMessageMapper.delete(new LambdaUpdateWrapper<ChatMessage>()
.eq(ChatMessage::getSendEmail, user.getName()).like(ChatMessage::getSendEmail, "guest_"));
LOGGER.info("删除游客聊天室个数:{},消息个数{}", delete,delete1);
}

View File

@@ -30,6 +30,10 @@ public interface ChatRoomMapper extends BaseMapper<ChatRoom> {
*/
ChatRoomDto findRoomByUserEmail(@Param("userEmail") String userEmail);
/**
* 新增或修改聊天室
* @param room
* @return
*/
int insetOrUpdateRoom(@Param("room") ChatRoom room);
}

View File

@@ -152,16 +152,7 @@ public class ChatRoomServiceImpl extends ServiceImpl<ChatRoomMapper, ChatRoom> i
.userTwoEmail(email)
.build();
try{
ChatRoom chatRoom = chatRoomMapper.selectOne(new LambdaQueryWrapper<ChatRoom>()
.eq(ChatRoom::getUserOneEmail, userEmail).eq(ChatRoom::getUserTwoEmail, email));
if (chatRoom != null){
return R.success(ChatRoomDto.builder()
.id(chatRoom.getId())
.selfEmail(userEmail)
.customerIsOnline(customerIsOnline)
.userEmail(chatRoom.getUserTwoEmail()).build());
}
int insert = chatRoomMapper.insert(build);
int insert = chatRoomMapper.insetOrUpdateRoom(build);
if (insert > 0){
return R.success(ChatRoomDto.builder()
.id(build.getId())

View File

@@ -43,4 +43,12 @@
WHERE
user_one_email = #{userEmail}
</select>
<insert id="insetOrUpdateRoom">
INSERT INTO chat_room(user_one_email,user_two_email)
VALUES (#{room.userOneEmail},#{room.userTwoEmail})
ON DUPLICATE KEY UPDATE
user_one_email = #{room.userOneEmail},
user_two_email = #{room.userTwoEmail}
</insert>
</mapper>

File diff suppressed because one or more lines are too long