feat(AppTemplateController): 添加景区模板内容列表接口

- 新增 ScenicTemplateContentVO 数据传输对象
- 实现 /scenic/{scenicId}/contents 接口获取景区模板内容
- 支持获取普通模板和拼图模板的基础信息
- 返回模板名称、分组、ID和封面图片等信息
- 设置普通模板商品类型为0,拼图模板商品类型为3
- 拼图模板固定分组为"氛围拼图"
This commit is contained in:
2026-01-22 15:39:58 +08:00
parent be54bbaa82
commit 8b3bea8bed
2 changed files with 78 additions and 0 deletions

View File

@@ -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<List<ScenicTemplateContentVO>> getScenicTemplateContents(@PathVariable("scenicId") Long scenicId) {
if (scenicId == null) {
return ApiResponse.fail("景区ID不能为空");
}
List<ScenicTemplateContentVO> contentList = new ArrayList<>();
// 获取普通模板
List<TemplateRespVO> 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<PuzzleTemplateEntity> 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);
}
}

View File

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