From 6281cd3682f8bef54878b2fc6604989c47c285a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=BE=E6=96=87=E8=B1=AA?= <980287353@qq.com> Date: Tue, 10 Jan 2023 14:19:23 +0800 Subject: [PATCH] =?UTF-8?q?perf=EF=BC=9A=E4=BB=A3=E7=A0=81=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ctor.java => MigrationAutoConfigurer.java} | 2 +- ...Selector.java => LoginAutoConfigurer.java} | 6 +- .../login/controller/LoginController.java | 55 +++++++------------ .../tiesheng/login/service/LoginService.java | 30 ---------- .../TieshengLoginConfigurer.java | 2 +- .../service/impl/DefaultLoginConfigurer.java | 26 +++++++++ ...ector.java => PlatformAutoConfigurer.java} | 2 +- ...tSelector.java => CoreAutoConfigurer.java} | 2 +- .../com/tiesheng/core/EnableTieshengWeb.java | 10 ++-- .../exception/SpringExceptionHandler.java | 2 +- .../{config => }/ConfigController.java | 2 +- .../controller/{log => }/LogController.java | 2 +- .../controller/{tool => }/ToolController.java | 2 +- .../web/bean => pojos}/CurrentWebUser.java | 2 +- .../tiesheng/core/service/CoreLogService.java | 9 ++- .../service/CorePlatformUniqueService.java | 3 +- .../core/service/FileUploadService.java | 1 - .../TieshengWebConfigurer.java | 6 +- .../impl}/DefaultWebConfigurer.java | 11 ++-- 19 files changed, 77 insertions(+), 98 deletions(-) rename tiesheng-db-migration/src/main/java/com/tiesheng/migration/{MigrationAutoImportSelector.java => MigrationAutoConfigurer.java} (80%) rename tiesheng-login/src/main/java/com/tiesheng/login/{LoginAutoImportSelector.java => LoginAutoConfigurer.java} (62%) delete mode 100644 tiesheng-login/src/main/java/com/tiesheng/login/service/LoginService.java rename tiesheng-login/src/main/java/com/tiesheng/login/{config => service}/TieshengLoginConfigurer.java (93%) create mode 100644 tiesheng-login/src/main/java/com/tiesheng/login/service/impl/DefaultLoginConfigurer.java rename tiesheng-platform/src/main/java/com/tiesheng/platform/{PlatformAutoImportSelector.java => PlatformAutoConfigurer.java} (78%) rename tiesheng-web/src/main/java/com/tiesheng/core/{CoreAutoImportSelector.java => CoreAutoConfigurer.java} (87%) rename tiesheng-web/src/main/java/com/tiesheng/core/controller/{config => }/ConfigController.java (98%) rename tiesheng-web/src/main/java/com/tiesheng/core/controller/{log => }/LogController.java (98%) rename tiesheng-web/src/main/java/com/tiesheng/core/controller/{tool => }/ToolController.java (98%) rename tiesheng-web/src/main/java/com/tiesheng/core/{config/web/bean => pojos}/CurrentWebUser.java (93%) rename tiesheng-web/src/main/java/com/tiesheng/core/{config/web => service}/TieshengWebConfigurer.java (93%) rename tiesheng-web/src/main/java/com/tiesheng/core/{config/web => service/impl}/DefaultWebConfigurer.java (65%) diff --git a/tiesheng-db-migration/src/main/java/com/tiesheng/migration/MigrationAutoImportSelector.java b/tiesheng-db-migration/src/main/java/com/tiesheng/migration/MigrationAutoConfigurer.java similarity index 80% rename from tiesheng-db-migration/src/main/java/com/tiesheng/migration/MigrationAutoImportSelector.java rename to tiesheng-db-migration/src/main/java/com/tiesheng/migration/MigrationAutoConfigurer.java index b11d7dc..be89fa3 100644 --- a/tiesheng-db-migration/src/main/java/com/tiesheng/migration/MigrationAutoImportSelector.java +++ b/tiesheng-db-migration/src/main/java/com/tiesheng/migration/MigrationAutoConfigurer.java @@ -8,5 +8,5 @@ import org.springframework.context.annotation.ComponentScan; @ComponentScan({ "com.tiesheng.migration.**.*" }) -public class MigrationAutoImportSelector { +public class MigrationAutoConfigurer { } diff --git a/tiesheng-login/src/main/java/com/tiesheng/login/LoginAutoImportSelector.java b/tiesheng-login/src/main/java/com/tiesheng/login/LoginAutoConfigurer.java similarity index 62% rename from tiesheng-login/src/main/java/com/tiesheng/login/LoginAutoImportSelector.java rename to tiesheng-login/src/main/java/com/tiesheng/login/LoginAutoConfigurer.java index 7f69db2..2324fa4 100644 --- a/tiesheng-login/src/main/java/com/tiesheng/login/LoginAutoImportSelector.java +++ b/tiesheng-login/src/main/java/com/tiesheng/login/LoginAutoConfigurer.java @@ -1,6 +1,6 @@ package com.tiesheng.login; -import com.tiesheng.platform.PlatformAutoImportSelector; +import com.tiesheng.platform.PlatformAutoConfigurer; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Import; @@ -11,6 +11,6 @@ import org.springframework.context.annotation.Import; @ComponentScan({ "com.tiesheng.login.**.*", }) -@Import(PlatformAutoImportSelector.class) -public class LoginAutoImportSelector { +@Import(PlatformAutoConfigurer.class) +public class LoginAutoConfigurer { } diff --git a/tiesheng-login/src/main/java/com/tiesheng/login/controller/LoginController.java b/tiesheng-login/src/main/java/com/tiesheng/login/controller/LoginController.java index 3118640..9811ed2 100644 --- a/tiesheng-login/src/main/java/com/tiesheng/login/controller/LoginController.java +++ b/tiesheng-login/src/main/java/com/tiesheng/login/controller/LoginController.java @@ -8,7 +8,7 @@ import com.tiesheng.annotation.token.TokenIgnore; import com.tiesheng.login.config.token.TsTokenConfig; import com.tiesheng.login.config.token.bean.TokenBean; import com.tiesheng.login.pojos.dto.UniqueIndexDTO; -import com.tiesheng.login.service.LoginService; +import com.tiesheng.login.service.TieshengLoginConfigurer; import com.tiesheng.platform.config.ding.PlatformDingConfig; import com.tiesheng.platform.config.ding.bean.DingJsapiSignature; import com.tiesheng.platform.config.ding.bean.DingUserInfo; @@ -25,7 +25,6 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.nio.charset.Charset; import java.util.Map; -import java.util.concurrent.atomic.AtomicReference; /** * @author hao @@ -40,7 +39,7 @@ public class LoginController { @Autowired PlatformDingConfig platformDingConfig; @Autowired - LoginService loginService; + TieshengLoginConfigurer tieshengLoginConfigurer; @Autowired TsTokenConfig tsTokenConfig; @Autowired @@ -55,11 +54,9 @@ public class LoginController { @GetMapping("/unique/redirect") @TokenIgnore public void uniqueIndex(UniqueIndexDTO dto, HttpServletResponse response) { - loginService.checkLoginConfigurer(s -> { - TokenBean tokenBean = s.doLogin("unique_index_" + dto.getPlatform(), - dto.getNo(), dto.getPlatform(), dto.getInfo()); - s.onLoginRedirect(tokenBean, dto.getExtra(), response); - }); + TokenBean tokenBean = tieshengLoginConfigurer.doLogin("unique_index_" + dto.getPlatform(), + dto.getNo(), dto.getPlatform(), dto.getInfo()); + tieshengLoginConfigurer.onLoginRedirect(tokenBean, dto.getExtra(), response); } @@ -72,12 +69,8 @@ public class LoginController { @PostMapping("/unique/index") @TokenIgnore public ApiResp uniqueIndex(@RequestBody UniqueIndexDTO dto) { - AtomicReference tokenBeanAtomicReference = new AtomicReference<>(); - loginService.checkLoginConfigurer(s -> { - tokenBeanAtomicReference.set(s.doLogin("unique_index_" + dto.getPlatform(), - dto.getNo(), dto.getPlatform(), dto.getInfo())); - }); - TokenBean tokenBean = tokenBeanAtomicReference.get(); + TokenBean tokenBean = tieshengLoginConfigurer.doLogin("unique_index_" + dto.getPlatform(), + dto.getNo(), dto.getPlatform(), dto.getInfo()); if (tokenBean == null) { throw new ApiException("登录失败"); } @@ -106,14 +99,12 @@ public class LoginController { map.put("corpId", platformDingConfig.getConfigBean(service).getCorpId()); map.put("service", service); map.put("extra", extra); - loginService.checkLoginConfigurer(s -> { - String query = URLUtil.buildQuery(map, Charset.defaultCharset()); - String configUrl = globalConfig.buildPath("/ding/index.html?" + query); - try { - response.sendRedirect(configUrl); - } catch (IOException ignored) { - } - }); + String query = URLUtil.buildQuery(map, Charset.defaultCharset()); + String configUrl = globalConfig.buildPath("/ding/index.html?" + query); + try { + response.sendRedirect(configUrl); + } catch (IOException ignored) { + } } @@ -125,13 +116,11 @@ public class LoginController { @RequestMapping("/ding/oauth2/{service}") @TokenIgnore public void dingOauth2(@PathVariable String service, String code, String extra, HttpServletResponse response) { - loginService.checkLoginConfigurer(configurer -> { - String ddUserId = platformDingConfig.getUserIdByCode(service, code); - DingUserInfo dingUserInfo = platformDingConfig.topapiV2UserGet(service, ddUserId); - TokenBean tokenBean = configurer.doLogin(dingUserInfo.getAppId(), dingUserInfo.getUserid(), "ding", - JSON.toJSONString(dingUserInfo)); - configurer.onLoginRedirect(tokenBean, extra, response); - }); + String ddUserId = platformDingConfig.getUserIdByCode(service, code); + DingUserInfo dingUserInfo = platformDingConfig.topapiV2UserGet(service, ddUserId); + TokenBean tokenBean = tieshengLoginConfigurer.doLogin(dingUserInfo.getAppId(), dingUserInfo.getUserid(), "ding", + JSON.toJSONString(dingUserInfo)); + tieshengLoginConfigurer.onLoginRedirect(tokenBean, extra, response); } @@ -179,11 +168,9 @@ public class LoginController { @RequestMapping("/wxmp/oauth2/{service}") @TokenIgnore public void wxmpOauth2(@PathVariable String service, String code, String extra, HttpServletResponse response) { - loginService.checkLoginConfigurer(configurer -> { - WxUserInfo wxUserInfo = platformWxmpConfig.getOAuth2AccessToken(service, code); - TokenBean tokenBean = configurer.doLogin(wxUserInfo.getAppId(), wxUserInfo.getOpenid(), "wxmp", JSON.toJSONString(wxUserInfo)); - configurer.onLoginRedirect(tokenBean, extra, response); - }); + WxUserInfo wxUserInfo = platformWxmpConfig.getOAuth2AccessToken(service, code); + TokenBean tokenBean = tieshengLoginConfigurer.doLogin(wxUserInfo.getAppId(), wxUserInfo.getOpenid(), "wxmp", JSON.toJSONString(wxUserInfo)); + tieshengLoginConfigurer.onLoginRedirect(tokenBean, extra, response); } diff --git a/tiesheng-login/src/main/java/com/tiesheng/login/service/LoginService.java b/tiesheng-login/src/main/java/com/tiesheng/login/service/LoginService.java deleted file mode 100644 index ccd50da..0000000 --- a/tiesheng-login/src/main/java/com/tiesheng/login/service/LoginService.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.tiesheng.login.service; - -import com.tiesheng.login.config.TieshengLoginConfigurer; -import com.tiesheng.util.exception.ApiException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.function.Consumer; - -/** - * @author hao - */ -@Service -public class LoginService { - - @Autowired(required = false) - TieshengLoginConfigurer tieshengLoginConfigurer; - - - /** - * 检查配置 - */ - public void checkLoginConfigurer(Consumer consumer) { - if (tieshengLoginConfigurer == null) { - throw new ApiException("未配置登录逻辑"); - } - consumer.accept(tieshengLoginConfigurer); - } - -} diff --git a/tiesheng-login/src/main/java/com/tiesheng/login/config/TieshengLoginConfigurer.java b/tiesheng-login/src/main/java/com/tiesheng/login/service/TieshengLoginConfigurer.java similarity index 93% rename from tiesheng-login/src/main/java/com/tiesheng/login/config/TieshengLoginConfigurer.java rename to tiesheng-login/src/main/java/com/tiesheng/login/service/TieshengLoginConfigurer.java index 5db772e..5e03edc 100644 --- a/tiesheng-login/src/main/java/com/tiesheng/login/config/TieshengLoginConfigurer.java +++ b/tiesheng-login/src/main/java/com/tiesheng/login/service/TieshengLoginConfigurer.java @@ -1,4 +1,4 @@ -package com.tiesheng.login.config; +package com.tiesheng.login.service; import com.tiesheng.login.config.token.bean.TokenBean; import org.springframework.context.annotation.Configuration; diff --git a/tiesheng-login/src/main/java/com/tiesheng/login/service/impl/DefaultLoginConfigurer.java b/tiesheng-login/src/main/java/com/tiesheng/login/service/impl/DefaultLoginConfigurer.java new file mode 100644 index 0000000..0d3aa62 --- /dev/null +++ b/tiesheng-login/src/main/java/com/tiesheng/login/service/impl/DefaultLoginConfigurer.java @@ -0,0 +1,26 @@ +package com.tiesheng.login.service.impl; + +import com.tiesheng.login.config.token.bean.TokenBean; +import com.tiesheng.login.service.TieshengLoginConfigurer; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Configuration; + +import javax.servlet.http.HttpServletResponse; + +/** + * @author hao + */ +@Configuration +@ConditionalOnMissingBean(value = TieshengLoginConfigurer.class, ignored = DefaultLoginConfigurer.class) +public class DefaultLoginConfigurer implements TieshengLoginConfigurer { + + @Override + public TokenBean doLogin(String appId, String uniqueId, String platfrom, String info) { + return null; + } + + @Override + public void onLoginRedirect(TokenBean bean, String extra, HttpServletResponse response) { + + } +} diff --git a/tiesheng-platform/src/main/java/com/tiesheng/platform/PlatformAutoImportSelector.java b/tiesheng-platform/src/main/java/com/tiesheng/platform/PlatformAutoConfigurer.java similarity index 78% rename from tiesheng-platform/src/main/java/com/tiesheng/platform/PlatformAutoImportSelector.java rename to tiesheng-platform/src/main/java/com/tiesheng/platform/PlatformAutoConfigurer.java index 9c32826..d7f1ca4 100644 --- a/tiesheng-platform/src/main/java/com/tiesheng/platform/PlatformAutoImportSelector.java +++ b/tiesheng-platform/src/main/java/com/tiesheng/platform/PlatformAutoConfigurer.java @@ -6,5 +6,5 @@ import org.springframework.context.annotation.ComponentScan; @ComponentScan({ "com.tiesheng.platform.**.*", }) -public class PlatformAutoImportSelector { +public class PlatformAutoConfigurer { } diff --git a/tiesheng-web/src/main/java/com/tiesheng/core/CoreAutoImportSelector.java b/tiesheng-web/src/main/java/com/tiesheng/core/CoreAutoConfigurer.java similarity index 87% rename from tiesheng-web/src/main/java/com/tiesheng/core/CoreAutoImportSelector.java rename to tiesheng-web/src/main/java/com/tiesheng/core/CoreAutoConfigurer.java index 7876cb8..e2701e1 100644 --- a/tiesheng-web/src/main/java/com/tiesheng/core/CoreAutoImportSelector.java +++ b/tiesheng-web/src/main/java/com/tiesheng/core/CoreAutoConfigurer.java @@ -11,5 +11,5 @@ import org.springframework.context.annotation.ComponentScan; "com.tiesheng.core.**.*", }) @MapperScan("com.tiesheng.core.mapper") -public class CoreAutoImportSelector { +public class CoreAutoConfigurer { } diff --git a/tiesheng-web/src/main/java/com/tiesheng/core/EnableTieshengWeb.java b/tiesheng-web/src/main/java/com/tiesheng/core/EnableTieshengWeb.java index 3c3bf22..c0a6839 100644 --- a/tiesheng-web/src/main/java/com/tiesheng/core/EnableTieshengWeb.java +++ b/tiesheng-web/src/main/java/com/tiesheng/core/EnableTieshengWeb.java @@ -1,8 +1,8 @@ package com.tiesheng.core; -import com.tiesheng.login.LoginAutoImportSelector; +import com.tiesheng.login.LoginAutoConfigurer; import com.tiesheng.message.MessageAutoConfigurer; -import com.tiesheng.migration.MigrationAutoImportSelector; +import com.tiesheng.migration.MigrationAutoConfigurer; import com.tiesheng.util.UtilAutoConfigurer; import org.springframework.context.annotation.Import; @@ -17,9 +17,9 @@ import java.lang.annotation.*; @Import({ UtilAutoConfigurer.class, MessageAutoConfigurer.class, - CoreAutoImportSelector.class, - LoginAutoImportSelector.class, - MigrationAutoImportSelector.class + CoreAutoConfigurer.class, + LoginAutoConfigurer.class, + MigrationAutoConfigurer.class }) public @interface EnableTieshengWeb { } diff --git a/tiesheng-web/src/main/java/com/tiesheng/core/config/exception/SpringExceptionHandler.java b/tiesheng-web/src/main/java/com/tiesheng/core/config/exception/SpringExceptionHandler.java index 0f608b1..16ff998 100644 --- a/tiesheng-web/src/main/java/com/tiesheng/core/config/exception/SpringExceptionHandler.java +++ b/tiesheng-web/src/main/java/com/tiesheng/core/config/exception/SpringExceptionHandler.java @@ -2,7 +2,7 @@ package com.tiesheng.core.config.exception; import cn.hutool.core.exceptions.ValidateException; import cn.hutool.extra.spring.SpringUtil; -import com.tiesheng.core.config.web.TieshengWebConfigurer; +import com.tiesheng.core.service.TieshengWebConfigurer; import com.tiesheng.util.exception.ApiException; import com.tiesheng.util.exception.ApiRespEnum; import com.tiesheng.util.pojos.ApiResp; diff --git a/tiesheng-web/src/main/java/com/tiesheng/core/controller/config/ConfigController.java b/tiesheng-web/src/main/java/com/tiesheng/core/controller/ConfigController.java similarity index 98% rename from tiesheng-web/src/main/java/com/tiesheng/core/controller/config/ConfigController.java rename to tiesheng-web/src/main/java/com/tiesheng/core/controller/ConfigController.java index 9e8df0d..b09fbbf 100644 --- a/tiesheng-web/src/main/java/com/tiesheng/core/controller/config/ConfigController.java +++ b/tiesheng-web/src/main/java/com/tiesheng/core/controller/ConfigController.java @@ -1,4 +1,4 @@ -package com.tiesheng.core.controller.config; +package com.tiesheng.core.controller; import cn.hutool.core.util.StrUtil; diff --git a/tiesheng-web/src/main/java/com/tiesheng/core/controller/log/LogController.java b/tiesheng-web/src/main/java/com/tiesheng/core/controller/LogController.java similarity index 98% rename from tiesheng-web/src/main/java/com/tiesheng/core/controller/log/LogController.java rename to tiesheng-web/src/main/java/com/tiesheng/core/controller/LogController.java index a4294eb..7be6b36 100644 --- a/tiesheng-web/src/main/java/com/tiesheng/core/controller/log/LogController.java +++ b/tiesheng-web/src/main/java/com/tiesheng/core/controller/LogController.java @@ -1,4 +1,4 @@ -package com.tiesheng.core.controller.log; +package com.tiesheng.core.controller; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; diff --git a/tiesheng-web/src/main/java/com/tiesheng/core/controller/tool/ToolController.java b/tiesheng-web/src/main/java/com/tiesheng/core/controller/ToolController.java similarity index 98% rename from tiesheng-web/src/main/java/com/tiesheng/core/controller/tool/ToolController.java rename to tiesheng-web/src/main/java/com/tiesheng/core/controller/ToolController.java index f3ac176..a428e57 100644 --- a/tiesheng-web/src/main/java/com/tiesheng/core/controller/tool/ToolController.java +++ b/tiesheng-web/src/main/java/com/tiesheng/core/controller/ToolController.java @@ -1,4 +1,4 @@ -package com.tiesheng.core.controller.tool; +package com.tiesheng.core.controller; import cn.hutool.captcha.LineCaptcha; diff --git a/tiesheng-web/src/main/java/com/tiesheng/core/config/web/bean/CurrentWebUser.java b/tiesheng-web/src/main/java/com/tiesheng/core/pojos/CurrentWebUser.java similarity index 93% rename from tiesheng-web/src/main/java/com/tiesheng/core/config/web/bean/CurrentWebUser.java rename to tiesheng-web/src/main/java/com/tiesheng/core/pojos/CurrentWebUser.java index b330d66..d045a70 100644 --- a/tiesheng-web/src/main/java/com/tiesheng/core/config/web/bean/CurrentWebUser.java +++ b/tiesheng-web/src/main/java/com/tiesheng/core/pojos/CurrentWebUser.java @@ -1,4 +1,4 @@ -package com.tiesheng.core.config.web.bean; +package com.tiesheng.core.pojos; public class CurrentWebUser { diff --git a/tiesheng-web/src/main/java/com/tiesheng/core/service/CoreLogService.java b/tiesheng-web/src/main/java/com/tiesheng/core/service/CoreLogService.java index 2ab0de8..db9cfc9 100644 --- a/tiesheng-web/src/main/java/com/tiesheng/core/service/CoreLogService.java +++ b/tiesheng-web/src/main/java/com/tiesheng/core/service/CoreLogService.java @@ -3,15 +3,15 @@ package com.tiesheng.core.service; import cn.hutool.core.bean.BeanUtil; import cn.hutool.extra.servlet.ServletUtil; import cn.hutool.json.JSONUtil; -import com.tiesheng.core.config.web.TieshengWebConfigurer; -import com.tiesheng.core.config.web.bean.CurrentWebUser; import com.tiesheng.core.mapper.CoreLogLoginMapper; import com.tiesheng.core.mapper.CoreLogMessageMapper; import com.tiesheng.core.mapper.CoreLogOperationMapper; +import com.tiesheng.core.pojos.CurrentWebUser; import com.tiesheng.core.pojos.dao.CoreLogLogin; import com.tiesheng.core.pojos.dao.CoreLogMessage; import com.tiesheng.core.pojos.dao.CoreLogOperation; import com.tiesheng.core.pojos.dao.CorePlatformUnique; +import com.tiesheng.login.config.token.TsTokenConfig; import com.tiesheng.message.pojos.MessageReqResp; import com.tiesheng.message.service.TieshengMessageConfigurer; import com.tiesheng.util.ServletKit; @@ -53,7 +53,7 @@ public class CoreLogService extends TsServiceBase