From 75f83415ad40f12babc0c087ac10e64c1243aaf6 Mon Sep 17 00:00:00 2001 From: none Date: Tue, 14 Mar 2023 11:22:36 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E9=97=A8=E5=92=8C=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8E=92=E5=BA=8F=E5=92=8C=E7=88=B6=E7=B1=BB?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=9A=84api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/DepartmentController.java | 14 ++++++- .../backend/ResourceCategoryController.java | 14 +++++++ .../backend/DepartmentParentRequest.java | 22 +++++++++++ .../backend/DepartmentSortRequest.java | 14 +++++++ .../ResourceCategoryParentRequest.java | 22 +++++++++++ .../backend/ResourceCategorySortRequest.java | 19 ++++++++++ .../api/service/DepartmentService.java | 3 ++ .../api/service/ResourceCategoryService.java | 4 ++ .../service/impl/DepartmentServiceImpl.java | 34 +++++++++++++++++ .../impl/ResourceCategoryServiceImpl.java | 37 ++++++++++++++++++- 10 files changed, 180 insertions(+), 3 deletions(-) create mode 100644 src/main/java/xyz/playedu/api/request/backend/DepartmentParentRequest.java create mode 100644 src/main/java/xyz/playedu/api/request/backend/DepartmentSortRequest.java create mode 100644 src/main/java/xyz/playedu/api/request/backend/ResourceCategoryParentRequest.java create mode 100644 src/main/java/xyz/playedu/api/request/backend/ResourceCategorySortRequest.java diff --git a/src/main/java/xyz/playedu/api/controller/backend/DepartmentController.java b/src/main/java/xyz/playedu/api/controller/backend/DepartmentController.java index b615a3c..611eb48 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/DepartmentController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/DepartmentController.java @@ -12,7 +12,7 @@ import xyz.playedu.api.domain.User; import xyz.playedu.api.event.DepartmentDestroyEvent; import xyz.playedu.api.exception.NotFoundException; import xyz.playedu.api.middleware.BackendPermissionMiddleware; -import xyz.playedu.api.request.backend.DepartmentRequest; +import xyz.playedu.api.request.backend.*; import xyz.playedu.api.service.CourseService; import xyz.playedu.api.service.DepartmentService; import xyz.playedu.api.service.UserService; @@ -128,4 +128,16 @@ public class DepartmentController { return JsonResponse.success(); } + @PutMapping("/update/resort") + public JsonResponse resort(@RequestBody @Validated DepartmentSortRequest req) { + departmentService.resetSort(req.getIds()); + return JsonResponse.success(); + } + + @PutMapping("/update/parent") + public JsonResponse updateParent(@RequestBody @Validated DepartmentParentRequest req) throws NotFoundException { + departmentService.changeParent(req.getId(), req.getParentId(), req.getIds()); + return JsonResponse.success(); + } + } diff --git a/src/main/java/xyz/playedu/api/controller/backend/ResourceCategoryController.java b/src/main/java/xyz/playedu/api/controller/backend/ResourceCategoryController.java index f36effc..a43a276 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/ResourceCategoryController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/ResourceCategoryController.java @@ -12,7 +12,9 @@ import xyz.playedu.api.domain.ResourceCategory; import xyz.playedu.api.event.ResourceCategoryDestroyEvent; import xyz.playedu.api.exception.NotFoundException; import xyz.playedu.api.middleware.BackendPermissionMiddleware; +import xyz.playedu.api.request.backend.ResourceCategoryParentRequest; import xyz.playedu.api.request.backend.ResourceCategoryRequest; +import xyz.playedu.api.request.backend.ResourceCategorySortRequest; import xyz.playedu.api.service.CourseService; import xyz.playedu.api.service.ResourceCategoryService; import xyz.playedu.api.service.ResourceService; @@ -131,4 +133,16 @@ public class ResourceCategoryController { return JsonResponse.success(); } + @PutMapping("/update/resort") + public JsonResponse resort(@RequestBody @Validated ResourceCategorySortRequest req) { + categoryService.resetSort(req.getIds()); + return JsonResponse.success(); + } + + @PutMapping("/update/parent") + public JsonResponse updateParent(@RequestBody @Validated ResourceCategoryParentRequest req) throws NotFoundException { + categoryService.changeParent(req.getId(), req.getParentId(), req.getIds()); + return JsonResponse.success(); + } + } diff --git a/src/main/java/xyz/playedu/api/request/backend/DepartmentParentRequest.java b/src/main/java/xyz/playedu/api/request/backend/DepartmentParentRequest.java new file mode 100644 index 0000000..16833d4 --- /dev/null +++ b/src/main/java/xyz/playedu/api/request/backend/DepartmentParentRequest.java @@ -0,0 +1,22 @@ +package xyz.playedu.api.request.backend; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.util.List; + +/** + * @Author 杭州白书科技有限公司 + * @create 2023/3/14 11:13 + */ +@Data +public class DepartmentParentRequest { + @NotNull(message = "参数为空") + private List ids; + + @NotNull(message = "参数为空") + private Integer id; + + @NotNull(message = "参数为空") + private Integer parentId; +} diff --git a/src/main/java/xyz/playedu/api/request/backend/DepartmentSortRequest.java b/src/main/java/xyz/playedu/api/request/backend/DepartmentSortRequest.java new file mode 100644 index 0000000..574a80d --- /dev/null +++ b/src/main/java/xyz/playedu/api/request/backend/DepartmentSortRequest.java @@ -0,0 +1,14 @@ +package xyz.playedu.api.request.backend; + +import lombok.Data; + +import java.util.List; + +/** + * @Author 杭州白书科技有限公司 + * @create 2023/3/14 11:11 + */ +@Data +public class DepartmentSortRequest { + private List ids; +} diff --git a/src/main/java/xyz/playedu/api/request/backend/ResourceCategoryParentRequest.java b/src/main/java/xyz/playedu/api/request/backend/ResourceCategoryParentRequest.java new file mode 100644 index 0000000..564423d --- /dev/null +++ b/src/main/java/xyz/playedu/api/request/backend/ResourceCategoryParentRequest.java @@ -0,0 +1,22 @@ +package xyz.playedu.api.request.backend; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.util.List; + +/** + * @Author 杭州白书科技有限公司 + * @create 2023/3/14 11:07 + */ +@Data +public class ResourceCategoryParentRequest { + @NotNull(message = "参数为空") + private List ids; + + @NotNull(message = "参数为空") + private Integer id; + + @NotNull(message = "参数为空") + private Integer parentId; +} diff --git a/src/main/java/xyz/playedu/api/request/backend/ResourceCategorySortRequest.java b/src/main/java/xyz/playedu/api/request/backend/ResourceCategorySortRequest.java new file mode 100644 index 0000000..1069cd9 --- /dev/null +++ b/src/main/java/xyz/playedu/api/request/backend/ResourceCategorySortRequest.java @@ -0,0 +1,19 @@ +package xyz.playedu.api.request.backend; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.util.List; + +/** + * @Author 杭州白书科技有限公司 + * @create 2023/3/14 11:02 + */ +@Data +public class ResourceCategorySortRequest { + + @NotNull(message = "参数为空") + private List ids; + +} + diff --git a/src/main/java/xyz/playedu/api/service/DepartmentService.java b/src/main/java/xyz/playedu/api/service/DepartmentService.java index 6b59977..1a72e55 100644 --- a/src/main/java/xyz/playedu/api/service/DepartmentService.java +++ b/src/main/java/xyz/playedu/api/service/DepartmentService.java @@ -37,4 +37,7 @@ public interface DepartmentService extends IService { List getCourseIdsByDepId(Integer depId); + void changeParent(Integer id, Integer parentId, List ids) throws NotFoundException; + + void resetSort(List ids); } diff --git a/src/main/java/xyz/playedu/api/service/ResourceCategoryService.java b/src/main/java/xyz/playedu/api/service/ResourceCategoryService.java index adfa78d..1fbbfe3 100644 --- a/src/main/java/xyz/playedu/api/service/ResourceCategoryService.java +++ b/src/main/java/xyz/playedu/api/service/ResourceCategoryService.java @@ -33,4 +33,8 @@ public interface ResourceCategoryService extends IService { List getRidsById(Integer id); + void resetSort(List ids); + + void changeParent(Integer id, Integer parentId, List ids) throws NotFoundException; + } diff --git a/src/main/java/xyz/playedu/api/service/impl/DepartmentServiceImpl.java b/src/main/java/xyz/playedu/api/service/impl/DepartmentServiceImpl.java index f7e8ce5..bfd8d4f 100644 --- a/src/main/java/xyz/playedu/api/service/impl/DepartmentServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/DepartmentServiceImpl.java @@ -191,6 +191,40 @@ public class DepartmentServiceImpl extends ServiceImpl getCourseIdsByDepId(Integer depId) { return courseDepartmentService.list(courseDepartmentService.query().getWrapper().eq("dep_id", depId)).stream().map(CourseDepartment::getCourseId).toList(); } + + @Override + @Transactional + public void changeParent(Integer id, Integer parentId, List ids) throws NotFoundException { + Department department = new Department(); + department.setId(id); + department.setParentId(parentId); + if (parentId.equals(0)) { + department.setParentChain(""); + } else { + Department parentDep = findOrFail(parentId); + department.setParentChain(childrenParentChain(parentDep)); + } + + // 重置排序 + resetSort(ids); + } + + @Override + public void resetSort(List ids) { + if (ids == null || ids.size() == 0) { + return; + } + List departments = new ArrayList<>(); + int sortVal = 0; + for (Integer idItem : ids) { + Integer finalSortVal = ++sortVal; + departments.add(new Department() {{ + setId(idItem); + setSort(finalSortVal); + }}); + } + updateBatchById(departments); + } } diff --git a/src/main/java/xyz/playedu/api/service/impl/ResourceCategoryServiceImpl.java b/src/main/java/xyz/playedu/api/service/impl/ResourceCategoryServiceImpl.java index 32d2461..72d065e 100644 --- a/src/main/java/xyz/playedu/api/service/impl/ResourceCategoryServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/ResourceCategoryServiceImpl.java @@ -23,8 +23,7 @@ import java.util.List; * @createDate 2023-02-23 09:50:18 */ @Service -public class ResourceCategoryServiceImpl extends ServiceImpl - implements ResourceCategoryService { +public class ResourceCategoryServiceImpl extends ServiceImpl implements ResourceCategoryService { @Autowired private ResourceCourseCategoryService resourceCourseCategoryService; @@ -175,6 +174,40 @@ public class ResourceCategoryServiceImpl extends ServiceImpl getRidsById(Integer id) { return resourceCategoryRelationService.list(resourceCategoryRelationService.query().getWrapper().eq("cid", id)).stream().map(ResourceCategoryRelation::getRid).toList(); } + + @Override + public void resetSort(List ids) { + if (ids == null || ids.size() == 0) { + return; + } + List categories = new ArrayList<>(); + int sortVal = 0; + for (Integer idItem : ids) { + Integer finalSortVal = ++sortVal; + categories.add(new ResourceCategory() {{ + setId(idItem); + setSort(finalSortVal); + }}); + } + updateBatchById(categories); + } + + @Override + @Transactional + public void changeParent(Integer id, Integer parentId, List ids) throws NotFoundException { + ResourceCategory category = new ResourceCategory(); + category.setId(id); + category.setParentId(parentId); + if (parentId.equals(0)) { + category.setParentChain(""); + } else { + ResourceCategory parentResourceCategory = findOrFail(parentId); + category.setParentChain(childrenParentChain(parentResourceCategory)); + } + + // 重置排序 + resetSort(ids); + } }