From 97bed52b2fdb49a1c7131abce34f672b1330ff4c Mon Sep 17 00:00:00 2001 From: none Date: Sun, 26 Feb 2023 17:12:16 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=84=E6=BA=90=E5=88=86=E7=B1=BB=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/backend/LoginController.java | 2 +- .../backend/ResourceCategoryController.java | 52 +++++++------------ .../event/ResourceCategoryDestroyEvent.java | 27 ++++++++++ .../api/service/ResourceCategoryService.java | 7 +++ .../impl/ResourceCategoryServiceImpl.java | 33 ++++++++++++ 5 files changed, 87 insertions(+), 34 deletions(-) create mode 100644 src/main/java/xyz/playedu/api/event/ResourceCategoryDestroyEvent.java diff --git a/src/main/java/xyz/playedu/api/controller/backend/LoginController.java b/src/main/java/xyz/playedu/api/controller/backend/LoginController.java index a4d2616..6063fd7 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/LoginController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/LoginController.java @@ -48,7 +48,7 @@ public class LoginController { if (!adminUser.getPassword().equals(password)) { return JsonResponse.error("邮箱或密码错误"); } - if (adminUser.getIsBanLogin() == 1) { + if (adminUser.getIsBanLogin().equals(1)) { return JsonResponse.error("当前用户已禁止登录"); } 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 6c77747..5e5c131 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/ResourceCategoryController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/ResourceCategoryController.java @@ -1,11 +1,15 @@ package xyz.playedu.api.controller.backend; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import xyz.playedu.api.PlayEduBackendThreadLocal; import xyz.playedu.api.constant.BPermissionConstant; import xyz.playedu.api.constant.BackendConstant; 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.ResourceCategoryRequest; import xyz.playedu.api.service.ResourceCategoryService; @@ -27,11 +31,16 @@ public class ResourceCategoryController { @Autowired private ResourceCategoryService resourceCategoryService; + @Autowired + private ApplicationContext ctx; + @GetMapping("/index") public JsonResponse index(@RequestParam(name = "type") String type) { List categories = resourceCategoryService.getByType(type); + HashMap data = new HashMap<>(); data.put("data", categories); + return JsonResponse.data(data); } @@ -45,53 +54,29 @@ public class ResourceCategoryController { @BackendPermissionMiddleware(slug = BPermissionConstant.RESOURCE_CATEGORY) @PostMapping("/create") - public JsonResponse store(@RequestBody @Validated ResourceCategoryRequest request) { - if (!Arrays.asList(BackendConstant.RESOURCE_TYPE_WHITELIST).contains(request.getType())) { + public JsonResponse store(@RequestBody @Validated ResourceCategoryRequest req) { + if (!Arrays.asList(BackendConstant.RESOURCE_TYPE_WHITELIST).contains(req.getType())) { return JsonResponse.error("资源类型不支持"); } - - ResourceCategory category = new ResourceCategory(); - - category.setType(request.getType()); - category.setSort(request.getSort()); - category.setName(request.getName()); - category.setCreatedAt(new Date()); - category.setUpdatedAt(new Date()); - - resourceCategoryService.save(category); - + resourceCategoryService.create(req.getType(), req.getSort(), req.getName()); return JsonResponse.success(); } @BackendPermissionMiddleware(slug = BPermissionConstant.RESOURCE_CATEGORY) @GetMapping("/{id}") - public JsonResponse edit(@PathVariable(name = "id") Integer id) { - ResourceCategory category = resourceCategoryService.getById(id); - if (category == null) { - return JsonResponse.error("分类不存在"); - } + public JsonResponse edit(@PathVariable(name = "id") Integer id) throws NotFoundException { + ResourceCategory category = resourceCategoryService.findOrFail(id); return JsonResponse.data(category); } @BackendPermissionMiddleware(slug = BPermissionConstant.RESOURCE_CATEGORY) @PutMapping("/{id}") - public JsonResponse update(@PathVariable(name = "id") Integer id, @RequestBody @Validated ResourceCategoryRequest request) { - if (!Arrays.asList(BackendConstant.RESOURCE_TYPE_WHITELIST).contains(request.getType())) { + public JsonResponse update(@PathVariable(name = "id") Integer id, @RequestBody @Validated ResourceCategoryRequest req) throws NotFoundException { + if (!Arrays.asList(BackendConstant.RESOURCE_TYPE_WHITELIST).contains(req.getType())) { return JsonResponse.error("资源类型不支持"); } - - ResourceCategory category = resourceCategoryService.getById(id); - if (category == null) { - return JsonResponse.error("分类不存在"); - } - - ResourceCategory newCategory = new ResourceCategory(); - newCategory.setId(category.getId()); - newCategory.setName(request.getName()); - newCategory.setSort(request.getSort()); - - resourceCategoryService.updateById(newCategory); - + ResourceCategory category = resourceCategoryService.findOrFail(id); + resourceCategoryService.update(category, req.getSort(), req.getName()); return JsonResponse.success(); } @@ -99,6 +84,7 @@ public class ResourceCategoryController { @DeleteMapping("/{id}") public JsonResponse destroy(@PathVariable(name = "id") Integer id) { resourceCategoryService.removeById(id); + ctx.publishEvent(new ResourceCategoryDestroyEvent(this, PlayEduBackendThreadLocal.getAdminUserID(), id, new Date())); return JsonResponse.success(); } diff --git a/src/main/java/xyz/playedu/api/event/ResourceCategoryDestroyEvent.java b/src/main/java/xyz/playedu/api/event/ResourceCategoryDestroyEvent.java new file mode 100644 index 0000000..caaf302 --- /dev/null +++ b/src/main/java/xyz/playedu/api/event/ResourceCategoryDestroyEvent.java @@ -0,0 +1,27 @@ +package xyz.playedu.api.event; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.context.ApplicationEvent; + +import java.util.Date; + +/** + * @Author 杭州白书科技有限公司 + * @create 2023/2/26 17:10 + */ +@Getter +@Setter +public class ResourceCategoryDestroyEvent extends ApplicationEvent { + + private Integer adminId; + private Integer categoryId; + private Date date; + + public ResourceCategoryDestroyEvent(Object source, Integer adminId, Integer categoryId, Date date) { + super(source); + this.adminId = adminId; + this.categoryId = categoryId; + this.date = date; + } +} diff --git a/src/main/java/xyz/playedu/api/service/ResourceCategoryService.java b/src/main/java/xyz/playedu/api/service/ResourceCategoryService.java index 82a2b39..69077b3 100644 --- a/src/main/java/xyz/playedu/api/service/ResourceCategoryService.java +++ b/src/main/java/xyz/playedu/api/service/ResourceCategoryService.java @@ -2,6 +2,7 @@ package xyz.playedu.api.service; import xyz.playedu.api.domain.ResourceCategory; import com.baomidou.mybatisplus.extension.service.IService; +import xyz.playedu.api.exception.NotFoundException; import java.util.List; @@ -14,4 +15,10 @@ public interface ResourceCategoryService extends IService { List getByType(String type); + void create(String type, Integer sort, String name); + + ResourceCategory findOrFail(Integer id) throws NotFoundException; + + void update(ResourceCategory category, Integer sort, String name); + } 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 3489379..d34ecd3 100644 --- a/src/main/java/xyz/playedu/api/service/impl/ResourceCategoryServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/ResourceCategoryServiceImpl.java @@ -2,10 +2,12 @@ package xyz.playedu.api.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import xyz.playedu.api.domain.ResourceCategory; +import xyz.playedu.api.exception.NotFoundException; import xyz.playedu.api.service.ResourceCategoryService; import xyz.playedu.api.mapper.ResourceCategoryMapper; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; /** @@ -20,6 +22,37 @@ public class ResourceCategoryServiceImpl extends ServiceImpl getByType(String type) { return list(query().getWrapper().eq("type", type).orderByAsc("id")); } + + @Override + public void create(String type, Integer sort, String name) { + ResourceCategory category = new ResourceCategory(); + + category.setType(type); + category.setSort(sort); + category.setName(name); + category.setCreatedAt(new Date()); + category.setUpdatedAt(new Date()); + + save(category); + } + + @Override + public ResourceCategory findOrFail(Integer id) throws NotFoundException { + ResourceCategory category = getOne(query().getWrapper().eq("id", id)); + if (category == null) { + throw new NotFoundException("分类不存在"); + } + return category; + } + + @Override + public void update(ResourceCategory category, Integer sort, String name) { + ResourceCategory newCategory = new ResourceCategory(); + newCategory.setId(category.getId()); + newCategory.setSort(sort); + newCategory.setName(name); + updateById(newCategory); + } }