diff --git a/README.md b/README.md
index 8f5e3992..e850848d 100644
--- a/README.md
+++ b/README.md
@@ -1,17 +1,17 @@
### **SmartAdmin**
-**SmartAdmin** 由 **中国·洛阳** [1024创新实验室](https://www.1024lab.net/) 基于SpringBoot+Sa-Token+Mybatis-Plus 和 Vue3+Vite5+Ant Design Vue ,坚持以 **「高质量代码」为核心,「简洁、高效、安全」**的快速开发平台!
+**SmartAdmin** 由 **中国·洛阳** [1024创新实验室](https://www.1024lab.net/) 基于SpringBoot2/3+Sa-Token+Mybatis-Plus 和 Vue3+Ant Design Vue+Uni-App+Uni-UI,并以 **「高质量代码」为核心,「简洁、高效、安全」**的快速开发平台。
-**国内首个满足《网络安全》、《数据安全》、三级等保**, 支持登录限制、支持接口国产加解密、支持数据加解密等一系列安全措施的开源项目。
+**国内首个满足《网络安全-三级等保》、《数据安全》** 功能要求,支持登录限制、接口国产加解密、数据脱敏等一系列安全要求。
-前端同时支持 **JavaScript和TypeScript双版本**,后端同时支持 **Java8+SpringBoot2.X和Java17+SpringBoot3.X 双版本**。
+前端提供 **JavaScript和TypeScript双版本**,后端提供 **Java8+SpringBoot2.X和Java17+SpringBoot3.X 双版本**。
-**SmartAdmin开源一套漂亮的代码和一套整洁的代码规范**,让大家在这浮躁的代码世界里感受到一股把代码写好的清流!同时又让开发者节省大量的时间,减少加班,快乐工作,保持谦逊,保持学习,**热爱代码,更热爱生活**
+同时 **重磅开源** 开源六年来 **千余家企业验证过且正在使用** 的代码规范: **《高质量代码思想》、《Vue3规范》、《Java规范》** ,让大家在这浮躁的世界里感受到一股把代码写好的清流!同时又能节省大量时间,减少加班,快乐工作,保持谦逊,保持学习,**热爱代码,更热爱生活** !
### **技术体系**
-- 前端:Vue3 + Vite5 + Vue-Router + Pinia + Ant Design Vue 4.X
+- 前端:JavaScript/TypeScript + Vue3 + Vite5 + Pinia + Ant Design Vue 4.X
- 移动端:uniapp (vue3版本) + uni-ui + (同时支持APP、小程序、H5)
-- 后端:SpringBoot2/3 + Sa Token + Mybatis-plus + 多种数据库
+- 后端:Java8/17 + SpringBoot2/3 + Sa Token + Mybatis-plus + 多种数据库
- 电脑在线预览:[https://preview.smartadmin.vip](https://preview.smartadmin.vip)
- 官方文档:[https://smartadmin.vip](https://smartadmin.vip)
- 移动端在线预览:[https://app.smartadmin.vip](https://app.smartadmin.vip/#/pages/login/login)
@@ -51,7 +51,7 @@
### **功能亮点**
-- **安全体系**:满足国家三级等保要求,如密码加密、密码复杂度要求、登录错误次数锁定、登录超时退出等关键功能
+- **安全体系**:满足国家三级等保要求,如双因子登录、密码加密、密码复杂度要求、登录错误次数锁定、登录超时退出、数据脱敏等网络安全和数据安全功能
- **接口加解密**:支持请求参数和返回内容进行加解密操作,支持国产加密算法和其他国外加密算法
- **表格自定义列**:支持用户自定义列,并能将用户自定义列持久化到数据库
- **数据变更记录**:支持基于git diff插件的数据变更记录,查看数据变化更直观方便
diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsQueryForm.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsQueryForm.java
index 128939f8..6f61e100 100644
--- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsQueryForm.java
+++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsQueryForm.java
@@ -1,9 +1,11 @@
package net.lab1024.sa.admin.module.business.goods.domain.form;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import net.lab1024.sa.admin.module.business.goods.constant.GoodsStatusEnum;
import net.lab1024.sa.base.common.domain.PageParam;
+import net.lab1024.sa.base.common.json.deserializer.DictValueVoDeserializer;
import net.lab1024.sa.base.common.swagger.SchemaEnum;
import net.lab1024.sa.base.common.validator.enumeration.CheckEnum;
import org.hibernate.validator.constraints.Length;
@@ -32,6 +34,7 @@ public class GoodsQueryForm extends PageParam {
private Integer goodsStatus;
@Schema(description = "产地")
+ @JsonDeserialize(using = DictValueVoDeserializer.class)
private String place;
@Schema(description = "上架状态")
diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeEmployeeService.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeEmployeeService.java
index 7904a7a8..2f2404de 100644
--- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeEmployeeService.java
+++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeEmployeeService.java
@@ -52,7 +52,6 @@ public class NoticeEmployeeService {
public ResponseDTO> queryList(Long requestEmployeeId, NoticeEmployeeQueryForm noticeEmployeeQueryForm) {
Page> page = SmartPageUtil.convert2PageQuery(noticeEmployeeQueryForm);
- //获取请求人的 部门及其子部门
List employeeDepartmentIdList = Lists.newArrayList();
EmployeeEntity employeeEntity = employeeService.getById(requestEmployeeId);
// 如果不是管理员 则获取请求人的 部门及其子部门
diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java
index 0d357f32..6393827a 100644
--- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java
+++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java
@@ -25,7 +25,7 @@ import java.util.List;
* @Date 2021-12-09 22:57:49
* @Wechat zhuoda1024
* @Email lab1024@163.com
- * @Copyright 1024创新实验室
+ * @Copyright 1024创新实验室
*/
@RestController
@Tag(name = AdminSwaggerTagConst.System.SYSTEM_EMPLOYEE)
@@ -110,7 +110,7 @@ public class EmployeeController {
@Operation(summary = "重置员工密码 @author 卓大")
@GetMapping("/employee/update/password/reset/{employeeId}")
@SaCheckPermission("system:employee:password:reset")
- public ResponseDTO resetPassword(@PathVariable Integer employeeId) {
+ public ResponseDTO resetPassword(@PathVariable Long employeeId) {
return employeeService.resetPassword(employeeId);
}
diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java
index c1297a84..6ef0acab 100644
--- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java
+++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java
@@ -113,6 +113,6 @@ public interface EmployeeDao extends BaseMapper {
/**
* 员工重置密码
*/
- Integer updatePassword(@Param("employeeId") Integer employeeId, @Param("password") String password);
+ Integer updatePassword(@Param("employeeId") Long employeeId, @Param("password") String password);
}
\ No newline at end of file
diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java
index b86067d2..959e474e 100644
--- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java
+++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java
@@ -47,8 +47,6 @@ import java.util.stream.Collectors;
@Service
public class EmployeeService {
- private static final String PASSWORD_SALT_FORMAT = "smart_%s_admin_$^&*";
-
@Resource
private EmployeeDao employeeDao;
@@ -364,7 +362,7 @@ public class EmployeeService {
/**
* 重置密码
*/
- public ResponseDTO resetPassword(Integer employeeId) {
+ public ResponseDTO resetPassword(Long employeeId) {
String password = securityPasswordService.randomPassword();
employeeDao.updatePassword(employeeId, SecurityPasswordService.getEncryptPwd(password));
return ResponseDTO.ok(password);
diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/manager/RoleEmployeeManager.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/manager/RoleEmployeeManager.java
index 886cb71c..6e2d9751 100644
--- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/manager/RoleEmployeeManager.java
+++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/manager/RoleEmployeeManager.java
@@ -16,7 +16,7 @@ import java.util.List;
* @Date 2022-04-08 21:53:04
* @Wechat zhuoda1024
* @Email lab1024@163.com
- * @Copyright 1024创新实验室
+ * @Copyright 1024创新实验室
*/
@Service
public class RoleEmployeeManager extends ServiceImpl {
diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminProtectController.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminProtectController.java
index 2d409235..69f7e3fa 100644
--- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminProtectController.java
+++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminProtectController.java
@@ -29,7 +29,7 @@ import org.springframework.web.bind.annotation.RestController;
* @Date 2023/10/17 19:07:27
* @Wechat zhuoda1024
* @Email lab1024@163.com
- * @Copyright 1024创新实验室,Since 2012
+ * @Copyright 1024创新实验室,Since 2012
*/
@RestController
diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/business/oa/notice/NoticeMapper.xml b/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/business/oa/notice/NoticeMapper.xml
index 17d1805e..b1dc8ad5 100644
--- a/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/business/oa/notice/NoticeMapper.xml
+++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/business/oa/notice/NoticeMapper.xml
@@ -95,25 +95,25 @@
left join t_notice_type on t_notice.notice_type_id = t_notice_type.notice_type_id
- (
+ (
t_notice.notice_id in
(select t_notice_visible_range.notice_id
from t_notice_visible_range
where
( t_notice_visible_range.data_type = #{departmentDataType}
-
- and
- t_notice_visible_range.data_id
- in
-
- #{item}
-
-
- )
- or ( t_notice_visible_range.data_type = #{employeeDataType} and t_notice_visible_range.data_id = #{requestEmployeeId} )
+
+ and
+ t_notice_visible_range.data_id
+ in
+
+ #{item}
+
+
+ )
+ or ( t_notice_visible_range.data_type = #{employeeDataType} and t_notice_visible_range.data_id = #{requestEmployeeId} )
)
or t_notice.all_visible_flag = true
- )
+ )
and t_notice.deleted_flag = #{deletedFlag}
diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/test/application.yaml b/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/test/application.yaml
index faa8e1ad..6ca92cf3 100644
--- a/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/test/application.yaml
+++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/test/application.yaml
@@ -8,7 +8,7 @@
# 项目配置: 名称、日志目录
project:
name: sa-admin
- log-directory: /home/project/smartadmin/sit/log
+ log-directory: /home/project/smartadmin/test/log
# 项目端口和url根路径
server:
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/common/json/serializer/LongJsonSerializer.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/common/json/serializer/LongJsonSerializer.java
index 3a4a1dd0..aa295489 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/common/json/serializer/LongJsonSerializer.java
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/common/json/serializer/LongJsonSerializer.java
@@ -14,15 +14,24 @@ import java.io.IOException;
* @Date 2020-06-02 22:55:07
* @Wechat zhuoda1024
* @Email lab1024@163.com
- * @Copyright 1024创新实验室
+ * @Copyright 1024创新实验室
*/
public class LongJsonSerializer extends JsonSerializer {
+ public static final LongJsonSerializer INSTANCE = new LongJsonSerializer();
+
@Override
- public void serialize(Long value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
- String text = (value == null ? null : String.valueOf(value));
- if (text != null) {
- jsonGenerator.writeString(text);
+ public void serialize(Long value, JsonGenerator gen, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
+ if (null == value) {
+ gen.writeNull();
+ return;
+ }
+ // js中最大安全整数16位 Number.MAX_SAFE_INTEGER
+ String longStr = String.valueOf(value);
+ if (longStr.length() > 16) {
+ gen.writeString(longStr);
+ } else {
+ gen.writeNumber(value);
}
}
}
\ No newline at end of file
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/DateConfig.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/JsonConfig.java
similarity index 91%
rename from smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/DateConfig.java
rename to smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/JsonConfig.java
index a5ae138b..b9605c3c 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/DateConfig.java
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/JsonConfig.java
@@ -6,6 +6,7 @@ import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import net.lab1024.sa.base.common.json.serializer.LongJsonSerializer;
import org.apache.commons.lang3.StringUtils;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;
@@ -17,16 +18,16 @@ import java.time.LocalDateTime;
import java.time.format.DateTimeParseException;
/**
- * java8 localDate 时间类格式化配置
+ * Json 序列化配置
*
* @Author 1024创新实验室-主任: 卓大
* @Date 2017-11-28 15:21:10
* @Wechat zhuoda1024
* @Email lab1024@163.com
- * @Copyright 1024创新实验室
+ * @Copyright 1024创新实验室
*/
@Configuration
-public class DateConfig {
+public class JsonConfig {
@Bean
public Jackson2ObjectMapperBuilderCustomizer customizer() {
@@ -35,6 +36,7 @@ public class DateConfig {
builder.deserializers(new LocalDateTimeDeserializer(DatePattern.NORM_DATETIME_FORMAT.getDateTimeFormatter()));
builder.serializers(new LocalDateSerializer(DatePattern.NORM_DATE_FORMAT.getDateTimeFormatter()));
builder.serializers(new LocalDateTimeSerializer(DatePattern.NORM_DATETIME_FORMAT.getDateTimeFormatter()));
+ builder.serializerByType(Long.class, LongJsonSerializer.INSTANCE);
};
}
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/SwaggerConfig.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/SwaggerConfig.java
index de54d48a..6d93ccda 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/SwaggerConfig.java
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/SwaggerConfig.java
@@ -31,10 +31,9 @@ import java.util.Optional;
/**
* springdoc-openapi 配置
* nginx配置前缀时如果需要访问【/swagger-ui/index.html】需添加额外nginx配置
- * location /v3/api-docs/ {
- * proxy_pass http://127.0.0.1:11024/v3/api-docs/;
+ * location /v3/api-docs/ {
+ * proxy_pass http://127.0.0.1:1024/v3/api-docs/;
* }
- *
* @Author 1024创新实验室-主任: 卓大
* @Date 2020-03-25 22:54:46
* @Wechat zhuoda1024
@@ -48,7 +47,7 @@ public class SwaggerConfig {
/**
* 用于解决/swagger-ui/index.html页面ServersUrl 测试环境部署错误问题
*/
- @Value("${springdoc.swagger-ui.server-base-url:''}")
+ @Value("${springdoc.swagger-ui.server-base-url}")
private String serverBaseUrl;
public static final String[] SWAGGER_WHITELIST = {
@@ -59,20 +58,20 @@ public class SwaggerConfig {
"/v3/api-docs",
"/v3/api-docs/**",
"/doc.html",
- };
+ };
@Bean
public OpenAPI api() {
return new OpenAPI()
.components(components())
.info(new Info()
- .title("SmartAdmin 3.X 接口文档")
- .contact(new Contact().name("1024创新实验室").email("lab1024@163.com").url("https://1024lab.net"))
- .version("v3.X")
- .description("**以「高质量代码」为核心,「简洁、高效、安全」**基于 SpringBoot + Sa-Token + Mybatis-Plus 和 Vue3 + Vite5 + Ant Design (同时支持JavaScript和TypeScript双版本) 的快速开发平台。" +
- "
**国内首个满足《网络安全》、《数据安全》、三级等保**, 支持登录限制、支持国产接口加解密等安全、支持数据加解密等一系列安全体系的开源项目。" +
- "
**我们开源一套漂亮的代码和一套整洁的代码规范**,让大家在这浮躁的代码世界里感受到一股把代码写好的清流!同时又让开发者节省大量的时间,减少加班,快乐工作,保持谦逊,保持学习,热爱代码,更热爱生活!")
- )
+ .title("SmartAdmin 3.X 接口文档")
+ .contact(new Contact().name("1024创新实验室").email("lab1024@163.com").url("https://1024lab.net"))
+ .version("v3.X")
+ .description("**以「高质量代码」为核心,「简洁、高效、安全」**基于 SpringBoot + Sa-Token + Mybatis-Plus 和 Vue3 + Vite5 + Ant Design (同时支持JavaScript和TypeScript双版本) 的快速开发平台。" +
+ "
**国内首个满足《网络安全》、《数据安全》、三级等保**, 支持登录限制、支持国产接口加解密等安全、支持数据加解密等一系列安全体系的开源项目。" +
+ "
**我们开源一套漂亮的代码和一套整洁的代码规范**,让大家在这浮躁的代码世界里感受到一股把代码写好的清流!同时又让开发者节省大量的时间,减少加班,快乐工作,保持谦逊,保持学习,热爱代码,更热爱生活!")
+ )
.addSecurityItem(new SecurityRequirement().addList(RequestHeaderConst.TOKEN));
}
@@ -84,27 +83,26 @@ public class SwaggerConfig {
@Bean
public GroupedOpenApi businessApi() {
return GroupedOpenApi.builder()
- .group("业务接口")
- .pathsToMatch("/**")
- .pathsToExclude(SwaggerTagConst.Support.URL_PREFIX + "/**")
- .addOperationCustomizer(new SmartOperationCustomizer())
- .build();
+ .group("业务接口")
+ .pathsToMatch("/**")
+ .pathsToExclude(SwaggerTagConst.Support.URL_PREFIX + "/**")
+ .addOperationCustomizer(new SmartOperationCustomizer())
+ .build();
}
@Bean
public GroupedOpenApi supportApi() {
return GroupedOpenApi.builder()
- .group("支撑接口(Support)")
- .pathsToMatch(SwaggerTagConst.Support.URL_PREFIX + "/**")
- .addOperationCustomizer(new SmartOperationCustomizer())
- .build();
+ .group("支撑接口(Support)")
+ .pathsToMatch(SwaggerTagConst.Support.URL_PREFIX + "/**")
+ .addOperationCustomizer(new SmartOperationCustomizer())
+ .build();
}
/**
* 以下代码可以用于设置 /swagger-ui/index.html 的serverBaseUrl
* 如果使用knife4j则不需要
- *
* @param openAPI
* @param securityParser
* @param springDocConfigProperties
@@ -132,6 +130,6 @@ public class SwaggerConfig {
}
});
return new OpenAPIService(openAPI, securityParser, springDocConfigProperties,
- propertyResolverUtils, openApiBuilderCustomizers, Optional.of(list), javadocProvider);
+ propertyResolverUtils, openApiBuilderCustomizers, Optional.of(list), javadocProvider);
}
}
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/UrlConfig.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/UrlConfig.java
index ffb26fcc..4937a9ff 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/UrlConfig.java
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/UrlConfig.java
@@ -28,7 +28,7 @@ import java.util.Set;
* @Date 2022-05-30 21:22:12
* @Wechat zhuoda1024
* @Email lab1024@163.com
- * @Copyright 1024创新实验室
+ * @Copyright 1024创新实验室
*/
@Configuration
@Slf4j
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/listener/WebServerListener.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/listener/WebServerListener.java
index e715520d..c248c7da 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/listener/WebServerListener.java
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/listener/WebServerListener.java
@@ -67,14 +67,14 @@ public class WebServerListener implements ApplicationListener {
@Resource
private ApiEncryptService apiEncryptService;
+ @Resource
+ private ObjectMapper objectMapper;
+
@Override
public boolean supports(MethodParameter returnType, Class extends HttpMessageConverter>> converterType) {
return returnType.hasMethodAnnotation(ApiEncrypt.class) || returnType.getContainingClass().isAnnotationPresent(ApiEncrypt.class);
@@ -44,7 +49,12 @@ public class EncryptResponseAdvice implements ResponseBodyAdvice {
return body;
}
- String encrypt = apiEncryptService.encrypt(JSON.toJSONString(body.getData()));
+ String encrypt = null;
+ try {
+ encrypt = apiEncryptService.encrypt(objectMapper.writeValueAsString(body.getData()));
+ } catch (JsonProcessingException e) {
+ throw new RuntimeException(e);
+ }
body.setData(encrypt);
body.setDataType(DataTypeEnum.ENCRYPT.getValue());
return body;
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/service/ApiEncryptServiceSmImpl.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/service/ApiEncryptServiceSmImpl.java
index 95486e5e..d8d63fa0 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/service/ApiEncryptServiceSmImpl.java
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/service/ApiEncryptServiceSmImpl.java
@@ -52,14 +52,6 @@ public class ApiEncryptServiceSmImpl implements ApiEncryptService {
}
}
- public static void main(String[] args) {
- String content = "zkm1024";
- String en = new ApiEncryptServiceSmImpl().encrypt(content);
- System.out.println(en);
- String ori = new ApiEncryptServiceSmImpl().decrypt(en);
- System.out.println(ori);
- }
-
@Override
public String decrypt(String data) {
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/CodeGeneratorTemplateService.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/CodeGeneratorTemplateService.java
index 20d50f04..22cd5e09 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/CodeGeneratorTemplateService.java
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/CodeGeneratorTemplateService.java
@@ -45,7 +45,7 @@ import java.util.stream.Collectors;
* @Date 2022-06-30 22:15:38
* @Wechat zhuoda1024
* @Email lab1024@163.com
- * @Copyright 1024创新实验室
+ * @Copyright 1024创新实验室
*/
@Service
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/CodeGenerateBaseVariableService.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/CodeGenerateBaseVariableService.java
index f81f86c4..d39bf6bf 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/CodeGenerateBaseVariableService.java
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/CodeGenerateBaseVariableService.java
@@ -18,7 +18,7 @@ import java.util.stream.Collectors;
* @Date 2022/9/29 17:20:41
* @Wechat zhuoda1024
* @Email lab1024@163.com
- * @Copyright 1024创新实验室
+ * @Copyright 1024创新实验室
*/
public abstract class CodeGenerateBaseVariableService {
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/AddFormVariableService.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/AddFormVariableService.java
index 6bde65d4..1d29259a 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/AddFormVariableService.java
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/AddFormVariableService.java
@@ -101,7 +101,6 @@ public class AddFormVariableService extends CodeGenerateBaseVariableService {
}
}
-
//字典
if (SmartStringUtil.isNotEmpty(codeField.getDict())) {
finalFieldMap.put("dict", "\n @JsonDeserialize(using = DictValueVoDeserializer.class)");
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/MapperVariableService.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/MapperVariableService.java
index cacb97bf..bc16c991 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/MapperVariableService.java
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/MapperVariableService.java
@@ -15,7 +15,7 @@ import java.util.*;
* @Date 2022/9/29 17:20:41
* @Wechat zhuoda1024
* @Email lab1024@163.com
- * @Copyright 1024创新实验室
+ * @Copyright 1024创新实验室
*/
public class MapperVariableService extends CodeGenerateBaseVariableService {
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/QueryFormVariableService.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/QueryFormVariableService.java
index b696a2a7..4101d5e0 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/QueryFormVariableService.java
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/QueryFormVariableService.java
@@ -18,7 +18,7 @@ import java.util.stream.Collectors;
* @Date 2022/9/29 17:20:41
* @Wechat zhuoda1024
* @Email lab1024@163.com
- * @Copyright 1024创新实验室
+ * @Copyright 1024创新实验室
*/
public class QueryFormVariableService extends CodeGenerateBaseVariableService {
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/VOVariableService.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/VOVariableService.java
index c96de2e5..cde09227 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/VOVariableService.java
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/VOVariableService.java
@@ -17,7 +17,7 @@ import java.util.stream.Collectors;
* @Date 2022/9/29 17:20:41
* @Wechat zhuoda1024
* @Email lab1024@163.com
- * @Copyright 1024创新实验室
+ * @Copyright 1024创新实验室
*/
public class VOVariableService extends CodeGenerateBaseVariableService {
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/file/service/FileService.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/file/service/FileService.java
index 94a1d056..f31a797b 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/file/service/FileService.java
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/file/service/FileService.java
@@ -39,7 +39,7 @@ import java.util.stream.Collectors;
* @Date 2019年10月11日 15:34:47
* @Wechat zhuoda1024
* @Email lab1024@163.com
- * @Copyright 1024创新实验室
+ * @Copyright 1024创新实验室
*/
@Service
public class FileService {
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/resources/dev/sa-base.yaml b/smart-admin-api-java17-springboot3/sa-base/src/main/resources/dev/sa-base.yaml
index 4f437d0f..20df9939 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/resources/dev/sa-base.yaml
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/resources/dev/sa-base.yaml
@@ -4,13 +4,13 @@ spring:
url: jdbc:p6spy:mysql://127.0.0.1:3306/smart_admin_v3?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai
username: root
password: SmartAdmin666
- driver-class-name: com.p6spy.engine.spy.P6SpyDriver
initial-size: 2
min-idle: 2
max-active: 10
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
+ driver-class-name: com.p6spy.engine.spy.P6SpyDriver
filters: stat
druid:
username: druid
@@ -40,7 +40,7 @@ spring:
host: smtp.163.com
port: 465
username: lab1024@163.com
- password: 1
+ password: 1024lab
properties:
mail:
smtp:
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/resources/pre/sa-base.yaml b/smart-admin-api-java17-springboot3/sa-base/src/main/resources/pre/sa-base.yaml
index 4f437d0f..9f66ae61 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/resources/pre/sa-base.yaml
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/resources/pre/sa-base.yaml
@@ -40,7 +40,7 @@ spring:
host: smtp.163.com
port: 465
username: lab1024@163.com
- password: 1
+ password: 1024lab
properties:
mail:
smtp:
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/resources/prod/sa-base.yaml b/smart-admin-api-java17-springboot3/sa-base/src/main/resources/prod/sa-base.yaml
index b70a4d16..ea51a9a7 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/resources/prod/sa-base.yaml
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/resources/prod/sa-base.yaml
@@ -30,10 +30,11 @@ spring:
timeout: 10000ms
lettuce:
pool:
- max-active: 100
- min-idle: 10
- max-idle: 50
+ max-active: 5
+ min-idle: 1
+ max-idle: 3
max-wait: 30000ms
+
# 邮件,置以SSL的方式发送, 这个需要使用这种方式并且端口是465
mail:
host: smtp.163.com
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/resources/test/sa-base.yaml b/smart-admin-api-java17-springboot3/sa-base/src/main/resources/test/sa-base.yaml
index 4f437d0f..9f66ae61 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/resources/test/sa-base.yaml
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/resources/test/sa-base.yaml
@@ -40,7 +40,7 @@ spring:
host: smtp.163.com
port: 465
username: lab1024@163.com
- password: 1
+ password: 1024lab
properties:
mail:
smtp:
diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/interceptor/AdminInterceptor.java b/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/interceptor/AdminInterceptor.java
index 9b01d544..4731cab8 100644
--- a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/interceptor/AdminInterceptor.java
+++ b/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/interceptor/AdminInterceptor.java
@@ -86,7 +86,7 @@ public class AdminInterceptor implements HandlerInterceptor {
Method method = ((HandlerMethod) handler).getMethod();
NoNeedLogin noNeedLogin = ((HandlerMethod) handler).getMethodAnnotation(NoNeedLogin.class);
if (noNeedLogin != null) {
- checkActiveTimeout(requestEmployee,debugNumberTokenFlag);
+ checkActiveTimeout(requestEmployee, debugNumberTokenFlag);
return true;
}
@@ -96,7 +96,7 @@ public class AdminInterceptor implements HandlerInterceptor {
}
// 检测token 活跃频率
- checkActiveTimeout(requestEmployee,debugNumberTokenFlag);
+ checkActiveTimeout(requestEmployee, debugNumberTokenFlag);
// --------------- 第三步: 校验 权限 ---------------
@@ -107,8 +107,8 @@ public class AdminInterceptor implements HandlerInterceptor {
}
// 如果是超级管理员的话,不需要校验权限
- if(requestEmployee.getAdministratorFlag()){
- return true;
+ if (requestEmployee.getAdministratorFlag()) {
+ return true;
}
SaStrategy.instance.checkMethodAnnotation.accept(method);
diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java b/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java
index b6d1c6d5..56c9856b 100644
--- a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java
+++ b/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java
@@ -110,7 +110,7 @@ public class EmployeeController {
@Operation(summary = "重置员工密码 @author 卓大")
@GetMapping("/employee/update/password/reset/{employeeId}")
@SaCheckPermission("system:employee:password:reset")
- public ResponseDTO resetPassword(@PathVariable Integer employeeId) {
+ public ResponseDTO resetPassword(@PathVariable Long employeeId) {
return employeeService.resetPassword(employeeId);
}
diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java b/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java
index c1297a84..6ef0acab 100644
--- a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java
+++ b/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java
@@ -113,6 +113,6 @@ public interface EmployeeDao extends BaseMapper {
/**
* 员工重置密码
*/
- Integer updatePassword(@Param("employeeId") Integer employeeId, @Param("password") String password);
+ Integer updatePassword(@Param("employeeId") Long employeeId, @Param("password") String password);
}
\ No newline at end of file
diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java b/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java
index 61cd6f79..c4e57e92 100644
--- a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java
+++ b/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java
@@ -362,7 +362,7 @@ public class EmployeeService {
/**
* 重置密码
*/
- public ResponseDTO resetPassword(Integer employeeId) {
+ public ResponseDTO resetPassword(Long employeeId) {
String password = securityPasswordService.randomPassword();
employeeDao.updatePassword(employeeId, SecurityPasswordService.getEncryptPwd(password));
return ResponseDTO.ok(password);
diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/common/json/serializer/LongJsonSerializer.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/common/json/serializer/LongJsonSerializer.java
index 3a4a1dd0..aa295489 100644
--- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/common/json/serializer/LongJsonSerializer.java
+++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/common/json/serializer/LongJsonSerializer.java
@@ -14,15 +14,24 @@ import java.io.IOException;
* @Date 2020-06-02 22:55:07
* @Wechat zhuoda1024
* @Email lab1024@163.com
- * @Copyright 1024创新实验室
+ * @Copyright 1024创新实验室
*/
public class LongJsonSerializer extends JsonSerializer {
+ public static final LongJsonSerializer INSTANCE = new LongJsonSerializer();
+
@Override
- public void serialize(Long value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
- String text = (value == null ? null : String.valueOf(value));
- if (text != null) {
- jsonGenerator.writeString(text);
+ public void serialize(Long value, JsonGenerator gen, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
+ if (null == value) {
+ gen.writeNull();
+ return;
+ }
+ // js中最大安全整数16位 Number.MAX_SAFE_INTEGER
+ String longStr = String.valueOf(value);
+ if (longStr.length() > 16) {
+ gen.writeString(longStr);
+ } else {
+ gen.writeNumber(value);
}
}
}
\ No newline at end of file
diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/config/DateConfig.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/config/JsonConfig.java
similarity index 91%
rename from smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/config/DateConfig.java
rename to smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/config/JsonConfig.java
index a5ae138b..9164b35c 100644
--- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/config/DateConfig.java
+++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/config/JsonConfig.java
@@ -6,6 +6,7 @@ import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import net.lab1024.sa.base.common.json.serializer.LongJsonSerializer;
import org.apache.commons.lang3.StringUtils;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;
@@ -17,16 +18,16 @@ import java.time.LocalDateTime;
import java.time.format.DateTimeParseException;
/**
- * java8 localDate 时间类格式化配置
+ * json 序列化配置
*
* @Author 1024创新实验室-主任: 卓大
* @Date 2017-11-28 15:21:10
* @Wechat zhuoda1024
* @Email lab1024@163.com
- * @Copyright 1024创新实验室
+ * @Copyright 1024创新实验室
*/
@Configuration
-public class DateConfig {
+public class JsonConfig {
@Bean
public Jackson2ObjectMapperBuilderCustomizer customizer() {
@@ -35,6 +36,7 @@ public class DateConfig {
builder.deserializers(new LocalDateTimeDeserializer(DatePattern.NORM_DATETIME_FORMAT.getDateTimeFormatter()));
builder.serializers(new LocalDateSerializer(DatePattern.NORM_DATE_FORMAT.getDateTimeFormatter()));
builder.serializers(new LocalDateTimeSerializer(DatePattern.NORM_DATETIME_FORMAT.getDateTimeFormatter()));
+ builder.serializerByType(Long.class, LongJsonSerializer.INSTANCE);
};
}
diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/EncryptResponseAdvice.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/EncryptResponseAdvice.java
index c90e2c2a..d38544fc 100644
--- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/EncryptResponseAdvice.java
+++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/EncryptResponseAdvice.java
@@ -1,6 +1,8 @@
package net.lab1024.sa.base.module.support.apiencrypt.advice;
import com.alibaba.fastjson.JSON;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import net.lab1024.sa.base.common.domain.ResponseDTO;
import net.lab1024.sa.base.common.enumeration.DataTypeEnum;
@@ -34,6 +36,9 @@ public class EncryptResponseAdvice implements ResponseBodyAdvice {
@Resource
private ApiEncryptService apiEncryptService;
+ @Resource
+ private ObjectMapper objectMapper;
+
@Override
public boolean supports(MethodParameter returnType, Class extends HttpMessageConverter>> converterType) {
return returnType.hasMethodAnnotation(ApiEncrypt.class) || returnType.getContainingClass().isAnnotationPresent(ApiEncrypt.class);
@@ -45,7 +50,12 @@ public class EncryptResponseAdvice implements ResponseBodyAdvice {
return body;
}
- String encrypt = apiEncryptService.encrypt(JSON.toJSONString(body.getData()));
+ String encrypt = null;
+ try {
+ encrypt = apiEncryptService.encrypt(objectMapper.writeValueAsString(body.getData()));
+ } catch (JsonProcessingException e) {
+ throw new RuntimeException(e);
+ }
body.setData(encrypt);
body.setDataType(DataTypeEnum.ENCRYPT.getValue());
return body;
diff --git a/smart-admin-api/sa-base/src/main/resources/dev/sa-base.yaml b/smart-admin-api/sa-base/src/main/resources/dev/sa-base.yaml
index 778ed821..9e5a9d21 100644
--- a/smart-admin-api/sa-base/src/main/resources/dev/sa-base.yaml
+++ b/smart-admin-api/sa-base/src/main/resources/dev/sa-base.yaml
@@ -39,7 +39,7 @@ spring:
host: smtp.163.com
port: 465
username: lab1024@163.com
- password: 1
+ password: 1024lab
properties:
mail:
smtp:
diff --git a/smart-admin-api/sa-base/src/main/resources/pre/sa-base.yaml b/smart-admin-api/sa-base/src/main/resources/pre/sa-base.yaml
index 778ed821..9e5a9d21 100644
--- a/smart-admin-api/sa-base/src/main/resources/pre/sa-base.yaml
+++ b/smart-admin-api/sa-base/src/main/resources/pre/sa-base.yaml
@@ -39,7 +39,7 @@ spring:
host: smtp.163.com
port: 465
username: lab1024@163.com
- password: 1
+ password: 1024lab
properties:
mail:
smtp:
diff --git a/smart-admin-api/sa-base/src/main/resources/test/sa-base.yaml b/smart-admin-api/sa-base/src/main/resources/test/sa-base.yaml
index 778ed821..9e5a9d21 100644
--- a/smart-admin-api/sa-base/src/main/resources/test/sa-base.yaml
+++ b/smart-admin-api/sa-base/src/main/resources/test/sa-base.yaml
@@ -39,7 +39,7 @@ spring:
host: smtp.163.com
port: 465
username: lab1024@163.com
- password: 1
+ password: 1024lab
properties:
mail:
smtp:
diff --git a/smart-admin-web/javascript-ant-design-vue3/src/App.vue b/smart-admin-web/javascript-ant-design-vue3/src/App.vue
index 3c7370f7..972a9ba1 100644
--- a/smart-admin-web/javascript-ant-design-vue3/src/App.vue
+++ b/smart-admin-web/javascript-ant-design-vue3/src/App.vue
@@ -32,6 +32,7 @@
},
},
}"
+ :getPopupContainer="getPopupContainer"
>
@@ -49,6 +50,8 @@
import { useSpinStore } from '/@/store/modules/system/spin';
import { theme } from 'ant-design-vue';
import { themeColors } from '/@/theme/color.js';
+ import { SmartLoading } from '/@/components/framework/smart-loading/index.js';
+ import { LAYOUT_ELEMENT_IDS } from '/@/layout/layout-const.js';
const antdLocale = computed(() => messages[useAppConfigStore().language].antdLocale);
const dayjsLocale = computed(() => messages[useAppConfigStore().language].dayjsLocale);
@@ -67,4 +70,31 @@
const borderRadius = computed(() => {
return useAppConfigStore().borderRadius;
});
+
+ function getPopupContainer(node, dialogContext) {
+ let fullScreenFlag = useAppConfigStore().$state.fullScreenFlag;
+ if(fullScreenFlag){
+ return getFullScreenContainer(node, dialogContext);
+ }else{
+ return getNotFullScreenContainer(node, dialogContext);
+ }
+ }
+
+ function getFullScreenContainer(node, dialogContext) {
+ if (node === document.body) {
+ return document.getElementById(LAYOUT_ELEMENT_IDS.content);
+ }else if (node) {
+ return node.parentNode;
+ } else {
+ return document.getElementById(LAYOUT_ELEMENT_IDS.content);
+ }
+ }
+
+ function getNotFullScreenContainer(node, dialogContext) {
+ if (node) {
+ return node.parentNode;
+ } else {
+ return document.body;
+ }
+ }
diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/support/table-operator/index.vue b/smart-admin-web/javascript-ant-design-vue3/src/components/support/table-operator/index.vue
index f77fc2a5..a3facbb4 100644
--- a/smart-admin-web/javascript-ant-design-vue3/src/components/support/table-operator/index.vue
+++ b/smart-admin-web/javascript-ant-design-vue3/src/components/support/table-operator/index.vue
@@ -12,12 +12,12 @@
-
+
-
+
@@ -43,11 +43,13 @@
import { message } from 'ant-design-vue';
import { mergeColumn } from './smart-table-column-merge';
import { smartSentry } from '/@/lib/smart-sentry';
+ import { LAYOUT_ELEMENT_IDS } from '/@/layout/layout-const.js';
+ import { useAppConfigStore } from '/@/store/modules/system/app-config.js';
const props = defineProps({
// 表格列数组
modelValue: {
type: Array,
- default: new Array(),
+ default: [],
},
// 刷新表格函数
refresh: {
@@ -93,22 +95,39 @@
// ----------------- 全屏 -------------------
const fullScreenFlag = ref(false);
- function fullScreen() {
+
+ function onFullScreen() {
if (fullScreenFlag.value) {
- //取消全屏
- exitFullscreen(document.querySelector('#smartAdminLayoutContent'));
- fullScreenFlag.value = false;
- document.querySelector('#smartAdminPageTag').style.visibility = 'visible';
+ // 退出全屏
+ handleExitFullScreen();
+ exitElementFullscreen(document.getElementById(LAYOUT_ELEMENT_IDS.content));
} else {
//全屏
- launchFullScreen(document.querySelector('#smartAdminLayoutContent'));
+ message.config({
+ getContainer: () => document.getElementById(LAYOUT_ELEMENT_IDS.content),
+ });
fullScreenFlag.value = true;
- document.querySelector('#smartAdminPageTag').style.visibility = 'hidden';
+ useAppConfigStore().startFullScreen();
+ launchElementFullScreen(document.getElementById(LAYOUT_ELEMENT_IDS.content));
}
}
+ // 处理退出全屏
+ function handleExitFullScreen(){
+ //取消全屏
+ message.config({
+ getContainer: () => document.body,
+ });
+ fullScreenFlag.value = false;
+ useAppConfigStore().exitFullScreen();
+ document.removeEventListener('fullscreenchange', handleFullscreenChange);
+ document.removeEventListener('mozfullscreenchange', handleFullscreenChange); // Firefox
+ document.removeEventListener('webkitfullscreenchange', handleFullscreenChange); // Chrome, Safari and Opera
+ document.removeEventListener('MSFullscreenChange', handleFullscreenChange); // Internet Explorer and Edge
+ }
+
//判断各种浏览器 -全屏
- function launchFullScreen(element) {
+ function launchElementFullScreen(element) {
if (element.requestFullscreen) {
element.requestFullscreen();
} else if (element.mozRequestFullScreen) {
@@ -120,9 +139,23 @@
} else {
message.error('当前浏览器不支持部分全屏!');
}
+ document.addEventListener('fullscreenchange', handleFullscreenChange);
+ document.addEventListener('mozfullscreenchange', handleFullscreenChange); // Firefox
+ document.addEventListener('webkitfullscreenchange', handleFullscreenChange); // Chrome, Safari and Opera
+ document.addEventListener('MSFullscreenChange', handleFullscreenChange); // Internet Explorer and Edge
}
+
+ function handleFullscreenChange() {
+ if (document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement) {
+ console.log('进入全屏模式');
+ } else {
+ console.log('退出全屏模式');
+ handleExitFullScreen();
+ }
+ }
+
//判断各种浏览器 -退出全屏
- function exitFullscreen(element) {
+ function exitElementFullscreen(element) {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.mozCancelFullScreen) {
diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/page-tag/components/antd-tab.vue b/smart-admin-web/javascript-ant-design-vue3/src/layout/components/page-tag/components/antd-tab.vue
index 06c4e909..22289a60 100644
--- a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/page-tag/components/antd-tab.vue
+++ b/smart-admin-web/javascript-ant-design-vue3/src/layout/components/page-tag/components/antd-tab.vue
@@ -23,7 +23,7 @@
-
+
关闭其他
关闭所有
diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/page-tag/components/default-tab.vue b/smart-admin-web/javascript-ant-design-vue3/src/layout/components/page-tag/components/default-tab.vue
index 420bfc60..243fcee5 100644
--- a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/page-tag/components/default-tab.vue
+++ b/smart-admin-web/javascript-ant-design-vue3/src/layout/components/page-tag/components/default-tab.vue
@@ -24,7 +24,7 @@
-
+
关闭其他
关闭所有
diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/help-doc-layout.vue b/smart-admin-web/javascript-ant-design-vue3/src/layout/help-doc-layout.vue
index c5a5b51d..59757bee 100644
--- a/smart-admin-web/javascript-ant-design-vue3/src/layout/help-doc-layout.vue
+++ b/smart-admin-web/javascript-ant-design-vue3/src/layout/help-doc-layout.vue
@@ -1,11 +1,11 @@
-
diff --git a/smart-admin-web/typescript-ant-design-vue3/src/views/system/position/position-form.vue b/smart-admin-web/typescript-ant-design-vue3/src/views/system/position/position-form.vue
new file mode 100644
index 00000000..f381f476
--- /dev/null
+++ b/smart-admin-web/typescript-ant-design-vue3/src/views/system/position/position-form.vue
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 保存
+
+
+
+
+
diff --git a/smart-admin-web/typescript-ant-design-vue3/src/views/system/position/position-list.vue b/smart-admin-web/typescript-ant-design-vue3/src/views/system/position/position-list.vue
new file mode 100644
index 00000000..e0523009
--- /dev/null
+++ b/smart-admin-web/typescript-ant-design-vue3/src/views/system/position/position-list.vue
@@ -0,0 +1,262 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 新建
+
+
+
+
+
+ 批量删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+