Parcourir la source

增加修改个人信息以及删除用户

zhou-hao il y a 5 ans
Parent
commit
9a197cd318

+ 2 - 0
hsweb-system/hsweb-system-authorization/hsweb-system-authorization-api/src/main/java/org/hswebframework/web/system/authorization/api/service/reactive/ReactiveUserService.java

@@ -27,4 +27,6 @@ public interface ReactiveUserService {
 
     Mono<Integer> countUser(QueryParam queryParam);
 
+    Mono<Boolean> deleteUser(String userId);
+
 }

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

@@ -132,7 +132,7 @@ public class DefaultReactiveUserService extends GenericReactiveCrudService<UserE
     }
 
     @Override
-    @Transactional(rollbackFor = Exception.class, transactionManager =TransactionManagers.r2dbcTransactionManager)
+    @Transactional(rollbackFor = Exception.class, transactionManager = TransactionManagers.r2dbcTransactionManager)
     public Mono<Boolean> changePassword(String userId, String oldPassword, String newPassword) {
         return findById(userId)
                 .switchIfEmpty(Mono.error(NotFoundException::new))
@@ -162,4 +162,10 @@ public class DefaultReactiveUserService extends GenericReactiveCrudService<UserE
                 .setParam(queryParam)
                 .count();
     }
+
+    @Override
+    public Mono<Boolean> deleteUser(String userId) {
+        return deleteById(Mono.just(userId))
+                .map(integer -> integer > 0);
+    }
 }

+ 18 - 0
hsweb-system/hsweb-system-authorization/hsweb-system-authorization-default/src/main/java/org/hswebframework/web/system/authorization/defaults/webflux/WebFluxUserController.java

@@ -5,6 +5,7 @@ import lombok.Setter;
 import org.hswebframework.web.authorization.Authentication;
 import org.hswebframework.web.authorization.User;
 import org.hswebframework.web.authorization.annotation.Authorize;
+import org.hswebframework.web.authorization.annotation.DeleteAction;
 import org.hswebframework.web.authorization.annotation.Resource;
 import org.hswebframework.web.authorization.annotation.SaveAction;
 import org.hswebframework.web.authorization.exception.UnAuthorizedException;
@@ -44,6 +45,12 @@ public class WebFluxUserController implements ReactiveServiceQueryController<Use
         return reactiveUserService.changeState(Mono.just(id), state);
     }
 
+    @DeleteMapping("/{id:.+}")
+    @DeleteAction
+    public Mono<Boolean> deleteUser(@PathVariable String id) {
+        return reactiveUserService.deleteUser(id);
+    }
+
     @PutMapping("/passwd")
     @Authorize(merge = false)
     public Mono<Boolean> changePassword(@RequestBody ChangePasswordRequest request) {
@@ -55,6 +62,17 @@ public class WebFluxUserController implements ReactiveServiceQueryController<Use
                 .flatMap(userId -> reactiveUserService.changePassword(userId, request.getOldPassword(), request.getNewPassword()));
     }
 
+    @PutMapping("/me")
+    @Authorize(merge = false)
+    public Mono<Boolean> updateLoginUserInfo(@RequestBody UserEntity request) {
+        return Authentication
+                .currentReactive()
+                .switchIfEmpty(Mono.error(UnAuthorizedException::new))
+                .map(Authentication::getUser)
+                .map(User::getId)
+                .flatMap(userId -> reactiveUserService.updateById(userId, Mono.just(request)).map(integer -> integer > 0));
+    }
+
     @Override
     public DefaultReactiveUserService getService() {
         return reactiveUserService;