From 4d3d0f7cc748b3ddd73c6dea394afb2a6866e013 Mon Sep 17 00:00:00 2001 From: ZhouXY108 Date: Thu, 20 Apr 2023 21:29:23 +0800 Subject: [PATCH] commit. --- .../zhouxy/plusone/PlusoneApplication.java | 2 - .../exception/AccountLoginException.java | 2 +- .../exception/AccountRegisterException.java | 2 +- .../UnsupportedMenuTypeException.java | 2 +- .../handler/AccountLoginExceptionHandler.java | 10 +- .../handler/SaTokenExceptionHandler.java | 2 +- .../common/model/AuthenticationInfo.java | 138 ++++++++++++++++++ .../common/model/PlusoneContext.java | 21 +++ .../service/AccountContextService.java | 2 +- .../service/AccountManagementService.java | 3 +- .../service/AdminLoginService.java | 2 +- .../service/MailAndSmsVerifyService.java | 4 +- .../service/MenuManagementService.java | 2 +- .../service/RegisterAccountService.java | 2 +- .../web/config/InterceptorConfig.java | 20 +++ .../controller/AccountContextController.java | 2 +- .../AccountManagementController.java | 2 +- .../controller/AdminLoginController.java | 2 +- .../controller/DictManagementController.java | 2 +- .../controller/MenuManagementController.java | 2 +- .../controller/RegisterAccountController.java | 2 +- .../controller/RoleManagementController.java | 2 +- .../interceptor/HttpContextInterceptor.java | 32 ++++ .../web/interceptor/package-info.java | 7 + .../system/domain/model/account/Account.java | 4 - 25 files changed, 240 insertions(+), 31 deletions(-) rename plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/{ => common}/exception/AccountLoginException.java (96%) rename plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/{ => common}/exception/AccountRegisterException.java (96%) rename plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/{ => common}/exception/UnsupportedMenuTypeException.java (86%) rename plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/{ => common}/exception/handler/AccountLoginExceptionHandler.java (61%) rename plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/{ => common}/exception/handler/SaTokenExceptionHandler.java (97%) create mode 100644 plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/model/AuthenticationInfo.java create mode 100644 plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/model/PlusoneContext.java create mode 100644 plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/config/InterceptorConfig.java rename plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/{ => web}/controller/AccountContextController.java (97%) rename plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/{ => web}/controller/AccountManagementController.java (97%) rename plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/{ => web}/controller/AdminLoginController.java (96%) rename plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/{ => web}/controller/DictManagementController.java (97%) rename plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/{ => web}/controller/MenuManagementController.java (98%) rename plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/{ => web}/controller/RegisterAccountController.java (95%) rename plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/{ => web}/controller/RoleManagementController.java (97%) create mode 100644 plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/interceptor/HttpContextInterceptor.java create mode 100644 plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/interceptor/package-info.java diff --git a/plusone-start/src/main/java/xyz/zhouxy/plusone/PlusoneApplication.java b/plusone-start/src/main/java/xyz/zhouxy/plusone/PlusoneApplication.java index bfb3c8a..e95ad47 100644 --- a/plusone-start/src/main/java/xyz/zhouxy/plusone/PlusoneApplication.java +++ b/plusone-start/src/main/java/xyz/zhouxy/plusone/PlusoneApplication.java @@ -6,11 +6,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import lombok.extern.slf4j.Slf4j; @SpringBootApplication -@Slf4j public class PlusoneApplication { public static void main(String[] args) { - log.debug("Plusone started!"); SpringApplication.run(PlusoneApplication.class, args); } diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/exception/AccountLoginException.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/exception/AccountLoginException.java similarity index 96% rename from plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/exception/AccountLoginException.java rename to plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/exception/AccountLoginException.java index 7668e15..90fbe8f 100644 --- a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/exception/AccountLoginException.java +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/exception/AccountLoginException.java @@ -1,4 +1,4 @@ -package xyz.zhouxy.plusone.system.application.exception; +package xyz.zhouxy.plusone.system.application.common.exception; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/exception/AccountRegisterException.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/exception/AccountRegisterException.java similarity index 96% rename from plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/exception/AccountRegisterException.java rename to plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/exception/AccountRegisterException.java index 94d7303..8a21e2b 100644 --- a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/exception/AccountRegisterException.java +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/exception/AccountRegisterException.java @@ -1,4 +1,4 @@ -package xyz.zhouxy.plusone.system.application.exception; +package xyz.zhouxy.plusone.system.application.common.exception; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/exception/UnsupportedMenuTypeException.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/exception/UnsupportedMenuTypeException.java similarity index 86% rename from plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/exception/UnsupportedMenuTypeException.java rename to plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/exception/UnsupportedMenuTypeException.java index 429246b..c2e047c 100644 --- a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/exception/UnsupportedMenuTypeException.java +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/exception/UnsupportedMenuTypeException.java @@ -1,4 +1,4 @@ -package xyz.zhouxy.plusone.system.application.exception; +package xyz.zhouxy.plusone.system.application.common.exception; import xyz.zhouxy.plusone.validator.InvalidInputException; diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/exception/handler/AccountLoginExceptionHandler.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/exception/handler/AccountLoginExceptionHandler.java similarity index 61% rename from plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/exception/handler/AccountLoginExceptionHandler.java rename to plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/exception/handler/AccountLoginExceptionHandler.java index 4f1895b..b54c697 100644 --- a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/exception/handler/AccountLoginExceptionHandler.java +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/exception/handler/AccountLoginExceptionHandler.java @@ -1,24 +1,22 @@ -package xyz.zhouxy.plusone.system.application.exception.handler; - -import javax.annotation.Nonnull; +package xyz.zhouxy.plusone.system.application.common.exception.handler; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; -import xyz.zhouxy.plusone.system.application.exception.AccountLoginException; import xyz.zhouxy.plusone.commons.exception.handler.BaseExceptionHandler; import xyz.zhouxy.plusone.commons.util.RestfulResult; +import xyz.zhouxy.plusone.system.application.common.exception.AccountLoginException; @RestControllerAdvice public class AccountLoginExceptionHandler extends BaseExceptionHandler { - public AccountLoginExceptionHandler(@Nonnull ExceptionInfoHolder exceptionInfoHolder) { + public AccountLoginExceptionHandler(ExceptionInfoHolder exceptionInfoHolder) { super(exceptionInfoHolder); } @ExceptionHandler({ AccountLoginException.class }) - public ResponseEntity handleException(@Nonnull Exception e) { + public ResponseEntity handleException(Exception e) { return buildExceptionResponse(e); } } diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/exception/handler/SaTokenExceptionHandler.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/exception/handler/SaTokenExceptionHandler.java similarity index 97% rename from plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/exception/handler/SaTokenExceptionHandler.java rename to plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/exception/handler/SaTokenExceptionHandler.java index 0db62bc..ea11279 100644 --- a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/exception/handler/SaTokenExceptionHandler.java +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/exception/handler/SaTokenExceptionHandler.java @@ -1,4 +1,4 @@ -package xyz.zhouxy.plusone.system.application.exception.handler; +package xyz.zhouxy.plusone.system.application.common.exception.handler; import javax.annotation.Nonnull; diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/model/AuthenticationInfo.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/model/AuthenticationInfo.java new file mode 100644 index 0000000..cb88a45 --- /dev/null +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/model/AuthenticationInfo.java @@ -0,0 +1,138 @@ +package xyz.zhouxy.plusone.system.application.common.model; + +import java.util.Map; +import java.util.Optional; +import java.util.OptionalInt; +import java.util.OptionalLong; +import java.util.OptionalDouble; +import java.util.concurrent.ConcurrentHashMap; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + +import xyz.zhouxy.plusone.exception.BizException; + +public class AuthenticationInfo { + + /** token 值 */ + private final String token; + + /** 此 token 对应的LoginId,未登录时不会构建此类的实例 */ + private final T loginId; + + /** 账号类型 */ + private final String loginType; + + /** 登录设备类型 */ + private final String deviceType; + + /** 自定义数据 */ + @Nonnull + private final Map metadata; + + private AuthenticationInfo(String token, T loginId, String loginType, String deviceType, + @Nonnull Map metadata) { + this.token = token; + this.loginId = loginId; + this.loginType = loginType; + this.deviceType = deviceType; + this.metadata = metadata; + } + + public String getToken() { + return token; + } + + public T getLoginId() { + return loginId; + } + + public String getLoginType() { + return loginType; + } + + public String getDeviceType() { + return deviceType; + } + + private Object getObjFromMetadata(String key) { + if (this.metadata.containsKey(key)) { + return this.metadata.get(key); + } + throw new BizException(String.format("不存在 key 为 \"%s\"的元数据。", key)); + } + + public OptionalDouble getMetadataAsDouble(String key) { + Object valObj = getObjFromMetadata(key); + if (valObj instanceof Double val) { + return OptionalDouble.of(val.doubleValue()); + } + return OptionalDouble.empty(); + } + + public OptionalLong getMetadataAsLong(String key) { + Object valObj = getObjFromMetadata(key); + if (valObj instanceof Long val) { + return OptionalLong.of(val.longValue()); + } + return OptionalLong.empty(); + } + + public OptionalInt getMetadataAsInt(String key) { + Object valObj = getObjFromMetadata(key); + if (valObj instanceof Integer val) { + return OptionalInt.of(val.intValue()); + } + return OptionalInt.empty(); + } + + public Optional getMetadataAsString(String key) { + Object valObj = getObjFromMetadata(key); + if (valObj instanceof String val) { + return Optional.of(val); + } + return Optional.empty(); + } + + @SuppressWarnings("unchecked") + public Optional getMetadata(String key, Class type) { + Object valObj = getObjFromMetadata(key); + if (valObj == null || !type.isAssignableFrom(valObj.getClass())) { + return Optional.empty(); + } + return Optional.of((C) valObj); + } + + // ========================================== + // builder + + public static Builder builder(String token, T loginId, String loginType, String deviceType) { + return new Builder<>(token, loginId, loginType, deviceType); + } + + public static final class Builder { + private final String token; + private final T loginId; + private final String loginType; + private final String deviceType; + + @Nonnull + private final Map meta = new ConcurrentHashMap<>(); + + private Builder(String token, T loginId, String loginType, String deviceType) { + this.token = token; + this.loginId = loginId; + this.loginType = loginType; + this.deviceType = deviceType; + } + + public Builder putMetadata(String key, @Nullable C value) { + this.meta.put(key, value); + return this; + } + + public AuthenticationInfo build() { + return new AuthenticationInfo<>(token, loginId, loginType, deviceType, meta); + } + } +} diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/model/PlusoneContext.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/model/PlusoneContext.java new file mode 100644 index 0000000..d9cfe68 --- /dev/null +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/common/model/PlusoneContext.java @@ -0,0 +1,21 @@ +package xyz.zhouxy.plusone.system.application.common.model; + +public class PlusoneContext { + private static final ThreadLocal> context = new ThreadLocal<>(); + + public static void setContext(AuthenticationInfo value) { + context.set(value); + } + + public static AuthenticationInfo getContext() { + return context.get(); + } + + public static void remove() { + context.remove(); + } + + private PlusoneContext() { + throw new IllegalStateException("Utility class"); + } +} diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/AccountContextService.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/AccountContextService.java index b4d7ffa..b01c257 100644 --- a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/AccountContextService.java +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/AccountContextService.java @@ -8,9 +8,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import cn.dev33.satoken.stp.StpLogic; +import xyz.zhouxy.plusone.system.application.common.exception.AccountLoginException; import xyz.zhouxy.plusone.system.application.common.exception.UnsupportedPrincipalTypeException; import xyz.zhouxy.plusone.system.application.common.util.PrincipalUtil; -import xyz.zhouxy.plusone.system.application.exception.AccountLoginException; import xyz.zhouxy.plusone.system.application.query.AccountQueries; import xyz.zhouxy.plusone.system.application.query.result.AccountDetails; import xyz.zhouxy.plusone.system.application.query.result.MenuViewObject; diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/AccountManagementService.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/AccountManagementService.java index d53a1ba..84bed19 100644 --- a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/AccountManagementService.java +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/AccountManagementService.java @@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.PathVariable; import xyz.zhouxy.plusone.commons.util.PageDTO; import xyz.zhouxy.plusone.exception.DataNotExistException; -import xyz.zhouxy.plusone.system.application.exception.AccountRegisterException; +import xyz.zhouxy.plusone.system.application.common.exception.AccountRegisterException; import xyz.zhouxy.plusone.system.application.query.AccountQueries; import xyz.zhouxy.plusone.system.application.query.params.AccountQueryParams; import xyz.zhouxy.plusone.system.application.query.result.AccountDetails; @@ -94,7 +94,6 @@ public class AccountManagementService { Account account = accountRepository.find(id) .orElseThrow(() -> new DataNotExistException("该账号不存在")); account.setAccountInfo(command.getNickname(), command.getAvatar(), Sex.of(command.getSex())); - account.setUpdatedBy(adminAuthLogic.getLoginIdAsLong()); accountRepository.save(account); } diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/AdminLoginService.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/AdminLoginService.java index a517a0f..6039b94 100644 --- a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/AdminLoginService.java +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/AdminLoginService.java @@ -6,10 +6,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import cn.hutool.core.lang.Assert; +import xyz.zhouxy.plusone.system.application.common.exception.AccountLoginException; import xyz.zhouxy.plusone.system.application.common.exception.UnsupportedPrincipalTypeException; import xyz.zhouxy.plusone.system.application.common.util.PrincipalType; import xyz.zhouxy.plusone.system.application.common.util.PrincipalUtil; -import xyz.zhouxy.plusone.system.application.exception.AccountLoginException; import xyz.zhouxy.plusone.system.application.query.AccountQueries; import xyz.zhouxy.plusone.system.application.query.result.LoginInfoViewObject; import xyz.zhouxy.plusone.system.application.service.command.LoginByOtpCommand; diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/MailAndSmsVerifyService.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/MailAndSmsVerifyService.java index 03611e5..cf28775 100644 --- a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/MailAndSmsVerifyService.java +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/MailAndSmsVerifyService.java @@ -9,8 +9,8 @@ import org.springframework.util.Assert; import cn.hutool.core.util.RandomUtil; import xyz.zhouxy.plusone.mail.MailService; import xyz.zhouxy.plusone.sms.SmsService; -import xyz.zhouxy.plusone.system.application.exception.AccountLoginException; -import xyz.zhouxy.plusone.system.application.exception.AccountRegisterException; +import xyz.zhouxy.plusone.system.application.common.exception.AccountLoginException; +import xyz.zhouxy.plusone.system.application.common.exception.AccountRegisterException; import xyz.zhouxy.plusone.system.domain.model.account.AccountRepository; import xyz.zhouxy.plusone.system.domain.model.account.Email; import xyz.zhouxy.plusone.system.domain.model.account.MobilePhone; diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/MenuManagementService.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/MenuManagementService.java index b8b07d4..84f4f09 100644 --- a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/MenuManagementService.java +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/MenuManagementService.java @@ -16,7 +16,7 @@ import org.springframework.util.Assert; import xyz.zhouxy.plusone.constant.EntityStatus; import xyz.zhouxy.plusone.domain.IWithOrderNumber; import xyz.zhouxy.plusone.exception.DataNotExistException; -import xyz.zhouxy.plusone.system.application.exception.UnsupportedMenuTypeException; +import xyz.zhouxy.plusone.system.application.common.exception.UnsupportedMenuTypeException; import xyz.zhouxy.plusone.system.application.query.result.MenuViewObject; import xyz.zhouxy.plusone.system.application.service.command.CreateMenuCommand; import xyz.zhouxy.plusone.system.application.service.command.UpdateMenuCommand; diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/RegisterAccountService.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/RegisterAccountService.java index c81a49c..8c48011 100644 --- a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/RegisterAccountService.java +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/service/RegisterAccountService.java @@ -5,10 +5,10 @@ import java.util.Set; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import xyz.zhouxy.plusone.system.application.common.exception.AccountRegisterException; import xyz.zhouxy.plusone.system.application.common.exception.UnsupportedPrincipalTypeException; import xyz.zhouxy.plusone.system.application.common.util.PrincipalType; import xyz.zhouxy.plusone.system.application.common.util.PrincipalUtil; -import xyz.zhouxy.plusone.system.application.exception.AccountRegisterException; import xyz.zhouxy.plusone.system.application.service.command.RegisterAccountCommand; import xyz.zhouxy.plusone.system.domain.model.account.Account; import xyz.zhouxy.plusone.system.domain.model.account.AccountInfo; diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/config/InterceptorConfig.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/config/InterceptorConfig.java new file mode 100644 index 0000000..6356a08 --- /dev/null +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/config/InterceptorConfig.java @@ -0,0 +1,20 @@ +package xyz.zhouxy.plusone.system.application.web.config; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class InterceptorConfig implements WebMvcConfigurer { + @Autowired + HandlerInterceptor[] interceptors; + + @Override + public void addInterceptors(InterceptorRegistry registry) { + for (var interceptor : interceptors) { + registry.addInterceptor(interceptor); + } + } +} diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/AccountContextController.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/AccountContextController.java similarity index 97% rename from plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/AccountContextController.java rename to plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/AccountContextController.java index 4913080..c982444 100644 --- a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/AccountContextController.java +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/AccountContextController.java @@ -1,4 +1,4 @@ -package xyz.zhouxy.plusone.system.application.controller; +package xyz.zhouxy.plusone.system.application.web.controller; import static xyz.zhouxy.plusone.system.constant.AuthLogic.adminAuthLogic; diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/AccountManagementController.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/AccountManagementController.java similarity index 97% rename from plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/AccountManagementController.java rename to plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/AccountManagementController.java index 42c2577..55a6070 100644 --- a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/AccountManagementController.java +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/AccountManagementController.java @@ -1,4 +1,4 @@ -package xyz.zhouxy.plusone.system.application.controller; +package xyz.zhouxy.plusone.system.application.web.controller; import static xyz.zhouxy.plusone.system.constant.AuthLogic.adminAuthLogic; import static xyz.zhouxy.plusone.commons.util.RestfulResult.success; diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/AdminLoginController.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/AdminLoginController.java similarity index 96% rename from plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/AdminLoginController.java rename to plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/AdminLoginController.java index 8037a03..dec0730 100644 --- a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/AdminLoginController.java +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/AdminLoginController.java @@ -1,4 +1,4 @@ -package xyz.zhouxy.plusone.system.application.controller; +package xyz.zhouxy.plusone.system.application.web.controller; import static xyz.zhouxy.plusone.commons.util.RestfulResult.success; diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/DictManagementController.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/DictManagementController.java similarity index 97% rename from plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/DictManagementController.java rename to plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/DictManagementController.java index 4efdcf6..737c049 100644 --- a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/DictManagementController.java +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/DictManagementController.java @@ -1,4 +1,4 @@ -package xyz.zhouxy.plusone.system.application.controller; +package xyz.zhouxy.plusone.system.application.web.controller; import static xyz.zhouxy.plusone.system.constant.AuthLogic.adminAuthLogic; import static xyz.zhouxy.plusone.commons.util.RestfulResult.success; diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/MenuManagementController.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/MenuManagementController.java similarity index 98% rename from plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/MenuManagementController.java rename to plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/MenuManagementController.java index c1ca515..076a238 100644 --- a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/MenuManagementController.java +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/MenuManagementController.java @@ -1,4 +1,4 @@ -package xyz.zhouxy.plusone.system.application.controller; +package xyz.zhouxy.plusone.system.application.web.controller; import static xyz.zhouxy.plusone.system.constant.AuthLogic.adminAuthLogic; import static xyz.zhouxy.plusone.commons.util.RestfulResult.success; diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/RegisterAccountController.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/RegisterAccountController.java similarity index 95% rename from plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/RegisterAccountController.java rename to plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/RegisterAccountController.java index 075a6e6..07477e0 100644 --- a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/RegisterAccountController.java +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/RegisterAccountController.java @@ -1,4 +1,4 @@ -package xyz.zhouxy.plusone.system.application.controller; +package xyz.zhouxy.plusone.system.application.web.controller; import static xyz.zhouxy.plusone.commons.util.RestfulResult.success; diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/RoleManagementController.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/RoleManagementController.java similarity index 97% rename from plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/RoleManagementController.java rename to plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/RoleManagementController.java index d169ff9..5466894 100644 --- a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/controller/RoleManagementController.java +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/controller/RoleManagementController.java @@ -1,4 +1,4 @@ -package xyz.zhouxy.plusone.system.application.controller; +package xyz.zhouxy.plusone.system.application.web.controller; import javax.validation.Valid; import static xyz.zhouxy.plusone.system.constant.AuthLogic.adminAuthLogic; diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/interceptor/HttpContextInterceptor.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/interceptor/HttpContextInterceptor.java new file mode 100644 index 0000000..45235ad --- /dev/null +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/interceptor/HttpContextInterceptor.java @@ -0,0 +1,32 @@ +package xyz.zhouxy.plusone.system.application.web.interceptor; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.HandlerInterceptor; + +import lombok.extern.slf4j.Slf4j; +import xyz.zhouxy.plusone.system.application.common.model.PlusoneContext; +import static xyz.zhouxy.plusone.system.constant.AuthLogic.adminAuthLogic;; + +@Slf4j +@Order(1) +@Component +public class HttpContextInterceptor implements HandlerInterceptor { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) + throws Exception { + log.info("" + adminAuthLogic.isLogin()); + return true; + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) + throws Exception { + PlusoneContext.remove(); + log.info("拦截器清理 ThreadLocal,防止内存泄漏"); + } +} diff --git a/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/interceptor/package-info.java b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/interceptor/package-info.java new file mode 100644 index 0000000..c8c605b --- /dev/null +++ b/plusone-system/plusone-system-application/src/main/java/xyz/zhouxy/plusone/system/application/web/interceptor/package-info.java @@ -0,0 +1,7 @@ +/** + * 拦截器 + * + * @author ZhouXY + * @since 1.0 + */ +package xyz.zhouxy.plusone.system.application.web.interceptor; diff --git a/plusone-system/plusone-system-domain/src/main/java/xyz/zhouxy/plusone/system/domain/model/account/Account.java b/plusone-system/plusone-system-domain/src/main/java/xyz/zhouxy/plusone/system/domain/model/account/Account.java index 08e913e..3a63bf5 100644 --- a/plusone-system/plusone-system-domain/src/main/java/xyz/zhouxy/plusone/system/domain/model/account/Account.java +++ b/plusone-system/plusone-system-domain/src/main/java/xyz/zhouxy/plusone/system/domain/model/account/Account.java @@ -269,10 +269,6 @@ public class Account extends AggregateRoot implements IWithVersion { return Optional.ofNullable(updatedBy); } - public void setUpdatedBy(long updatedBy) { - this.updatedBy = updatedBy; - } - @Override public long getVersion() { return this.version;