Browse Source

优化删除接口,增加用户删除事件

zhou-hao 5 years ago
parent
commit
c07c4b1e06

+ 1 - 0
hsweb-system/hsweb-system-authorization/hsweb-system-authorization-api/src/main/java/org/hswebframework/web/system/authorization/api/entity/UserEntity.java

@@ -45,6 +45,7 @@ public class UserEntity extends GenericEntity<String> implements RecordCreationE
     private String type;
 
     @Column
+    @DefaultValue("1")
     private Byte status;
 
     @Column(name = "creator_id", updatable = false)

+ 17 - 0
hsweb-system/hsweb-system-authorization/hsweb-system-authorization-api/src/main/java/org/hswebframework/web/system/authorization/api/event/UserDeletedEvent.java

@@ -0,0 +1,17 @@
+package org.hswebframework.web.system.authorization.api.event;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.hswebframework.web.system.authorization.api.entity.UserEntity;
+
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
+public class UserDeletedEvent {
+
+    private UserEntity user;
+
+}

+ 6 - 2
hsweb-system/hsweb-system-authorization/hsweb-system-authorization-default/src/main/java/org/hswebframework/web/system/authorization/defaults/service/DefaultReactiveUserService.java

@@ -10,6 +10,7 @@ import org.hswebframework.web.id.IDGenerator;
 import org.hswebframework.web.system.authorization.api.PasswordEncoder;
 import org.hswebframework.web.system.authorization.api.entity.UserEntity;
 import org.hswebframework.web.system.authorization.api.event.UserCreatedEvent;
+import org.hswebframework.web.system.authorization.api.event.UserDeletedEvent;
 import org.hswebframework.web.system.authorization.api.event.UserModifiedEvent;
 import org.hswebframework.web.system.authorization.api.service.reactive.ReactiveUserService;
 import org.hswebframework.web.validator.CreateGroup;
@@ -165,7 +166,10 @@ public class DefaultReactiveUserService extends GenericReactiveCrudService<UserE
 
     @Override
     public Mono<Boolean> deleteUser(String userId) {
-        return deleteById(Mono.just(userId))
-                .map(integer -> integer > 0);
+        return this.findById(userId)
+                .flatMap(user -> this
+                .deleteById(Mono.just(userId))
+                .doOnNext(i -> eventPublisher.publishEvent(new UserDeletedEvent(user)))
+                .thenReturn(true));
     }
 }