Browse Source

添加未读消息接口

master
ccsens_zhengzhichuan 1 week ago
parent
commit
d99b208cf7
  1. 6
      research-admin/src/main/java/com/research/web/controller/client/session/SessionController.java
  2. 15
      research-system/src/main/java/com/research/system/domain/vo/SessionVo.java
  3. 4
      research-system/src/main/java/com/research/system/persist/dao/SessionDao.java
  4. 1
      research-system/src/main/java/com/research/system/service/SessionService.java
  5. 16
      research-system/src/main/java/com/research/system/service/impl/SessionServiceImpl.java
  6. 15
      research-system/src/main/resources/mapper/dao/SessionDao.xml

6
research-admin/src/main/java/com/research/web/controller/client/session/SessionController.java

@ -74,4 +74,10 @@ public class SessionController {
public JsonResponse<Integer> delLog(@ApiParam @Validated @RequestBody SessionDto.Delete dto) {
return JsonResponse.ok(sessionService.delLog(dto));
}
@ApiOperation(value = "查询未读消息")
@RequestMapping(value = "/queryUnRead", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<SessionVo.UnRead> queryUnRead(){
return JsonResponse.ok(sessionService.queryUnRead());
}
}

15
research-system/src/main/java/com/research/system/domain/vo/SessionVo.java

@ -93,4 +93,19 @@ public class SessionVo {
}
@Data
public static class UnRead{
@ApiModelProperty("总共有多少条未读消息")
private Integer total;
@ApiModelProperty("")
private List<UnReadItem> unreadList;
@Data
public static class UnReadItem{
@ApiModelProperty("会话ID")
private Long sessionId;
@ApiModelProperty("该会话ID未读数量")
private Integer num;
}
}
}

4
research-system/src/main/java/com/research/system/persist/dao/SessionDao.java

@ -20,4 +20,6 @@ public interface SessionDao {
List<SessionVo.MessageLogResult.LogList> queryLogList(SessionDto.SessionId dto);
List<SessionVo.MessageLogResult.MemberInfo> queryMemberList(SessionDto.SessionId dto);
}
List<SessionVo.UnRead.UnReadItem> queryUnReadList(Long userId);
}

1
research-system/src/main/java/com/research/system/service/SessionService.java

@ -26,4 +26,5 @@ public interface SessionService {
Integer delLog(SessionDto.Delete dto);
SessionVo.UnRead queryUnRead();
}

16
research-system/src/main/java/com/research/system/service/impl/SessionServiceImpl.java

@ -104,7 +104,7 @@ public class SessionServiceImpl implements SessionService {
chatMessageReadStatus.setSessionMessageId(chatSessionMessages.getId());
if (Objects.equals(chatSessionMember.getSessionMemberId(), SecurityUtils.getUserId())) {
chatMessageReadStatus.setReadStatus((byte) 1);
}else {
} else {
chatMessageReadStatus.setReadStatus((byte) 0);
}
chatMessageReadStatus.setDelStatus((byte) 0);
@ -142,8 +142,8 @@ public class SessionServiceImpl implements SessionService {
chatSessionMembers.setId(IdUtil.getSnowflakeNextId());
chatSessionMembers.setSessionId(chatSessions.getId());
chatSessionMembers.setSessionMemberId(aLong);
chatSessionMembers.setIsCreator(Objects.equals(aLong, SecurityUtils.getUserId()) ? (byte) 1 :(byte) 0);
chatSessionMembers.setIsAdmin(Objects.equals(aLong, SecurityUtils.getUserId()) ? (byte) 1 :(byte) 0);
chatSessionMembers.setIsCreator(Objects.equals(aLong, SecurityUtils.getUserId()) ? (byte) 1 : (byte) 0);
chatSessionMembers.setIsAdmin(Objects.equals(aLong, SecurityUtils.getUserId()) ? (byte) 1 : (byte) 0);
chatSessionMembers.setSessionAlias("");
chatSessionMembers.setCreateBy(SecurityUtils.getUsername());
chatSessionMembers.setCreateTime(new java.util.Date());
@ -170,4 +170,14 @@ public class SessionServiceImpl implements SessionService {
chatSessionMessages.setDelFlag((byte) 1);
return chatSessionMessagesMapper.updateByExampleSelective(chatSessionMessages, chatSessionMessagesExample);
}
@Override
public SessionVo.UnRead queryUnRead() {
SessionVo.UnRead unRead = new SessionVo.UnRead();
//根据登录人查询未读消息
List<SessionVo.UnRead.UnReadItem> unReadItems = sessionDao.queryUnReadList(SecurityUtils.getUserId());
unRead.setUnreadList(unReadItems);
unRead.setTotal(CollUtil.isNotEmpty(unReadItems) ? unReadItems.stream().map(SessionVo.UnRead.UnReadItem::getNum).reduce(0, Integer::sum) : 0);
return unRead;
}
}

15
research-system/src/main/resources/mapper/dao/SessionDao.xml

@ -97,4 +97,19 @@ select * from
INNER JOIN chat_contact_list c ON sm.session_member_id = c.user_id
WHERE sm.session_id = #{sessionId}
</select>
<select id="queryUnReadList" resultType="com.research.system.domain.vo.SessionVo$UnRead$UnReadItem">
SELECT
cs.id,
count(csm.id)
FROM
chat_sessions cs
LEFT JOIN chat_session_messages csm on cs.id = csm.session_id
LEFT JOIN chat_message_read_status cmr on cmr.session_message_id = csm.id and cmr.read_status = 0
WHERE
cs.del_flag = 0
and cmr.session_member_id = #{userId}
GROUP BY
cs.id
</select>
</mapper>

Loading…
Cancel
Save