perf:代码调整
This commit is contained in:
@@ -8,5 +8,5 @@ import org.springframework.context.annotation.ComponentScan;
|
||||
@ComponentScan({
|
||||
"com.tiesheng.migration.**.*"
|
||||
})
|
||||
public class MigrationAutoImportSelector {
|
||||
public class MigrationAutoConfigurer {
|
||||
}
|
||||
@@ -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 {
|
||||
}
|
||||
@@ -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<String> uniqueIndex(@RequestBody UniqueIndexDTO dto) {
|
||||
AtomicReference<TokenBean> 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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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<TieshengLoginConfigurer> consumer) {
|
||||
if (tieshengLoginConfigurer == null) {
|
||||
throw new ApiException("未配置登录逻辑");
|
||||
}
|
||||
consumer.accept(tieshengLoginConfigurer);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
@@ -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) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -6,5 +6,5 @@ import org.springframework.context.annotation.ComponentScan;
|
||||
@ComponentScan({
|
||||
"com.tiesheng.platform.**.*",
|
||||
})
|
||||
public class PlatformAutoImportSelector {
|
||||
public class PlatformAutoConfigurer {
|
||||
}
|
||||
@@ -11,5 +11,5 @@ import org.springframework.context.annotation.ComponentScan;
|
||||
"com.tiesheng.core.**.*",
|
||||
})
|
||||
@MapperScan("com.tiesheng.core.mapper")
|
||||
public class CoreAutoImportSelector {
|
||||
public class CoreAutoConfigurer {
|
||||
}
|
||||
@@ -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 {
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.tiesheng.core.controller.config;
|
||||
package com.tiesheng.core.controller;
|
||||
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
@@ -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;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.tiesheng.core.controller.tool;
|
||||
package com.tiesheng.core.controller;
|
||||
|
||||
|
||||
import cn.hutool.captcha.LineCaptcha;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.tiesheng.core.config.web.bean;
|
||||
package com.tiesheng.core.pojos;
|
||||
|
||||
public class CurrentWebUser {
|
||||
|
||||
@@ -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<CoreLogOperationMapper, CoreLo
|
||||
*/
|
||||
public void addOperationLog(String title, String subject, Object params) {
|
||||
CoreLogOperation operation = new CoreLogOperation();
|
||||
CurrentWebUser currentWebUser = tieshengWebConfigurer.getCurrentUserName();
|
||||
CurrentWebUser currentWebUser = tieshengWebConfigurer.getCurrentUserName(TsTokenConfig.get().getId());
|
||||
operation.setUserId(currentWebUser.getId());
|
||||
operation.setUserName(currentWebUser.getName());
|
||||
operation.setTitle(title);
|
||||
@@ -78,12 +78,11 @@ public class CoreLogService extends TsServiceBase<CoreLogOperationMapper, CoreLo
|
||||
HttpServletRequest request = ServletKit.getRequest();
|
||||
String ip = ServletUtil.getClientIP(request);
|
||||
|
||||
|
||||
CoreLogLogin login = new CoreLogLogin();
|
||||
login.setUserId(platformUnique.getUserId());
|
||||
login.setPlatform(platformUnique.getPlatform());
|
||||
|
||||
CurrentWebUser currentWebUser = tieshengWebConfigurer.getCurrentUserName();
|
||||
CurrentWebUser currentWebUser = tieshengWebConfigurer.getCurrentUserName(platformUnique.getUserId());
|
||||
login.setUserName(currentWebUser.getName());
|
||||
|
||||
login.setIp(ip);
|
||||
|
||||
@@ -2,10 +2,9 @@ package com.tiesheng.core.service;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.tiesheng.core.config.web.TieshengWebConfigurer;
|
||||
import com.tiesheng.core.mapper.CorePlatformUniqueMapper;
|
||||
import com.tiesheng.core.pojos.dao.CorePlatformUnique;
|
||||
import com.tiesheng.login.config.TieshengLoginConfigurer;
|
||||
import com.tiesheng.login.service.TieshengLoginConfigurer;
|
||||
import com.tiesheng.login.config.token.bean.TokenBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.tiesheng.core.service;
|
||||
import cn.hutool.core.io.FileTypeUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import com.tiesheng.core.config.web.TieshengWebConfigurer;
|
||||
import com.tiesheng.util.exception.ApiException;
|
||||
import com.tiesheng.util.pojos.FileUploadPath;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.tiesheng.core.config.web;
|
||||
package com.tiesheng.core.service;
|
||||
|
||||
import cn.hutool.log.LogFactory;
|
||||
import com.tiesheng.core.config.web.bean.CurrentWebUser;
|
||||
import com.tiesheng.core.pojos.CurrentWebUser;
|
||||
import com.tiesheng.core.pojos.dao.CorePlatformUnique;
|
||||
import com.tiesheng.login.config.token.bean.TokenBean;
|
||||
import com.tiesheng.util.exception.ApiException;
|
||||
@@ -23,7 +23,7 @@ public interface TieshengWebConfigurer {
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
CurrentWebUser getCurrentUserName();
|
||||
CurrentWebUser getCurrentUserName(String userId);
|
||||
|
||||
|
||||
/**
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.tiesheng.core.config.web;
|
||||
package com.tiesheng.core.service.impl;
|
||||
|
||||
import com.tiesheng.core.config.web.bean.CurrentWebUser;
|
||||
import com.tiesheng.login.config.token.TsTokenConfig;
|
||||
import com.tiesheng.core.pojos.CurrentWebUser;
|
||||
import com.tiesheng.core.service.TieshengWebConfigurer;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@@ -14,11 +14,10 @@ import org.springframework.context.annotation.Configuration;
|
||||
public class DefaultWebConfigurer implements TieshengWebConfigurer {
|
||||
|
||||
@Override
|
||||
public CurrentWebUser getCurrentUserName() {
|
||||
public CurrentWebUser getCurrentUserName(String userId) {
|
||||
CurrentWebUser webUser = new CurrentWebUser();
|
||||
webUser.setId(TsTokenConfig.getWithoutThr().getId());
|
||||
webUser.setId(userId);
|
||||
webUser.setName(webUser.getId());
|
||||
return webUser;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user