From aa5d3a21d81bced392f06c42f6b3843232cc6337 Mon Sep 17 00:00:00 2001 From: none Date: Thu, 23 Feb 2023 15:30:55 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E9=97=A8=E5=88=A0=E9=99=A4event?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/DepartmentController.java | 8 ++++++ .../controller/backend/UserController.java | 5 ++++ .../api/event/DepartmentDestroyEvent.java | 25 ++++++++++++++++++ .../listener/DepartmentDestroyListener.java | 26 +++++++++++++++++++ .../api/service/UserDepartmentService.java | 1 + .../impl/UserDepartmentServiceImpl.java | 5 ++++ 6 files changed, 70 insertions(+) create mode 100644 src/main/java/xyz/playedu/api/event/DepartmentDestroyEvent.java create mode 100644 src/main/java/xyz/playedu/api/listener/DepartmentDestroyListener.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 19a222c..b4220b7 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/DepartmentController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/DepartmentController.java @@ -2,11 +2,13 @@ package xyz.playedu.api.controller.backend; import lombok.extern.slf4j.Slf4j; 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.bus.DepartmentBus; import xyz.playedu.api.constant.BPermissionConstant; import xyz.playedu.api.domain.Department; +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; @@ -31,6 +33,9 @@ public class DepartmentController { @Autowired private DepartmentBus departmentBus; + @Autowired + private ApplicationContext ctx; + @BackendPermissionMiddleware(slug = BPermissionConstant.DEPARTMENT_INDEX) @GetMapping("/index") public JsonResponse index() { @@ -90,6 +95,9 @@ public class DepartmentController { public JsonResponse destroy(@PathVariable Integer id) throws NotFoundException { Department department = departmentService.findOrFail(id); departmentService.deleteById(department.getId()); + + ctx.publishEvent(new DepartmentDestroyEvent(this, id, new Date())); + return JsonResponse.success(); } diff --git a/src/main/java/xyz/playedu/api/controller/backend/UserController.java b/src/main/java/xyz/playedu/api/controller/backend/UserController.java index af35157..9ba48ea 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/UserController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/UserController.java @@ -213,4 +213,9 @@ public class UserController { return JsonResponse.success(); } + @PostMapping("/store-batch") + public JsonResponse batchStore() { + return null; + } + } diff --git a/src/main/java/xyz/playedu/api/event/DepartmentDestroyEvent.java b/src/main/java/xyz/playedu/api/event/DepartmentDestroyEvent.java new file mode 100644 index 0000000..238cc6d --- /dev/null +++ b/src/main/java/xyz/playedu/api/event/DepartmentDestroyEvent.java @@ -0,0 +1,25 @@ +package xyz.playedu.api.event; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.context.ApplicationEvent; + +import java.util.Date; + +/** + * @Author 杭州白书科技有限公司 + * @create 2023/2/23 15:27 + */ +@Getter +@Setter +public class DepartmentDestroyEvent extends ApplicationEvent { + + private Integer depId; + private Date at; + + public DepartmentDestroyEvent(Object source, Integer depId, Date date) { + super(source); + this.depId = depId; + this.at = date; + } +} diff --git a/src/main/java/xyz/playedu/api/listener/DepartmentDestroyListener.java b/src/main/java/xyz/playedu/api/listener/DepartmentDestroyListener.java new file mode 100644 index 0000000..b415c53 --- /dev/null +++ b/src/main/java/xyz/playedu/api/listener/DepartmentDestroyListener.java @@ -0,0 +1,26 @@ +package xyz.playedu.api.listener; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.event.EventListener; +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; +import xyz.playedu.api.event.DepartmentDestroyEvent; +import xyz.playedu.api.service.UserDepartmentService; + +/** + * @Author 杭州白书科技有限公司 + * @create 2023/2/23 15:28 + */ +@Component +@Slf4j +public class DepartmentDestroyListener { + @Autowired + private UserDepartmentService userDepartmentService; + + @Order(1) + @EventListener + public void updateLoginInfo(DepartmentDestroyEvent event) { + userDepartmentService.removeByDepId(event.getDepId()); + } +} diff --git a/src/main/java/xyz/playedu/api/service/UserDepartmentService.java b/src/main/java/xyz/playedu/api/service/UserDepartmentService.java index a7b253c..e7c9468 100644 --- a/src/main/java/xyz/playedu/api/service/UserDepartmentService.java +++ b/src/main/java/xyz/playedu/api/service/UserDepartmentService.java @@ -11,4 +11,5 @@ import com.baomidou.mybatisplus.extension.service.IService; public interface UserDepartmentService extends IService { void removeByUserId(Integer userId); + void removeByDepId(Integer depId); } diff --git a/src/main/java/xyz/playedu/api/service/impl/UserDepartmentServiceImpl.java b/src/main/java/xyz/playedu/api/service/impl/UserDepartmentServiceImpl.java index 8a9b76a..79231cf 100644 --- a/src/main/java/xyz/playedu/api/service/impl/UserDepartmentServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/UserDepartmentServiceImpl.java @@ -18,6 +18,11 @@ public class UserDepartmentServiceImpl extends ServiceImpl