集成websocket
This commit is contained in:
@@ -6,6 +6,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.OrderItem;
|
import com.baomidou.mybatisplus.core.metadata.OrderItem;
|
||||||
import com.dd.admin.business.author.entity.Author;
|
import com.dd.admin.business.author.entity.Author;
|
||||||
import com.dd.admin.business.author.service.AuthorService;
|
import com.dd.admin.business.author.service.AuthorService;
|
||||||
|
import com.dd.admin.business.chat.domain.ChatDto;
|
||||||
|
import com.dd.admin.business.chat.domain.ChatVo;
|
||||||
|
import com.dd.admin.business.chat.service.ChatService;
|
||||||
import com.dd.admin.business.file.entity.File;
|
import com.dd.admin.business.file.entity.File;
|
||||||
import com.dd.admin.business.file.service.FileService;
|
import com.dd.admin.business.file.service.FileService;
|
||||||
import com.dd.admin.business.follow.domain.FollowDto;
|
import com.dd.admin.business.follow.domain.FollowDto;
|
||||||
@@ -79,6 +82,8 @@ public class AuthApi {
|
|||||||
ReplyService replyService;
|
ReplyService replyService;
|
||||||
@Autowired
|
@Autowired
|
||||||
UpReplysService upReplysService;
|
UpReplysService upReplysService;
|
||||||
|
@Autowired
|
||||||
|
ChatService chatService;
|
||||||
|
|
||||||
@ApiOperation(value = "获取所有笔记")
|
@ApiOperation(value = "获取所有笔记")
|
||||||
@ApiOperationSupport(order = 1)
|
@ApiOperationSupport(order = 1)
|
||||||
@@ -612,4 +617,31 @@ public class AuthApi {
|
|||||||
return ResultBean.success(isUp);
|
return ResultBean.success(isUp);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "获取聊天记录")
|
||||||
|
@ApiOperationSupport(order = 1)
|
||||||
|
@GetMapping("/api/auth/getChatList")
|
||||||
|
@OperLog(operModule = "获取所有笔记",operType = OperType.QUERY,operDesc = "获取聊天记录")
|
||||||
|
public ResultBean<IPage<ChatVo>> getChatList( ChatDto chatDto) {
|
||||||
|
String followId = String.valueOf(request.getAttribute("authorId"));
|
||||||
|
Author follow = authorService.getById(followId);
|
||||||
|
chatDto.setToId(followId);
|
||||||
|
chatDto.setToName(follow.getAuthorName());
|
||||||
|
IPage<ChatVo> chatVoIPage = chatService.selectChatPage(chatDto);
|
||||||
|
|
||||||
|
return ResultBean.success(chatVoIPage);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "获取聊天列表")
|
||||||
|
@ApiOperationSupport(order = 1)
|
||||||
|
@GetMapping("/api/auth/getMessageList")
|
||||||
|
@OperLog(operModule = "获取聊天列表",operType = OperType.QUERY,operDesc = "获取聊天列表")
|
||||||
|
public ResultBean<List<ChatVo>> getMessageList( ChatDto chatDto) {
|
||||||
|
String followId = String.valueOf(request.getAttribute("authorId"));
|
||||||
|
List<ChatVo> chatVos = chatService.selectChatList(followId);
|
||||||
|
return ResultBean.success(chatVos);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1,88 @@
|
|||||||
|
package com.dd.admin.business.chat.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import com.dd.admin.common.model.UpdateGroup;
|
||||||
|
import com.dd.admin.common.model.result.ResultBean;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import com.dd.admin.business.chat.entity.Chat;
|
||||||
|
import com.dd.admin.business.chat.domain.ChatVo;
|
||||||
|
import com.dd.admin.business.chat.domain.ChatDto;
|
||||||
|
import com.dd.admin.business.chat.service.ChatService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 727869402@qq.com
|
||||||
|
* @since 2024-12-28
|
||||||
|
*/
|
||||||
|
@Api(tags = "")
|
||||||
|
@RestController
|
||||||
|
public class ChatController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
ChatService chatService;
|
||||||
|
|
||||||
|
@ApiOperation(value = "-分页列表")
|
||||||
|
@ApiOperationSupport(order = 1)
|
||||||
|
@GetMapping("/admin/chat/page")
|
||||||
|
public ResultBean<IPage<ChatVo>> page(ChatDto chatDto) {
|
||||||
|
IPage<ChatVo> pageInfo = chatService.selectChatPage(chatDto);
|
||||||
|
return ResultBean.success(pageInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "-列表")
|
||||||
|
@ApiOperationSupport(order = 2)
|
||||||
|
@GetMapping("/admin/chat/list")
|
||||||
|
public ResultBean<List<ChatVo>> list(ChatDto chatDto) {
|
||||||
|
List<ChatVo> list = chatService.selectChatDetail(chatDto);
|
||||||
|
return ResultBean.success(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "-添加")
|
||||||
|
@ApiOperationSupport(order = 3)
|
||||||
|
@PostMapping("/admin/chat/add")
|
||||||
|
public ResultBean<Chat> add(@RequestBody @Validated ChatDto chatDto) {
|
||||||
|
Chat chat = BeanUtil.copyProperties(chatDto, Chat.class);
|
||||||
|
chatService.save(chat);
|
||||||
|
return ResultBean.success(chat);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "-查询")
|
||||||
|
@ApiOperationSupport(order = 4)
|
||||||
|
@GetMapping("/admin/chat/{chatId}")
|
||||||
|
public ResultBean<ChatVo> get(@PathVariable @NotBlank String chatId) {
|
||||||
|
Chat chat = chatService.getById(chatId);
|
||||||
|
ChatVo chatVo = BeanUtil.copyProperties(chat,ChatVo.class);
|
||||||
|
return ResultBean.success(chatVo);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "-修改")
|
||||||
|
@ApiOperationSupport(order = 5)
|
||||||
|
@PostMapping("/admin/chat/update")
|
||||||
|
public ResultBean<Chat> update(@RequestBody @Validated(UpdateGroup.class) ChatDto chatDto) {
|
||||||
|
Chat chat = BeanUtil.copyProperties(chatDto, Chat.class);
|
||||||
|
chatService.updateById(chat);
|
||||||
|
return ResultBean.success(chat);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "-删除")
|
||||||
|
@ApiOperationSupport(order = 6)
|
||||||
|
@GetMapping("/admin/chat/delete/{chatId}")
|
||||||
|
public ResultBean<Chat> delete(@PathVariable @NotBlank String chatId) {
|
||||||
|
Boolean b = chatService.removeById(chatId);
|
||||||
|
return ResultBean.success(b);
|
||||||
|
}
|
||||||
|
}
|
74
src/main/java/com/dd/admin/business/chat/domain/ChatDto.java
Normal file
74
src/main/java/com/dd/admin/business/chat/domain/ChatDto.java
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
package com.dd.admin.business.chat.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import java.util.Date;
|
||||||
|
import com.baomidou.mybatisplus.annotation.Version;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import com.dd.admin.common.model.UpdateGroup;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 返回对象
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 727869402@qq.com
|
||||||
|
* @since 2024-12-28
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ApiModel(value="接收对象")
|
||||||
|
public class ChatDto {
|
||||||
|
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "消息id")
|
||||||
|
@NotBlank(message = "id不能为空",groups = UpdateGroup.class)
|
||||||
|
private String chatId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "消息发送者")
|
||||||
|
private String fromId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "消息发送者")
|
||||||
|
private String fromName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "接收者")
|
||||||
|
private String toId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "接收者")
|
||||||
|
private String toName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "0文字 1图片 2语音 3视频")
|
||||||
|
private Integer messageType;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "0发送 1已读")
|
||||||
|
private Integer messageStatus;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "内容")
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "资源地址")
|
||||||
|
private String resourceUrl;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "0正常 1删除")
|
||||||
|
private Integer deleted;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "创建时间")
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "ip地址")
|
||||||
|
private String ipAddress;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "真实ip地址")
|
||||||
|
private String ipRealAddress;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
76
src/main/java/com/dd/admin/business/chat/domain/ChatVo.java
Normal file
76
src/main/java/com/dd/admin/business/chat/domain/ChatVo.java
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
package com.dd.admin.business.chat.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import java.util.Date;
|
||||||
|
import com.baomidou.mybatisplus.annotation.Version;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 返回对象
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 727869402@qq.com
|
||||||
|
* @since 2024-12-28
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ApiModel(value="返回对象")
|
||||||
|
public class ChatVo {
|
||||||
|
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "消息id")
|
||||||
|
private String chatId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "消息发送者")
|
||||||
|
private String fromId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "消息发送者")
|
||||||
|
private String fromName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "接收者")
|
||||||
|
private String toId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "接收者")
|
||||||
|
private String toName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "0文字 1图片 2语音 3视频")
|
||||||
|
private Integer messageType;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "0发送 1已读")
|
||||||
|
private Integer messageStatus;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "内容")
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "资源地址")
|
||||||
|
private String resourceUrl;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "0正常 1删除")
|
||||||
|
private Integer deleted;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "创建时间")
|
||||||
|
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
// @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "ip地址")
|
||||||
|
private String ipAddress;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "真实ip地址")
|
||||||
|
private String ipRealAddress;
|
||||||
|
|
||||||
|
private String fromAvatar;
|
||||||
|
private String toAvatar;
|
||||||
|
}
|
87
src/main/java/com/dd/admin/business/chat/entity/Chat.java
Normal file
87
src/main/java/com/dd/admin/business/chat/entity/Chat.java
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
package com.dd.admin.business.chat.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import java.util.Date;
|
||||||
|
import com.baomidou.mybatisplus.annotation.Version;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 727869402@qq.com
|
||||||
|
* @since 2024-12-28
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@TableName("business_chat")
|
||||||
|
@ApiModel(value="Chat对象", description="")
|
||||||
|
public class Chat implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "消息id")
|
||||||
|
@TableId(value = "CHAT_ID", type = IdType.ASSIGN_UUID)
|
||||||
|
private String chatId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "消息发送者")
|
||||||
|
@TableField("FROM_ID")
|
||||||
|
private String fromId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "消息发送者")
|
||||||
|
@TableField("FROM_NAME")
|
||||||
|
private String fromName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "接收者")
|
||||||
|
@TableField("TO_ID")
|
||||||
|
private String toId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "接收者")
|
||||||
|
@TableField("TO_NAME")
|
||||||
|
private String toName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "0文字 1图片 2语音 3视频")
|
||||||
|
@TableField("MESSAGE_TYPE")
|
||||||
|
private Integer messageType;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "0发送 1已读")
|
||||||
|
@TableField("MESSAGE_STATUS")
|
||||||
|
private Integer messageStatus;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "内容")
|
||||||
|
@TableField("CONTENT")
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "资源地址")
|
||||||
|
@TableField("RESOURCE_URL")
|
||||||
|
private String resourceUrl;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "0正常 1删除")
|
||||||
|
@TableField("DELETED")
|
||||||
|
@TableLogic
|
||||||
|
private Integer deleted;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "创建时间")
|
||||||
|
@TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "ip地址")
|
||||||
|
@TableField("IP_ADDRESS")
|
||||||
|
private String ipAddress;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "真实ip地址")
|
||||||
|
@TableField("IP_REAL_ADDRESS")
|
||||||
|
private String ipRealAddress;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@@ -0,0 +1,29 @@
|
|||||||
|
package com.dd.admin.business.chat.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.dd.admin.business.chat.entity.Chat;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.dd.admin.business.chat.domain.ChatVo;
|
||||||
|
import com.dd.admin.business.chat.domain.ChatDto;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 727869402@qq.com
|
||||||
|
* @since 2024-12-28
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface ChatMapper extends BaseMapper<Chat> {
|
||||||
|
|
||||||
|
IPage<ChatVo> selectChatPage(Page<ChatVo> page, @Param("chatDto") ChatDto chatDto);
|
||||||
|
ChatVo selectChat(@Param("chatId") String chatId);
|
||||||
|
List<ChatVo> selectChatDetail(@Param("chatDto") ChatDto chatDto);
|
||||||
|
List<ChatVo> selectChatList(@Param("toId")String toId);
|
||||||
|
}
|
@@ -0,0 +1,75 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.dd.admin.business.chat.mapper.ChatMapper">
|
||||||
|
|
||||||
|
<!-- 通用查询映射结果 -->
|
||||||
|
<resultMap id="BaseResultMap" type="com.dd.admin.business.chat.entity.Chat">
|
||||||
|
<id column="CHAT_ID" property="chatId" />
|
||||||
|
<result column="FROM_ID" property="fromId" />
|
||||||
|
<result column="FROM_NAME" property="fromName" />
|
||||||
|
<result column="TO_ID" property="toId" />
|
||||||
|
<result column="TO_NAME" property="toName" />
|
||||||
|
<result column="MESSAGE_TYPE" property="messageType" />
|
||||||
|
<result column="MESSAGE_STATUS" property="messageStatus" />
|
||||||
|
<result column="CONTENT" property="content" />
|
||||||
|
<result column="RESOURCE_URL" property="resourceUrl" />
|
||||||
|
<result column="DELETED" property="deleted" />
|
||||||
|
<result column="CREATE_TIME" property="createTime" />
|
||||||
|
<result column="IP_ADDRESS" property="ipAddress" />
|
||||||
|
<result column="IP_REAL_ADDRESS" property="ipRealAddress" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<!-- 通用查询结果列 -->
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
CHAT_ID, FROM_ID, FROM_NAME, TO_ID, TO_NAME, MESSAGE_TYPE, MESSAGE_STATUS, CONTENT, RESOURCE_URL, DELETED, CREATE_TIME, IP_ADDRESS, IP_REAL_ADDRESS
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectChatPage" resultType="com.dd.admin.business.chat.domain.ChatVo">
|
||||||
|
select
|
||||||
|
a.*,
|
||||||
|
b.AVATAR_URL as toAvatar,
|
||||||
|
c.AVATAR_URL as fromAvatar
|
||||||
|
from business_chat a
|
||||||
|
left join business_author b on a.to_id = b.author_id
|
||||||
|
left join business_author c on a.from_id = c.author_id
|
||||||
|
where
|
||||||
|
( (a.from_id = #{chatDto.fromId} and a.to_id = #{chatDto.toId})
|
||||||
|
or (a.from_id = #{chatDto.toId} and a.to_id = #{chatDto.fromId}))
|
||||||
|
order by create_time desc
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectChatDetail" resultType="com.dd.admin.business.chat.domain.ChatVo">
|
||||||
|
select
|
||||||
|
*
|
||||||
|
from business_chat where 1 = 1
|
||||||
|
</select>
|
||||||
|
<select id="selectChat" resultType="com.dd.admin.business.chat.domain.ChatVo"
|
||||||
|
parameterType="com.dd.admin.business.chat.domain.ChatDto">
|
||||||
|
select
|
||||||
|
a.*,
|
||||||
|
b.AVATAR_URL as toAvatar,
|
||||||
|
c.AVATAR_URL as fromAvatar
|
||||||
|
from business_chat a
|
||||||
|
left join business_author b on a.to_id = b.author_id
|
||||||
|
left join business_author c on a.from_id = c.author_id
|
||||||
|
where 1 = 1
|
||||||
|
<if test="chatId!= null and chatId!= ''">
|
||||||
|
and a.chat_id = #{chatId}
|
||||||
|
</if>
|
||||||
|
limit 1
|
||||||
|
</select>
|
||||||
|
<select id="selectChatList" resultType="com.dd.admin.business.chat.domain.ChatVo"
|
||||||
|
parameterType="java.lang.String">
|
||||||
|
SELECT
|
||||||
|
*, b.AVATAR_URL AS fromAvatar
|
||||||
|
FROM
|
||||||
|
business_chat a
|
||||||
|
LEFT JOIN business_author b ON a.FROM_ID = b.AUTHOR_ID
|
||||||
|
WHERE
|
||||||
|
a.TO_ID = #{toId}
|
||||||
|
GROUP BY
|
||||||
|
a.TO_ID = #{toId}
|
||||||
|
ORDER BY
|
||||||
|
a.create_time DESC
|
||||||
|
</select>
|
||||||
|
</mapper>
|
@@ -0,0 +1,29 @@
|
|||||||
|
package com.dd.admin.business.chat.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.dd.admin.business.chat.entity.Chat;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.dd.admin.business.chat.domain.ChatVo;
|
||||||
|
import com.dd.admin.business.chat.domain.ChatDto;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 727869402@qq.com
|
||||||
|
* @since 2024-12-28
|
||||||
|
*/
|
||||||
|
public interface ChatService extends IService<Chat> {
|
||||||
|
|
||||||
|
//-分页列表
|
||||||
|
IPage<ChatVo> selectChatPage(ChatDto chatDto);
|
||||||
|
ChatVo selectChat(String chatId);
|
||||||
|
//-列表
|
||||||
|
List<ChatVo> selectChatDetail(ChatDto chatDto);
|
||||||
|
List<ChatVo> selectChatList(String toId);
|
||||||
|
|
||||||
|
}
|
@@ -0,0 +1,46 @@
|
|||||||
|
package com.dd.admin.business.chat.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.dd.admin.common.model.PageFactory;
|
||||||
|
import com.dd.admin.business.chat.entity.Chat;
|
||||||
|
import com.dd.admin.business.chat.mapper.ChatMapper;
|
||||||
|
import com.dd.admin.business.chat.service.ChatService;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import com.dd.admin.business.chat.domain.ChatVo;
|
||||||
|
import com.dd.admin.business.chat.domain.ChatDto;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 727869402@qq.com
|
||||||
|
* @since 2024-12-28
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class ChatServiceImpl extends ServiceImpl<ChatMapper, Chat> implements ChatService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPage<ChatVo> selectChatPage(ChatDto chatDto) {
|
||||||
|
Page page = PageFactory.defaultPage();
|
||||||
|
return baseMapper.selectChatPage(page,chatDto);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ChatVo selectChat(String chatId) {
|
||||||
|
return baseMapper.selectChat(chatId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ChatVo> selectChatDetail(ChatDto chatDto) {
|
||||||
|
return baseMapper.selectChatDetail(chatDto);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ChatVo> selectChatList(String toId) {
|
||||||
|
return baseMapper.selectChatList(toId);
|
||||||
|
}
|
||||||
|
}
|
@@ -1 +1 @@
|
|||||||
package com.dd.admin.business.webSocket;
|
package com.dd.admin.business.webSocket;
|
@@ -1 +1 @@
|
|||||||
package com.dd.admin.business.webSocket.handler;
|
package com.dd.admin.business.webSocket.handler;
|
@@ -1 +1 @@
|
|||||||
package com.dd.admin.business.webSocket.util;
|
package com.dd.admin.business.webSocket.util;
|
Reference in New Issue
Block a user