From 4d2a962bc64d92412e5a0533db510a33bb7674b5 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sun, 27 Jul 2025 11:06:33 +0800 Subject: [PATCH] template sort --- .../controller/pc/TemplateController.java | 6 ++++ .../basic/service/pc/TemplateService.java | 2 ++ .../service/pc/impl/TemplateServiceImpl.java | 31 +++++++++++++++++++ src/main/resources/mapper/TemplateMapper.xml | 7 +++-- 4 files changed, 44 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ycwl/basic/controller/pc/TemplateController.java b/src/main/java/com/ycwl/basic/controller/pc/TemplateController.java index b721430..28f7c85 100644 --- a/src/main/java/com/ycwl/basic/controller/pc/TemplateController.java +++ b/src/main/java/com/ycwl/basic/controller/pc/TemplateController.java @@ -68,6 +68,12 @@ public class TemplateController { return templateService.sortTemplate(request.getTemplateId(), request.getAfterTemplateId()); } + // 修改模板排序值 + @PostMapping("/updateSort/{id}") + public ApiResponse updateSort(@PathVariable("id") Long id, @RequestParam Integer sort) { + return templateService.updateSort(id, sort); + } + @GetMapping("/config/{id}") public ApiResponse getConfig(@PathVariable("id") Long id) { return ApiResponse.success(templateService.getConfig(id)); diff --git a/src/main/java/com/ycwl/basic/service/pc/TemplateService.java b/src/main/java/com/ycwl/basic/service/pc/TemplateService.java index de5945f..439b69a 100644 --- a/src/main/java/com/ycwl/basic/service/pc/TemplateService.java +++ b/src/main/java/com/ycwl/basic/service/pc/TemplateService.java @@ -28,4 +28,6 @@ public interface TemplateService { void saveConfig(Long configId, TemplateConfigEntity config); ApiResponse sortTemplate(Long templateId, Long afterTemplateId); + + ApiResponse updateSort(Long templateId, Integer sort); } diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/TemplateServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/TemplateServiceImpl.java index 9e052a2..89286f2 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/TemplateServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/TemplateServiceImpl.java @@ -52,13 +52,28 @@ public class TemplateServiceImpl implements TemplateService { @Override public ApiResponse add(TemplateEntity template) { template.setId(SnowFlakeUtil.getLongId()); + // 如果sort为空,设置默认值 + if (template.getSort() == null) { + // 获取当前景区下模板的最大sort值,然后+1 + List existingTemplates = templateRepository.getAllTemplateListByScenicId(template.getScenicId()); + int maxSort = existingTemplates.stream() + .mapToInt(t -> t.getSort() != null ? t.getSort() : 0) + .max() + .orElse(0); + template.setSort(maxSort + 1); + } int i = templateMapper.add(template); if (template.getChildren() != null) { + AtomicInteger childSort = new AtomicInteger(1); template.getChildren().forEach(item -> { item.setId(SnowFlakeUtil.getLongId()); item.setPid(template.getId()); item.setScenicId(template.getScenicId()); item.setStatus(1); + // 为子模板设置sort值 + if (item.getSort() == null) { + item.setSort(childSort.getAndIncrement()); + } templateMapper.add(item); }); } @@ -87,11 +102,16 @@ public class TemplateServiceImpl implements TemplateService { int i = templateMapper.update(template); if (template.getChildren() != null) { templateMapper.deleteByPid(template.getId()); + AtomicInteger childSort = new AtomicInteger(1); template.getChildren().forEach(item -> { item.setId(SnowFlakeUtil.getLongId()); item.setPid(template.getId()); item.setScenicId(template.getScenicId()); item.setStatus(1); + // 为子模板设置sort值 + if (item.getSort() == null) { + item.setSort(childSort.getAndIncrement()); + } templateMapper.add(item); }); } @@ -156,4 +176,15 @@ public class TemplateServiceImpl implements TemplateService { }); return ApiResponse.success(true); } + + @Override + public ApiResponse updateSort(Long templateId, Integer sort) { + int i = templateMapper.updateSort(templateId, sort); + templateRepository.clearTemplateCache(templateId); + if (i > 0) { + return ApiResponse.success(true); + } else { + return ApiResponse.fail("更新模版排序失败"); + } + } } diff --git a/src/main/resources/mapper/TemplateMapper.xml b/src/main/resources/mapper/TemplateMapper.xml index 2501ec4..9266c83 100644 --- a/src/main/resources/mapper/TemplateMapper.xml +++ b/src/main/resources/mapper/TemplateMapper.xml @@ -2,8 +2,8 @@ - insert into template(id, scenic_id, `name`, pid, is_placeholder, source_url, effects, luts, overlays, audios, cover_url, frame_rate, speed, price, slash_price, crop_enable, only_if, resolution, create_time) - values (#{id}, #{scenicId}, #{name}, #{pid}, #{isPlaceholder}, #{sourceUrl}, #{effects}, #{luts}, #{overlays}, #{audios}, #{coverUrl}, #{frameRate}, #{speed}, #{price}, #{slashPrice}, #{cropEnable}, #{onlyIf}, #{resolution}, now()) + insert into template(id, scenic_id, `name`, pid, is_placeholder, source_url, effects, luts, overlays, audios, cover_url, frame_rate, speed, price, slash_price, sort, crop_enable, only_if, resolution, create_time) + values (#{id}, #{scenicId}, #{name}, #{pid}, #{isPlaceholder}, #{sourceUrl}, #{effects}, #{luts}, #{overlays}, #{audios}, #{coverUrl}, #{frameRate}, #{speed}, #{price}, #{slashPrice}, #{sort}, #{cropEnable}, #{onlyIf}, #{resolution}, now()) insert into template_config(id, template_id, create_time) @@ -101,6 +101,7 @@ select t.*, s.name as scenic_name from template t left join scenic s on s.id = t.scenic_id where pid = #{id} + order by sort