From 8b3bea8bed36cb094bd89908564dccd3b9352216 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Thu, 22 Jan 2026 15:39:58 +0800 Subject: [PATCH] =?UTF-8?q?feat(AppTemplateController):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=99=AF=E5=8C=BA=E6=A8=A1=E6=9D=BF=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 ScenicTemplateContentVO 数据传输对象 - 实现 /scenic/{scenicId}/contents 接口获取景区模板内容 - 支持获取普通模板和拼图模板的基础信息 - 返回模板名称、分组、ID和封面图片等信息 - 设置普通模板商品类型为0,拼图模板商品类型为3 - 拼图模板固定分组为"氛围拼图" --- .../mobile/AppTemplateController.java | 43 +++++++++++++++++++ .../content/ScenicTemplateContentVO.java | 35 +++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 src/main/java/com/ycwl/basic/model/mobile/scenic/content/ScenicTemplateContentVO.java diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppTemplateController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppTemplateController.java index 61ed205e..b114fd83 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppTemplateController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppTemplateController.java @@ -1,6 +1,7 @@ package com.ycwl.basic.controller.mobile; import com.ycwl.basic.annotation.IgnoreToken; +import com.ycwl.basic.model.mobile.scenic.content.ScenicTemplateContentVO; import com.ycwl.basic.model.pc.template.resp.TemplateRespVO; import com.ycwl.basic.puzzle.entity.PuzzleTemplateEntity; import com.ycwl.basic.puzzle.repository.PuzzleRepository; @@ -85,4 +86,46 @@ public class AppTemplateController { return ApiResponse.success(coverUrls); } + + /** + * 根据景区ID获取所有模板内容列表(返回模板基础信息,与 faceId 无关) + * + * @param scenicId 景区ID + * @return 景区模板内容列表 + */ + @GetMapping("/scenic/{scenicId}/contents") + @IgnoreToken + public ApiResponse> getScenicTemplateContents(@PathVariable("scenicId") Long scenicId) { + if (scenicId == null) { + return ApiResponse.fail("景区ID不能为空"); + } + + List contentList = new ArrayList<>(); + + // 获取普通模板 + List templateList = templateRepository.getTemplateListByScenicId(scenicId); + for (TemplateRespVO template : templateList) { + ScenicTemplateContentVO content = new ScenicTemplateContentVO(); + content.setGoodsType(0); // 普通模板默认商品类型为 0 + content.setName(template.getName()); + content.setGroup(template.getGroup()); + content.setTemplateId(template.getId()); + content.setTemplateCoverUrl(template.getCoverUrl()); + contentList.add(content); + } + + // 获取拼图模板 + List puzzleTemplateList = puzzleRepository.listTemplateByScenic(scenicId); + for (PuzzleTemplateEntity puzzleTemplate : puzzleTemplateList) { + ScenicTemplateContentVO content = new ScenicTemplateContentVO(); + content.setGoodsType(3); // 拼图模板商品类型为 3 + content.setName(puzzleTemplate.getName()); + content.setGroup("氛围拼图"); // 拼图模板固定分组 + content.setTemplateId(puzzleTemplate.getId()); + content.setTemplateCoverUrl(puzzleTemplate.getCoverImage()); + contentList.add(content); + } + + return ApiResponse.success(contentList); + } } diff --git a/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ScenicTemplateContentVO.java b/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ScenicTemplateContentVO.java new file mode 100644 index 00000000..c2777260 --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ScenicTemplateContentVO.java @@ -0,0 +1,35 @@ +package com.ycwl.basic.model.mobile.scenic.content; + +import lombok.Data; + +/** + * 景区模板内容响应对象 + * 用于返回景区内的模板基础信息(与 faceId 无关) + */ +@Data +public class ScenicTemplateContentVO { + /** + * 商品类型 + */ + private Integer goodsType; + + /** + * 模板名称 + */ + private String name; + + /** + * 模板分组 + */ + private String group; + + /** + * 模板ID + */ + private Long templateId; + + /** + * 模板封面URL + */ + private String templateCoverUrl; +}