Compare commits

..

7 Commits
0.1.1 ... 0.1.4

Author SHA1 Message Date
曾文豪
ec865471cb publish 0.1.4 2023-01-11 15:46:14 +08:00
曾文豪
7d454e9c62 perf:调整授权登录 2023-01-11 15:46:02 +08:00
曾文豪
82c8e3f474 publish 0.1.3 2023-01-11 15:34:50 +08:00
曾文豪
b49e736f0d perf:调整授权登录 2023-01-11 15:34:15 +08:00
曾文豪
603b5abdfe perf:调整默认的合并表 2023-01-11 15:02:35 +08:00
曾文豪
8421bfb8cc publish 0.1.2 2023-01-11 14:41:38 +08:00
曾文豪
c6ee1f2279 perf:FileUploadPath兼容http地址 2023-01-11 14:40:27 +08:00
23 changed files with 240 additions and 87 deletions

20
pom.xml
View File

@@ -6,7 +6,7 @@
<groupId>com.tiesheng</groupId>
<artifactId>springboot-parent</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
<packaging>pom</packaging>
<name>springboot-parent</name>
<description>杭州铁晟科技有限公司基础依赖</description>
@@ -57,55 +57,55 @@
<dependency>
<groupId>com.tiesheng</groupId>
<artifactId>springboot-db-migration</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
</dependency>
<dependency>
<groupId>com.tiesheng</groupId>
<artifactId>springboot-login</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
</dependency>
<dependency>
<groupId>com.tiesheng</groupId>
<artifactId>springboot-web</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
</dependency>
<dependency>
<groupId>com.tiesheng</groupId>
<artifactId>springboot-util</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
</dependency>
<dependency>
<groupId>com.tiesheng</groupId>
<artifactId>springboot-platform</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
</dependency>
<dependency>
<groupId>com.tiesheng</groupId>
<artifactId>springboot-message</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
</dependency>
<dependency>
<groupId>com.tiesheng</groupId>
<artifactId>springboot-encrypt</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
</dependency>
<dependency>
<groupId>com.tiesheng</groupId>
<artifactId>springboot-annotation</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
</dependency>
<dependency>
<groupId>com.tiesheng</groupId>
<artifactId>springboot-poi</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
</dependency>
<dependency>

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.tiesheng</groupId>
<artifactId>springboot-parent</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
</parent>
<artifactId>springboot-ademo</artifactId>

View File

@@ -6,6 +6,7 @@ import com.tiesheng.message.config.aliyun.AliyunSmsConfig;
import com.tiesheng.message.pojos.MessageReqResp;
import com.tiesheng.util.config.GlobalConfig;
import com.tiesheng.util.pojos.ApiResp;
import com.tiesheng.util.pojos.FileUploadPath;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -62,4 +63,11 @@ public class TestController {
return ApiResp.respOK("");
}
@RequestMapping("/uploadPath")
@TokenIgnore
public ApiResp<String> uploadPath() {
FileUploadPath uploadPath = FileUploadPath.get("http://scv6.tmp.kepai365.ltd/upload/2023-01/2b4b6b7b-70d0-4683-859a-f799adc4f04c.xls");
return ApiResp.respOK(uploadPath.getAbsolutePath());
}
}

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.tiesheng</groupId>
<artifactId>springboot-parent</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
</parent>
<artifactId>springboot-annotation</artifactId>

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.tiesheng</groupId>
<artifactId>springboot-parent</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
</parent>
<artifactId>springboot-db-migration</artifactId>

View File

@@ -19,7 +19,7 @@ import java.util.List;
@ConfigurationProperties(prefix = "tiesheng.db-migration")
public class DbMigrationConfig {
private String table = "core_db_migration";
private String table = "core_config_db";
private List<String> locations = CollUtil.newArrayList("classpath*:db/migration/*.sql");
private String ignoreSqls = "drop,delete";
@@ -41,7 +41,7 @@ public class DbMigrationConfig {
" `file` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件名称',\n" +
" `checksum` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件checksum',\n" +
" PRIMARY KEY (`id`) USING BTREE\n" +
") ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'db-合并' ROW_FORMAT = Dynamic;");
") ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '配置-数据库' ROW_FORMAT = Dynamic;");
}
}

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.tiesheng</groupId>
<artifactId>springboot-parent</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
</parent>
<artifactId>springboot-encrypt</artifactId>

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.tiesheng</groupId>
<artifactId>springboot-parent</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
</parent>
<artifactId>springboot-login</artifactId>

View File

@@ -6,7 +6,9 @@ import cn.hutool.core.util.URLUtil;
import com.alibaba.fastjson.JSON;
import com.tiesheng.annotation.token.TokenIgnore;
import com.tiesheng.login.config.token.bean.TokenBean;
import com.tiesheng.login.pojos.dto.UniqueIndexDTO;
import com.tiesheng.login.pojos.CodeExtraDTO;
import com.tiesheng.login.pojos.DoLoginInfo;
import com.tiesheng.login.pojos.UniqueIndexDTO;
import com.tiesheng.login.service.TieshengLoginConfigurer;
import com.tiesheng.platform.config.ding.PlatformDingConfig;
import com.tiesheng.platform.config.ding.bean.DingJsapiSignature;
@@ -51,9 +53,9 @@ public class LoginController {
@GetMapping("/unique/redirect")
@TokenIgnore
public void uniqueIndex(UniqueIndexDTO dto, HttpServletResponse response) {
TokenBean tokenBean = tieshengLoginConfigurer.doLogin("unique_index_" + dto.getPlatform(),
dto.getNo(), dto.getPlatform(), dto.getInfo());
tieshengLoginConfigurer.onLoginRedirect(tokenBean, dto.getExtra(), response);
TokenBean tokenBean = tieshengLoginConfigurer.doLogin(new DoLoginInfo("unique_index_web",
dto.getNo(), "web", dto.getDefaultTo(), dto.getInfo()));
tieshengLoginConfigurer.onLoginRedirect(tokenBean, dto.getDefaultTo(), dto.getExtra(), response);
}
@@ -66,8 +68,8 @@ public class LoginController {
@PostMapping("/unique/index")
@TokenIgnore
public ApiResp<String> uniqueIndex(@RequestBody UniqueIndexDTO dto) {
TokenBean tokenBean = tieshengLoginConfigurer.doLogin("unique_index_" + dto.getPlatform(),
dto.getNo(), dto.getPlatform(), dto.getInfo());
TokenBean tokenBean = tieshengLoginConfigurer.doLogin(new DoLoginInfo("unique_index_web",
dto.getNo(), "web", dto.getDefaultTo(), dto.getInfo()));
if (tokenBean == null) {
throw new ApiException("登录失败");
}
@@ -112,12 +114,13 @@ public class LoginController {
*/
@RequestMapping("/ding/oauth2/{service}")
@TokenIgnore
public void dingOauth2(@PathVariable String service, String code, String extra, HttpServletResponse response) {
String ddUserId = platformDingConfig.getUserIdByCode(service, code);
public void dingOauth2(@PathVariable String service, CodeExtraDTO dto, HttpServletResponse response) {
String ddUserId = platformDingConfig.getUserIdByCode(service, dto.getCode());
DingUserInfo dingUserInfo = platformDingConfig.topapiV2UserGet(service, ddUserId);
TokenBean tokenBean = tieshengLoginConfigurer.doLogin(dingUserInfo.getAppId(), dingUserInfo.getUserid(), "ding",
JSON.toJSONString(dingUserInfo));
tieshengLoginConfigurer.onLoginRedirect(tokenBean, extra, response);
TokenBean tokenBean = tieshengLoginConfigurer.doLogin(new DoLoginInfo(dingUserInfo.getAppId(),
dingUserInfo.getUserid(), "ding", dto.getDefaultTo(),
JSON.toJSONString(dingUserInfo)));
tieshengLoginConfigurer.onLoginRedirect(tokenBean, dto.getDefaultTo(), dto.getExtra(), response);
}
@@ -159,15 +162,14 @@ public class LoginController {
/**
* 微信授权回调
*
* @param code
*/
@RequestMapping("/wxmp/oauth2/{service}")
@TokenIgnore
public void wxmpOauth2(@PathVariable String service, String code, String extra, HttpServletResponse response) {
WxUserInfo wxUserInfo = platformWxmpConfig.getOAuth2AccessToken(service, code);
TokenBean tokenBean = tieshengLoginConfigurer.doLogin(wxUserInfo.getAppId(), wxUserInfo.getOpenid(), "wxmp", JSON.toJSONString(wxUserInfo));
tieshengLoginConfigurer.onLoginRedirect(tokenBean, extra, response);
public void wxmpOauth2(@PathVariable String service, CodeExtraDTO dto, HttpServletResponse response) {
WxUserInfo wxUserInfo = platformWxmpConfig.getOAuth2AccessToken(service, dto.getCode());
TokenBean tokenBean = tieshengLoginConfigurer.doLogin(new DoLoginInfo(wxUserInfo.getAppId(),
wxUserInfo.getOpenid(), "wxmp", dto.getDefaultTo(), JSON.toJSONString(wxUserInfo)));
tieshengLoginConfigurer.onLoginRedirect(tokenBean, dto.getDefaultTo(), dto.getExtra(), response);
}

View File

@@ -0,0 +1,28 @@
package com.tiesheng.login.pojos;
public class CodeExtraDTO extends LoginToInfo {
private String code;
private String extra;
///////////////////////////////////////////////////////////////////////////
// setter\getter
///////////////////////////////////////////////////////////////////////////
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getExtra() {
return extra;
}
public void setExtra(String extra) {
this.extra = extra;
}
}

View File

@@ -0,0 +1,71 @@
package com.tiesheng.login.pojos;
public class DoLoginInfo {
private String appId;
private String unique;
private String platform;
private String to;
private String info;
private String extra;
public DoLoginInfo(String appId, String unique, String platform, String to, String info) {
this.appId = appId;
this.unique = unique;
this.platform = platform;
this.to = to;
this.info = info;
}
///////////////////////////////////////////////////////////////////////////
// setter\getter
///////////////////////////////////////////////////////////////////////////
public String getAppId() {
return appId;
}
public void setAppId(String appId) {
this.appId = appId;
}
public String getUnique() {
return unique;
}
public void setUnique(String unique) {
this.unique = unique;
}
public String getPlatform() {
return platform;
}
public void setPlatform(String platform) {
this.platform = platform;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
public String getExtra() {
return extra;
}
public void setExtra(String extra) {
this.extra = extra;
}
}

View File

@@ -0,0 +1,42 @@
package com.tiesheng.login.pojos;
import cn.hutool.core.util.StrUtil;
public class LoginToInfo {
private String to;
/**
* 获取默认的去往目的地
*
* @param def
* @return
*/
public String getDefaultTo(String def) {
if (StrUtil.isEmpty(getTo())) {
return def;
}
return getTo();
}
/**
* 获取默认的去往目的地
*
* @return
*/
public String getDefaultTo() {
return getDefaultTo("mobile");
}
///////////////////////////////////////////////////////////////////////////
// setter\getter
///////////////////////////////////////////////////////////////////////////
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
}

View File

@@ -1,11 +1,10 @@
package com.tiesheng.login.pojos.dto;
package com.tiesheng.login.pojos;
import cn.hutool.core.util.StrUtil;
public class UniqueIndexDTO {
public class UniqueIndexDTO extends LoginToInfo {
private String no;
private String platform;
private String extra;
private String info;
@@ -21,14 +20,6 @@ public class UniqueIndexDTO {
this.no = no;
}
public String getPlatform() {
return platform;
}
public void setPlatform(String platform) {
this.platform = platform;
}
public String getExtra() {
if (StrUtil.isEmpty(extra)) {
extra = "";

View File

@@ -1,6 +1,7 @@
package com.tiesheng.login.service;
import com.tiesheng.login.config.token.bean.TokenBean;
import com.tiesheng.login.pojos.DoLoginInfo;
import org.springframework.context.annotation.Configuration;
import javax.servlet.http.HttpServletResponse;
@@ -16,7 +17,7 @@ public interface TieshengLoginConfigurer {
*
* @return
*/
TokenBean doLogin(String appId, String uniqueId, String platfrom, String info);
TokenBean doLogin(DoLoginInfo loginInfo);
/**
@@ -24,7 +25,7 @@ public interface TieshengLoginConfigurer {
*
* @param tokenBean
*/
void onLoginRedirect(TokenBean bean, String extra, HttpServletResponse response);
void onLoginRedirect(TokenBean bean, String to, String extra, HttpServletResponse response);
}

View File

@@ -1,6 +1,7 @@
package com.tiesheng.login.service.impl;
import com.tiesheng.login.config.token.bean.TokenBean;
import com.tiesheng.login.pojos.DoLoginInfo;
import com.tiesheng.login.service.TieshengLoginConfigurer;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Configuration;
@@ -15,12 +16,12 @@ import javax.servlet.http.HttpServletResponse;
public class DefaultLoginConfigurer implements TieshengLoginConfigurer {
@Override
public TokenBean doLogin(String appId, String uniqueId, String platfrom, String info) {
public TokenBean doLogin(DoLoginInfo loginInfo) {
return null;
}
@Override
public void onLoginRedirect(TokenBean bean, String extra, HttpServletResponse response) {
public void onLoginRedirect(TokenBean bean, String to, String extra, HttpServletResponse response) {
}
}

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.tiesheng</groupId>
<artifactId>springboot-parent</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
</parent>
<artifactId>springboot-message</artifactId>

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.tiesheng</groupId>
<artifactId>springboot-parent</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
</parent>
<artifactId>springboot-platform</artifactId>

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.tiesheng</groupId>
<artifactId>springboot-parent</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
</parent>
<artifactId>springboot-poi</artifactId>

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.tiesheng</groupId>
<artifactId>springboot-parent</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
</parent>
<artifactId>springboot-util</artifactId>

View File

@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
public class FileUploadPath {
@@ -29,6 +30,10 @@ public class FileUploadPath {
* @return
*/
public static FileUploadPath get(String fileName) {
// 下载文件
fileName = downloadFile(fileName);
FileUploadPath pathBean = new FileUploadPath();
String tempPath = fileName;
@@ -43,6 +48,26 @@ public class FileUploadPath {
}
/**
* 下载http文件
*
* @param fileName
* @return
*/
public static String downloadFile(String fileName) {
if (!StrUtil.startWith(fileName, "http")) {
return fileName;
}
String newFileName = UPLOAD_FOLDER + StrUtil.subAfter(fileName, UPLOAD_FOLDER, true);
FileUploadPath uploadPath = get(newFileName);
if (!FileUtil.exist(uploadPath.getAbsolutePath())) {
HttpUtil.downloadFile(fileName, uploadPath.getAbsolutePath());
}
return uploadPath.getHttpPath();
}
/**
* 随机生成一个文件路径
*

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.tiesheng</groupId>
<artifactId>springboot-parent</artifactId>
<version>0.1.1</version>
<version>0.1.4</version>
</parent>
<artifactId>springboot-web</artifactId>

View File

@@ -4,8 +4,9 @@ import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.tiesheng.core.mapper.CorePlatformUniqueMapper;
import com.tiesheng.core.pojos.dao.CorePlatformUnique;
import com.tiesheng.login.service.TieshengLoginConfigurer;
import com.tiesheng.login.config.token.bean.TokenBean;
import com.tiesheng.login.pojos.DoLoginInfo;
import com.tiesheng.login.service.TieshengLoginConfigurer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -24,11 +25,18 @@ public class CorePlatformUniqueService extends TsServiceBase<CorePlatformUniqueM
CoreLogService coreLogService;
@Override
public TokenBean doLogin(String appId, String uniqueId, String platfrom, String info) {
public TokenBean doLogin(DoLoginInfo loginInfo) {
CorePlatformUnique platformUnique = getByAppAndUnique(appId, uniqueId, platfrom);
platformUnique.setInfo(info);
TokenBean tokenBean = tieshengWebConfigurer.loginConfigurer().doLogin(platformUnique);
CorePlatformUnique platformUnique = getOneByColumn("unique_id", loginInfo.getUnique());
if (platformUnique == null) {
platformUnique = new CorePlatformUnique();
platformUnique.setAppId(loginInfo.getAppId());
platformUnique.setPlatform(loginInfo.getPlatform());
platformUnique.setUniqueId(loginInfo.getUnique());
}
platformUnique.setInfo(loginInfo.getInfo());
TokenBean tokenBean = tieshengWebConfigurer.loginConfigurer().doLogin(platformUnique, loginInfo.getTo());
if (tokenBean != null) {
platformUnique.setUserId(tokenBean.getId());
platformUnique.setIsDeleted(0);
@@ -41,32 +49,8 @@ public class CorePlatformUniqueService extends TsServiceBase<CorePlatformUniqueM
}
@Override
public void onLoginRedirect(TokenBean bean, String extra, HttpServletResponse response) {
tieshengWebConfigurer.loginConfigurer().redirect(bean, extra, response);
}
/**
* 通过appId获取登录对象
*
* @param appId
* @param uniqueId
* @return
*/
private CorePlatformUnique getByAppAndUnique(String appId, String uniqueId, String platform) {
QueryWrapper<CorePlatformUnique> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("app_id", appId);
queryWrapper.eq("unique_id", uniqueId);
queryWrapper.eq("platform", platform);
queryWrapper.last("limit 1");
CorePlatformUnique platformUnique = getOne(queryWrapper);
if (platformUnique == null) {
platformUnique = new CorePlatformUnique();
platformUnique.setAppId(appId);
platformUnique.setUniqueId(uniqueId);
platformUnique.setPlatform(platform);
}
return platformUnique;
public void onLoginRedirect(TokenBean bean, String to, String extra, HttpServletResponse response) {
tieshengWebConfigurer.loginConfigurer().redirect(bean, to, extra, response);
}

View File

@@ -71,7 +71,7 @@ public interface TieshengWebConfigurer {
* @param platformUnique
* @return
*/
TokenBean doLogin(CorePlatformUnique platformUnique);
TokenBean doLogin(CorePlatformUnique platformUnique, String to);
/**
@@ -81,7 +81,7 @@ public interface TieshengWebConfigurer {
* @param extra
* @param response
*/
void redirect(TokenBean bean, String extra, HttpServletResponse response);
void redirect(TokenBean bean, String to, String extra, HttpServletResponse response);
}