Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5c0d47a011 | ||
|
|
08066f1367 | ||
|
|
9e7ed69d37 | ||
|
|
2793b2a634 | ||
|
|
9885e640e9 | ||
|
|
9b285db5bd | ||
|
|
abbfac2f08 | ||
|
|
fba88da506 | ||
|
|
cb6e1c85b2 | ||
|
|
2649070850 | ||
|
|
48a9d46d20 | ||
|
|
f8d7e49290 | ||
|
|
2cf88cefa7 | ||
|
|
9a56994342 | ||
|
|
a987689bd6 | ||
|
|
690dffa779 | ||
|
|
3ccbd6cd8e | ||
|
|
89e0c5d1d5 | ||
|
|
b15dbc6d4c | ||
|
|
2f6b5b0b05 |
@@ -50,7 +50,7 @@
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>kepai-repo</id>
|
||||
<url>http://git.kepai365.com/tiesheng/repository/raw/master</url>
|
||||
<url>https://git.tieshengkeji.com/api/packages/tieshengkeji/maven</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
```
|
||||
|
||||
22
pom.xml
22
pom.xml
@@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||
<artifactId>springboot-parent</artifactId>
|
||||
<version>2.0.13</version>
|
||||
<version>2.0.23</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>springboot-parent</name>
|
||||
<description>杭州铁晟科技有限公司基础依赖</description>
|
||||
@@ -58,49 +58,49 @@
|
||||
<dependency>
|
||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||
<artifactId>springboot-database</artifactId>
|
||||
<version>2.0.13</version>
|
||||
<version>2.0.23</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||
<artifactId>springboot-login</artifactId>
|
||||
<version>2.0.13</version>
|
||||
<version>2.0.23</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||
<artifactId>springboot-web</artifactId>
|
||||
<version>2.0.13</version>
|
||||
<version>2.0.23</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||
<artifactId>springboot-util</artifactId>
|
||||
<version>2.0.13</version>
|
||||
<version>2.0.23</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||
<artifactId>springboot-platform</artifactId>
|
||||
<version>2.0.13</version>
|
||||
<version>2.0.23</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||
<artifactId>springboot-message</artifactId>
|
||||
<version>2.0.13</version>
|
||||
<version>2.0.23</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||
<artifactId>springboot-role</artifactId>
|
||||
<version>2.0.13</version>
|
||||
<version>2.0.23</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||
<artifactId>springboot-annotation</artifactId>
|
||||
<version>2.0.13</version>
|
||||
<version>2.0.23</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
@@ -120,8 +120,8 @@
|
||||
|
||||
<pluginRepositories>
|
||||
<pluginRepository>
|
||||
<id>kepai-repo-plugin</id>
|
||||
<url>http://git.kepai365.com/tiesheng/repository/raw/master</url>
|
||||
<id>tiesheng-repo-plugin</id>
|
||||
<url>https://git.tieshengkeji.com/api/packages/tieshengkeji/maven</url>
|
||||
</pluginRepository>
|
||||
</pluginRepositories>
|
||||
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
<parent>
|
||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||
<artifactId>springboot-parent</artifactId>
|
||||
<version>2.0.13</version>
|
||||
<version>2.0.23</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>springboot-ademo</artifactId>
|
||||
<version>2.0.13</version>
|
||||
<version>2.0.23</version>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
@@ -46,8 +46,8 @@
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>kepai-repo</id>
|
||||
<url>http://git.kepai365.com/tiesheng/repository/raw/master</url>
|
||||
<id>tiesheng-repo</id>
|
||||
<url>https://git.tieshengkeji.com/api/packages/tieshengkeji/maven</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.tiesheng.annotation.role.RoleAuthority;
|
||||
import com.tiesheng.annotation.token.TokenIgnore;
|
||||
import com.tiesheng.database.config.DbBackupConfig;
|
||||
import com.tiesheng.demo.pojos.CustTokenBean;
|
||||
import com.tiesheng.demo.pojos.JsonTest;
|
||||
import com.tiesheng.demo.pojos.PoiBean;
|
||||
import com.tiesheng.platform.config.ding.PlatformDingConfig;
|
||||
@@ -43,7 +44,6 @@ import java.util.function.Consumer;
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/test")
|
||||
@RoleAuthority(value = "test", group = "test")
|
||||
public class TestController {
|
||||
|
||||
@Autowired
|
||||
@@ -65,9 +65,8 @@ public class TestController {
|
||||
|
||||
|
||||
@RequestMapping("/index")
|
||||
@TokenIgnore
|
||||
public void index(HttpServletResponse response) {
|
||||
globalConfig.redirect("mobile", "/test", response);
|
||||
globalConfig.redirectWithVer("mobile", "/test", response);
|
||||
}
|
||||
|
||||
@RequestMapping("/redirect")
|
||||
@@ -75,7 +74,8 @@ public class TestController {
|
||||
@RoleAuthority("redirect")
|
||||
public ApiResp<JsonTest> redirect(HttpServletResponse response) {
|
||||
|
||||
encryptConfig.passwdCreate("111111@Zz", "");
|
||||
String s1 = encryptConfig.passwdCreate("qU3?wE3{bX", "");
|
||||
LogFactory.get().info(s1);
|
||||
|
||||
JsonTest jsonTest = new JsonTest();
|
||||
jsonTest.setNow(DateUtil.date());
|
||||
@@ -112,8 +112,9 @@ public class TestController {
|
||||
|
||||
|
||||
@GetMapping("/send")
|
||||
@TokenIgnore
|
||||
public ApiResp<String> sendMessage() {
|
||||
public ApiResp<String> sendMessage(CustTokenBean tokenBean) {
|
||||
|
||||
tokenBean.test();
|
||||
|
||||
// MessageReqResp reqResp = coreMessageService.send(new UserChannel("13567116463", "sms"),
|
||||
// JSONUtil.createObj().putOpt("action", "sms-visitor-invite"));
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.tiesheng.demo.pojos;
|
||||
|
||||
import com.tiesheng.util.pojos.TokenBean;
|
||||
|
||||
public class CustTokenBean extends TokenBean {
|
||||
|
||||
|
||||
public void test() {
|
||||
System.out.println("test: " + getId());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||
<artifactId>springboot-parent</artifactId>
|
||||
<version>2.0.13</version>
|
||||
<version>2.0.23</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>springboot-annotation</artifactId>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||
<artifactId>springboot-parent</artifactId>
|
||||
<version>2.0.13</version>
|
||||
<version>2.0.23</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>springboot-database</artifactId>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||
<artifactId>springboot-parent</artifactId>
|
||||
<version>2.0.13</version>
|
||||
<version>2.0.23</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>springboot-login</artifactId>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.tiesheng.login.config;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.tiesheng.annotation.token.TokenIgnore;
|
||||
@@ -40,7 +41,7 @@ public class TokenWebMvcConfigurer implements WebMvcConfigurer {
|
||||
resolvers.add(new HandlerMethodArgumentResolver() {
|
||||
@Override
|
||||
public boolean supportsParameter(MethodParameter parameter) {
|
||||
return parameter.getParameterType().isAssignableFrom(TokenBean.class);
|
||||
return TokenBean.class.isAssignableFrom(parameter.getParameterType());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -54,7 +55,9 @@ public class TokenWebMvcConfigurer implements WebMvcConfigurer {
|
||||
TokenIgnore annotation = method.getAnnotation(TokenIgnore.class);
|
||||
thrExp = annotation == null;
|
||||
}
|
||||
return tsTokenConfig.validToken(header, thrExp);
|
||||
|
||||
TokenBean tokenBean = tsTokenConfig.validToken(header, thrExp);
|
||||
return BeanUtil.copyProperties(tokenBean, parameter.getParameterType());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -43,9 +43,12 @@ public class CorePlatformUniqueService extends TsServiceBase<CorePlatformUniqueM
|
||||
*/
|
||||
public TokenBean login(DoLoginInfo loginInfo) {
|
||||
|
||||
int loginErrorTimes = coreLogLoginMapper.getLoginErrorTimes(loginInfo.getLoginIp());
|
||||
if (loginErrorTimes > 4) {
|
||||
throw new ApiException("登录失败已达5次,请10分钟后再试");
|
||||
int loginErrorTimes = tsLoginConfigurer.getLoginErrorTimes();
|
||||
if (loginErrorTimes > 0) {
|
||||
int currentErrorTimes = coreLogLoginMapper.getLoginErrorTimes(loginInfo.getLoginIp());
|
||||
if (currentErrorTimes >= loginErrorTimes) {
|
||||
throw new ApiException("登录失败已达" + loginErrorTimes + "次,请10分钟后再试");
|
||||
}
|
||||
}
|
||||
|
||||
CorePlatformUnique platformUnique = getOneByColumn("unique_id", loginInfo.getUnique());
|
||||
|
||||
@@ -36,7 +36,7 @@ public interface TsLoginConfigurer {
|
||||
/**
|
||||
* 登录失败的时候
|
||||
*/
|
||||
default void onLoginError(String to,HttpServletResponse response) {
|
||||
default void onLoginError(String to, HttpServletResponse response) {
|
||||
ServletKit.write(response, "404", "text");
|
||||
}
|
||||
|
||||
@@ -66,4 +66,14 @@ public interface TsLoginConfigurer {
|
||||
*/
|
||||
RequestUserInfo getCurrentUserName(TokenBean userId);
|
||||
|
||||
|
||||
/**
|
||||
* 获取登录失败的次数,默认0次,不校验
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
default int getLoginErrorTimes() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -17,7 +17,8 @@ CREATE TABLE `core_log_login`
|
||||
`address` varchar(255) DEFAULT NULL COMMENT 'ip地址',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4 COMMENT ='日志-登录';
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
COLLATE = utf8mb4_general_ci COMMENT ='日志-登录';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for core_platform_unique
|
||||
@@ -35,6 +36,7 @@ CREATE TABLE `core_platform_unique`
|
||||
`info` text COMMENT '其他参数',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4 COMMENT ='平台-唯一值';
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
COLLATE = utf8mb4_general_ci COMMENT ='平台-唯一值';
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||
<artifactId>springboot-parent</artifactId>
|
||||
<version>2.0.13</version>
|
||||
<version>2.0.23</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>springboot-message</artifactId>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||
<artifactId>springboot-parent</artifactId>
|
||||
<version>2.0.13</version>
|
||||
<version>2.0.23</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>springboot-platform</artifactId>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||
<artifactId>springboot-parent</artifactId>
|
||||
<version>2.0.13</version>
|
||||
<version>2.0.23</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>springboot-role</artifactId>
|
||||
|
||||
@@ -24,6 +24,7 @@ create table core_role_authority
|
||||
ext3 varchar(500) null comment '扩展3'
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
COLLATE = utf8mb4_general_ci
|
||||
comment '角色-权限';
|
||||
|
||||
create table core_role_group
|
||||
@@ -43,6 +44,7 @@ create table core_role_group
|
||||
ext3 varchar(500) null comment '扩展3'
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
COLLATE = utf8mb4_general_ci
|
||||
comment '角色-分组';
|
||||
|
||||
create table core_role_group_rx
|
||||
@@ -56,6 +58,7 @@ create table core_role_group_rx
|
||||
menu_id varchar(50) not null comment '菜单id'
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
COLLATE = utf8mb4_general_ci
|
||||
comment '角色-分组-关系';
|
||||
|
||||
create table core_role_server
|
||||
@@ -76,6 +79,7 @@ create table core_role_server
|
||||
ext3 varchar(500) null comment '扩展3'
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
COLLATE = utf8mb4_general_ci
|
||||
comment '角色-服务';
|
||||
|
||||
create table core_role_user
|
||||
@@ -94,6 +98,7 @@ create table core_role_user
|
||||
ext3 varchar(500) null comment '扩展3'
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
COLLATE = utf8mb4_general_ci
|
||||
comment '角色-用户';
|
||||
|
||||
alter table core_role_authority
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||
<artifactId>springboot-parent</artifactId>
|
||||
<version>2.0.13</version>
|
||||
<version>2.0.23</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>springboot-util</artifactId>
|
||||
|
||||
@@ -95,12 +95,13 @@ public class GlobalConfig {
|
||||
|
||||
|
||||
/**
|
||||
* 重定向
|
||||
* 构建待版本号的路径
|
||||
*
|
||||
* @param htmlDir 资源目录
|
||||
* @param htmlDir
|
||||
* @param route
|
||||
* @return
|
||||
*/
|
||||
public void redirect(String htmlDir, String route, HttpServletResponse response) {
|
||||
public String buildByVersion(String htmlDir, String route) {
|
||||
if (!StrUtil.endWith(htmlDir, "/")) {
|
||||
htmlDir = htmlDir + "/";
|
||||
}
|
||||
@@ -129,16 +130,32 @@ public class GlobalConfig {
|
||||
throw new ApiException("无法重定向,请检查资源");
|
||||
}
|
||||
CollUtil.sort(versions, (o1, o2) -> -VersionComparator.INSTANCE.compare(o1, o2));
|
||||
String path = buildPath(String.format("/%s%s/index.html#%s", htmlDir, versions.get(0), route));
|
||||
response.sendRedirect(path);
|
||||
return buildPath(String.format("/%s%s/index.html#%s", htmlDir, versions.get(0), route));
|
||||
} catch (IOException e) {
|
||||
LogFactory.get().info(e);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 重定向
|
||||
*
|
||||
* @param htmlDir 资源目录
|
||||
* @param route
|
||||
*/
|
||||
public void redirectWithVer(String htmlDir, String route, HttpServletResponse response) {
|
||||
try {
|
||||
response.sendRedirect(buildByVersion(htmlDir, route));
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// setter\getter
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/// ////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
public String getUploadDir() {
|
||||
|
||||
@@ -16,7 +16,7 @@ import javax.annotation.PostConstruct;
|
||||
@ConfigurationProperties(prefix = "tiesheng.ip2region")
|
||||
public class Ip2regionConfig {
|
||||
|
||||
private String dbUrl = "http://git.kepai365.com/tiesheng/repository/raw/master/ipdb/ip2region.xdb";
|
||||
private String dbUrl = "https://git.tieshengkeji.com/tieshengkeji/Ip2region/raw/branch/main/ip2region.xdb";
|
||||
private String dbPath = System.getProperty("user.dir") + "/runtime/ip2region/ip2region.xdb";
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||
<artifactId>springboot-parent</artifactId>
|
||||
<version>2.0.13</version>
|
||||
<version>2.0.23</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>springboot-web</artifactId>
|
||||
|
||||
@@ -4,7 +4,6 @@ package com.tiesheng.web.controller.system;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.tiesheng.annotation.role.RoleAuthority;
|
||||
import com.tiesheng.util.exception.ApiException;
|
||||
import com.tiesheng.util.pojos.ApiResp;
|
||||
import com.tiesheng.util.pojos.PageDTO;
|
||||
import com.tiesheng.web.pojos.dao.CoreConfigSystem;
|
||||
@@ -57,21 +56,8 @@ public class ConfigSystemController {
|
||||
*/
|
||||
@PostMapping("/system/update")
|
||||
public ApiResp<String> systemUpdate(@RequestBody ConfigSystemDTO dto) {
|
||||
|
||||
CoreConfigSystem configKey = coreConfigService.getOneByColumn("config_key", dto.getConfigKey());
|
||||
if (configKey == null) {
|
||||
throw new ApiException("该配置不存在,请检查");
|
||||
}
|
||||
if (configKey.getReadOnly() == 1) {
|
||||
throw new ApiException("该配置只读,不可修改");
|
||||
}
|
||||
configKey.setConfigVal(dto.getConfigVal());
|
||||
configKey.setRemark(dto.getRemark());
|
||||
configKey.setExtra(dto.getExtra());
|
||||
|
||||
tieshengWebConfigurer.configSystemCheck(configKey);
|
||||
coreConfigService.updateById(configKey);
|
||||
|
||||
tieshengWebConfigurer.configSystemCheck(dto);
|
||||
coreConfigService.updateConfigSystem(dto);
|
||||
return ApiResp.respOK("");
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
package com.tiesheng.web.service;
|
||||
|
||||
import com.tiesheng.util.exception.ApiException;
|
||||
import com.tiesheng.util.service.TsCacheService;
|
||||
import com.tiesheng.util.service.TsServiceBase;
|
||||
import com.tiesheng.web.mapper.CoreConfigEnumMapper;
|
||||
import com.tiesheng.web.mapper.CoreConfigSystemMapper;
|
||||
import com.tiesheng.web.pojos.dao.CoreConfigSystem;
|
||||
import com.tiesheng.util.service.TsServiceBase;
|
||||
import com.tiesheng.web.pojos.dto.config.ConfigSystemDTO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @author hao
|
||||
*/
|
||||
@@ -15,6 +20,11 @@ public class CoreConfigService extends TsServiceBase<CoreConfigSystemMapper, Cor
|
||||
|
||||
@Autowired
|
||||
CoreConfigEnumMapper coreConfigEnumMapper;
|
||||
@Resource
|
||||
TsCacheService tsCacheService;
|
||||
|
||||
|
||||
private static final String CONFIG_SYSTEM_PREFIX = "CONFIG:SYSTEM:";
|
||||
|
||||
public CoreConfigEnumMapper getEnumMapper() {
|
||||
return coreConfigEnumMapper;
|
||||
@@ -28,17 +38,51 @@ public class CoreConfigService extends TsServiceBase<CoreConfigSystemMapper, Cor
|
||||
* @return
|
||||
*/
|
||||
public CoreConfigSystem getTextOrCreate(String configKey, String defaultValue) {
|
||||
CoreConfigSystem oneByColumn = getOneByColumn("config_key", configKey);
|
||||
CoreConfigSystem oneByColumn = tsCacheService.getObj(CONFIG_SYSTEM_PREFIX + configKey,
|
||||
CoreConfigSystem.class, -1);
|
||||
|
||||
if (oneByColumn != null) {
|
||||
return oneByColumn;
|
||||
}
|
||||
|
||||
oneByColumn = getOneByColumn("config_key", configKey);
|
||||
if (oneByColumn == null) {
|
||||
oneByColumn = new CoreConfigSystem();
|
||||
oneByColumn.setId(configKey);
|
||||
oneByColumn.setConfigKey(configKey);
|
||||
oneByColumn.setConfigVal(defaultValue);
|
||||
oneByColumn.setRemark(defaultValue);
|
||||
oneByColumn.setRemark(configKey);
|
||||
oneByColumn.setConfigType(0);
|
||||
save(oneByColumn);
|
||||
}
|
||||
|
||||
tsCacheService.putObj(CONFIG_SYSTEM_PREFIX + configKey, oneByColumn, 10 * 60);
|
||||
|
||||
return oneByColumn;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 更新数据
|
||||
*
|
||||
* @param dto
|
||||
*/
|
||||
public void updateConfigSystem(ConfigSystemDTO dto) {
|
||||
CoreConfigSystem coreConfigSystem = getOneByColumn("config_key", dto.getConfigKey());
|
||||
if (coreConfigSystem == null) {
|
||||
throw new ApiException("该配置不存在,请检查");
|
||||
}
|
||||
if (coreConfigSystem.getReadOnly() == 1) {
|
||||
throw new ApiException("该配置只读,不可修改");
|
||||
}
|
||||
coreConfigSystem.setConfigVal(dto.getConfigVal());
|
||||
coreConfigSystem.setRemark(dto.getRemark());
|
||||
coreConfigSystem.setExtra(dto.getExtra());
|
||||
updateById(coreConfigSystem);
|
||||
|
||||
tsCacheService.putObj(CONFIG_SYSTEM_PREFIX + coreConfigSystem.getConfigKey(),
|
||||
coreConfigSystem, 10 * 60);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.tiesheng.web.service;
|
||||
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.tiesheng.web.mapper.CoreLogApiMapper;
|
||||
import com.tiesheng.web.pojos.dao.CoreLogApi;
|
||||
@@ -12,6 +11,8 @@ import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.io.IOException;
|
||||
import java.util.Objects;
|
||||
|
||||
@Component
|
||||
public class OkHttpLogInterceptor implements Interceptor {
|
||||
@@ -22,11 +23,14 @@ public class OkHttpLogInterceptor implements Interceptor {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Response intercept(@NotNull Chain chain) {
|
||||
|
||||
CoreLogApi logApi = new CoreLogApi();
|
||||
public Response intercept(@NotNull Chain chain) throws IOException {
|
||||
|
||||
Request request = chain.request();
|
||||
if (Objects.equals(request.header("skipApiLog"), "true")) {
|
||||
return chain.proceed(request);
|
||||
}
|
||||
|
||||
CoreLogApi logApi = new CoreLogApi();
|
||||
logApi.setUrl(request.url().toString());
|
||||
logApi.setContent(requestBody2String(request));
|
||||
|
||||
@@ -47,10 +51,29 @@ public class OkHttpLogInterceptor implements Interceptor {
|
||||
}
|
||||
} catch (Exception e) {
|
||||
JSONObject object = new JSONObject();
|
||||
object.put("code", -1);
|
||||
object.put("message", JSON.toJSONString(e));
|
||||
object.put("code", 500);
|
||||
object.put("message", e.getMessage());
|
||||
object.put("exception", e);
|
||||
logApi.setRespBody(object.toJSONString());
|
||||
|
||||
response = new Response.Builder()
|
||||
|
||||
// 必须设置请求对象
|
||||
.request(chain.request())
|
||||
|
||||
// 指定协议版本
|
||||
.protocol(Protocol.HTTP_1_1)
|
||||
|
||||
// 设置HTTP状态码
|
||||
.code(object.getInteger("code"))
|
||||
|
||||
// 状态信息
|
||||
.message(object.getString("message"))
|
||||
|
||||
// 设置响应体
|
||||
.body(ResponseBody.create(MediaType.parse("application/json"), object.toJSONString()))
|
||||
.headers(new Headers.Builder().build()) // 可选:设置响应头
|
||||
.build();
|
||||
}
|
||||
|
||||
ThreadUtil.execute(() -> coreLogApiMapper.insert(logApi));
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.tiesheng.login.service.TsLoginConfigurer;
|
||||
import com.tiesheng.util.exception.ApiRespEnum;
|
||||
import com.tiesheng.util.pojos.ApiResp;
|
||||
import com.tiesheng.web.pojos.dao.CoreConfigSystem;
|
||||
import com.tiesheng.web.pojos.dto.config.ConfigSystemDTO;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
@@ -58,7 +59,7 @@ public interface TieshengWebConfigurer {
|
||||
* 系统配置验证
|
||||
* 如果不符合规则,可以抛出异常
|
||||
*/
|
||||
default void configSystemCheck(CoreConfigSystem configSystem) {
|
||||
default void configSystemCheck(ConfigSystemDTO dto) {
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -13,7 +13,8 @@ CREATE TABLE `core_config_enum`
|
||||
`ext` varchar(255) DEFAULT NULL COMMENT '扩展字段',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4 COMMENT ='配置-枚举';
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
COLLATE = utf8mb4_general_ci COMMENT ='配置-枚举';
|
||||
|
||||
|
||||
CREATE TABLE `core_config_system`
|
||||
@@ -31,7 +32,8 @@ CREATE TABLE `core_config_system`
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uni_key` (`config_key`(50)) USING BTREE
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4 COMMENT ='配置-系统';
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
COLLATE = utf8mb4_general_ci COMMENT ='配置-系统';
|
||||
|
||||
alter table core_config_enum
|
||||
add sort int(10) not null default 0 comment '排序' after name;
|
||||
|
||||
@@ -18,6 +18,7 @@ CREATE TABLE `core_log_api`
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
COLLATE = utf8mb4_general_ci
|
||||
ROW_FORMAT = DYNAMIC COMMENT ='日志-调用';
|
||||
|
||||
-- ----------------------------
|
||||
@@ -69,7 +70,8 @@ CREATE TABLE `core_log_operation`
|
||||
`params` longtext COMMENT '其他参数',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4 COMMENT ='日志-操作';
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
COLLATE = utf8mb4_general_ci COMMENT ='日志-操作';
|
||||
|
||||
|
||||
alter table core_log_process
|
||||
|
||||
Reference in New Issue
Block a user