diff --git a/flyfish-dict/src/main/java/com/flyfish/framework/dict/controller/AutoCompleteController.java b/flyfish-dict/src/main/java/com/flyfish/framework/dict/controller/AutoCompleteController.java index e4ec11e..272af99 100644 --- a/flyfish-dict/src/main/java/com/flyfish/framework/dict/controller/AutoCompleteController.java +++ b/flyfish-dict/src/main/java/com/flyfish/framework/dict/controller/AutoCompleteController.java @@ -1,7 +1,7 @@ package com.flyfish.framework.dict.controller; import com.flyfish.framework.beans.annotations.RestMapping; -import com.flyfish.framework.controller.ReactiveBaseController; +import com.flyfish.framework.controller.reactive.ReactiveBaseController; import com.flyfish.framework.dict.domain.AutoComplete; import com.flyfish.framework.domain.base.NameLikeQo; diff --git a/flyfish-dict/src/main/java/com/flyfish/framework/dict/controller/DictionaryController.java b/flyfish-dict/src/main/java/com/flyfish/framework/dict/controller/DictionaryController.java index 5d67493..65e1a89 100644 --- a/flyfish-dict/src/main/java/com/flyfish/framework/dict/controller/DictionaryController.java +++ b/flyfish-dict/src/main/java/com/flyfish/framework/dict/controller/DictionaryController.java @@ -2,7 +2,7 @@ package com.flyfish.framework.dict.controller; import com.flyfish.framework.beans.annotations.RestMapping; -import com.flyfish.framework.controller.ReactiveBaseController; +import com.flyfish.framework.controller.reactive.ReactiveBaseController; import com.flyfish.framework.dict.domain.Dictionary; import com.flyfish.framework.dict.domain.DictionaryQo; diff --git a/flyfish-file/src/main/java/com/flyfish/framework/file/controller/AttachmentController.java b/flyfish-file/src/main/java/com/flyfish/framework/file/controller/AttachmentController.java index 30a2ab7..1f91f34 100644 --- a/flyfish-file/src/main/java/com/flyfish/framework/file/controller/AttachmentController.java +++ b/flyfish-file/src/main/java/com/flyfish/framework/file/controller/AttachmentController.java @@ -1,7 +1,7 @@ package com.flyfish.framework.file.controller; -import com.flyfish.framework.controller.ReactiveBaseController; +import com.flyfish.framework.controller.reactive.ReactiveBaseController; import com.flyfish.framework.file.domain.Attachment; import com.flyfish.framework.file.domain.AttachmentQo; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/flyfish-form/src/main/java/com/flyfish/framework/form/controller/OnlineFormController.java b/flyfish-form/src/main/java/com/flyfish/framework/form/controller/OnlineFormController.java index 5a860ad..a08ed48 100644 --- a/flyfish-form/src/main/java/com/flyfish/framework/form/controller/OnlineFormController.java +++ b/flyfish-form/src/main/java/com/flyfish/framework/form/controller/OnlineFormController.java @@ -1,6 +1,6 @@ package com.flyfish.framework.form.controller; -import com.flyfish.framework.controller.ReactiveBaseController; +import com.flyfish.framework.controller.reactive.ReactiveBaseController; import com.flyfish.framework.domain.base.NameLikeQo; import com.flyfish.framework.form.domain.OnlineForm; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/flyfish-logging/src/main/java/com/flyfish/framework/logging/advice/LogAdvice.java b/flyfish-logging/src/main/java/com/flyfish/framework/logging/advice/LogAdvice.java index 67d4aec..d55d127 100644 --- a/flyfish-logging/src/main/java/com/flyfish/framework/logging/advice/LogAdvice.java +++ b/flyfish-logging/src/main/java/com/flyfish/framework/logging/advice/LogAdvice.java @@ -7,6 +7,9 @@ import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; +import org.reactivestreams.Publisher; +import org.reactivestreams.Subscriber; +import org.reactivestreams.Subscription; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -64,10 +67,14 @@ public class LogAdvice { private void handleResult(Object result, LogContext context) { if (null != result) { // 判断结果是否是publisher - if (result instanceof Mono) { - ((Mono) result).subscribe(context::setResult, context::setError, context::end); - } else if (result instanceof Flux) { - ((Flux) result).collectList().subscribe(context::setResult, context::setError, context::end); + if (result instanceof Publisher) { + if (result instanceof Mono) { + ((Mono) result).subscribe(context::setResult, context::setError, context::end); + } else if (result instanceof Flux) { + ((Flux) result).collectList().subscribe(context::setResult, context::setError, context::end); + } else { + ((Publisher) result).subscribe(new LogSubscriber(context)); + } } else { context.setResult(result); context.end(); @@ -77,4 +84,31 @@ public class LogAdvice { context.end(); } } + + @RequiredArgsConstructor + @SuppressWarnings("all") + private static class LogSubscriber implements Subscriber { + + private final LogContext context; + + @Override + public void onSubscribe(Subscription s) { + + } + + @Override + public void onNext(Object o) { + context.setResult(o); + } + + @Override + public void onError(Throwable t) { + context.setError(t); + } + + @Override + public void onComplete() { + context.end(); + } + } } diff --git a/flyfish-logging/src/main/java/com/flyfish/framework/logging/controller/LogController.java b/flyfish-logging/src/main/java/com/flyfish/framework/logging/controller/LogController.java index 8e1343b..01656be 100644 --- a/flyfish-logging/src/main/java/com/flyfish/framework/logging/controller/LogController.java +++ b/flyfish-logging/src/main/java/com/flyfish/framework/logging/controller/LogController.java @@ -1,7 +1,7 @@ package com.flyfish.framework.logging.controller; import com.flyfish.framework.beans.annotations.RestMapping; -import com.flyfish.framework.controller.ReactiveBaseController; +import com.flyfish.framework.controller.reactive.ReactiveBaseController; import com.flyfish.framework.logging.domain.Log; import com.flyfish.framework.logging.domain.LogQo; diff --git a/flyfish-user/src/main/java/com/flyfish/framework/config/WebSecurityConfig.java b/flyfish-user/src/main/java/com/flyfish/framework/config/WebSecurityConfig.java index d02efcb..dbb2689 100644 --- a/flyfish-user/src/main/java/com/flyfish/framework/config/WebSecurityConfig.java +++ b/flyfish-user/src/main/java/com/flyfish/framework/config/WebSecurityConfig.java @@ -14,7 +14,7 @@ import com.flyfish.framework.handler.JsonLogoutSuccessHandler; import com.flyfish.framework.initializer.UserInitializer; import com.flyfish.framework.service.AuthenticationAuditor; import com.flyfish.framework.service.AuthenticationLogger; -import com.flyfish.framework.service.UserService; +import com.flyfish.framework.service.ReactiveUserService; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; @@ -165,24 +165,27 @@ public class WebSecurityConfig { */ @Bean @ConditionalOnMissingBean(UserInitializer.class) - public UserInitializer userInitializer(UserService userService) { + @SuppressWarnings("all") + public UserInitializer userInitializer(ReactiveUserService userService) { return () -> { UserQo qo = new UserQo(); qo.setType(UserType.SUPER_ADMIN.name()); - if (userService.count(qo) == 0) { - // 初始化用户 - User user = new User(); - user.setUsername("admin"); - user.setPassword("Sxu@Unicom#2021"); - user.setType(UserType.SUPER_ADMIN); - user.setEnable(true); - user.setApp(false); - user.setStatus(UserStatus.NORMAL); - user.setPhone("10000000000"); - user.setName("超级管理员"); - user.setCode("Administrator"); - userService.createSelective(user); - } + userService.count(qo) + .filter(count -> count == 0) + .flatMap(count -> { + // 初始化用户 + User user = new User(); + user.setUsername("admin"); + user.setPassword("Sxu@Unicom#2021"); + user.setType(UserType.SUPER_ADMIN); + user.setEnable(true); + user.setApp(false); + user.setStatus(UserStatus.NORMAL); + user.setPhone("10000000000"); + user.setName("超级管理员"); + user.setCode("Administrator"); + return userService.createSelective(user); + }).subscribe(); }; } } diff --git a/flyfish-user/src/main/java/com/flyfish/framework/controller/DepartmentController.java b/flyfish-user/src/main/java/com/flyfish/framework/controller/DepartmentController.java index 643102a..8e4db20 100644 --- a/flyfish-user/src/main/java/com/flyfish/framework/controller/DepartmentController.java +++ b/flyfish-user/src/main/java/com/flyfish/framework/controller/DepartmentController.java @@ -1,5 +1,6 @@ package com.flyfish.framework.controller; +import com.flyfish.framework.controller.reactive.ReactiveTreeController; import com.flyfish.framework.domain.DepartmentQo; import com.flyfish.framework.domain.po.Department; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/flyfish-user/src/main/java/com/flyfish/framework/controller/PermissionController.java b/flyfish-user/src/main/java/com/flyfish/framework/controller/PermissionController.java index b70a957..870fb02 100644 --- a/flyfish-user/src/main/java/com/flyfish/framework/controller/PermissionController.java +++ b/flyfish-user/src/main/java/com/flyfish/framework/controller/PermissionController.java @@ -1,5 +1,6 @@ package com.flyfish.framework.controller; +import com.flyfish.framework.controller.reactive.ReactiveTreeController; import com.flyfish.framework.domain.PermissionQo; import com.flyfish.framework.domain.po.Permission; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/flyfish-user/src/main/java/com/flyfish/framework/controller/RoleController.java b/flyfish-user/src/main/java/com/flyfish/framework/controller/RoleController.java index 300139c..4fbf5e2 100644 --- a/flyfish-user/src/main/java/com/flyfish/framework/controller/RoleController.java +++ b/flyfish-user/src/main/java/com/flyfish/framework/controller/RoleController.java @@ -1,5 +1,6 @@ package com.flyfish.framework.controller; +import com.flyfish.framework.controller.reactive.ReactiveBaseController; import com.flyfish.framework.domain.RoleQo; import com.flyfish.framework.domain.po.Role; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/flyfish-user/src/main/java/com/flyfish/framework/controller/UserController.java b/flyfish-user/src/main/java/com/flyfish/framework/controller/UserController.java index e19cf0d..922d36e 100644 --- a/flyfish-user/src/main/java/com/flyfish/framework/controller/UserController.java +++ b/flyfish-user/src/main/java/com/flyfish/framework/controller/UserController.java @@ -3,6 +3,7 @@ package com.flyfish.framework.controller; import com.flyfish.framework.annotations.Operation; import com.flyfish.framework.bean.Result; import com.flyfish.framework.configuration.annotations.CurrentUser; +import com.flyfish.framework.controller.reactive.ReactiveBaseController; import com.flyfish.framework.domain.UserPasswordDto; import com.flyfish.framework.domain.UserQo; import com.flyfish.framework.domain.base.IUser; diff --git a/flyfish-user/src/main/java/com/flyfish/framework/domain/authorized/AuthorizedDomain.java b/flyfish-user/src/main/java/com/flyfish/framework/domain/authorized/AuthorizedDomain.java index ab0cae3..b8f2484 100644 --- a/flyfish-user/src/main/java/com/flyfish/framework/domain/authorized/AuthorizedDomain.java +++ b/flyfish-user/src/main/java/com/flyfish/framework/domain/authorized/AuthorizedDomain.java @@ -1,15 +1,8 @@ package com.flyfish.framework.domain.authorized; import com.flyfish.framework.annotations.Property; -import com.flyfish.framework.context.UserContext; import com.flyfish.framework.domain.base.AuditDomain; -import com.flyfish.framework.domain.po.Department; -import com.flyfish.framework.domain.po.User; -import com.flyfish.framework.exception.biz.InvalidBusinessException; import lombok.Setter; -import org.apache.commons.lang3.StringUtils; - -import javax.validation.constraints.NotBlank; /** * 带鉴权的实体,主要以部门隔绝 @@ -18,19 +11,6 @@ import javax.validation.constraints.NotBlank; public abstract class AuthorizedDomain extends AuditDomain { // 作用域id,一般是部门。用户存储时插入 - @NotBlank(message = "请选择当前部") @Property(readonly = true) private String authorizeId; - - public String getAuthorizeId() { - if (StringUtils.isNotBlank(authorizeId)) { - return authorizeId; - } else { - return UserContext.sharedContext() - .map(UserContext::currentUser) - .map(User::getAuthority) - .filter(StringUtils::isNotBlank) - .orElse(Department.PUBLIC); - } - } } diff --git a/flyfish-web/src/main/java/com/flyfish/framework/beans/excel/ExcelMappingController.java b/flyfish-web/src/main/java/com/flyfish/framework/beans/excel/ExcelMappingController.java index d566dd5..6fb7e17 100644 --- a/flyfish-web/src/main/java/com/flyfish/framework/beans/excel/ExcelMappingController.java +++ b/flyfish-web/src/main/java/com/flyfish/framework/beans/excel/ExcelMappingController.java @@ -1,8 +1,7 @@ package com.flyfish.framework.beans.excel; -import com.flyfish.framework.controller.BaseController; -import com.flyfish.framework.controller.ReactiveBaseController; +import com.flyfish.framework.controller.reactive.ReactiveBaseController; import com.flyfish.framework.domain.base.NameLikeQo; import com.flyfish.framework.domain.po.ExcelMapping; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/RestBean.java b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/RestBean.java index 3b600ae..b0e8fc4 100644 --- a/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/RestBean.java +++ b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/RestBean.java @@ -1,6 +1,6 @@ package com.flyfish.framework.beans.meta; -import com.flyfish.framework.controller.ReactiveBaseController; +import com.flyfish.framework.controller.reactive.ReactiveBaseController; import com.flyfish.framework.controller.SafeController; import com.flyfish.framework.domain.base.NameLikeQo; import com.flyfish.framework.domain.base.Qo; diff --git a/flyfish-web/src/main/java/com/flyfish/framework/controller/ReactiveBaseController.java b/flyfish-web/src/main/java/com/flyfish/framework/controller/reactive/ReactiveBaseController.java similarity index 97% rename from flyfish-web/src/main/java/com/flyfish/framework/controller/ReactiveBaseController.java rename to flyfish-web/src/main/java/com/flyfish/framework/controller/reactive/ReactiveBaseController.java index 8a2b188..00cf291 100644 --- a/flyfish-web/src/main/java/com/flyfish/framework/controller/ReactiveBaseController.java +++ b/flyfish-web/src/main/java/com/flyfish/framework/controller/reactive/ReactiveBaseController.java @@ -1,10 +1,11 @@ -package com.flyfish.framework.controller; +package com.flyfish.framework.controller.reactive; import com.flyfish.framework.annotations.Operation; import com.flyfish.framework.bean.Result; import com.flyfish.framework.bean.SyncVo; import com.flyfish.framework.configuration.annotations.PagedQuery; import com.flyfish.framework.configuration.annotations.ValidRequestBody; +import com.flyfish.framework.controller.SafeController; import com.flyfish.framework.domain.base.Domain; import com.flyfish.framework.domain.base.Qo; import com.flyfish.framework.service.BaseReactiveService; diff --git a/flyfish-web/src/main/java/com/flyfish/framework/controller/ReactiveTreeController.java b/flyfish-web/src/main/java/com/flyfish/framework/controller/reactive/ReactiveTreeController.java similarity index 97% rename from flyfish-web/src/main/java/com/flyfish/framework/controller/ReactiveTreeController.java rename to flyfish-web/src/main/java/com/flyfish/framework/controller/reactive/ReactiveTreeController.java index 15b8c29..cbb319c 100644 --- a/flyfish-web/src/main/java/com/flyfish/framework/controller/ReactiveTreeController.java +++ b/flyfish-web/src/main/java/com/flyfish/framework/controller/reactive/ReactiveTreeController.java @@ -1,4 +1,4 @@ -package com.flyfish.framework.controller; +package com.flyfish.framework.controller.reactive; import com.flyfish.framework.bean.Result; import com.flyfish.framework.domain.base.Qo;