Commit 7167a67b by Future

添加一个接口

parent 856f1686
......@@ -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
* @param request
* @param param
......
......@@ -51,6 +51,8 @@ public interface ImMessageMapper extends BaseMapper<ImMessage> {
*/
IPage<OfflineMsgDto> getHistoryMsgConversationId(@Param("page") Page page, @Param("param") ImHistoryMessagePageParam imHistoryMessagePageParam);
IPage<OfflineMsgDto> getHistoryMsgConversationIdNew(@Param("page") Page page, @Param("param") ImHistoryMessagePageParam imHistoryMessagePageParam);
/**
* 根据客户端id与会话id 查询离线消息
*
......
......@@ -141,8 +141,6 @@ public class WsReadHandler extends SimpleChannelInboundHandler<TextWebSocketFram
@Override
public void handlerRemoved(ChannelHandlerContext ctx) {
ctx.channel().close();
Long appId = ctx.channel().attr(ChannelManager.APPLICATION_ID).get();
Long clientId = ctx.channel().attr(ChannelManager.CLIENT_ID).get();
Integer platform = ctx.channel().attr(ChannelManager.PLATFORM).get();
......
......@@ -86,6 +86,15 @@ public interface ImMessageService extends BaseService<ImMessage> {
Paging<OfflineMsgDto> getHistoryMsgConversationId(ImHistoryMessagePageParam param);
/**
* 查询某个会话历史消息分页列表
*
* @param param
* @return
* @throws Exception
*/
Paging<OfflineMsgDto> getHistoryMsgConversationIdNew(ImHistoryMessagePageParam param);
/**
* 查询用户所有离线消息
*
* @return
......
......@@ -488,6 +488,15 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
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 @@
ORDER BY `im_message`.`create_time` DESC
</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 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