You've already forked FrameTour-BE
feat(AppTemplateController): 添加景区模板内容列表接口
- 新增 ScenicTemplateContentVO 数据传输对象
- 实现 /scenic/{scenicId}/contents 接口获取景区模板内容
- 支持获取普通模板和拼图模板的基础信息
- 返回模板名称、分组、ID和封面图片等信息
- 设置普通模板商品类型为0,拼图模板商品类型为3
- 拼图模板固定分组为"氛围拼图"
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package com.ycwl.basic.controller.mobile;
|
package com.ycwl.basic.controller.mobile;
|
||||||
|
|
||||||
import com.ycwl.basic.annotation.IgnoreToken;
|
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.model.pc.template.resp.TemplateRespVO;
|
||||||
import com.ycwl.basic.puzzle.entity.PuzzleTemplateEntity;
|
import com.ycwl.basic.puzzle.entity.PuzzleTemplateEntity;
|
||||||
import com.ycwl.basic.puzzle.repository.PuzzleRepository;
|
import com.ycwl.basic.puzzle.repository.PuzzleRepository;
|
||||||
@@ -85,4 +86,46 @@ public class AppTemplateController {
|
|||||||
|
|
||||||
return ApiResponse.success(coverUrls);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user