package com.ruoyi.web.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.websocket.service.WhiteboardRoomService; /** * 白板 Controller:房间维度的白板 CRUD,数据存 Redis */ @RestController @RequestMapping("/room") public class WhiteboardController extends BaseController { @Autowired private WhiteboardRoomService whiteboardRoomService; /** 获取房间下所有白板列表 */ @GetMapping("/{roomId}/whiteboards") public AjaxResult list(@PathVariable Long roomId) { List list = whiteboardRoomService.listWhiteboards(roomId); return success(list); } /** 获取单个白板详情 */ @GetMapping("/{roomId}/whiteboard/{whiteboardId}") public AjaxResult get(@PathVariable Long roomId, @PathVariable String whiteboardId) { Object wb = whiteboardRoomService.getWhiteboard(roomId, whiteboardId); if (wb == null) return error("白板不存在"); return success(wb); } /** 创建白板 */ @PostMapping("/{roomId}/whiteboard") public AjaxResult create(@PathVariable Long roomId, @RequestBody Object whiteboard) { Object created = whiteboardRoomService.createWhiteboard(roomId, whiteboard); return success(created); } /** 更新白板 */ @PutMapping("/{roomId}/whiteboard/{whiteboardId}") public AjaxResult update(@PathVariable Long roomId, @PathVariable String whiteboardId, @RequestBody Object whiteboard) { boolean ok = whiteboardRoomService.updateWhiteboard(roomId, whiteboardId, whiteboard); return ok ? success() : error("更新失败"); } /** 删除白板 */ @DeleteMapping("/{roomId}/whiteboard/{whiteboardId}") public AjaxResult delete(@PathVariable Long roomId, @PathVariable String whiteboardId) { boolean ok = whiteboardRoomService.deleteWhiteboard(roomId, whiteboardId); return ok ? success() : error("删除失败"); } }