Commit 7167a67b by Future

添加一个接口

parent 856f1686
...@@ -100,6 +100,20 @@ public class MessageAction { ...@@ -100,6 +100,20 @@ public class MessageAction {
} }
/** /**
* 查询某个会话历史消息分页列表
* @param request
* @param param
* @param reqId
* @return
*/
@ActionMapping("/getHistoryMsgNew")
@ApiOperation("查询某个会话历史消息分页列表-新")
public WsResponse<Paging<OfflineMsgDto>> getHistoryMsgNew(ImHistoryMessagePageParam data) {
log.info("查询某个会话历史消息分页列表-新:{}", JSON.toJSONString(data));
return WsResponse.ok(imMessageService.getHistoryMsgConversationId(data));
}
/**
* 查询某个消息已读client列表和未读client * 查询某个消息已读client列表和未读client
* @param request * @param request
* @param param * @param param
......
...@@ -51,6 +51,8 @@ public interface ImMessageMapper extends BaseMapper<ImMessage> { ...@@ -51,6 +51,8 @@ public interface ImMessageMapper extends BaseMapper<ImMessage> {
*/ */
IPage<OfflineMsgDto> getHistoryMsgConversationId(@Param("page") Page page, @Param("param") ImHistoryMessagePageParam imHistoryMessagePageParam); IPage<OfflineMsgDto> getHistoryMsgConversationId(@Param("page") Page page, @Param("param") ImHistoryMessagePageParam imHistoryMessagePageParam);
IPage<OfflineMsgDto> getHistoryMsgConversationIdNew(@Param("page") Page page, @Param("param") ImHistoryMessagePageParam imHistoryMessagePageParam);
/** /**
* 根据客户端id与会话id 查询离线消息 * 根据客户端id与会话id 查询离线消息
* *
......
...@@ -141,8 +141,6 @@ public class WsReadHandler extends SimpleChannelInboundHandler<TextWebSocketFram ...@@ -141,8 +141,6 @@ public class WsReadHandler extends SimpleChannelInboundHandler<TextWebSocketFram
@Override @Override
public void handlerRemoved(ChannelHandlerContext ctx) { public void handlerRemoved(ChannelHandlerContext ctx) {
ctx.channel().close();
Long appId = ctx.channel().attr(ChannelManager.APPLICATION_ID).get(); Long appId = ctx.channel().attr(ChannelManager.APPLICATION_ID).get();
Long clientId = ctx.channel().attr(ChannelManager.CLIENT_ID).get(); Long clientId = ctx.channel().attr(ChannelManager.CLIENT_ID).get();
Integer platform = ctx.channel().attr(ChannelManager.PLATFORM).get(); Integer platform = ctx.channel().attr(ChannelManager.PLATFORM).get();
......
...@@ -86,6 +86,15 @@ public interface ImMessageService extends BaseService<ImMessage> { ...@@ -86,6 +86,15 @@ public interface ImMessageService extends BaseService<ImMessage> {
Paging<OfflineMsgDto> getHistoryMsgConversationId(ImHistoryMessagePageParam param); Paging<OfflineMsgDto> getHistoryMsgConversationId(ImHistoryMessagePageParam param);
/** /**
* 查询某个会话历史消息分页列表
*
* @param param
* @return
* @throws Exception
*/
Paging<OfflineMsgDto> getHistoryMsgConversationIdNew(ImHistoryMessagePageParam param);
/**
* 查询用户所有离线消息 * 查询用户所有离线消息
* *
* @return * @return
......
...@@ -488,6 +488,15 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes ...@@ -488,6 +488,15 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
return new Paging<>(iPage); return new Paging<>(iPage);
} }
@Override
public Paging<OfflineMsgDto> getHistoryMsgConversationIdNew(ImHistoryMessagePageParam param) {
Page<ImMessage> page = new PageInfo<>(param, OrderItem.desc(getLambdaColumn(ImMessage::getCreateTime)));
ImClient currentClient = imClientService.getCurrentClient();
param.setCurrentFkClientId(currentClient.getId());
IPage<OfflineMsgDto> iPage = imMessageMapper.getHistoryMsgConversationIdNew(page, param);
return new Paging<>(iPage);
}
/** /**
......
...@@ -83,6 +83,42 @@ ...@@ -83,6 +83,42 @@
ORDER BY `im_message`.`create_time` DESC ORDER BY `im_message`.`create_time` DESC
</select> </select>
<select id="getHistoryMsgConversationIdNew" resultType="com.wecloud.im.vo.OfflineMsgDto">
SELECT im_message.id AS msgId,
im_message.create_time,
im_message.withdraw_time,
im_message.update_date,
`im_client`.client_id AS sender,
im_message.content,
im_message.withdraw,
im_message.`event`,
im_message.system_flag,
im_message.`at`,
im_message.send_status,
im_message.`msg_type` AS 'type',
im_message.fk_conversation_id as conversationId,
(SELECT COUNT(id) FROM im_inbox WHERE fk_msg_id = msgId AND read_msg_status = 0) AS not_read_count,
(SELECT COUNT(id)
FROM im_inbox
WHERE fk_msg_id = msgId
AND receiver_msg_status = 0) AS not_receiver_count
FROM `im_message`
INNER JOIN `im_client` ON `im_client`.id = `im_message`.sender
WHERE fk_conversation_id = #{param.conversationId} and im_message.is_delete = 1 and im_message.withdraw = 0
and (im_message.`event`=0 || (im_message.`event`=1 and sender != #{param.currentFkClientId} ))
<if test="param.msgIdStart != null">
AND im_message.id > #{param.msgIdStart}
</if>
<if test="param.msgIdEnd != null">
AND im_message.id <![CDATA[ <= ]]> #{param.msgIdEnd}
</if>
ORDER BY `im_message`.`create_time` DESC
</select>
<select id="getReceivedLastMsgByConversationId" resultType="com.wecloud.im.vo.OfflineMsgDto"> <select id="getReceivedLastMsgByConversationId" resultType="com.wecloud.im.vo.OfflineMsgDto">
SELECT im_message.id AS msgId, SELECT im_message.id AS msgId,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment