package com.xcs.wx.controller; // 定义了控制器所在的包名 import com.xcs.wx.domain.dto.ChatRoomDTO; // 导入群聊数据传输对象 import com.xcs.wx.domain.vo.ChatRoomDetailVO; // 导入群聊详情视图对象 import com.xcs.wx.domain.vo.ChatRoomVO; // 导入群聊视图对象 import com.xcs.wx.domain.vo.PageVO; // 导入分页视图对象 import com.xcs.wx.domain.vo.ResponseVO; // 导入响应视图对象 import com.xcs.wx.service.ChatRoomService; // 导入群聊服务接口 import lombok.RequiredArgsConstructor; // 导入Lombok提供的注解,用于自动生成final字段的构造器 import org.springframework.web.bind.annotation.GetMapping; // 导入用于定义GET请求的注解 import org.springframework.web.bind.annotation.RequestMapping; // 导入用于定义请求映射的注解 import org.springframework.web.bind.annotation.RequestParam; // 导入用于定义请求参数的注解 import org.springframework.web.bind.annotation.RestController; // 导入用于定义REST控制器的注解 import java.util.List; // 导入List接口 /** * 群聊 Controller * * @author xcs * @date 2024年01月08日 16时03分 **/ @RestController // 定义一个REST风格的控制器,返回的数据会自动转换为JSON格式 @RequiredArgsConstructor // 使用Lombok注解自动生成包含所有final字段的构造函数 @RequestMapping("/api/chatroom") // 定义类级别的请求映射,所有方法的URL都会以/api/chatroom开头 public class ChatRoomController { private final ChatRoomService chatRoomService; // 注入ChatRoomService,用于业务逻辑处理 /** * 查询群聊列表 * * @param chatRoomDTO 查询参数 * @return ChatRoomVO列表的响应对象 */ @GetMapping("/list") // 定义GET请求的映射,访问路径为/api/chatroom/list public ResponseVO> list(ChatRoomDTO chatRoomDTO) { // 调用chatRoomService的方法查询群聊列表 PageVO pageVO = chatRoomService.queryChatRoom(chatRoomDTO); // 返回包含群聊列表和分页信息的响应对象 return ResponseVO.ok(pageVO.getRecords(), pageVO.getCurrent(), pageVO.getTotal()); } /** * 查询群聊详情 * * @param chatRoomName 群聊名称 * @return ChatRoomDetailVO的响应对象 */ @GetMapping("/detail") // 定义GET请求的映射,访问路径为/api/chatroom/detail public ResponseVO detail(@RequestParam String chatRoomName) { // 调用chatRoomService的方法查询群聊详情,并返回响应对象 return ResponseVO.ok(chatRoomService.queryChatRoomDetail(chatRoomName)); } /** * 导出群聊 * * @return ResponseVO的响应对象 */ @GetMapping("/export") // 定义GET请求的映射,访问路径为/api/chatroom/export public ResponseVO export() { // 调用chatRoomService的方法导出群聊,并返回响应对象 return ResponseVO.ok(chatRoomService.exportChatRoom()); } }