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; +}