添加ws已读接口
This commit is contained in:
parent
1752e67b28
commit
35a6dfa7e9
@ -14,6 +14,8 @@ import com.upchina.group.vo.message.GroupMessageVO;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import org.springframework.messaging.handler.annotation.MessageMapping;
|
||||
import org.springframework.messaging.simp.SimpMessageHeaderAccessor;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestAttribute;
|
||||
@ -68,4 +70,10 @@ public class AppGroupMessageController {
|
||||
return CommonResult.success(count);
|
||||
}
|
||||
|
||||
@ApiOperation("WebSocket保存消息已读")
|
||||
@MessageMapping("/chat/group/readMessage")
|
||||
public void readMessage(SimpMessageHeaderAccessor accessor) {
|
||||
appGroupMessageService.readMessage(accessor);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
package com.upchina.group.service.app;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.upchina.advisor.service.AdvisorInfoService;
|
||||
import com.upchina.advisor.vo.AdvisorBasicVO;
|
||||
import com.upchina.common.constant.IsOrNot;
|
||||
@ -11,6 +12,7 @@ import com.upchina.common.result.ResponseStatus;
|
||||
import com.upchina.common.service.CommentBlackService;
|
||||
import com.upchina.common.service.SensitiveWordService;
|
||||
import com.upchina.common.util.TextUtil;
|
||||
import com.upchina.common.util.logger.LoggerUtil;
|
||||
import com.upchina.common.vo.FrontUserVO;
|
||||
import com.upchina.group.constant.GroupInteractiveType;
|
||||
import com.upchina.group.constant.GroupMessageStatus;
|
||||
@ -28,6 +30,7 @@ import com.upchina.group.service.common.GroupMessageService;
|
||||
import com.upchina.group.vo.GroupVO;
|
||||
import com.upchina.group.vo.message.GroupMessageReadVO;
|
||||
import com.upchina.group.vo.message.GroupMessageVO;
|
||||
import org.springframework.messaging.simp.SimpMessageHeaderAccessor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@ -135,6 +138,33 @@ public class AppGroupMessageService {
|
||||
groupCacheService.readMessage(vo);
|
||||
}
|
||||
|
||||
public void readMessage(SimpMessageHeaderAccessor accessor) {
|
||||
Map<String, Object> attributes = accessor.getSessionAttributes();
|
||||
if (attributes == null) {
|
||||
LoggerUtil.error("readMessage用户未登录");
|
||||
throw new BizException(ResponseStatus.SESSION_EXPIRY, "readMessage用户未登录");
|
||||
}
|
||||
String userId = (String) attributes.get("userId");
|
||||
if (StrUtil.isEmpty(userId)) {
|
||||
throw new BizException(ResponseStatus.PARM_ERROR, "用户ID错误:" + userId);
|
||||
}
|
||||
String messageIds = (String) attributes.get("messageIds");
|
||||
if (StrUtil.isEmpty(messageIds)) {
|
||||
throw new BizException(ResponseStatus.PARM_ERROR, "消息ID错误:" + messageIds);
|
||||
}
|
||||
String[] ids = messageIds.split(",");
|
||||
List<Integer> list = new ArrayList<>(ids.length);
|
||||
for (String id : ids) {
|
||||
try {
|
||||
list.add(Integer.parseInt(id));
|
||||
} catch (NumberFormatException e) {
|
||||
throw new BizException(ResponseStatus.PARM_ERROR, "消息ID错误:" + messageIds);
|
||||
}
|
||||
}
|
||||
GroupMessageReadVO vo = new GroupMessageReadVO(userId, list);
|
||||
groupCacheService.readMessage(vo);
|
||||
}
|
||||
|
||||
public Integer queryUnreadCount(QueryUnreadCountAppQuery query, FrontUserVO frontUser) {
|
||||
Integer groupId = query.getGroupId();
|
||||
Integer lastId = query.getLastId();
|
||||
@ -147,4 +177,5 @@ public class AppGroupMessageService {
|
||||
}
|
||||
return sortedSet.size();
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user