diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/RoutesController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/RoutesController.java index ee09762..01ea4e3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/RoutesController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/RoutesController.java @@ -192,6 +192,46 @@ public class RoutesController extends BaseController } /** + * 从 Redis 获取「截图展示」数据(GET + roomId 查询参数) + * 与保存共用路径前缀、方法不同,避免与其它 GET 字面路径、网关规则混淆 + */ + @PreAuthorize("@ss.hasPermi('system:routes:query')") + @GetMapping("/roomScreenshotGallery") + public AjaxResult getScreenshotGalleryData(@RequestParam Long roomId) + { + if (roomId == null) { + return AjaxResult.error("房间ID不能为空"); + } + String key = "room:" + String.valueOf(roomId) + ":screenshot_gallery"; + String val = fourTRedisTemplate.opsForValue().get(key); + if (val != null && !val.isEmpty()) { + try { + return success(JSON.parseObject(val)); + } catch (Exception e) { + return success(val); + } + } + return success(); + } + + /** + * 保存「截图展示」悬浮窗数据到 Redis(POST 与上面 GET 同一路径) + */ + @PreAuthorize("@ss.hasPermi('system:routes:edit')") + @PostMapping("/roomScreenshotGallery") + public AjaxResult saveScreenshotGalleryData(@RequestBody java.util.Map params) + { + Object roomId = params.get("roomId"); + Object data = params.get("data"); + if (roomId == null || data == null) { + return AjaxResult.error("参数不完整"); + } + String key = "room:" + String.valueOf(roomId) + ":screenshot_gallery"; + fourTRedisTemplate.opsForValue().set(key, data.toString()); + return success(); + } + + /** * 保存六步法任务页数据到 Redis(背景、图标、文本框) */ @PreAuthorize("@ss.hasPermi('system:routes:edit')") @@ -395,9 +435,10 @@ public class RoutesController extends BaseController /** * 获取实体部署与航线详细信息 + * 路径仅匹配数字 id,避免与 /get4TData、/getScreenshotGalleryData 等字面路径冲突 */ @PreAuthorize("@ss.hasPermi('system:routes:query')") - @GetMapping(value = "/{id}") + @GetMapping(value = "/{id:\\d+}") public AjaxResult getInfo(@PathVariable("id") Long id) { return success(routesService.selectRoutesById(id)); diff --git a/ruoyi-ui/src/api/system/routes.js b/ruoyi-ui/src/api/system/routes.js index 124a5e1..ca6c9af 100644 --- a/ruoyi-ui/src/api/system/routes.js +++ b/ruoyi-ui/src/api/system/routes.js @@ -93,6 +93,24 @@ export function get4TData(params) { }) } +// 截图展示:同一路径 GET 读 / POST 写(Redis),与 4T 同权限 +export function saveScreenshotGalleryData(data) { + return request({ + url: '/system/routes/roomScreenshotGallery', + method: 'post', + data, + headers: { repeatSubmit: false } + }) +} + +export function getScreenshotGalleryData(params) { + return request({ + url: '/system/routes/roomScreenshotGallery', + method: 'get', + params + }) +} + // 保存六步法任务页数据到 Redis(背景、图标、文本框) export function saveTaskPageData(data) { return request({ diff --git a/ruoyi-ui/src/views/cesiumMap/ContextMenu.vue b/ruoyi-ui/src/views/cesiumMap/ContextMenu.vue index 9c66f78..336c9d3 100644 --- a/ruoyi-ui/src/views/cesiumMap/ContextMenu.vue +++ b/ruoyi-ui/src/views/cesiumMap/ContextMenu.vue @@ -9,9 +9,13 @@ - +