Explorar el Código

初始化项目

wanggaokun hace 9 meses
padre
commit
0a02e6685e
Se han modificado 100 ficheros con 412 adiciones y 1114 borrados
  1. 0 93
      als-admin/src/main/resources/logback.xml
  2. 0 66
      als-common/als-common-core/src/main/java/com/als/common/core/exception/ServiceException.java
  3. 0 18
      als-common/als-common-core/src/main/java/com/als/common/core/service/UserService.java
  4. 0 7
      als-common/als-common-core/src/main/java/com/als/common/core/validate/auth/EmailGroup.java
  5. 0 7
      als-common/als-common-core/src/main/java/com/als/common/core/validate/auth/PasswordGroup.java
  6. 0 7
      als-common/als-common-core/src/main/java/com/als/common/core/validate/auth/SmsGroup.java
  7. 0 4
      als-common/als-common-core/src/main/java/com/als/common/core/validate/auth/SocialGroup.java
  8. 0 7
      als-common/als-common-core/src/main/java/com/als/common/core/validate/auth/WechatGroup.java
  9. 0 5
      als-common/als-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  10. 0 3
      als-common/als-common-encrypt/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  11. 0 1
      als-common/als-common-json/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  12. 0 1
      als-common/als-common-log/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  13. 0 19
      als-common/als-common-orm/src/main/java/com/als/common/orm/config/PagehelperConfig.java
  14. 0 79
      als-common/als-common-orm/src/main/java/com/als/common/orm/core/page/TableDataInfo.java
  15. 0 31
      als-common/als-common-orm/src/main/java/com/als/common/orm/listener/EntityUpdateListener.java
  16. 0 2
      als-common/als-common-orm/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  17. 0 40
      als-common/als-common-oss/pom.xml
  18. 0 267
      als-common/als-common-oss/src/main/java/com/als/common/oss/core/OssClient.java
  19. 0 65
      als-common/als-common-oss/src/main/java/com/als/common/oss/factory/OssFactory.java
  20. 0 1
      als-common/als-common-ratelimiter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  21. 0 1
      als-common/als-common-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  22. 0 53
      als-common/als-common-security/src/main/java/com/als/common/security/config/SecurityConfig.java
  23. 0 4
      als-common/als-common-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  24. 0 1
      als-common/als-common-springdoc/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  25. 0 1
      als-common/als-common-tenant/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  26. 0 5
      als-common/als-common-web/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  27. 0 51
      als-common/als-common-websocket/src/main/java/com/als/common/websocket/interceptor/FlexWebSocketInterceptor.java
  28. 0 1
      als-common/als-common-websocket/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  29. 40 33
      als-common/common-bom/pom.xml
  30. 7 2
      als-common/common-core/pom.xml
  31. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/annotation/Anonymous.java
  32. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/annotation/DataScope.java
  33. 3 3
      als-common/common-core/src/main/java/org/eco/common/core/annotation/Excel.java
  34. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/annotation/Excels.java
  35. 4 4
      als-common/common-core/src/main/java/org/eco/common/core/annotation/RateLimiter.java
  36. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/config/ApplicationConfig.java
  37. 9 7
      als-common/common-core/src/main/java/org/eco/common/core/config/AsyncConfig.java
  38. 15 45
      als-common/common-core/src/main/java/org/eco/common/core/config/EcoConfig.java
  39. 3 3
      als-common/common-core/src/main/java/org/eco/common/core/config/ThreadPoolConfig.java
  40. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/config/ValidatorConfig.java
  41. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/constant/CacheConstants.java
  42. 5 5
      als-common/common-core/src/main/java/org/eco/common/core/constant/CacheNames.java
  43. 4 4
      als-common/common-core/src/main/java/org/eco/common/core/constant/Constants.java
  44. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/constant/GenConstants.java
  45. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/constant/GlobalConstants.java
  46. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/constant/HttpStatus.java
  47. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/constant/ScheduleConstants.java
  48. 2 3
      als-common/common-core/src/main/java/org/eco/common/core/constant/TenantConstants.java
  49. 16 16
      als-common/common-core/src/main/java/org/eco/common/core/constant/UserConstants.java
  50. 3 3
      als-common/common-core/src/main/java/org/eco/common/core/core/domain/CommonResult.java
  51. 19 0
      als-common/common-core/src/main/java/org/eco/common/core/core/domain/UploadRes.java
  52. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/core/domain/dto/RoleDTO.java
  53. 12 2
      als-common/common-core/src/main/java/org/eco/common/core/core/domain/dto/UserOnlineDTO.java
  54. 4 2
      als-common/common-core/src/main/java/org/eco/common/core/core/domain/model/EmailLoginBody.java
  55. 9 9
      als-common/common-core/src/main/java/org/eco/common/core/core/domain/model/LoginBody.java
  56. 3 3
      als-common/common-core/src/main/java/org/eco/common/core/core/domain/model/LoginUser.java
  57. 6 6
      als-common/common-core/src/main/java/org/eco/common/core/core/domain/model/PasswordLoginBody.java
  58. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/core/domain/model/RegisterBody.java
  59. 3 3
      als-common/common-core/src/main/java/org/eco/common/core/core/page/PageDomain.java
  60. 3 3
      als-common/common-core/src/main/java/org/eco/common/core/core/page/PageResult.java
  61. 4 4
      als-common/common-core/src/main/java/org/eco/common/core/core/page/TableSupport.java
  62. 3 3
      als-common/common-core/src/main/java/org/eco/common/core/core/text/CharsetKit.java
  63. 3 3
      als-common/common-core/src/main/java/org/eco/common/core/core/text/Convert.java
  64. 3 3
      als-common/common-core/src/main/java/org/eco/common/core/core/text/StrFormatter.java
  65. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/enums/DeviceType.java
  66. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/enums/HttpMethod.java
  67. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/enums/LimitType.java
  68. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/enums/LoginType.java
  69. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/enums/TenantStatus.java
  70. 3 3
      als-common/common-core/src/main/java/org/eco/common/core/enums/UserStatus.java
  71. 3 3
      als-common/common-core/src/main/java/org/eco/common/core/enums/UserType.java
  72. 75 0
      als-common/common-core/src/main/java/org/eco/common/core/exception/BusinessException.java
  73. 4 4
      als-common/common-core/src/main/java/org/eco/common/core/exception/base/BaseException.java
  74. 3 3
      als-common/common-core/src/main/java/org/eco/common/core/exception/file/FileException.java
  75. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/exception/file/FileNameLengthLimitExceededException.java
  76. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/exception/file/FileSizeLimitExceededException.java
  77. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/exception/file/FileUploadException.java
  78. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/exception/file/InvalidExtensionException.java
  79. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/exception/job/TaskException.java
  80. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/exception/user/BlackListException.java
  81. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/exception/user/CaptchaException.java
  82. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/exception/user/CaptchaExpireException.java
  83. 3 3
      als-common/common-core/src/main/java/org/eco/common/core/exception/user/UserException.java
  84. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/exception/user/UserNotExistsException.java
  85. 3 3
      als-common/common-core/src/main/java/org/eco/common/core/factory/YmlPropertySourceFactory.java
  86. 3 3
      als-common/common-core/src/main/java/org/eco/common/core/manager/ShutdownManager.java
  87. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/service/ConfigService.java
  88. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/service/DeptService.java
  89. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/service/DictService.java
  90. 6 2
      als-common/common-core/src/main/java/org/eco/common/core/service/OssService.java
  91. 34 0
      als-common/common-core/src/main/java/org/eco/common/core/service/UserService.java
  92. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/utils/Arith.java
  93. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/utils/DateUtils.java
  94. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/utils/ExceptionUtil.java
  95. 3 3
      als-common/common-core/src/main/java/org/eco/common/core/utils/MapstructUtils.java
  96. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/utils/MessageUtils.java
  97. 7 4
      als-common/common-core/src/main/java/org/eco/common/core/utils/ServletUtils.java
  98. 8 2
      als-common/common-core/src/main/java/org/eco/common/core/utils/SpringUtils.java
  99. 2 2
      als-common/common-core/src/main/java/org/eco/common/core/utils/StreamUtils.java
  100. 6 4
      als-common/common-core/src/main/java/org/eco/common/core/utils/StringUtils.java

+ 0 - 93
als-admin/src/main/resources/logback.xml

@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration>
-    <!-- 日志存放路径 -->
-    <property name="log.path" value="/home/als/logs"/>
-    <!-- 日志输出格式 -->
-    <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
-
-    <!-- 控制台输出 -->
-    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder>
-            <pattern>${log.pattern}</pattern>
-        </encoder>
-    </appender>
-
-    <!-- 系统日志输出 -->
-    <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${log.path}/sys-info.log</file>
-        <!-- 循环政策:基于时间创建日志文件 -->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 日志文件名格式 -->
-            <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
-            <!-- 日志最大的历史 60天 -->
-            <maxHistory>60</maxHistory>
-        </rollingPolicy>
-        <encoder>
-            <pattern>${log.pattern}</pattern>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <!-- 过滤的级别 -->
-            <level>INFO</level>
-            <!-- 匹配时的操作:接收(记录) -->
-            <onMatch>ACCEPT</onMatch>
-            <!-- 不匹配时的操作:拒绝(不记录) -->
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${log.path}/sys-error.log</file>
-        <!-- 循环政策:基于时间创建日志文件 -->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 日志文件名格式 -->
-            <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
-            <!-- 日志最大的历史 60天 -->
-            <maxHistory>60</maxHistory>
-        </rollingPolicy>
-        <encoder>
-            <pattern>${log.pattern}</pattern>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <!-- 过滤的级别 -->
-            <level>ERROR</level>
-            <!-- 匹配时的操作:接收(记录) -->
-            <onMatch>ACCEPT</onMatch>
-            <!-- 不匹配时的操作:拒绝(不记录) -->
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 用户访问日志输出  -->
-    <appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${log.path}/sys-user.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 按天回滚 daily -->
-            <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
-            <!-- 日志最大的历史 60天 -->
-            <maxHistory>60</maxHistory>
-        </rollingPolicy>
-        <encoder>
-            <pattern>${log.pattern}</pattern>
-        </encoder>
-    </appender>
-
-    <!-- 系统模块日志级别控制  -->
-    <logger name="com.als" level="info"/>
-    <!-- Spring日志级别控制  -->
-    <logger name="org.springframework" level="warn"/>
-
-    <root level="info">
-        <appender-ref ref="console"/>
-    </root>
-
-    <!--系统操作日志-->
-    <root level="info">
-        <appender-ref ref="file_info"/>
-        <appender-ref ref="file_error"/>
-    </root>
-
-    <!--系统用户操作日志-->
-    <logger name="sys-user" level="info">
-        <appender-ref ref="sys-user"/>
-    </logger>
-</configuration>

+ 0 - 66
als-common/als-common-core/src/main/java/com/als/common/core/exception/ServiceException.java

@@ -1,66 +0,0 @@
-package com.als.common.core.exception;
-
-import java.io.Serial;
-
-/**
- * 业务异常
- *
- * @author km
- */
-public final class ServiceException extends RuntimeException {
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 错误码
-     */
-    private Integer code;
-
-    /**
-     * 错误提示
-     */
-    private String message;
-
-    /**
-     * 错误明细,内部调试错误
-     */
-    private String detailMessage;
-
-    /**
-     * 空构造方法,避免反序列化问题
-     */
-    public ServiceException() {
-    }
-
-    public ServiceException(String message) {
-        this.message = message;
-    }
-
-    public ServiceException(String message, Integer code) {
-        this.message = message;
-        this.code = code;
-    }
-
-    public String getDetailMessage() {
-        return detailMessage;
-    }
-
-    public ServiceException setDetailMessage(String detailMessage) {
-        this.detailMessage = detailMessage;
-        return this;
-    }
-
-    @Override
-    public String getMessage() {
-        return message;
-    }
-
-    public ServiceException setMessage(String message) {
-        this.message = message;
-        return this;
-    }
-
-    public Integer getCode() {
-        return code;
-    }
-}

+ 0 - 18
als-common/als-common-core/src/main/java/com/als/common/core/service/UserService.java

@@ -1,18 +0,0 @@
-package com.als.common.core.service;
-
-/**
- * 通用 用户服务
- *
- * @author km
- */
-public interface UserService {
-
-    /**
-     * 通过用户ID查询用户账户
-     *
-     * @param userId 用户ID
-     * @return 用户账户
-     */
-    String selectUserNameById(Long userId);
-
-}

+ 0 - 7
als-common/als-common-core/src/main/java/com/als/common/core/validate/auth/EmailGroup.java

@@ -1,7 +0,0 @@
-package com.als.common.core.validate.auth;
-
-/**
- * @author km
- */
-public interface EmailGroup {
-}

+ 0 - 7
als-common/als-common-core/src/main/java/com/als/common/core/validate/auth/PasswordGroup.java

@@ -1,7 +0,0 @@
-package com.als.common.core.validate.auth;
-
-/**
- * @author km
- */
-public interface PasswordGroup {
-}

+ 0 - 7
als-common/als-common-core/src/main/java/com/als/common/core/validate/auth/SmsGroup.java

@@ -1,7 +0,0 @@
-package com.als.common.core.validate.auth;
-
-/**
- * @author km
- */
-public interface SmsGroup {
-}

+ 0 - 4
als-common/als-common-core/src/main/java/com/als/common/core/validate/auth/SocialGroup.java

@@ -1,4 +0,0 @@
-package com.als.common.core.validate.auth;
-
-public interface SocialGroup {
-}

+ 0 - 7
als-common/als-common-core/src/main/java/com/als/common/core/validate/auth/WechatGroup.java

@@ -1,7 +0,0 @@
-package com.als.common.core.validate.auth;
-
-/**
- * @author km
- */
-public interface WechatGroup {
-}

+ 0 - 5
als-common/als-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1,5 +0,0 @@
-com.als.common.core.config.ApplicationConfig
-com.als.common.core.config.AsyncConfig
-com.als.common.core.config.AlsConfig
-com.als.common.core.config.ThreadPoolConfig
-com.als.common.core.config.ValidatorConfig

+ 0 - 3
als-common/als-common-encrypt/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1,3 +0,0 @@
-com.als.common.encrypt.config.EncryptorAutoConfiguration
-com.als.common.encrypt.config.ApiDecryptAutoConfiguration
-

+ 0 - 1
als-common/als-common-json/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1 +0,0 @@
-com.als.common.json.config.JacksonConfig

+ 0 - 1
als-common/als-common-log/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1 +0,0 @@
-com.als.common.log.aspect.LogAspect

+ 0 - 19
als-common/als-common-orm/src/main/java/com/als/common/orm/config/PagehelperConfig.java

@@ -1,19 +0,0 @@
-package com.als.common.orm.config;
-
-import com.github.pagehelper.PageInterceptor;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * Pagehelper分页,兼用老项目
- *
- * @author km
- */
-@Configuration
-public class PagehelperConfig {
-    @Bean
-    public PageInterceptor pageInterceptor() {
-        PageInterceptor pageInterceptor = new PageInterceptor();
-        return pageInterceptor;
-    }
-}

+ 0 - 79
als-common/als-common-orm/src/main/java/com/als/common/orm/core/page/TableDataInfo.java

@@ -1,79 +0,0 @@
-package com.als.common.orm.core.page;
-
-import cn.hutool.http.HttpStatus;
-import com.mybatisflex.core.paginate.Page;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.util.List;
-
-/**
- * 表格分页数据对象
- *
- * @author km
- */
-@Data
-@NoArgsConstructor
-public class TableDataInfo<T> implements Serializable {
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 总记录数
-     */
-    private long total;
-
-    /**
-     * 列表数据
-     */
-    private List<T> data;
-
-    /**
-     * 消息状态码
-     */
-    private int code;
-
-    /**
-     * 消息内容
-     */
-    private String msg;
-
-
-    /**
-     * 分页
-     *
-     * @param list  列表数据
-     * @param total 总记录数
-     */
-    public TableDataInfo(List<T> list, int total) {
-        this.data = list;
-        this.total = total;
-    }
-
-    public static <T> TableDataInfo<T> build(List<T> list) {
-        TableDataInfo<T> rspData = new TableDataInfo<>();
-        rspData.setCode(HttpStatus.HTTP_OK);
-        rspData.setMsg("查询成功");
-        rspData.setData(list);
-        rspData.setTotal(list.size());
-        return rspData;
-    }
-
-    public static <T> TableDataInfo<T> build() {
-        TableDataInfo<T> rspData = new TableDataInfo<>();
-        rspData.setCode(HttpStatus.HTTP_OK);
-        rspData.setMsg("查询成功");
-        return rspData;
-    }
-
-    public static <T> TableDataInfo<T> build(Page<T> page) {
-        TableDataInfo<T> rspData = new TableDataInfo<>();
-        rspData.setCode(HttpStatus.HTTP_OK);
-        rspData.setMsg("查询成功");
-        rspData.setData(page.getRecords());
-        rspData.setTotal(page.getTotalRow());
-        return rspData;
-    }
-}

+ 0 - 31
als-common/als-common-orm/src/main/java/com/als/common/orm/listener/EntityUpdateListener.java

@@ -1,31 +0,0 @@
-package com.als.common.orm.listener;
-
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.http.HttpStatus;
-import com.als.common.core.exception.ServiceException;
-import com.als.common.orm.core.domain.BaseEntity;
-import com.als.common.security.utils.LoginHelper;
-import com.mybatisflex.annotation.UpdateListener;
-
-import java.util.Date;
-
-/**
- * Entity实体类全局更新数据监听器
- *
- * @author km
- */
-public class EntityUpdateListener implements UpdateListener {
-    @Override
-    public void onUpdate(Object entity) {
-        try {
-            if (ObjectUtil.isNotNull(entity) && (entity instanceof BaseEntity)) {
-                BaseEntity baseEntity = (BaseEntity) entity;
-                baseEntity.setUpdateBy(LoginHelper.getUserId());
-                baseEntity.setUpdateTime(new Date());
-            }
-        } catch (Exception e) {
-            throw new ServiceException("全局更新数据监听器注入异常 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED);
-        }
-
-    }
-}

+ 0 - 2
als-common/als-common-orm/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1,2 +0,0 @@
-com.als.common.orm.config.PagehelperConfig
-com.als.common.orm.config.MyBatisFlexConfig

+ 0 - 40
als-common/als-common-oss/pom.xml

@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>com.als</groupId>
-        <artifactId>als-common</artifactId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>als-common-oss</artifactId>
-
-    <description>
-        als-common-oss oss对象存储服务
-    </description>
-
-    <dependencies>
-        <dependency>
-            <groupId>com.als</groupId>
-            <artifactId>als-common-core</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>com.als</groupId>
-            <artifactId>als-common-json</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>com.als</groupId>
-            <artifactId>als-common-redis</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>com.amazonaws</groupId>
-            <artifactId>aws-java-sdk-s3</artifactId>
-        </dependency>
-    </dependencies>
-
-</project>

+ 0 - 267
als-common/als-common-oss/src/main/java/com/als/common/oss/core/OssClient.java

@@ -1,267 +0,0 @@
-package com.als.common.oss.core;
-
-import cn.hutool.core.io.IoUtil;
-import cn.hutool.core.util.IdUtil;
-import com.amazonaws.ClientConfiguration;
-import com.amazonaws.HttpMethod;
-import com.amazonaws.Protocol;
-import com.amazonaws.auth.AWSCredentials;
-import com.amazonaws.auth.AWSCredentialsProvider;
-import com.amazonaws.auth.AWSStaticCredentialsProvider;
-import com.amazonaws.auth.BasicAWSCredentials;
-import com.amazonaws.client.builder.AwsClientBuilder;
-import com.amazonaws.services.s3.AmazonS3;
-import com.amazonaws.services.s3.AmazonS3Client;
-import com.amazonaws.services.s3.AmazonS3ClientBuilder;
-import com.amazonaws.services.s3.model.CreateBucketRequest;
-import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest;
-import com.amazonaws.services.s3.model.ObjectMetadata;
-import com.amazonaws.services.s3.model.PutObjectRequest;
-import com.amazonaws.services.s3.model.S3Object;
-import com.als.common.core.utils.DateUtils;
-import com.als.common.core.utils.StringUtils;
-import com.als.common.oss.constant.OssConstant;
-import com.als.common.oss.entity.UploadResult;
-import com.als.common.oss.enumd.AccessPolicyType;
-import com.als.common.oss.enumd.PolicyType;
-import com.als.common.oss.exception.OssException;
-import com.als.common.oss.properties.OssProperties;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Date;
-
-/**
- * S3 存储协议 所有兼容S3协议的云厂商均支持
- * 阿里云 腾讯云 七牛云 minio
- *
- * @author km
- */
-public class OssClient {
-
-    private final String configKey;
-
-    private final OssProperties properties;
-
-    private final AmazonS3 client;
-
-    public OssClient(String configKey, OssProperties ossProperties) {
-        this.configKey = configKey;
-        this.properties = ossProperties;
-        try {
-            AwsClientBuilder.EndpointConfiguration endpointConfig =
-                new AwsClientBuilder.EndpointConfiguration(properties.getEndpoint(), properties.getRegion());
-
-            AWSCredentials credentials = new BasicAWSCredentials(properties.getAccessKey(), properties.getSecretKey());
-            AWSCredentialsProvider credentialsProvider = new AWSStaticCredentialsProvider(credentials);
-            ClientConfiguration clientConfig = new ClientConfiguration();
-            if (OssConstant.IS_HTTPS.equals(properties.getIsHttps())) {
-                clientConfig.setProtocol(Protocol.HTTPS);
-            } else {
-                clientConfig.setProtocol(Protocol.HTTP);
-            }
-            AmazonS3ClientBuilder build = AmazonS3Client.builder()
-                .withEndpointConfiguration(endpointConfig)
-                .withClientConfiguration(clientConfig)
-                .withCredentials(credentialsProvider)
-                .disableChunkedEncoding();
-            if (!StringUtils.containsAny(properties.getEndpoint(), OssConstant.CLOUD_SERVICE)) {
-                // minio 使用https限制使用域名访问 需要此配置 站点填域名
-                build.enablePathStyleAccess();
-            }
-            this.client = build.build();
-
-            createBucket();
-        } catch (Exception e) {
-            if (e instanceof OssException) {
-                throw e;
-            }
-            throw new OssException("配置错误! 请检查系统配置:[" + e.getMessage() + "]");
-        }
-    }
-
-    private static String getPolicy(String bucketName, PolicyType policyType) {
-        StringBuilder builder = new StringBuilder();
-        builder.append("{\n\"Statement\": [\n{\n\"Action\": [\n");
-        builder.append(switch (policyType) {
-            case WRITE -> "\"s3:GetBucketLocation\",\n\"s3:ListBucketMultipartUploads\"\n";
-            case READ_WRITE -> "\"s3:GetBucketLocation\",\n\"s3:ListBucket\",\n\"s3:ListBucketMultipartUploads\"\n";
-            default -> "\"s3:GetBucketLocation\"\n";
-        });
-        builder.append("],\n\"Effect\": \"Allow\",\n\"Principal\": \"*\",\n\"Resource\": \"arn:aws:s3:::");
-        builder.append(bucketName);
-        builder.append("\"\n},\n");
-        if (policyType == PolicyType.READ) {
-            builder.append("{\n\"Action\": [\n\"s3:ListBucket\"\n],\n\"Effect\": \"Deny\",\n\"Principal\": \"*\",\n\"Resource\": \"arn:aws:s3:::");
-            builder.append(bucketName);
-            builder.append("\"\n},\n");
-        }
-        builder.append("{\n\"Action\": ");
-        builder.append(switch (policyType) {
-            case WRITE ->
-                "[\n\"s3:AbortMultipartUpload\",\n\"s3:DeleteObject\",\n\"s3:ListMultipartUploadParts\",\n\"s3:PutObject\"\n],\n";
-            case READ_WRITE ->
-                "[\n\"s3:AbortMultipartUpload\",\n\"s3:DeleteObject\",\n\"s3:GetObject\",\n\"s3:ListMultipartUploadParts\",\n\"s3:PutObject\"\n],\n";
-            default -> "\"s3:GetObject\",\n";
-        });
-        builder.append("\"Effect\": \"Allow\",\n\"Principal\": \"*\",\n\"Resource\": \"arn:aws:s3:::");
-        builder.append(bucketName);
-        builder.append("/*\"\n}\n],\n\"Version\": \"2012-10-17\"\n}\n");
-        return builder.toString();
-    }
-
-    public void createBucket() {
-        try {
-            String bucketName = properties.getBucketName();
-            if (client.doesBucketExistV2(bucketName)) {
-                return;
-            }
-            CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName);
-            AccessPolicyType accessPolicy = getAccessPolicy();
-            createBucketRequest.setCannedAcl(accessPolicy.getAcl());
-            client.createBucket(createBucketRequest);
-            client.setBucketPolicy(bucketName, getPolicy(bucketName, accessPolicy.getPolicyType()));
-        } catch (Exception e) {
-            throw new OssException("创建Bucket失败, 请核对配置信息:[" + e.getMessage() + "]");
-        }
-    }
-
-    public UploadResult upload(byte[] data, String path, String contentType) {
-        return upload(new ByteArrayInputStream(data), path, contentType);
-    }
-
-    public UploadResult upload(InputStream inputStream, String path, String contentType) {
-        if (!(inputStream instanceof ByteArrayInputStream)) {
-            inputStream = new ByteArrayInputStream(IoUtil.readBytes(inputStream));
-        }
-        try {
-            ObjectMetadata metadata = new ObjectMetadata();
-            metadata.setContentType(contentType);
-            metadata.setContentLength(inputStream.available());
-            PutObjectRequest putObjectRequest = new PutObjectRequest(properties.getBucketName(), path, inputStream, metadata);
-            // 设置上传对象的 Acl 为公共读
-            putObjectRequest.setCannedAcl(getAccessPolicy().getAcl());
-            client.putObject(putObjectRequest);
-        } catch (Exception e) {
-            throw new OssException("上传文件失败,请检查配置信息:[" + e.getMessage() + "]");
-        }
-        return UploadResult.builder().url(getUrl() + "/" + path).filename(path).build();
-    }
-
-    public UploadResult upload(File file, String path) {
-        try {
-            PutObjectRequest putObjectRequest = new PutObjectRequest(properties.getBucketName(), path, file);
-            // 设置上传对象的 Acl 为公共读
-            putObjectRequest.setCannedAcl(getAccessPolicy().getAcl());
-            client.putObject(putObjectRequest);
-        } catch (Exception e) {
-            throw new OssException("上传文件失败,请检查配置信息:[" + e.getMessage() + "]");
-        }
-        return UploadResult.builder().url(getUrl() + "/" + path).filename(path).build();
-    }
-
-    public void delete(String path) {
-        path = path.replace(getUrl() + "/", "");
-        try {
-            client.deleteObject(properties.getBucketName(), path);
-        } catch (Exception e) {
-            throw new OssException("删除文件失败,请检查配置信息:[" + e.getMessage() + "]");
-        }
-    }
-
-    public UploadResult uploadSuffix(byte[] data, String suffix, String contentType) {
-        return upload(data, getPath(properties.getPrefix(), suffix), contentType);
-    }
-
-    public UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType) {
-        return upload(inputStream, getPath(properties.getPrefix(), suffix), contentType);
-    }
-
-    public UploadResult uploadSuffix(File file, String suffix) {
-        return upload(file, getPath(properties.getPrefix(), suffix));
-    }
-
-    /**
-     * 获取文件元数据
-     *
-     * @param path 完整文件路径
-     */
-    public ObjectMetadata getObjectMetadata(String path) {
-        path = path.replace(getUrl() + "/", "");
-        S3Object object = client.getObject(properties.getBucketName(), path);
-        return object.getObjectMetadata();
-    }
-
-    public InputStream getObjectContent(String path) {
-        path = path.replace(getUrl() + "/", "");
-        S3Object object = client.getObject(properties.getBucketName(), path);
-        return object.getObjectContent();
-    }
-
-    public String getUrl() {
-        String domain = properties.getDomain();
-        String endpoint = properties.getEndpoint();
-        String header = OssConstant.IS_HTTPS.equals(properties.getIsHttps()) ? "https://" : "http://";
-        // 云服务商直接返回
-        if (StringUtils.containsAny(endpoint, OssConstant.CLOUD_SERVICE)) {
-            if (StringUtils.isNotBlank(domain)) {
-                return header + domain;
-            }
-            return header + properties.getBucketName() + "." + endpoint;
-        }
-        // minio 单独处理
-        if (StringUtils.isNotBlank(domain)) {
-            return header + domain + "/" + properties.getBucketName();
-        }
-        return header + endpoint + "/" + properties.getBucketName();
-    }
-
-    public String getPath(String prefix, String suffix) {
-        // 生成uuid
-        String uuid = IdUtil.fastSimpleUUID();
-        // 文件路径
-        String path = DateUtils.datePath() + "/" + uuid;
-        if (StringUtils.isNotBlank(prefix)) {
-            path = prefix + "/" + path;
-        }
-        return path + suffix;
-    }
-
-    public String getConfigKey() {
-        return configKey;
-    }
-
-    /**
-     * 获取私有URL链接
-     *
-     * @param objectKey 对象KEY
-     * @param second    授权时间
-     */
-    public String getPrivateUrl(String objectKey, Integer second) {
-        GeneratePresignedUrlRequest generatePresignedUrlRequest =
-            new GeneratePresignedUrlRequest(properties.getBucketName(), objectKey)
-                .withMethod(HttpMethod.GET)
-                .withExpiration(new Date(System.currentTimeMillis() + 1000L * second));
-        URL url = client.generatePresignedUrl(generatePresignedUrlRequest);
-        return url.toString();
-    }
-
-    /**
-     * 检查配置是否相同
-     */
-    public boolean checkPropertiesSame(OssProperties properties) {
-        return this.properties.equals(properties);
-    }
-
-    /**
-     * 获取当前桶权限类型
-     *
-     * @return 当前桶权限类型code
-     */
-    public AccessPolicyType getAccessPolicy() {
-        return AccessPolicyType.getByType(properties.getAccessPolicy());
-    }
-
-}

+ 0 - 65
als-common/als-common-oss/src/main/java/com/als/common/oss/factory/OssFactory.java

@@ -1,65 +0,0 @@
-package com.als.common.oss.factory;
-
-import com.als.common.core.constant.CacheNames;
-import com.als.common.core.utils.StringUtils;
-import com.als.common.json.utils.JsonUtils;
-import com.als.common.oss.constant.OssConstant;
-import com.als.common.oss.core.OssClient;
-import com.als.common.oss.exception.OssException;
-import com.als.common.oss.properties.OssProperties;
-import com.als.common.redis.utils.CacheUtils;
-import com.als.common.redis.utils.RedisUtils;
-import lombok.extern.slf4j.Slf4j;
-
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * 文件上传Factory
- *
- * @author km
- */
-@Slf4j
-public class OssFactory {
-
-    private static final Map<String, OssClient> CLIENT_CACHE = new ConcurrentHashMap<>();
-
-    /**
-     * 获取默认实例
-     */
-    public static OssClient instance() {
-        // 获取redis 默认类型
-        String configKey = RedisUtils.getCacheObject(OssConstant.DEFAULT_CONFIG_KEY);
-        if (StringUtils.isEmpty(configKey)) {
-            throw new OssException("文件存储服务类型无法找到!");
-        }
-        return instance(configKey);
-    }
-
-    /**
-     * 根据类型获取实例
-     */
-    public static synchronized OssClient instance(String configKey) {
-        String json = CacheUtils.get(CacheNames.SYS_OSS_CONFIG, configKey);
-        if (json == null) {
-            throw new OssException("系统异常, '" + configKey + "'配置信息不存在!");
-        }
-        OssProperties properties = JsonUtils.parseObject(json, OssProperties.class);
-        // 使用租户标识避免多个租户相同key实例覆盖
-        String key = properties.getTenantId() + ":" + configKey;
-        OssClient client = CLIENT_CACHE.get(key);
-        if (client == null) {
-            CLIENT_CACHE.put(key, new OssClient(configKey, properties));
-            log.info("创建OSS实例 key => {}", configKey);
-            return CLIENT_CACHE.get(key);
-        }
-        // 配置不相同则重新构建
-        if (!client.checkPropertiesSame(properties)) {
-            CLIENT_CACHE.put(key, new OssClient(configKey, properties));
-            log.info("重载OSS实例 key => {}", configKey);
-            return CLIENT_CACHE.get(key);
-        }
-        return client;
-    }
-
-}

+ 0 - 1
als-common/als-common-ratelimiter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1 +0,0 @@
-com.als.common.ratelimiter.config.RateLimiterConfig

+ 0 - 1
als-common/als-common-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1 +0,0 @@
-com.als.common.redis.config.RedisConfig

+ 0 - 53
als-common/als-common-security/src/main/java/com/als/common/security/config/SecurityConfig.java

@@ -1,53 +0,0 @@
-package com.als.common.security.config;
-
-import cn.dev33.satoken.interceptor.SaInterceptor;
-import cn.dev33.satoken.router.SaRouter;
-import cn.dev33.satoken.stp.StpUtil;
-import com.als.common.core.utils.SpringUtils;
-import com.als.common.security.config.properties.SecurityProperties;
-import com.als.common.security.handler.AllUrlHandler;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.boot.autoconfigure.AutoConfiguration;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-/**
- * 权限安全配置
- *
- * @author km
- */
-
-@Slf4j
-@AutoConfiguration
-@EnableConfigurationProperties(SecurityProperties.class)
-@RequiredArgsConstructor
-public class SecurityConfig implements WebMvcConfigurer {
-
-    private final SecurityProperties securityProperties;
-
-    /**
-     * 注册 Sa-Token 路由拦截器
-     */
-    @Override
-    public void addInterceptors(InterceptorRegistry registry) {
-        // 注册路由拦截器,自定义验证规则
-        registry.addInterceptor(new SaInterceptor(handler -> {
-                AllUrlHandler allUrlHandler = SpringUtils.getBean(AllUrlHandler.class);
-                // 登录验证 -- 排除多个路径
-                SaRouter
-                    // 获取所有的
-                    .match(allUrlHandler.getUrls())  // 拦截的 path 列表
-                    .check(() -> {
-                        // 检查是否登录 是否有token
-                        StpUtil.checkLogin();
-
-                        //TODO :以后完善多平台登录校验clientID功能
-
-                    });
-            })).addPathPatterns("/**")
-            // 排除不需要拦截的路径
-            .excludePathPatterns(securityProperties.getExcludes());
-    }
-}

+ 0 - 4
als-common/als-common-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1,4 +0,0 @@
-com.als.common.security.config.SaTokenConfig
-com.als.common.security.config.SecurityConfig
-com.als.common.security.handler.GlobalExceptionHandler
-com.als.common.security.handler.AllUrlHandler

+ 0 - 1
als-common/als-common-springdoc/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1 +0,0 @@
-com.als.common.springdoc.config.SpringDocConfig

+ 0 - 1
als-common/als-common-tenant/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1 +0,0 @@
-com.als.common.tenant.config.TenantConfig

+ 0 - 5
als-common/als-common-web/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1,5 +0,0 @@
-com.als.common.web.config.CaptchaConfig
-com.als.common.web.config.FilterConfig
-com.als.common.web.config.I18nConfig
-com.als.common.web.config.ResourcesConfig
-com.als.common.web.config.RepeatSubmitConfig

+ 0 - 51
als-common/als-common-websocket/src/main/java/com/als/common/websocket/interceptor/FlexWebSocketInterceptor.java

@@ -1,51 +0,0 @@
-package com.als.common.websocket.interceptor;
-
-import com.als.common.core.core.domain.model.LoginUser;
-import com.als.common.security.utils.LoginHelper;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.http.server.ServerHttpRequest;
-import org.springframework.http.server.ServerHttpResponse;
-import org.springframework.web.socket.WebSocketHandler;
-import org.springframework.web.socket.server.HandshakeInterceptor;
-
-import java.util.Map;
-
-import static com.als.common.websocket.constant.WebSocketConstants.LOGIN_USER_KEY;
-
-/**
- * WebSocket握手请求的拦截器
- *
- * @author zendwang
- */
-@Slf4j
-public class FlexWebSocketInterceptor implements HandshakeInterceptor {
-
-    /**
-     * 握手前
-     *
-     * @param request    request
-     * @param response   response
-     * @param wsHandler  wsHandler
-     * @param attributes attributes
-     * @return 是否握手成功
-     */
-    @Override
-    public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map<String, Object> attributes) {
-        LoginUser loginUser = LoginHelper.getLoginUser();
-        attributes.put(LOGIN_USER_KEY, loginUser);
-        return true;
-    }
-
-    /**
-     * 握手后
-     *
-     * @param request   request
-     * @param response  response
-     * @param wsHandler wsHandler
-     * @param exception 异常
-     */
-    @Override
-    public void afterHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Exception exception) {
-
-    }
-}

+ 0 - 1
als-common/als-common-websocket/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1 +0,0 @@
-com.als.common.websocket.config.WebSocketConfig

+ 40 - 33
als-common/als-common-bom/pom.xml → als-common/common-bom/pom.xml

@@ -4,13 +4,13 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
-    <groupId>com.als</groupId>
-    <artifactId>als-common-bom</artifactId>
+    <groupId>org.eco</groupId>
+    <artifactId>common-bom</artifactId>
     <version>${revision}</version>
     <packaging>pom</packaging>
 
     <description>
-        als-common-bom common依赖项
+        common-bom common依赖项
     </description>
 
     <properties>
@@ -21,106 +21,113 @@
         <dependencies>
             <!-- 核心模块 -->
             <dependency>
-                <groupId>com.als</groupId>
-                <artifactId>als-common-core</artifactId>
+                <groupId>org.eco</groupId>
+                <artifactId>common-core</artifactId>
                 <version>${revision}</version>
             </dependency>
 
             <!-- 加解密模块 -->
             <dependency>
-                <groupId>com.als</groupId>
-                <artifactId>als-common-encrypt</artifactId>
+                <groupId>org.eco</groupId>
+                <artifactId>common-encrypt</artifactId>
                 <version>${revision}</version>
             </dependency>
 
             <!-- excel模块 -->
             <dependency>
-                <groupId>com.als</groupId>
-                <artifactId>als-common-excel</artifactId>
+                <groupId>org.eco</groupId>
+                <artifactId>common-excel</artifactId>
                 <version>${revision}</version>
             </dependency>
 
             <!-- 定时任务模块 -->
             <dependency>
-                <groupId>com.als</groupId>
-                <artifactId>als-common-job</artifactId>
+                <groupId>org.eco</groupId>
+                <artifactId>common-job</artifactId>
                 <version>${revision}</version>
             </dependency>
 
             <!-- 序列化模块 -->
             <dependency>
-                <groupId>com.als</groupId>
-                <artifactId>als-common-json</artifactId>
+                <groupId>org.eco</groupId>
+                <artifactId>common-json</artifactId>
                 <version>${revision}</version>
             </dependency>
 
             <!-- 日志模块 -->
             <dependency>
-                <groupId>com.als</groupId>
-                <artifactId>als-common-log</artifactId>
+                <groupId>org.eco</groupId>
+                <artifactId>common-log</artifactId>
                 <version>${revision}</version>
             </dependency>
 
             <!-- 数据库映射模块 -->
             <dependency>
-                <groupId>com.als</groupId>
-                <artifactId>als-common-orm</artifactId>
+                <groupId>org.eco</groupId>
+                <artifactId>common-orm</artifactId>
                 <version>${revision}</version>
             </dependency>
 
             <!-- oss对象存储服务模块 -->
             <dependency>
-                <groupId>com.als</groupId>
-                <artifactId>als-common-oss</artifactId>
+                <groupId>org.eco</groupId>
+                <artifactId>common-oss</artifactId>
                 <version>${revision}</version>
             </dependency>
 
             <!-- 限流公共服务 -->
             <dependency>
-                <groupId>com.als</groupId>
-                <artifactId>als-common-ratelimiter</artifactId>
+                <groupId>org.eco</groupId>
+                <artifactId>common-ratelimiter</artifactId>
                 <version>${revision}</version>
             </dependency>
 
             <!-- 缓存服务 -->
             <dependency>
-                <groupId>com.als</groupId>
-                <artifactId>als-common-redis</artifactId>
+                <groupId>org.eco</groupId>
+                <artifactId>common-redis</artifactId>
                 <version>${revision}</version>
             </dependency>
 
             <!-- 安全模块 -->
             <dependency>
-                <groupId>com.als</groupId>
-                <artifactId>als-common-security</artifactId>
+                <groupId>org.eco</groupId>
+                <artifactId>common-security</artifactId>
                 <version>${revision}</version>
             </dependency>
 
             <!-- 接口模块 -->
             <dependency>
-                <groupId>com.als</groupId>
-                <artifactId>als-common-springdoc</artifactId>
+                <groupId>org.eco</groupId>
+                <artifactId>common-springdoc</artifactId>
                 <version>${revision}</version>
             </dependency>
 
             <!-- 多租户模块 -->
             <dependency>
-                <groupId>com.als</groupId>
-                <artifactId>als-common-tenant</artifactId>
+                <groupId>org.eco</groupId>
+                <artifactId>common-tenant</artifactId>
                 <version>${revision}</version>
             </dependency>
 
             <!-- web服务 -->
             <dependency>
-                <groupId>com.als</groupId>
-                <artifactId>als-common-web</artifactId>
+                <groupId>org.eco</groupId>
+                <artifactId>common-web</artifactId>
+                <version>${revision}</version>
+            </dependency>
+
+            <!-- 字段映射服务 -->
+            <dependency>
+                <groupId>org.eco</groupId>
+                <artifactId>common-mapper</artifactId>
                 <version>${revision}</version>
             </dependency>
 
             <!-- WebSocket模块 -->
             <dependency>
-                <groupId>com.als</groupId>
-                <artifactId>als-common-websocket</artifactId>
+                <groupId>org.eco</groupId>
+                <artifactId>common-websocket</artifactId>
                 <version>${revision}</version>
             </dependency>
 

+ 7 - 2
als-common/als-common-core/pom.xml → als-common/common-core/pom.xml

@@ -3,14 +3,14 @@
          xmlns="http://maven.apache.org/POM/4.0.0"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <groupId>com.als</groupId>
+        <groupId>org.eco</groupId>
         <artifactId>als-common</artifactId>
         <version>${revision}</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <packaging>jar</packaging>
 
-    <artifactId>als-common-core</artifactId>
+    <artifactId>common-core</artifactId>
 
     <description>
         common-core通用工具
@@ -115,6 +115,11 @@
             <artifactId>hutool-core</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-json</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>cn.hutool</groupId>
             <artifactId>hutool-http</artifactId>

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/annotation/Anonymous.java → als-common/common-core/src/main/java/org/eco/common/core/annotation/Anonymous.java

@@ -1,4 +1,4 @@
-package com.als.common.core.annotation;
+package org.eco.common.core.annotation;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
@@ -9,7 +9,7 @@ import java.lang.annotation.Target;
 /**
  * 匿名访问不鉴权注解
  *
- * @author km
+ * @author wgk
  */
 @Target({ElementType.METHOD, ElementType.TYPE})
 @Retention(RetentionPolicy.RUNTIME)

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/annotation/DataScope.java → als-common/common-core/src/main/java/org/eco/common/core/annotation/DataScope.java

@@ -1,4 +1,4 @@
-package com.als.common.core.annotation;
+package org.eco.common.core.annotation;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
@@ -9,7 +9,7 @@ import java.lang.annotation.Target;
 /**
  * 数据权限过滤注解
  *
- * @author km
+ * @author wgk
  */
 @Target(ElementType.METHOD)
 @Retention(RetentionPolicy.RUNTIME)

+ 3 - 3
als-common/als-common-core/src/main/java/com/als/common/core/annotation/Excel.java → als-common/common-core/src/main/java/org/eco/common/core/annotation/Excel.java

@@ -1,6 +1,6 @@
-package com.als.common.core.annotation;
+package org.eco.common.core.annotation;
 
-import com.als.common.core.utils.poi.ExcelHandlerAdapter;
+import org.eco.common.core.utils.poi.ExcelHandlerAdapter;
 import org.apache.poi.ss.usermodel.HorizontalAlignment;
 import org.apache.poi.ss.usermodel.IndexedColors;
 
@@ -13,7 +13,7 @@ import java.math.BigDecimal;
 /**
  * 自定义导出Excel数据注解
  *
- * @author km
+ * @author wgk
  */
 @Retention(RetentionPolicy.RUNTIME)
 @Target(ElementType.FIELD)

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/annotation/Excels.java → als-common/common-core/src/main/java/org/eco/common/core/annotation/Excels.java

@@ -1,4 +1,4 @@
-package com.als.common.core.annotation;
+package org.eco.common.core.annotation;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -8,7 +8,7 @@ import java.lang.annotation.Target;
 /**
  * Excel注解集
  *
- * @author km
+ * @author wgk
  */
 @Target(ElementType.FIELD)
 @Retention(RetentionPolicy.RUNTIME)

+ 4 - 4
als-common/als-common-core/src/main/java/com/als/common/core/annotation/RateLimiter.java → als-common/common-core/src/main/java/org/eco/common/core/annotation/RateLimiter.java

@@ -1,7 +1,7 @@
-package com.als.common.core.annotation;
+package org.eco.common.core.annotation;
 
-import com.als.common.core.constant.CacheConstants;
-import com.als.common.core.enums.LimitType;
+import org.eco.common.core.constant.CacheConstants;
+import org.eco.common.core.enums.LimitType;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
@@ -12,7 +12,7 @@ import java.lang.annotation.Target;
 /**
  * 限流注解
  *
- * @author km
+ * @author wgk
  */
 @Target(ElementType.METHOD)
 @Retention(RetentionPolicy.RUNTIME)

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/config/ApplicationConfig.java → als-common/common-core/src/main/java/org/eco/common/core/config/ApplicationConfig.java

@@ -1,4 +1,4 @@
-package com.als.common.core.config;
+package org.eco.common.core.config;
 
 import org.springframework.boot.autoconfigure.AutoConfiguration;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
@@ -7,7 +7,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
 /**
  * 程序注解配置
  *
- * @author km
+ * @author wgk
  */
 @AutoConfiguration
 // 表示通过aop框架暴露该代理对象,AopContext能够访问

+ 9 - 7
als-common/als-common-core/src/main/java/com/als/common/core/config/AsyncConfig.java → als-common/common-core/src/main/java/org/eco/common/core/config/AsyncConfig.java

@@ -1,11 +1,11 @@
-package com.als.common.core.config;
+package org.eco.common.core.config;
 
 import cn.hutool.core.util.ArrayUtil;
-import com.als.common.core.exception.ServiceException;
-import com.als.common.core.utils.SpringUtils;
+import org.eco.common.core.exception.BusinessException;
+import org.eco.common.core.utils.SpringUtils;
 import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
 import org.springframework.boot.autoconfigure.AutoConfiguration;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.core.task.VirtualThreadTaskExecutor;
 import org.springframework.scheduling.annotation.AsyncConfigurer;
 
 import java.util.Arrays;
@@ -14,9 +14,8 @@ import java.util.concurrent.Executor;
 /**
  * 异步配置
  *
- * @author km
+ * @author wgk
  */
-@ConditionalOnProperty(prefix = "spring.threads.virtual", name = "enabled", havingValue = "false")
 @AutoConfiguration
 public class AsyncConfig implements AsyncConfigurer {
 
@@ -25,6 +24,9 @@ public class AsyncConfig implements AsyncConfigurer {
      */
     @Override
     public Executor getAsyncExecutor() {
+        if (SpringUtils.isVirtual()) {
+            return new VirtualThreadTaskExecutor("async-");
+        }
         return SpringUtils.getBean("scheduledExecutorService");
     }
 
@@ -41,7 +43,7 @@ public class AsyncConfig implements AsyncConfigurer {
             if (ArrayUtil.isNotEmpty(objects)) {
                 sb.append(", Parameter value - ").append(Arrays.toString(objects));
             }
-            throw new ServiceException(sb.toString());
+            throw new BusinessException(sb.toString());
         };
     }
 

+ 15 - 45
als-common/als-common-core/src/main/java/com/als/common/core/config/AlsConfig.java → als-common/common-core/src/main/java/org/eco/common/core/config/EcoConfig.java

@@ -1,56 +1,57 @@
-package com.als.common.core.config;
+package org.eco.common.core.config;
 
+import lombok.Getter;
+import lombok.Setter;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.stereotype.Component;
 
 /**
  * 读取项目相关配置
  *
- * @author km
+ * @author wgk
  */
+@Setter
 @Component
-@ConfigurationProperties(prefix = "km")
-public class AlsConfig {
+@ConfigurationProperties(prefix = "eco")
+public class EcoConfig {
 
     /**
      * 文件路径
      */
+    @Getter
     private static String profile;
     /**
      * 获取地址开关
      */
+    @Getter
     private static boolean addressEnabled;
     /**
      * 项目名称
      */
+    @Getter
     private String name;
     /**
      * 版本
      */
+    @Getter
     private String version;
     /**
      * 版权年份
      */
+    @Getter
     private String copyrightYear;
     /**
      * 实例演示开关
      */
+    @Getter
     private boolean demoEnabled;
 
-    public static String getProfile() {
-        return profile;
-    }
-
     public void setProfile(String profile) {
-        AlsConfig.profile = profile;
-    }
-
-    public static boolean isAddressEnabled() {
-        return addressEnabled;
+        EcoConfig.profile = profile;
     }
 
     public void setAddressEnabled(boolean addressEnabled) {
-        AlsConfig.addressEnabled = addressEnabled;
+        EcoConfig.addressEnabled = addressEnabled;
     }
 
     /**
@@ -81,35 +82,4 @@ public class AlsConfig {
         return getProfile() + "/upload";
     }
 
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getVersion() {
-        return version;
-    }
-
-    public void setVersion(String version) {
-        this.version = version;
-    }
-
-    public String getCopyrightYear() {
-        return copyrightYear;
-    }
-
-    public void setCopyrightYear(String copyrightYear) {
-        this.copyrightYear = copyrightYear;
-    }
-
-    public boolean isDemoEnabled() {
-        return demoEnabled;
-    }
-
-    public void setDemoEnabled(boolean demoEnabled) {
-        this.demoEnabled = demoEnabled;
-    }
 }

+ 3 - 3
als-common/als-common-core/src/main/java/com/als/common/core/config/ThreadPoolConfig.java → als-common/common-core/src/main/java/org/eco/common/core/config/ThreadPoolConfig.java

@@ -1,9 +1,9 @@
-package com.als.common.core.config;
+package org.eco.common.core.config;
 
-import com.als.common.core.utils.Threads;
 import jakarta.annotation.PreDestroy;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.concurrent.BasicThreadFactory;
+import org.eco.common.core.utils.Threads;
 import org.springframework.boot.autoconfigure.AutoConfiguration;
 import org.springframework.context.annotation.Bean;
 
@@ -14,7 +14,7 @@ import java.util.concurrent.ThreadPoolExecutor;
 /**
  * 线程池配置
  *
- * @author km
+ * @author wgk
  **/
 @Slf4j
 @AutoConfiguration

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/config/ValidatorConfig.java → als-common/common-core/src/main/java/org/eco/common/core/config/ValidatorConfig.java

@@ -1,4 +1,4 @@
-package com.als.common.core.config;
+package org.eco.common.core.config;
 
 import jakarta.validation.Validator;
 import org.hibernate.validator.HibernateValidator;
@@ -12,7 +12,7 @@ import java.util.Properties;
 /**
  * 校验框架配置类
  *
- * @author km
+ * @author wgk
  */
 @AutoConfiguration
 public class ValidatorConfig {

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/constant/CacheConstants.java → als-common/common-core/src/main/java/org/eco/common/core/constant/CacheConstants.java

@@ -1,9 +1,9 @@
-package com.als.common.core.constant;
+package org.eco.common.core.constant;
 
 /**
  * 缓存的key 常量
  *
- * @author km
+ * @author wgk
  */
 public class CacheConstants {
     /**

+ 5 - 5
als-common/als-common-core/src/main/java/com/als/common/core/constant/CacheNames.java → als-common/common-core/src/main/java/org/eco/common/core/constant/CacheNames.java

@@ -1,17 +1,17 @@
-package com.als.common.core.constant;
+package org.eco.common.core.constant;
 
 /**
  * 缓存组名称常量
- * <p>
+ *
  * key 格式为 cacheNames#ttl#maxIdleTime#maxSize
- * <p>
+ *
  * ttl 过期时间 如果设置为0则不过期 默认为0
  * maxIdleTime 最大空闲时间 根据LRU算法清理空闲数据 如果设置为0则不检测 默认为0
  * maxSize 组最大长度 根据LRU算法清理溢出数据 如果设置为0则无限长 默认为0
- * <p>
+ *
  * 例子: test#60s、test#0#60s、test#0#1m#1000、test#1h#0#500
  *
- * @author km
+ * @author wgk
  */
 public interface CacheNames {
 

+ 4 - 4
als-common/als-common-core/src/main/java/com/als/common/core/constant/Constants.java → als-common/common-core/src/main/java/org/eco/common/core/constant/Constants.java

@@ -1,9 +1,9 @@
-package com.als.common.core.constant;
+package org.eco.common.core.constant;
 
 /**
  * 通用常量信息
  *
- * @author km
+ * @author wgk
  */
 public class Constants {
     /**
@@ -34,12 +34,12 @@ public class Constants {
     /**
      * 通用成功标识
      */
-    public static final String SUCCESS = "0";
+    public static final String SUCCESS = "1";
 
     /**
      * 通用失败标识
      */
-    public static final String FAIL = "1";
+    public static final String FAIL = "0";
 
     /**
      * 登录成功

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/constant/GenConstants.java → als-common/common-core/src/main/java/org/eco/common/core/constant/GenConstants.java

@@ -1,9 +1,9 @@
-package com.als.common.core.constant;
+package org.eco.common.core.constant;
 
 /**
  * 代码生成通用常量
  *
- * @author km
+ * @author wgk
  */
 public class GenConstants {
     /**

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/constant/GlobalConstants.java → als-common/common-core/src/main/java/org/eco/common/core/constant/GlobalConstants.java

@@ -1,9 +1,9 @@
-package com.als.common.core.constant;
+package org.eco.common.core.constant;
 
 /**
  * 全局的key常量 (业务无关的key)
  *
- * @author km
+ * @author wgk
  */
 public interface GlobalConstants {
 

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/constant/HttpStatus.java → als-common/common-core/src/main/java/org/eco/common/core/constant/HttpStatus.java

@@ -1,9 +1,9 @@
-package com.als.common.core.constant;
+package org.eco.common.core.constant;
 
 /**
  * 返回状态码
  *
- * @author km
+ * @author wgk
  */
 public class HttpStatus {
     /**

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/constant/ScheduleConstants.java → als-common/common-core/src/main/java/org/eco/common/core/constant/ScheduleConstants.java

@@ -1,9 +1,9 @@
-package com.als.common.core.constant;
+package org.eco.common.core.constant;
 
 /**
  * 任务调度通用常量
  *
- * @author km
+ * @author wgk
  */
 public class ScheduleConstants {
     public static final String TASK_CLASS_NAME = "TASK_CLASS_NAME";

+ 2 - 3
als-common/als-common-core/src/main/java/com/als/common/core/constant/TenantConstants.java → als-common/common-core/src/main/java/org/eco/common/core/constant/TenantConstants.java

@@ -1,10 +1,9 @@
-package com.als.common.core.constant;
+package org.eco.common.core.constant;
 
 /**
  * 租户常量信息
  *
- * @author km
- * @author km
+ * @author wgk
  */
 public interface TenantConstants {
 

+ 16 - 16
als-common/als-common-core/src/main/java/com/als/common/core/constant/UserConstants.java → als-common/common-core/src/main/java/org/eco/common/core/constant/UserConstants.java

@@ -1,9 +1,9 @@
-package com.als.common.core.constant;
+package org.eco.common.core.constant;
 
 /**
  * 用户常量信息
  *
- * @author km
+ * @author wgk
  */
 public class UserConstants {
     /**
@@ -14,52 +14,52 @@ public class UserConstants {
     /**
      * 正常状态
      */
-    public static final String NORMAL = "0";
+    public static final String NORMAL = "1";
 
     /**
      * 异常状态
      */
-    public static final String EXCEPTION = "1";
+    public static final String EXCEPTION = "2";
 
     /**
      * 用户正常状态
      */
-    public static final String USER_NORMAL = "0";
+    public static final String USER_NORMAL = "1";
 
     /**
      * 用户封禁状态
      */
-    public static final String USER_DISABLE = "1";
+    public static final String USER_DISABLE = "0";
 
     /**
      * 角色正常状态
      */
-    public static final String ROLE_NORMAL = "0";
+    public static final String ROLE_NORMAL = "1";
 
     /**
      * 角色封禁状态
      */
-    public static final String ROLE_DISABLE = "1";
+    public static final String ROLE_DISABLE = "0";
 
     /**
      * 部门正常状态
      */
-    public static final String DEPT_NORMAL = "0";
+    public static final String DEPT_NORMAL = "1";
 
     /**
      * 部门停用状态
      */
-    public static final String DEPT_DISABLE = "1";
+    public static final String DEPT_DISABLE = "0";
 
     /**
      * 岗位正常状态
      */
-    public static final String POST_NORMAL = "0";
+    public static final String POST_NORMAL = "1";
 
     /**
      * 岗位停用状态
      */
-    public static final String POST_DISABLE = "1";
+    public static final String POST_DISABLE = "0";
 
     /**
      * 是否为系统默认(是)
@@ -69,22 +69,22 @@ public class UserConstants {
     /**
      * 是否菜单外链(是)
      */
-    public static final String YES_FRAME = "0";
+    public static final String YES_FRAME = "1";
 
     /**
      * 是否菜单外链(否)
      */
-    public static final String NO_FRAME = "1";
+    public static final String NO_FRAME = "0";
 
     /**
      * 菜单正常状态
      */
-    public static final String MENU_NORMAL = "0";
+    public static final String MENU_NORMAL = "1";
 
     /**
      * 菜单停用状态
      */
-    public static final String MENU_DISABLE = "1";
+    public static final String MENU_DISABLE = "0";
 
     /**
      * 菜单类型(目录)

+ 3 - 3
als-common/als-common-core/src/main/java/com/als/common/core/core/domain/CommonResult.java → als-common/common-core/src/main/java/org/eco/common/core/core/domain/CommonResult.java

@@ -1,6 +1,6 @@
-package com.als.common.core.core.domain;
+package org.eco.common.core.core.domain;
 
-import com.als.common.core.constant.HttpStatus;
+import org.eco.common.core.constant.HttpStatus;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
@@ -10,7 +10,7 @@ import java.io.Serializable;
 /**
  * 通用响应信息
  *
- * @author km
+ * @author wgk
  * @Date 2024/01.25
  */
 @Data

+ 19 - 0
als-common/common-core/src/main/java/org/eco/common/core/core/domain/UploadRes.java

@@ -0,0 +1,19 @@
+package org.eco.common.core.core.domain;
+
+import lombok.Builder;
+import lombok.Data;
+
+/**
+ * @Description: UploadRes
+ * @Author: GaoKun Wang
+ * @Date: 2024/6/28
+ */
+@Data
+@Builder
+public class UploadRes {
+    private String url;
+    private String name;
+    private Long ossId;
+
+
+}

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/core/domain/dto/RoleDTO.java → als-common/common-core/src/main/java/org/eco/common/core/core/domain/dto/RoleDTO.java

@@ -1,4 +1,4 @@
-package com.als.common.core.core.domain.dto;
+package org.eco.common.core.core.domain.dto;
 
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -8,7 +8,7 @@ import java.io.Serializable;
 /**
  * 角色
  *
- * @author km
+ * @author wgk
  */
 
 @Data

+ 12 - 2
als-common/als-common-core/src/main/java/com/als/common/core/core/domain/dto/UserOnlineDTO.java → als-common/common-core/src/main/java/org/eco/common/core/core/domain/dto/UserOnlineDTO.java

@@ -1,4 +1,4 @@
-package com.als.common.core.core.domain.dto;
+package org.eco.common.core.core.domain.dto;
 
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -9,7 +9,7 @@ import java.io.Serializable;
 /**
  * 当前在线会话
  *
- * @author km
+ * @author wgk
  */
 
 @Data
@@ -58,5 +58,15 @@ public class UserOnlineDTO implements Serializable {
      * 登录时间
      */
     private Long loginTime;
+    /**
+     * 客户端
+     */
+    private String clientKey;
+
+    /**
+     * 设备类型
+     */
+    private String deviceType;
+
 
 }

+ 4 - 2
als-common/als-common-core/src/main/java/com/als/common/core/core/domain/model/EmailLoginBody.java → als-common/common-core/src/main/java/org/eco/common/core/core/domain/model/EmailLoginBody.java

@@ -1,15 +1,17 @@
-package com.als.common.core.core.domain.model;
+package org.eco.common.core.core.domain.model;
 
 import jakarta.validation.constraints.Email;
 import jakarta.validation.constraints.NotBlank;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 /**
  * 邮件登录对象
  *
- * @author km
+ * @author wgk
  */
 
+@EqualsAndHashCode(callSuper = true)
 @Data
 public class EmailLoginBody extends LoginBody {
 

+ 9 - 9
als-common/als-common-core/src/main/java/com/als/common/core/core/domain/model/LoginBody.java → als-common/common-core/src/main/java/org/eco/common/core/core/domain/model/LoginBody.java

@@ -1,11 +1,11 @@
-package com.als.common.core.core.domain.model;
-
-import com.als.common.core.constant.UserConstants;
-import com.als.common.core.validate.auth.EmailGroup;
-import com.als.common.core.validate.auth.PasswordGroup;
-import com.als.common.core.validate.auth.SmsGroup;
-import com.als.common.core.validate.auth.SocialGroup;
-import com.als.common.core.validate.auth.WechatGroup;
+package org.eco.common.core.core.domain.model;
+
+import org.eco.common.core.constant.UserConstants;
+import org.eco.common.core.validate.auth.EmailGroup;
+import org.eco.common.core.validate.auth.PasswordGroup;
+import org.eco.common.core.validate.auth.SmsGroup;
+import org.eco.common.core.validate.auth.SocialGroup;
+import org.eco.common.core.validate.auth.WechatGroup;
 import jakarta.validation.constraints.Email;
 import jakarta.validation.constraints.NotBlank;
 import lombok.Data;
@@ -14,7 +14,7 @@ import org.hibernate.validator.constraints.Length;
 /**
  * 用户登录对象
  *
- * @author km
+ * @author wgk
  */
 @Data
 public class LoginBody {

+ 3 - 3
als-common/als-common-core/src/main/java/com/als/common/core/core/domain/model/LoginUser.java → als-common/common-core/src/main/java/org/eco/common/core/core/domain/model/LoginUser.java

@@ -1,6 +1,6 @@
-package com.als.common.core.core.domain.model;
+package org.eco.common.core.core.domain.model;
 
-import com.als.common.core.core.domain.dto.RoleDTO;
+import org.eco.common.core.core.domain.dto.RoleDTO;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
@@ -11,7 +11,7 @@ import java.util.Set;
 /**
  * 登录用户身份权限
  *
- * @author km
+ * @author wgk
  */
 @Data
 @NoArgsConstructor

+ 6 - 6
als-common/als-common-core/src/main/java/com/als/common/core/core/domain/model/PasswordLoginBody.java → als-common/common-core/src/main/java/org/eco/common/core/core/domain/model/PasswordLoginBody.java

@@ -1,19 +1,19 @@
-package com.als.common.core.core.domain.model;
+package org.eco.common.core.core.domain.model;
 
 import jakarta.validation.constraints.NotBlank;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.hibernate.validator.constraints.Length;
 
-import static com.als.common.core.constant.UserConstants.PASSWORD_MAX_LENGTH;
-import static com.als.common.core.constant.UserConstants.PASSWORD_MIN_LENGTH;
-import static com.als.common.core.constant.UserConstants.USERNAME_MAX_LENGTH;
-import static com.als.common.core.constant.UserConstants.USERNAME_MIN_LENGTH;
+import static org.eco.common.core.constant.UserConstants.PASSWORD_MAX_LENGTH;
+import static org.eco.common.core.constant.UserConstants.PASSWORD_MIN_LENGTH;
+import static org.eco.common.core.constant.UserConstants.USERNAME_MAX_LENGTH;
+import static org.eco.common.core.constant.UserConstants.USERNAME_MIN_LENGTH;
 
 /**
  * 密码登录对象
  *
- * @author km
+ * @author wgk
  */
 @Data
 @EqualsAndHashCode(callSuper = true)

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/core/domain/model/RegisterBody.java → als-common/common-core/src/main/java/org/eco/common/core/core/domain/model/RegisterBody.java

@@ -1,4 +1,4 @@
-package com.als.common.core.core.domain.model;
+package org.eco.common.core.core.domain.model;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -6,7 +6,7 @@ import lombok.EqualsAndHashCode;
 /**
  * 用户注册对象
  *
- * @author km
+ * @author wgk
  */
 @Data
 @EqualsAndHashCode(callSuper = true)

+ 3 - 3
als-common/als-common-core/src/main/java/com/als/common/core/core/page/PageDomain.java → als-common/common-core/src/main/java/org/eco/common/core/core/page/PageDomain.java

@@ -1,11 +1,11 @@
-package com.als.common.core.core.page;
+package org.eco.common.core.core.page;
 
-import com.als.common.core.utils.StringUtils;
+import org.eco.common.core.utils.StringUtils;
 
 /**
  * 分页数据
  *
- * @author km
+ * @author wgk
  */
 public class PageDomain {
     /**

+ 3 - 3
als-common/als-common-core/src/main/java/com/als/common/core/core/page/PageResult.java → als-common/common-core/src/main/java/org/eco/common/core/core/page/PageResult.java

@@ -1,4 +1,4 @@
-package com.als.common.core.core.page;
+package org.eco.common.core.core.page;
 
 import com.mybatisflex.core.paginate.Page;
 import lombok.Data;
@@ -12,8 +12,8 @@ import java.util.List;
 /**
  * 分页响应结果
  *
- * @author km
- * @since 2024/1/25 15:29
+ * @author wgk
+ * @date 2024/1/25 15:29
  */
 @Data
 @NoArgsConstructor

+ 4 - 4
als-common/als-common-core/src/main/java/com/als/common/core/core/page/TableSupport.java → als-common/common-core/src/main/java/org/eco/common/core/core/page/TableSupport.java

@@ -1,12 +1,12 @@
-package com.als.common.core.core.page;
+package org.eco.common.core.core.page;
 
-import com.als.common.core.core.text.Convert;
-import com.als.common.core.utils.ServletUtils;
+import org.eco.common.core.core.text.Convert;
+import org.eco.common.core.utils.ServletUtils;
 
 /**
  * 表格数据处理
  *
- * @author km
+ * @author wgk
  */
 public class TableSupport {
     /**

+ 3 - 3
als-common/als-common-core/src/main/java/com/als/common/core/core/text/CharsetKit.java → als-common/common-core/src/main/java/org/eco/common/core/core/text/CharsetKit.java

@@ -1,6 +1,6 @@
-package com.als.common.core.core.text;
+package org.eco.common.core.core.text;
 
-import com.als.common.core.utils.StringUtils;
+import org.eco.common.core.utils.StringUtils;
 
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
@@ -8,7 +8,7 @@ import java.nio.charset.StandardCharsets;
 /**
  * 字符集工具类
  *
- * @author km
+ * @author wgk
  */
 public class CharsetKit {
     /**

+ 3 - 3
als-common/als-common-core/src/main/java/com/als/common/core/core/text/Convert.java → als-common/common-core/src/main/java/org/eco/common/core/core/text/Convert.java

@@ -1,6 +1,6 @@
-package com.als.common.core.core.text;
+package org.eco.common.core.core.text;
 
-import com.als.common.core.utils.StringUtils;
+import org.eco.common.core.utils.StringUtils;
 import org.apache.commons.lang3.ArrayUtils;
 
 import java.math.BigDecimal;
@@ -14,7 +14,7 @@ import java.util.Set;
 /**
  * 类型转换器
  *
- * @author km
+ * @author wgk
  */
 public class Convert {
     /**

+ 3 - 3
als-common/als-common-core/src/main/java/com/als/common/core/core/text/StrFormatter.java → als-common/common-core/src/main/java/org/eco/common/core/core/text/StrFormatter.java

@@ -1,11 +1,11 @@
-package com.als.common.core.core.text;
+package org.eco.common.core.core.text;
 
-import com.als.common.core.utils.StringUtils;
+import org.eco.common.core.utils.StringUtils;
 
 /**
  * 字符串格式化
  *
- * @author km
+ * @author wgk
  */
 public class StrFormatter {
     public static final String EMPTY_JSON = "{}";

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/enums/DeviceType.java → als-common/common-core/src/main/java/org/eco/common/core/enums/DeviceType.java

@@ -1,10 +1,10 @@
-package com.als.common.core.enums;
+package org.eco.common.core.enums;
 
 /**
  * 设备类型
  * 针对一套 用户体系
  *
- * @author km
+ * @author wgk
  */
 public enum DeviceType {
     /**

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/enums/HttpMethod.java → als-common/common-core/src/main/java/org/eco/common/core/enums/HttpMethod.java

@@ -1,4 +1,4 @@
-package com.als.common.core.enums;
+package org.eco.common.core.enums;
 
 import org.springframework.lang.Nullable;
 
@@ -8,7 +8,7 @@ import java.util.Map;
 /**
  * 请求方式
  *
- * @author km
+ * @author wgk
  */
 public enum HttpMethod {
     GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE;

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/enums/LimitType.java → als-common/common-core/src/main/java/org/eco/common/core/enums/LimitType.java

@@ -1,9 +1,9 @@
-package com.als.common.core.enums;
+package org.eco.common.core.enums;
 
 /**
  * 限流类型
  *
- * @author km
+ * @author wgk
  */
 
 public enum LimitType {

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/enums/LoginType.java → als-common/common-core/src/main/java/org/eco/common/core/enums/LoginType.java

@@ -1,4 +1,4 @@
-package com.als.common.core.enums;
+package org.eco.common.core.enums;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;
@@ -6,7 +6,7 @@ import lombok.Getter;
 /**
  * 登录类型
  *
- * @author km
+ * @author wgk
  */
 @Getter
 @AllArgsConstructor

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/enums/TenantStatus.java → als-common/common-core/src/main/java/org/eco/common/core/enums/TenantStatus.java

@@ -1,4 +1,4 @@
-package com.als.common.core.enums;
+package org.eco.common.core.enums;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;
@@ -6,7 +6,7 @@ import lombok.Getter;
 /**
  * 用户状态
  *
- * @author LionLi
+ * @author wgk
  */
 @Getter
 @AllArgsConstructor

+ 3 - 3
als-common/als-common-core/src/main/java/com/als/common/core/enums/UserStatus.java → als-common/common-core/src/main/java/org/eco/common/core/enums/UserStatus.java

@@ -1,12 +1,12 @@
-package com.als.common.core.enums;
+package org.eco.common.core.enums;
 
 /**
  * 用户状态
  *
- * @author km
+ * @author wgk
  */
 public enum UserStatus {
-    OK("0", "正常"), DISABLE("1", "停用"), DELETED("2", "删除");
+    OK("1", "正常"), DISABLE("0", "停用"), DELETED("2", "删除");
 
     private final String code;
     private final String info;

+ 3 - 3
als-common/als-common-core/src/main/java/com/als/common/core/enums/UserType.java → als-common/common-core/src/main/java/org/eco/common/core/enums/UserType.java

@@ -1,12 +1,12 @@
-package com.als.common.core.enums;
+package org.eco.common.core.enums;
 
-import com.als.common.core.utils.StringUtils;
+import org.eco.common.core.utils.StringUtils;
 
 /**
  * 设备类型
  * 针对多套 用户体系
  *
- * @author km
+ * @author wgk
  */
 public enum UserType {
 

+ 75 - 0
als-common/common-core/src/main/java/org/eco/common/core/exception/BusinessException.java

@@ -0,0 +1,75 @@
+package org.eco.common.core.exception;
+
+import cn.hutool.core.util.StrUtil;
+import lombok.Getter;
+
+import java.io.Serial;
+import java.text.MessageFormat;
+
+/**
+ * 业务异常
+ *
+ * @author wgk
+ */
+public final class BusinessException extends RuntimeException {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 错误码
+     */
+    @Getter
+    private Integer code;
+
+    /**
+     * 错误参数
+     */
+    private Object[] msgParams;
+
+    /**
+     * 错误明细,内部调试错误
+     */
+    private String message;
+
+    /**
+     * 空构造方法,避免反序列化问题
+     */
+    public BusinessException() {
+    }
+
+    public BusinessException(String message) {
+        this.message = message;
+    }
+
+    public BusinessException(String message, Integer code) {
+        this.message = message;
+        this.code = code;
+    }
+
+    public BusinessException(Integer code, String msg, Object... msgParams) {
+        this.message = msg;
+        this.code = code;
+        this.msgParams = msgParams;
+    }
+
+    public BusinessException(String msg, Object... msgParams) {
+        this.message = msg;
+        this.msgParams = msgParams;
+    }
+
+    @Override
+    public String getMessage() {
+        if (StrUtil.isNotBlank(message)) {
+            if (msgParams != null && msgParams.length > 0) {
+                return MessageFormat.format(message, msgParams);
+            }
+        }
+        return message; // 如果不传参数,直接返回
+    }
+
+    public BusinessException setMessage(String message) {
+        this.message = message;
+        return this;
+    }
+
+}

+ 4 - 4
als-common/als-common-core/src/main/java/com/als/common/core/exception/base/BaseException.java → als-common/common-core/src/main/java/org/eco/common/core/exception/base/BaseException.java

@@ -1,14 +1,14 @@
-package com.als.common.core.exception.base;
+package org.eco.common.core.exception.base;
 
-import com.als.common.core.utils.MessageUtils;
-import com.als.common.core.utils.StringUtils;
+import org.eco.common.core.utils.MessageUtils;
+import org.eco.common.core.utils.StringUtils;
 
 import java.io.Serial;
 
 /**
  * 基础异常
  *
- * @author km
+ * @author wgk
  */
 public class BaseException extends RuntimeException {
     @Serial

+ 3 - 3
als-common/als-common-core/src/main/java/com/als/common/core/exception/file/FileException.java → als-common/common-core/src/main/java/org/eco/common/core/exception/file/FileException.java

@@ -1,13 +1,13 @@
-package com.als.common.core.exception.file;
+package org.eco.common.core.exception.file;
 
-import com.als.common.core.exception.base.BaseException;
+import org.eco.common.core.exception.base.BaseException;
 
 import java.io.Serial;
 
 /**
  * 文件信息异常类
  *
- * @author km
+ * @author wgk
  */
 public class FileException extends BaseException {
     @Serial

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/exception/file/FileNameLengthLimitExceededException.java → als-common/common-core/src/main/java/org/eco/common/core/exception/file/FileNameLengthLimitExceededException.java

@@ -1,11 +1,11 @@
-package com.als.common.core.exception.file;
+package org.eco.common.core.exception.file;
 
 import java.io.Serial;
 
 /**
  * 文件名称超长限制异常类
  *
- * @author km
+ * @author wgk
  */
 public class FileNameLengthLimitExceededException extends FileException {
     @Serial

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/exception/file/FileSizeLimitExceededException.java → als-common/common-core/src/main/java/org/eco/common/core/exception/file/FileSizeLimitExceededException.java

@@ -1,11 +1,11 @@
-package com.als.common.core.exception.file;
+package org.eco.common.core.exception.file;
 
 import java.io.Serial;
 
 /**
  * 文件名大小限制异常类
  *
- * @author km
+ * @author wgk
  */
 public class FileSizeLimitExceededException extends FileException {
     @Serial

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/exception/file/FileUploadException.java → als-common/common-core/src/main/java/org/eco/common/core/exception/file/FileUploadException.java

@@ -1,4 +1,4 @@
-package com.als.common.core.exception.file;
+package org.eco.common.core.exception.file;
 
 import java.io.PrintStream;
 import java.io.PrintWriter;
@@ -7,7 +7,7 @@ import java.io.Serial;
 /**
  * 文件上传异常类
  *
- * @author km
+ * @author wgk
  */
 public class FileUploadException extends Exception {
     @Serial

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/exception/file/InvalidExtensionException.java → als-common/common-core/src/main/java/org/eco/common/core/exception/file/InvalidExtensionException.java

@@ -1,4 +1,4 @@
-package com.als.common.core.exception.file;
+package org.eco.common.core.exception.file;
 
 import java.io.Serial;
 import java.util.Arrays;
@@ -6,7 +6,7 @@ import java.util.Arrays;
 /**
  * 文件上传 误异常类
  *
- * @author km
+ * @author wgk
  */
 public class InvalidExtensionException extends FileUploadException {
     @Serial

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/exception/job/TaskException.java → als-common/common-core/src/main/java/org/eco/common/core/exception/job/TaskException.java

@@ -1,11 +1,11 @@
-package com.als.common.core.exception.job;
+package org.eco.common.core.exception.job;
 
 import java.io.Serial;
 
 /**
  * 计划策略异常
  *
- * @author km
+ * @author wgk
  */
 public class TaskException extends Exception {
     @Serial

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/exception/user/BlackListException.java → als-common/common-core/src/main/java/org/eco/common/core/exception/user/BlackListException.java

@@ -1,11 +1,11 @@
-package com.als.common.core.exception.user;
+package org.eco.common.core.exception.user;
 
 import java.io.Serial;
 
 /**
  * 黑名单IP异常类
  *
- * @author km
+ * @author wgk
  */
 public class BlackListException extends UserException {
     @Serial

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/exception/user/CaptchaException.java → als-common/common-core/src/main/java/org/eco/common/core/exception/user/CaptchaException.java

@@ -1,11 +1,11 @@
-package com.als.common.core.exception.user;
+package org.eco.common.core.exception.user;
 
 import java.io.Serial;
 
 /**
  * 验证码错误异常类
  *
- * @author km
+ * @author wgk
  */
 public class CaptchaException extends UserException {
     @Serial

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/exception/user/CaptchaExpireException.java → als-common/common-core/src/main/java/org/eco/common/core/exception/user/CaptchaExpireException.java

@@ -1,11 +1,11 @@
-package com.als.common.core.exception.user;
+package org.eco.common.core.exception.user;
 
 import java.io.Serial;
 
 /**
  * 验证码失效异常类
  *
- * @author km
+ * @author wgk
  */
 public class CaptchaExpireException extends UserException {
     @Serial

+ 3 - 3
als-common/als-common-core/src/main/java/com/als/common/core/exception/user/UserException.java → als-common/common-core/src/main/java/org/eco/common/core/exception/user/UserException.java

@@ -1,13 +1,13 @@
-package com.als.common.core.exception.user;
+package org.eco.common.core.exception.user;
 
-import com.als.common.core.exception.base.BaseException;
+import org.eco.common.core.exception.base.BaseException;
 
 import java.io.Serial;
 
 /**
  * 用户信息异常类
  *
- * @author km
+ * @author wgk
  */
 public class UserException extends BaseException {
     @Serial

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/exception/user/UserNotExistsException.java → als-common/common-core/src/main/java/org/eco/common/core/exception/user/UserNotExistsException.java

@@ -1,11 +1,11 @@
-package com.als.common.core.exception.user;
+package org.eco.common.core.exception.user;
 
 import java.io.Serial;
 
 /**
  * 用户不存在异常类
  *
- * @author km
+ * @author wgk
  */
 public class UserNotExistsException extends UserException {
     @Serial

+ 3 - 3
als-common/als-common-core/src/main/java/com/als/common/core/factory/YmlPropertySourceFactory.java → als-common/common-core/src/main/java/org/eco/common/core/factory/YmlPropertySourceFactory.java

@@ -1,6 +1,6 @@
-package com.als.common.core.factory;
+package org.eco.common.core.factory;
 
-import com.als.common.core.utils.StringUtils;
+import org.eco.common.core.utils.StringUtils;
 import org.springframework.beans.factory.config.YamlPropertiesFactoryBean;
 import org.springframework.core.env.PropertiesPropertySource;
 import org.springframework.core.env.PropertySource;
@@ -12,7 +12,7 @@ import java.io.IOException;
 /**
  * yml 配置源工厂
  *
- * @author km
+ * @author wgk
  */
 public class YmlPropertySourceFactory extends DefaultPropertySourceFactory {
 

+ 3 - 3
als-common/als-common-core/src/main/java/com/als/common/core/manager/ShutdownManager.java → als-common/common-core/src/main/java/org/eco/common/core/manager/ShutdownManager.java

@@ -1,6 +1,6 @@
-package com.als.common.core.manager;
+package org.eco.common.core.manager;
 
-import com.als.common.core.utils.Threads;
+import org.eco.common.core.utils.Threads;
 import jakarta.annotation.PreDestroy;
 import jakarta.annotation.Resource;
 import org.slf4j.Logger;
@@ -13,7 +13,7 @@ import java.util.concurrent.ScheduledExecutorService;
 /**
  * 确保应用退出时能关闭后台线程
  *
- * @author km
+ * @author wgk
  */
 @Component
 public class ShutdownManager {

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/service/ConfigService.java → als-common/common-core/src/main/java/org/eco/common/core/service/ConfigService.java

@@ -1,9 +1,9 @@
-package com.als.common.core.service;
+package org.eco.common.core.service;
 
 /**
  * 通用 参数配置服务
  *
- * @author km
+ * @author wgk
  */
 public interface ConfigService {
 

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/service/DeptService.java → als-common/common-core/src/main/java/org/eco/common/core/service/DeptService.java

@@ -1,9 +1,9 @@
-package com.als.common.core.service;
+package org.eco.common.core.service;
 
 /**
  * 通用 部门服务
  *
- * @author km
+ * @author wgk
  */
 public interface DeptService {
 

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/service/DictService.java → als-common/common-core/src/main/java/org/eco/common/core/service/DictService.java

@@ -1,11 +1,11 @@
-package com.als.common.core.service;
+package org.eco.common.core.service;
 
 import java.util.Map;
 
 /**
  * 通用 字典服务
  *
- * @author km
+ * @author wgk
  */
 public interface DictService {
 

+ 6 - 2
als-common/als-common-core/src/main/java/com/als/common/core/service/OssService.java → als-common/common-core/src/main/java/org/eco/common/core/service/OssService.java

@@ -1,9 +1,11 @@
-package com.als.common.core.service;
+package org.eco.common.core.service;
+
+import org.eco.common.core.core.domain.UploadRes;
 
 /**
  * 通用 OSS服务
  *
- * @author km
+ * @author wgk
  */
 public interface OssService {
 
@@ -15,4 +17,6 @@ public interface OssService {
      */
     String selectUrlByIds(String ossIds);
 
+    UploadRes upload(byte[] file, String name);
+
 }

+ 34 - 0
als-common/common-core/src/main/java/org/eco/common/core/service/UserService.java

@@ -0,0 +1,34 @@
+package org.eco.common.core.service;
+
+/**
+ * 通用 用户服务
+ *
+ * @author wgk
+ */
+public interface UserService {
+
+    /**
+     * 通过用户ID查询用户账户
+     *
+     * @param userId 用户ID
+     * @return 用户账户
+     */
+    String selectUserNameById(Long userId);
+
+    /**
+     * 通过用户ID查询用户账户
+     *
+     * @param userId 用户ID
+     * @return 用户名称
+     */
+    String selectNicknameById(Long userId);
+
+    /**
+     * 通过用户ID查询用户账户
+     *
+     * @param userIds 用户ID 多个用逗号隔开
+     * @return 用户名称
+     */
+    String selectNicknameByIds(String userIds);
+
+}

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/utils/Arith.java → als-common/common-core/src/main/java/org/eco/common/core/utils/Arith.java

@@ -1,4 +1,4 @@
-package com.als.common.core.utils;
+package org.eco.common.core.utils;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
@@ -6,7 +6,7 @@ import java.math.RoundingMode;
 /**
  * 精确的浮点数运算
  *
- * @author km
+ * @author wgk
  */
 public class Arith {
 

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/utils/DateUtils.java → als-common/common-core/src/main/java/org/eco/common/core/utils/DateUtils.java

@@ -1,4 +1,4 @@
-package com.als.common.core.utils;
+package org.eco.common.core.utils;
 
 import org.apache.commons.lang3.time.DateFormatUtils;
 
@@ -15,7 +15,7 @@ import java.util.Date;
 /**
  * 时间工具类
  *
- * @author km
+ * @author wgk
  */
 public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
     public static String YYYY = "yyyy";

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/utils/ExceptionUtil.java → als-common/common-core/src/main/java/org/eco/common/core/utils/ExceptionUtil.java

@@ -1,4 +1,4 @@
-package com.als.common.core.utils;
+package org.eco.common.core.utils;
 
 import org.apache.commons.lang3.exception.ExceptionUtils;
 
@@ -8,7 +8,7 @@ import java.io.StringWriter;
 /**
  * 错误信息处理类。
  *
- * @author km
+ * @author wgk
  */
 public class ExceptionUtil {
     /**

+ 3 - 3
als-common/als-common-core/src/main/java/com/als/common/core/utils/MapstructUtils.java → als-common/common-core/src/main/java/org/eco/common/core/utils/MapstructUtils.java

@@ -1,4 +1,4 @@
-package com.als.common.core.utils;
+package org.eco.common.core.utils;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.map.MapUtil;
@@ -12,9 +12,9 @@ import java.util.Map;
 
 /**
  * Mapstruct 工具类
- * <p>参考文档:<a href="https://mapstruct.plus/introduction/quick-start.html">mapstruct-plus</a></p>
+ * 参考文档:<a href="https://mapstruct.plus/introduction/quick-start.html">mapstruct-plus</a>
  *
- * @author km
+ * @author wgk
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 public class MapstructUtils {

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/utils/MessageUtils.java → als-common/common-core/src/main/java/org/eco/common/core/utils/MessageUtils.java

@@ -1,4 +1,4 @@
-package com.als.common.core.utils;
+package org.eco.common.core.utils;
 
 import org.springframework.context.MessageSource;
 import org.springframework.context.i18n.LocaleContextHolder;
@@ -6,7 +6,7 @@ import org.springframework.context.i18n.LocaleContextHolder;
 /**
  * 获取i18n资源文件
  *
- * @author km
+ * @author wgk
  */
 public class MessageUtils {
     /**

+ 7 - 4
als-common/als-common-core/src/main/java/com/als/common/core/utils/ServletUtils.java → als-common/common-core/src/main/java/org/eco/common/core/utils/ServletUtils.java

@@ -1,12 +1,14 @@
-package com.als.common.core.utils;
+package org.eco.common.core.utils;
 
 import cn.hutool.extra.servlet.JakartaServletUtil;
-import com.als.common.core.constant.Constants;
-import com.als.common.core.core.text.Convert;
 import jakarta.servlet.ServletRequest;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.servlet.http.HttpSession;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import org.eco.common.core.constant.Constants;
+import org.eco.common.core.core.text.Convert;
 import org.springframework.web.context.request.RequestAttributes;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
@@ -22,8 +24,9 @@ import java.util.Map;
 /**
  * 客户端工具类
  *
- * @author km
+ * @author wgk
  */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
 public class ServletUtils extends JakartaServletUtil {
     /**
      * 获取String参数

+ 8 - 2
als-common/als-common-core/src/main/java/com/als/common/core/utils/SpringUtils.java → als-common/common-core/src/main/java/org/eco/common/core/utils/SpringUtils.java

@@ -1,15 +1,17 @@
-package com.als.common.core.utils;
+package org.eco.common.core.utils;
 
 import cn.hutool.extra.spring.SpringUtil;
 import org.springframework.aop.framework.AopContext;
 import org.springframework.beans.factory.NoSuchBeanDefinitionException;
+import org.springframework.boot.autoconfigure.thread.Threading;
 import org.springframework.context.ApplicationContext;
+import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
 
 /**
  * spring工具类,方便在非spring管理环境中获取bean
  *
- * @author km
+ * @author wgk
  */
 @Component
 public final class SpringUtils extends SpringUtil {
@@ -88,4 +90,8 @@ public final class SpringUtils extends SpringUtil {
         return StringUtils.isNotEmpty(activeProfiles) ? activeProfiles[0] : null;
     }
 
+    public static boolean isVirtual() {
+        return Threading.VIRTUAL.isActive(getBean(Environment.class));
+    }
+
 }

+ 2 - 2
als-common/als-common-core/src/main/java/com/als/common/core/utils/StreamUtils.java → als-common/common-core/src/main/java/org/eco/common/core/utils/StreamUtils.java

@@ -1,4 +1,4 @@
-package com.als.common.core.utils;
+package org.eco.common.core.utils;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.map.MapUtil;
@@ -22,7 +22,7 @@ import java.util.stream.Collectors;
 /**
  * stream 流工具类
  *
- * @author km
+ * @author wgk
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 public class StreamUtils {

+ 6 - 4
als-common/als-common-core/src/main/java/com/als/common/core/utils/StringUtils.java → als-common/common-core/src/main/java/org/eco/common/core/utils/StringUtils.java

@@ -1,9 +1,9 @@
-package com.als.common.core.utils;
+package org.eco.common.core.utils;
 
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.util.StrUtil;
-import com.als.common.core.constant.Constants;
-import com.als.common.core.core.text.StrFormatter;
+import org.eco.common.core.constant.Constants;
+import org.eco.common.core.core.text.StrFormatter;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.springframework.util.AntPathMatcher;
@@ -21,12 +21,14 @@ import java.util.stream.Collectors;
 /**
  * 字符串工具类
  *
- * @author km
+ * @author wgk
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 public class StringUtils extends org.apache.commons.lang3.StringUtils {
     public static final String SEPARATOR = ",";
 
+    public static final String SLASH = "/";
+
     /**
      * 空字符串
      */

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio