修改bug
Some checks failed
aagro-ui-admin CI / build (14.x) (push) Has been cancelled
aagro-ui-admin CI / build (16.x) (push) Has been cancelled
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
Some checks failed
aagro-ui-admin CI / build (14.x) (push) Has been cancelled
aagro-ui-admin CI / build (16.x) (push) Has been cancelled
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
This commit is contained in:
4
.vscode/settings.json
vendored
Normal file
4
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"java.compile.nullAnalysis.mode": "automatic",
|
||||
"java.configuration.updateBuildConfiguration": "automatic"
|
||||
}
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
## 🐯 平台简介
|
||||
|
||||
**芋道**,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。
|
||||
**AIOTAGRO**,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。
|
||||
|
||||
> 有任何问题,或者想要的功能,可以在 _Issues_ 中提给艿艿。
|
||||
>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
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>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-dependencies</artifactId>
|
||||
<version>${revision}</version>
|
||||
<packaging>pom</packaging>
|
||||
@@ -14,16 +14,13 @@
|
||||
<url>https://github.com/YunaiV/ruoyi-vue-pro</url>
|
||||
|
||||
<properties>
|
||||
<revision>2025.09-jdk8-SNAPSHOT</revision>
|
||||
<flatten-maven-plugin.version>1.6.0</flatten-maven-plugin.version>
|
||||
<revision>2025.09-jdk17-SNAPSHOT</revision>
|
||||
<flatten-maven-plugin.version>1.7.2</flatten-maven-plugin.version>
|
||||
<!-- 统一依赖管理 -->
|
||||
<spring.framework.version>5.3.39</spring.framework.version>
|
||||
<spring.security.version>5.8.16</spring.security.version>
|
||||
<spring.boot.version>2.7.18</spring.boot.version>
|
||||
<spring.boot.version>3.5.5</spring.boot.version>
|
||||
<!-- Web 相关 -->
|
||||
<springdoc.version>1.8.0</springdoc.version>
|
||||
<springdoc.version>2.8.11</springdoc.version>
|
||||
<knife4j.version>4.5.0</knife4j.version>
|
||||
<servlet.versoin>2.5</servlet.versoin>
|
||||
<!-- DB 相关 -->
|
||||
<druid.version>1.2.27</druid.version>
|
||||
<mybatis.version>3.5.19</mybatis.version>
|
||||
@@ -41,30 +38,31 @@
|
||||
<!-- 服务保障相关 -->
|
||||
<lock4j.version>2.2.7</lock4j.version>
|
||||
<!-- 监控相关 -->
|
||||
<skywalking.version>8.12.0</skywalking.version>
|
||||
<spring-boot-admin.version>2.7.15</spring-boot-admin.version>
|
||||
<skywalking.version>9.5.0</skywalking.version>
|
||||
<spring-boot-admin.version>3.5.2</spring-boot-admin.version>
|
||||
<opentracing.version>0.33.0</opentracing.version>
|
||||
<!-- Test 测试相关 -->
|
||||
<podam.version>7.2.11.RELEASE</podam.version> <!-- Spring Boot 2.X 最多使用 7.2.11 版本 -->
|
||||
<podam.version>8.0.2.RELEASE</podam.version>
|
||||
<jedis-mock.version>1.1.11</jedis-mock.version>
|
||||
<mockito-inline.version>4.11.0</mockito-inline.version>
|
||||
<mockito-inline.version>5.2.0</mockito-inline.version>
|
||||
<!-- Bpm 工作流相关 -->
|
||||
<flowable.version>6.8.0</flowable.version>
|
||||
<flowable.version>7.0.1</flowable.version>
|
||||
<!-- 工具类相关 -->
|
||||
<anji-plus-captcha.version>1.4.0</anji-plus-captcha.version>
|
||||
<jsoup.version>1.21.2</jsoup.version>
|
||||
<lombok.version>1.18.38</lombok.version>
|
||||
<mapstruct.version>1.6.3</mapstruct.version>
|
||||
<hutool-5.version>5.8.40</hutool-5.version>
|
||||
<hutool-6.version>6.0.0-M22</hutool-6.version>
|
||||
<fastexcel.version>1.3.0</fastexcel.version>
|
||||
<velocity.version>2.4</velocity.version> <!-- JDK8 不能从 2.4 升级到 2.4.1,会报包不存在!!!! -->
|
||||
<velocity.version>2.4.1</velocity.version>
|
||||
<fastjson.version>1.2.83</fastjson.version>
|
||||
<guava.version>33.4.8-jre</guava.version>
|
||||
<transmittable-thread-local.version>2.14.5</transmittable-thread-local.version>
|
||||
<commons-net.version>3.11.1</commons-net.version>
|
||||
<commons-lang3.version>3.18.0</commons-lang3.version>
|
||||
<jsch.version>0.1.55</jsch.version>
|
||||
<tika-core.version>2.9.3</tika-core.version> <!-- JDK8 不能从 2.9.3 升级到 3.X,会报 JDK8 不支持 -->
|
||||
<tika-core.version>3.2.2</tika-core.version>
|
||||
<ip2region.version>2.7.0</ip2region.version>
|
||||
<bizlog-sdk.version>3.0.6</bizlog-sdk.version>
|
||||
<netty.version>4.2.4.Final</netty.version>
|
||||
@@ -78,8 +76,6 @@
|
||||
<jimureport.version>2.1.1</jimureport.version>
|
||||
<jimubi.version>2.1.0</jimubi.version>
|
||||
<weixin-java.version>4.7.7-20250808.182223</weixin-java.version>
|
||||
<!-- 专属于 JDK8 安全漏洞升级 -->
|
||||
<logback.version>1.2.13</logback.version> <!-- 无法使用 1.3.X 版本,启动会报错 -->
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
@@ -92,20 +88,6 @@
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-framework-bom</artifactId> <!-- JDK8 版本独有:保证 Spring Framework 尽量高 -->
|
||||
<version>${spring.framework.version}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.security</groupId>
|
||||
<artifactId>spring-security-bom</artifactId> <!-- JDK8 版本独有:保证 Spring Security 尽量高 -->
|
||||
<version>${spring.security.version}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-dependencies</artifactId>
|
||||
@@ -127,17 +109,17 @@
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-spring-boot-starter-biz-tenant</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-spring-boot-starter-biz-data-permission</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-spring-boot-starter-biz-ip</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
@@ -152,44 +134,50 @@
|
||||
|
||||
<!-- Web 相关 -->
|
||||
<dependency>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-spring-boot-starter-web</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-spring-boot-starter-security</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-spring-boot-starter-websocket</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.github.xiaoymin</groupId>
|
||||
<artifactId>knife4j-openapi3-spring-boot-starter</artifactId>
|
||||
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
|
||||
<version>${knife4j.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.springdoc</groupId>
|
||||
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springdoc</groupId>
|
||||
<artifactId>springdoc-openapi-ui</artifactId>
|
||||
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
|
||||
<version>${springdoc.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- DB 相关 -->
|
||||
<dependency>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-spring-boot-starter-mybatis</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid-spring-boot-starter</artifactId>
|
||||
<artifactId>druid-spring-boot-3-starter</artifactId>
|
||||
<version>${druid.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@@ -200,12 +188,12 @@
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
|
||||
<version>${mybatis-plus.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-jsqlparser-4.9</artifactId>
|
||||
<artifactId>mybatis-plus-jsqlparser</artifactId>
|
||||
<version>${mybatis-plus.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@@ -215,7 +203,7 @@
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>dynamic-datasource-spring-boot-starter</artifactId> <!-- 多数据源 -->
|
||||
<artifactId>dynamic-datasource-spring-boot3-starter</artifactId> <!-- 多数据源 -->
|
||||
<version>${dynamic-datasource.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@@ -251,7 +239,7 @@
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-spring-boot-starter-redis</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
@@ -265,18 +253,8 @@
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-actuator</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.redisson</groupId>
|
||||
<!-- 使用 redisson-spring-data-27 替代,解决 Tuple NoClassDefFoundError 报错 -->
|
||||
<artifactId>redisson-spring-data-35</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.redisson</groupId>
|
||||
<artifactId>redisson-spring-data-27</artifactId>
|
||||
<version>${redisson.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.dameng</groupId>
|
||||
@@ -304,14 +282,14 @@
|
||||
|
||||
<!-- Job 定时任务相关 -->
|
||||
<dependency>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-spring-boot-starter-job</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- 消息队列相关 -->
|
||||
<dependency>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-spring-boot-starter-mq</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
@@ -323,7 +301,7 @@
|
||||
|
||||
<!-- 服务保障相关 -->
|
||||
<dependency>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-spring-boot-starter-protection</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
@@ -342,7 +320,7 @@
|
||||
|
||||
<!-- 监控相关 -->
|
||||
<dependency>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-spring-boot-starter-monitor</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
@@ -454,13 +432,13 @@
|
||||
|
||||
<!-- 工具类相关 -->
|
||||
<dependency>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-common</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-spring-boot-starter-excel</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
@@ -492,6 +470,11 @@
|
||||
<artifactId>hutool-all</artifactId>
|
||||
<version>${hutool-5.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dromara.hutool</groupId>
|
||||
<artifactId>hutool-extra</artifactId>
|
||||
<version>${hutool-6.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.idev.excel</groupId>
|
||||
@@ -608,12 +591,12 @@
|
||||
<!-- 积木报表-->
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.jimureport</groupId>
|
||||
<artifactId>jimureport-spring-boot-starter</artifactId>
|
||||
<artifactId>jimureport-spring-boot3-starter-fastjson2</artifactId>
|
||||
<version>${jimureport.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.jimureport</groupId>
|
||||
<artifactId>jimubi-spring-boot-starter</artifactId>
|
||||
<artifactId>jimubi-spring-boot3-starter</artifactId>
|
||||
<version>${jimubi.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
@@ -663,18 +646,6 @@
|
||||
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
|
||||
<version>${mqtt.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- 专属于 JDK8 安全漏洞升级 -->
|
||||
<dependency>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-core</artifactId>
|
||||
<version>${logback.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-classic</artifactId>
|
||||
<version>${logback.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-framework</artifactId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
@@ -60,7 +60,7 @@
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springdoc</groupId>
|
||||
<artifactId>springdoc-openapi-ui</artifactId>
|
||||
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
|
||||
<scope>provided</scope> <!-- 设置为 provided,主要是 PageParam 使用到 -->
|
||||
</dependency>
|
||||
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
package cn.aagro.pp.framework.common.biz.infra.logger;
|
||||
package cn.aagro.ag.framework.common.biz.infra.logger;
|
||||
|
||||
import cn.aagro.pp.framework.common.biz.infra.logger.dto.ApiAccessLogCreateReqDTO;
|
||||
import cn.aagro.ag.framework.common.biz.infra.logger.dto.ApiAccessLogCreateReqDTO;
|
||||
import jakarta.validation.Valid;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
/**
|
||||
* API 访问日志的 API 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public interface ApiAccessLogCommonApi {
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
package cn.aagro.pp.framework.common.biz.infra.logger;
|
||||
package cn.aagro.ag.framework.common.biz.infra.logger;
|
||||
|
||||
import cn.aagro.pp.framework.common.biz.infra.logger.dto.ApiErrorLogCreateReqDTO;
|
||||
import cn.aagro.ag.framework.common.biz.infra.logger.dto.ApiErrorLogCreateReqDTO;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
/**
|
||||
* API 错误日志的 API 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public interface ApiErrorLogCommonApi {
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
package cn.aagro.pp.framework.common.biz.infra.logger.dto;
|
||||
package cn.aagro.ag.framework.common.biz.infra.logger.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* API 访问日志
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@Data
|
||||
public class ApiAccessLogCreateReqDTO {
|
||||
@@ -1,14 +1,14 @@
|
||||
package cn.aagro.pp.framework.common.biz.infra.logger.dto;
|
||||
package cn.aagro.ag.framework.common.biz.infra.logger.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* API 错误日志
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@Data
|
||||
public class ApiErrorLogCreateReqDTO {
|
||||
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* 针对 infra 模块的 api 包
|
||||
*/
|
||||
package cn.aagro.ag.framework.common.biz.infra;
|
||||
@@ -1,4 +1,4 @@
|
||||
/**
|
||||
* 特殊:用于 framework 下,starter 需要调用 biz 业务模块的接口定义!
|
||||
*/
|
||||
package cn.aagro.pp.framework.common.biz;
|
||||
package cn.aagro.ag.framework.common.biz;
|
||||
@@ -1,13 +1,13 @@
|
||||
package cn.aagro.pp.framework.common.biz.system.dict;
|
||||
package cn.aagro.ag.framework.common.biz.system.dict;
|
||||
|
||||
import cn.aagro.pp.framework.common.biz.system.dict.dto.DictDataRespDTO;
|
||||
import cn.aagro.ag.framework.common.biz.system.dict.dto.DictDataRespDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 字典数据 API 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public interface DictDataCommonApi {
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package cn.aagro.pp.framework.common.biz.system.dict.dto;
|
||||
package cn.aagro.ag.framework.common.biz.system.dict.dto;
|
||||
|
||||
import cn.aagro.pp.framework.common.enums.CommonStatusEnum;
|
||||
import cn.aagro.ag.framework.common.enums.CommonStatusEnum;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 字典数据 Response DTO
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@Data
|
||||
public class DictDataRespDTO {
|
||||
@@ -1,14 +1,13 @@
|
||||
package cn.aagro.pp.framework.common.biz.system.logger;
|
||||
package cn.aagro.ag.framework.common.biz.system.logger;
|
||||
|
||||
import cn.aagro.pp.framework.common.biz.system.logger.dto.OperateLogCreateReqDTO;
|
||||
import cn.aagro.ag.framework.common.biz.system.logger.dto.OperateLogCreateReqDTO;
|
||||
import jakarta.validation.Valid;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
/**
|
||||
* 操作日志 API 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public interface OperateLogCommonApi {
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
package cn.aagro.pp.framework.common.biz.system.logger.dto;
|
||||
package cn.aagro.ag.framework.common.biz.system.logger.dto;
|
||||
|
||||
import cn.aagro.pp.framework.common.enums.UserTypeEnum;
|
||||
import cn.aagro.ag.framework.common.enums.UserTypeEnum;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 系统操作日志 Create Request DTO
|
||||
*
|
||||
@@ -51,7 +50,7 @@ public class OperateLogCreateReqDTO {
|
||||
private Long bizId;
|
||||
/**
|
||||
* 操作内容,记录整个操作的明细
|
||||
* 例如说,修改编号为 1 的用户信息,将性别从男改成女,将姓名从芋道改成源码。
|
||||
* 例如说,修改编号为 1 的用户信息,将性别从男改成女,将姓名从AIOTAGRO改成源码。
|
||||
*/
|
||||
@NotEmpty(message = "操作内容不能为空")
|
||||
private String action;
|
||||
@@ -1,15 +1,15 @@
|
||||
package cn.aagro.pp.framework.common.biz.system.oauth2;
|
||||
package cn.aagro.ag.framework.common.biz.system.oauth2;
|
||||
|
||||
import cn.aagro.pp.framework.common.biz.system.oauth2.dto.OAuth2AccessTokenCheckRespDTO;
|
||||
import cn.aagro.pp.framework.common.biz.system.oauth2.dto.OAuth2AccessTokenCreateReqDTO;
|
||||
import cn.aagro.pp.framework.common.biz.system.oauth2.dto.OAuth2AccessTokenRespDTO;
|
||||
import cn.aagro.ag.framework.common.biz.system.oauth2.dto.OAuth2AccessTokenCheckRespDTO;
|
||||
import cn.aagro.ag.framework.common.biz.system.oauth2.dto.OAuth2AccessTokenCreateReqDTO;
|
||||
import cn.aagro.ag.framework.common.biz.system.oauth2.dto.OAuth2AccessTokenRespDTO;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import jakarta.validation.Valid;
|
||||
|
||||
/**
|
||||
* OAuth2.0 Token API 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public interface OAuth2TokenCommonApi {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.biz.system.oauth2.dto;
|
||||
package cn.aagro.ag.framework.common.biz.system.oauth2.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@@ -10,7 +10,7 @@ import java.util.Map;
|
||||
/**
|
||||
* OAuth2.0 访问令牌的校验 Response DTO
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@Data
|
||||
public class OAuth2AccessTokenCheckRespDTO implements Serializable {
|
||||
@@ -1,17 +1,17 @@
|
||||
package cn.aagro.pp.framework.common.biz.system.oauth2.dto;
|
||||
package cn.aagro.ag.framework.common.biz.system.oauth2.dto;
|
||||
|
||||
import cn.aagro.pp.framework.common.enums.UserTypeEnum;
|
||||
import cn.aagro.pp.framework.common.validation.InEnum;
|
||||
import cn.aagro.ag.framework.common.enums.UserTypeEnum;
|
||||
import cn.aagro.ag.framework.common.validation.InEnum;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* OAuth2.0 访问令牌创建 Request DTO
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@Data
|
||||
public class OAuth2AccessTokenCreateReqDTO implements Serializable {
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.biz.system.oauth2.dto;
|
||||
package cn.aagro.ag.framework.common.biz.system.oauth2.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@@ -8,7 +8,7 @@ import java.time.LocalDateTime;
|
||||
/**
|
||||
* OAuth2.0 访问令牌的信息 Response DTO
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@Data
|
||||
public class OAuth2AccessTokenRespDTO implements Serializable {
|
||||
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* 针对 system 模块的 api 包
|
||||
*/
|
||||
package cn.aagro.ag.framework.common.biz.system;
|
||||
@@ -1,11 +1,11 @@
|
||||
package cn.aagro.pp.framework.common.biz.system.permission;
|
||||
package cn.aagro.ag.framework.common.biz.system.permission;
|
||||
|
||||
import cn.aagro.pp.framework.common.biz.system.permission.dto.DeptDataPermissionRespDTO;
|
||||
import cn.aagro.ag.framework.common.biz.system.permission.dto.DeptDataPermissionRespDTO;
|
||||
|
||||
/**
|
||||
* 权限 API 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public interface PermissionCommonApi {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.biz.system.permission.dto;
|
||||
package cn.aagro.ag.framework.common.biz.system.permission.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@@ -8,7 +8,7 @@ import java.util.Set;
|
||||
/**
|
||||
* 部门的数据权限 Response DTO
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@Data
|
||||
public class DeptDataPermissionRespDTO {
|
||||
@@ -1,11 +1,11 @@
|
||||
package cn.aagro.pp.framework.common.biz.system.tenant;
|
||||
package cn.aagro.ag.framework.common.biz.system.tenant;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 多租户的 API 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public interface TenantCommonApi {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.core;
|
||||
package cn.aagro.ag.framework.common.core;
|
||||
|
||||
/**
|
||||
* 可生成 T 数组的接口
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.core;
|
||||
package cn.aagro.ag.framework.common.core;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
@@ -9,7 +9,7 @@ import java.io.Serializable;
|
||||
/**
|
||||
* Key Value 的键值对
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@@ -1,7 +1,7 @@
|
||||
package cn.aagro.pp.framework.common.enums;
|
||||
package cn.aagro.ag.framework.common.enums;
|
||||
|
||||
import cn.hutool.core.util.ObjUtil;
|
||||
import cn.aagro.pp.framework.common.core.ArrayValuable;
|
||||
import cn.aagro.ag.framework.common.core.ArrayValuable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
@@ -10,7 +10,7 @@ import java.util.Arrays;
|
||||
/**
|
||||
* 通用状态枚举
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
@@ -1,7 +1,7 @@
|
||||
package cn.aagro.pp.framework.common.enums;
|
||||
package cn.aagro.ag.framework.common.enums;
|
||||
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.aagro.pp.framework.common.core.ArrayValuable;
|
||||
import cn.aagro.ag.framework.common.core.ArrayValuable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.enums;
|
||||
package cn.aagro.ag.framework.common.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
@@ -6,7 +6,7 @@ import lombok.Getter;
|
||||
/**
|
||||
* 文档地址
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
@@ -1,11 +1,11 @@
|
||||
package cn.aagro.pp.framework.common.enums;
|
||||
package cn.aagro.ag.framework.common.enums;
|
||||
|
||||
/**
|
||||
* RPC 相关的枚举
|
||||
*
|
||||
* 虽然放在 aagro-spring-boot-starter-rpc 会相对合适,但是每个 API 模块需要使用到,所以暂时只好放在此处
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class RpcConstants {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package cn.aagro.pp.framework.common.enums;
|
||||
package cn.aagro.ag.framework.common.enums;
|
||||
|
||||
import cn.aagro.pp.framework.common.core.ArrayValuable;
|
||||
import cn.aagro.ag.framework.common.core.ArrayValuable;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@@ -9,7 +9,7 @@ import java.util.Arrays;
|
||||
/**
|
||||
* 终端的枚举
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Getter
|
||||
@@ -1,7 +1,7 @@
|
||||
package cn.aagro.pp.framework.common.enums;
|
||||
package cn.aagro.ag.framework.common.enums;
|
||||
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.aagro.pp.framework.common.core.ArrayValuable;
|
||||
import cn.aagro.ag.framework.common.core.ArrayValuable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package cn.aagro.pp.framework.common.enums;
|
||||
package cn.aagro.ag.framework.common.enums;
|
||||
|
||||
/**
|
||||
* Web 过滤器顺序的枚举类,保证过滤器按照符合我们的预期
|
||||
*
|
||||
* 考虑到每个 starter 都需要用到该工具类,所以放到 common 模块下的 enums 包下
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public interface WebFilterOrderEnum {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package cn.aagro.pp.framework.common.exception;
|
||||
package cn.aagro.ag.framework.common.exception;
|
||||
|
||||
import cn.aagro.pp.framework.common.exception.enums.GlobalErrorCodeConstants;
|
||||
import cn.aagro.pp.framework.common.exception.enums.ServiceErrorCodeRange;
|
||||
import cn.aagro.ag.framework.common.exception.enums.GlobalErrorCodeConstants;
|
||||
import cn.aagro.ag.framework.common.exception.enums.ServiceErrorCodeRange;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
@@ -1,6 +1,6 @@
|
||||
package cn.aagro.pp.framework.common.exception;
|
||||
package cn.aagro.ag.framework.common.exception;
|
||||
|
||||
import cn.aagro.pp.framework.common.exception.enums.GlobalErrorCodeConstants;
|
||||
import cn.aagro.ag.framework.common.exception.enums.GlobalErrorCodeConstants;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package cn.aagro.pp.framework.common.exception;
|
||||
package cn.aagro.ag.framework.common.exception;
|
||||
|
||||
import cn.aagro.pp.framework.common.exception.enums.ServiceErrorCodeRange;
|
||||
import cn.aagro.ag.framework.common.exception.enums.ServiceErrorCodeRange;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package cn.aagro.pp.framework.common.exception.enums;
|
||||
package cn.aagro.ag.framework.common.exception.enums;
|
||||
|
||||
import cn.aagro.pp.framework.common.exception.ErrorCode;
|
||||
import cn.aagro.ag.framework.common.exception.ErrorCode;
|
||||
|
||||
/**
|
||||
* 全局错误码枚举
|
||||
@@ -10,7 +10,7 @@ import cn.aagro.pp.framework.common.exception.ErrorCode;
|
||||
* 虽然说,HTTP 响应状态码作为业务使用表达能力偏弱,但是使用在系统层面还是非常不错的
|
||||
* 比较特殊的是,因为之前一直使用 0 作为成功,就不使用 200 啦。
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public interface GlobalErrorCodeConstants {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.exception.enums;
|
||||
package cn.aagro.ag.framework.common.exception.enums;
|
||||
|
||||
/**
|
||||
* 业务异常的错误码区间,解决:解决各模块错误码定义,避免重复,在此只声明不做实际使用
|
||||
@@ -25,7 +25,7 @@ package cn.aagro.pp.framework.common.exception.enums;
|
||||
* 不限制规则。
|
||||
* 一般建议,每个模块自增。
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class ServiceErrorCodeRange {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package cn.aagro.pp.framework.common.exception.util;
|
||||
package cn.aagro.ag.framework.common.exception.util;
|
||||
|
||||
import cn.aagro.pp.framework.common.exception.ErrorCode;
|
||||
import cn.aagro.pp.framework.common.exception.ServiceException;
|
||||
import cn.aagro.pp.framework.common.exception.enums.GlobalErrorCodeConstants;
|
||||
import cn.aagro.ag.framework.common.exception.ErrorCode;
|
||||
import cn.aagro.ag.framework.common.exception.ServiceException;
|
||||
import cn.aagro.ag.framework.common.exception.enums.GlobalErrorCodeConstants;
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
*
|
||||
* 例如说,CommonResult 为通用返回
|
||||
*/
|
||||
package cn.aagro.pp.framework.common;
|
||||
package cn.aagro.ag.framework.common;
|
||||
@@ -1,10 +1,10 @@
|
||||
package cn.aagro.pp.framework.common.pojo;
|
||||
package cn.aagro.ag.framework.common.pojo;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.aagro.pp.framework.common.exception.ErrorCode;
|
||||
import cn.aagro.pp.framework.common.exception.ServiceException;
|
||||
import cn.aagro.pp.framework.common.exception.enums.GlobalErrorCodeConstants;
|
||||
import cn.aagro.pp.framework.common.exception.util.ServiceExceptionUtil;
|
||||
import cn.aagro.ag.framework.common.exception.ErrorCode;
|
||||
import cn.aagro.ag.framework.common.exception.ServiceException;
|
||||
import cn.aagro.ag.framework.common.exception.enums.GlobalErrorCodeConstants;
|
||||
import cn.aagro.ag.framework.common.exception.util.ServiceExceptionUtil;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package cn.aagro.pp.framework.common.pojo;
|
||||
package cn.aagro.ag.framework.common.pojo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.Min;
|
||||
import javax.validation.constraints.Max;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Min;
|
||||
import jakarta.validation.constraints.Max;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.io.Serializable;
|
||||
|
||||
@Schema(description="分页参数")
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.pojo;
|
||||
package cn.aagro.ag.framework.common.pojo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.pojo;
|
||||
package cn.aagro.ag.framework.common.pojo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.pojo;
|
||||
package cn.aagro.ag.framework.common.pojo;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.util.cache;
|
||||
package cn.aagro.ag.framework.common.util.cache;
|
||||
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.cache.CacheLoader;
|
||||
@@ -10,7 +10,7 @@ import java.util.concurrent.Executors;
|
||||
/**
|
||||
* Cache 工具类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class CacheUtils {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.util.collection;
|
||||
package cn.aagro.ag.framework.common.util.collection;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.collection.IterUtil;
|
||||
@@ -8,12 +8,12 @@ import java.util.Collection;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
|
||||
import static cn.aagro.pp.framework.common.util.collection.CollectionUtils.convertList;
|
||||
import static cn.aagro.ag.framework.common.util.collection.CollectionUtils.convertList;
|
||||
|
||||
/**
|
||||
* Array 工具类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class ArrayUtils {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package cn.aagro.pp.framework.common.util.collection;
|
||||
package cn.aagro.ag.framework.common.util.collection;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.aagro.pp.framework.common.pojo.PageResult;
|
||||
import cn.aagro.ag.framework.common.pojo.PageResult;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
|
||||
import java.util.*;
|
||||
@@ -17,7 +17,7 @@ import static java.util.Arrays.asList;
|
||||
/**
|
||||
* Collection 工具类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class CollectionUtils {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package cn.aagro.pp.framework.common.util.collection;
|
||||
package cn.aagro.ag.framework.common.util.collection;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjUtil;
|
||||
import cn.aagro.pp.framework.common.core.KeyValue;
|
||||
import cn.aagro.ag.framework.common.core.KeyValue;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Multimap;
|
||||
|
||||
@@ -16,7 +16,7 @@ import java.util.function.Consumer;
|
||||
/**
|
||||
* Map 工具类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class MapUtils {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.util.collection;
|
||||
package cn.aagro.ag.framework.common.util.collection;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
|
||||
@@ -7,7 +7,7 @@ import java.util.Set;
|
||||
/**
|
||||
* Set 工具类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class SetUtils {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.util.date;
|
||||
package cn.aagro.ag.framework.common.util.date;
|
||||
|
||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
|
||||
@@ -9,7 +9,7 @@ import java.util.Date;
|
||||
/**
|
||||
* 时间工具类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class DateUtils {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.util.date;
|
||||
package cn.aagro.ag.framework.common.util.date;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
@@ -6,7 +6,7 @@ import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import cn.hutool.core.date.TemporalAccessorUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.aagro.pp.framework.common.enums.DateIntervalEnum;
|
||||
import cn.aagro.ag.framework.common.enums.DateIntervalEnum;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.time.*;
|
||||
@@ -22,7 +22,7 @@ import static cn.hutool.core.date.DatePattern.*;
|
||||
/**
|
||||
* 时间工具类,用于 {@link LocalDateTime}
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class LocalDateTimeUtils {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.util.http;
|
||||
package cn.aagro.ag.framework.common.util.http;
|
||||
|
||||
import cn.hutool.core.codec.Base64;
|
||||
import cn.hutool.core.map.TableMap;
|
||||
@@ -7,12 +7,11 @@ import cn.hutool.core.util.ReflectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.http.HttpResponse;
|
||||
import lombok.SneakyThrows;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.util.UriComponents;
|
||||
import org.springframework.web.util.UriComponentsBuilder;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.net.URI;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.Charset;
|
||||
@@ -22,7 +21,7 @@ import java.util.Map;
|
||||
/**
|
||||
* HTTP 工具类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class HttpUtils {
|
||||
|
||||
@@ -32,9 +31,8 @@ public class HttpUtils {
|
||||
* @param value 参数
|
||||
* @return 编码后的参数
|
||||
*/
|
||||
@SneakyThrows
|
||||
public static String encodeUtf8(String value) {
|
||||
return URLEncoder.encode(value, StandardCharsets.UTF_8.name());
|
||||
return URLEncoder.encode(value, StandardCharsets.UTF_8);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.util.io;
|
||||
package cn.aagro.ag.framework.common.util.io;
|
||||
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
@@ -9,7 +9,7 @@ import java.io.File;
|
||||
/**
|
||||
* 文件工具类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class FileUtils {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.util.io;
|
||||
package cn.aagro.ag.framework.common.util.io;
|
||||
|
||||
import cn.hutool.core.io.IORuntimeException;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
@@ -9,7 +9,7 @@ import java.io.InputStream;
|
||||
/**
|
||||
* IO 工具类,用于 {@link cn.hutool.core.io.IoUtil} 缺失的方法
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class IoUtils {
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package cn.aagro.pp.framework.common.util.json;
|
||||
package cn.aagro.ag.framework.common.util.json;
|
||||
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import cn.aagro.pp.framework.common.util.json.databind.TimestampLocalDateTimeDeserializer;
|
||||
import cn.aagro.pp.framework.common.util.json.databind.TimestampLocalDateTimeSerializer;
|
||||
import cn.aagro.ag.framework.common.util.json.databind.TimestampLocalDateTimeDeserializer;
|
||||
import cn.aagro.ag.framework.common.util.json.databind.TimestampLocalDateTimeSerializer;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
@@ -26,7 +26,7 @@ import java.util.List;
|
||||
/**
|
||||
* JSON 工具类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@Slf4j
|
||||
public class JsonUtils {
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.util.json.databind;
|
||||
package cn.aagro.ag.framework.common.util.json.databind;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonGenerator;
|
||||
import com.fasterxml.jackson.databind.SerializerProvider;
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.util.json.databind;
|
||||
package cn.aagro.ag.framework.common.util.json.databind;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonParser;
|
||||
import com.fasterxml.jackson.databind.DeserializationContext;
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.util.json.databind;
|
||||
package cn.aagro.ag.framework.common.util.json.databind;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonGenerator;
|
||||
import com.fasterxml.jackson.databind.JsonSerializer;
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.util.monitor;
|
||||
package cn.aagro.ag.framework.common.util.monitor;
|
||||
|
||||
import org.apache.skywalking.apm.toolkit.trace.TraceContext;
|
||||
|
||||
@@ -7,7 +7,7 @@ import org.apache.skywalking.apm.toolkit.trace.TraceContext;
|
||||
*
|
||||
* 考虑到每个 starter 都需要用到该工具类,所以放到 common 模块下的 util 包下
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class TracerUtils {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.util.number;
|
||||
package cn.aagro.ag.framework.common.util.number;
|
||||
|
||||
import cn.hutool.core.math.Money;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
@@ -9,7 +9,7 @@ import java.math.RoundingMode;
|
||||
/**
|
||||
* 金额工具类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class MoneyUtils {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.util.number;
|
||||
package cn.aagro.ag.framework.common.util.number;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
@@ -10,7 +10,7 @@ import java.util.List;
|
||||
/**
|
||||
* 数字的工具类,补全 {@link cn.hutool.core.util.NumberUtil} 的功能
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class NumberUtils {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package cn.aagro.pp.framework.common.util.object;
|
||||
package cn.aagro.ag.framework.common.util.object;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.aagro.pp.framework.common.pojo.PageResult;
|
||||
import cn.aagro.pp.framework.common.util.collection.CollectionUtils;
|
||||
import cn.aagro.ag.framework.common.pojo.PageResult;
|
||||
import cn.aagro.ag.framework.common.util.collection.CollectionUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
@@ -13,7 +13,7 @@ import java.util.function.Consumer;
|
||||
* 1. 默认使用 {@link cn.hutool.core.bean.BeanUtil} 作为实现类,虽然不同 bean 工具的性能有差别,但是对绝大多数同学的项目,不用在意这点性能
|
||||
* 2. 针对复杂的对象转换,可以搜参考 AuthConvert 实现,通过 mapstruct + default 配合实现
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class BeanUtils {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.util.object;
|
||||
package cn.aagro.ag.framework.common.util.object;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.ReflectUtil;
|
||||
@@ -10,7 +10,7 @@ import java.util.function.Consumer;
|
||||
/**
|
||||
* Object 工具类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class ObjectUtils {
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
package cn.aagro.pp.framework.common.util.object;
|
||||
package cn.aagro.ag.framework.common.util.object;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.lang.func.Func1;
|
||||
import cn.hutool.core.lang.func.LambdaUtil;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.aagro.pp.framework.common.pojo.PageParam;
|
||||
import cn.aagro.pp.framework.common.pojo.SortablePageParam;
|
||||
import cn.aagro.pp.framework.common.pojo.SortingField;
|
||||
import cn.aagro.ag.framework.common.pojo.PageParam;
|
||||
import cn.aagro.ag.framework.common.pojo.SortablePageParam;
|
||||
import cn.aagro.ag.framework.common.pojo.SortingField;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import static java.util.Collections.singletonList;
|
||||
|
||||
/**
|
||||
* {@link cn.aagro.pp.framework.common.pojo.PageParam} 工具类
|
||||
* {@link cn.aagro.ag.framework.common.pojo.PageParam} 工具类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class PageUtils {
|
||||
|
||||
@@ -4,4 +4,4 @@
|
||||
*
|
||||
* ps:如果担心 Hutool 存在坑的问题,可以阅读 Hutool 的实现源码,以确保可靠性。并且,可以补充相关的单元测试。
|
||||
*/
|
||||
package cn.aagro.pp.framework.common.util;
|
||||
package cn.aagro.ag.framework.common.util;
|
||||
@@ -1,25 +1,22 @@
|
||||
package cn.aagro.pp.framework.common.util.servlet;
|
||||
package cn.aagro.ag.framework.common.util.servlet;
|
||||
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.servlet.ServletUtil;
|
||||
import cn.aagro.pp.framework.common.util.json.JsonUtils;
|
||||
import cn.hutool.extra.servlet.JakartaServletUtil;
|
||||
import cn.aagro.ag.framework.common.util.json.JsonUtils;
|
||||
import jakarta.servlet.ServletRequest;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.web.context.request.RequestAttributes;
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
|
||||
import javax.servlet.ServletRequest;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 客户端工具类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class ServletUtils {
|
||||
|
||||
@@ -32,22 +29,7 @@ public class ServletUtils {
|
||||
@SuppressWarnings("deprecation") // 必须使用 APPLICATION_JSON_UTF8_VALUE,否则会乱码
|
||||
public static void writeJSON(HttpServletResponse response, Object object) {
|
||||
String content = JsonUtils.toJsonString(object);
|
||||
ServletUtil.write(response, content, MediaType.APPLICATION_JSON_UTF8_VALUE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回附件
|
||||
*
|
||||
* @param response 响应
|
||||
* @param filename 文件名
|
||||
* @param content 附件内容
|
||||
*/
|
||||
public static void writeAttachment(HttpServletResponse response, String filename, byte[] content) throws IOException {
|
||||
// 设置 header 和 contentType
|
||||
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
|
||||
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
||||
// 输出附件
|
||||
IoUtil.write(response.getOutputStream(), false, content);
|
||||
JakartaServletUtil.write(response, content, MediaType.APPLICATION_JSON_UTF8_VALUE);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -85,7 +67,7 @@ public class ServletUtils {
|
||||
if (request == null) {
|
||||
return null;
|
||||
}
|
||||
return ServletUtil.getClientIP(request);
|
||||
return JakartaServletUtil.getClientIP(request);
|
||||
}
|
||||
|
||||
public static boolean isJsonRequest(ServletRequest request) {
|
||||
@@ -95,7 +77,7 @@ public class ServletUtils {
|
||||
public static String getBody(HttpServletRequest request) {
|
||||
// 只有在 json 请求在读取,因为只有 CacheRequestBodyFilter 才会进行缓存,支持重复读取
|
||||
if (isJsonRequest(request)) {
|
||||
return ServletUtil.getBody(request);
|
||||
return JakartaServletUtil.getBody(request);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -103,21 +85,21 @@ public class ServletUtils {
|
||||
public static byte[] getBodyBytes(HttpServletRequest request) {
|
||||
// 只有在 json 请求在读取,因为只有 CacheRequestBodyFilter 才会进行缓存,支持重复读取
|
||||
if (isJsonRequest(request)) {
|
||||
return ServletUtil.getBodyBytes(request);
|
||||
return JakartaServletUtil.getBodyBytes(request);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String getClientIP(HttpServletRequest request) {
|
||||
return ServletUtil.getClientIP(request);
|
||||
return JakartaServletUtil.getClientIP(request);
|
||||
}
|
||||
|
||||
public static Map<String, String> getParamMap(HttpServletRequest request) {
|
||||
return ServletUtil.getParamMap(request);
|
||||
return JakartaServletUtil.getParamMap(request);
|
||||
}
|
||||
|
||||
public static Map<String, String> getHeaderMap(HttpServletRequest request) {
|
||||
return ServletUtil.getHeaderMap(request);
|
||||
return JakartaServletUtil.getHeaderMap(request);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.util.spring;
|
||||
package cn.aagro.ag.framework.common.util.spring;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.util.spring;
|
||||
package cn.aagro.ag.framework.common.util.spring;
|
||||
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
|
||||
@@ -7,7 +7,7 @@ import java.util.Objects;
|
||||
/**
|
||||
* Spring 工具类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class SpringUtils extends SpringUtil {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.common.util.string;
|
||||
package cn.aagro.ag.framework.common.util.string;
|
||||
|
||||
import cn.hutool.core.text.StrPool;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
@@ -14,7 +14,7 @@ import java.util.stream.Collectors;
|
||||
/**
|
||||
* 字符串工具类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class StrUtils {
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
package cn.aagro.pp.framework.common.util.validation;
|
||||
package cn.aagro.ag.framework.common.util.validation;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import javax.validation.ConstraintViolation;
|
||||
import javax.validation.ConstraintViolationException;
|
||||
import javax.validation.Validation;
|
||||
import javax.validation.Validator;
|
||||
import jakarta.validation.ConstraintViolation;
|
||||
import jakarta.validation.ConstraintViolationException;
|
||||
import jakarta.validation.Validation;
|
||||
import jakarta.validation.Validator;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* 校验工具类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class ValidationUtils {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package cn.aagro.pp.framework.common.validation;
|
||||
package cn.aagro.ag.framework.common.validation;
|
||||
|
||||
import cn.aagro.pp.framework.common.core.ArrayValuable;
|
||||
import cn.aagro.ag.framework.common.core.ArrayValuable;
|
||||
import jakarta.validation.Constraint;
|
||||
import jakarta.validation.Payload;
|
||||
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
import java.lang.annotation.*;
|
||||
|
||||
@Target({
|
||||
@@ -1,10 +1,10 @@
|
||||
package cn.aagro.pp.framework.common.validation;
|
||||
package cn.aagro.ag.framework.common.validation;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.aagro.pp.framework.common.core.ArrayValuable;
|
||||
import cn.aagro.ag.framework.common.core.ArrayValuable;
|
||||
import jakarta.validation.ConstraintValidator;
|
||||
import jakarta.validation.ConstraintValidatorContext;
|
||||
|
||||
import javax.validation.ConstraintValidator;
|
||||
import javax.validation.ConstraintValidatorContext;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
@@ -1,9 +1,9 @@
|
||||
package cn.aagro.pp.framework.common.validation;
|
||||
package cn.aagro.ag.framework.common.validation;
|
||||
|
||||
import cn.aagro.pp.framework.common.core.ArrayValuable;
|
||||
import cn.aagro.ag.framework.common.core.ArrayValuable;
|
||||
import jakarta.validation.ConstraintValidator;
|
||||
import jakarta.validation.ConstraintValidatorContext;
|
||||
|
||||
import javax.validation.ConstraintValidator;
|
||||
import javax.validation.ConstraintValidatorContext;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -1,7 +1,7 @@
|
||||
package cn.aagro.pp.framework.common.validation;
|
||||
package cn.aagro.ag.framework.common.validation;
|
||||
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
import jakarta.validation.Constraint;
|
||||
import jakarta.validation.Payload;
|
||||
import java.lang.annotation.*;
|
||||
|
||||
@Target({
|
||||
@@ -1,10 +1,10 @@
|
||||
package cn.aagro.pp.framework.common.validation;
|
||||
package cn.aagro.ag.framework.common.validation;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.aagro.pp.framework.common.util.validation.ValidationUtils;
|
||||
import cn.aagro.ag.framework.common.util.validation.ValidationUtils;
|
||||
|
||||
import javax.validation.ConstraintValidator;
|
||||
import javax.validation.ConstraintValidatorContext;
|
||||
import jakarta.validation.ConstraintValidator;
|
||||
import jakarta.validation.ConstraintValidatorContext;
|
||||
|
||||
public class MobileValidator implements ConstraintValidator<Mobile, String> {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package cn.aagro.pp.framework.common.validation;
|
||||
package cn.aagro.ag.framework.common.validation;
|
||||
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
import jakarta.validation.Constraint;
|
||||
import jakarta.validation.Payload;
|
||||
import java.lang.annotation.*;
|
||||
|
||||
@Target({
|
||||
@@ -1,10 +1,10 @@
|
||||
package cn.aagro.pp.framework.common.validation;
|
||||
package cn.aagro.ag.framework.common.validation;
|
||||
|
||||
import cn.hutool.core.text.CharSequenceUtil;
|
||||
import cn.hutool.core.util.PhoneUtil;
|
||||
|
||||
import javax.validation.ConstraintValidator;
|
||||
import javax.validation.ConstraintValidatorContext;
|
||||
import jakarta.validation.ConstraintValidator;
|
||||
import jakarta.validation.ConstraintValidatorContext;
|
||||
|
||||
public class TelephoneValidator implements ConstraintValidator<Telephone, String> {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/**
|
||||
* 使用 Hibernate Validator 实现参数校验
|
||||
*/
|
||||
package cn.aagro.pp.framework.common.validation;
|
||||
package cn.aagro.ag.framework.common.validation;
|
||||
@@ -1,4 +0,0 @@
|
||||
/**
|
||||
* 针对 infra 模块的 api 包
|
||||
*/
|
||||
package cn.aagro.pp.framework.common.biz.infra;
|
||||
@@ -1,4 +0,0 @@
|
||||
/**
|
||||
* 针对 system 模块的 api 包
|
||||
*/
|
||||
package cn.aagro.pp.framework.common.biz.system;
|
||||
@@ -4,7 +4,7 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>aagro-framework</artifactId>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
@@ -17,23 +17,22 @@
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-common</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Web 相关 -->
|
||||
<dependency>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-spring-boot-starter-security</artifactId>
|
||||
<optional>true</optional> <!-- 可选,如果使用 DeptDataPermissionRule 必须提供 -->
|
||||
</dependency>
|
||||
|
||||
<!-- DB 相关 -->
|
||||
<dependency>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-spring-boot-starter-mybatis</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package cn.aagro.pp.framework.datapermission.config;
|
||||
package cn.aagro.ag.framework.datapermission.config;
|
||||
|
||||
import cn.aagro.pp.framework.datapermission.core.aop.DataPermissionAnnotationAdvisor;
|
||||
import cn.aagro.pp.framework.datapermission.core.db.DataPermissionRuleHandler;
|
||||
import cn.aagro.pp.framework.datapermission.core.rule.DataPermissionRule;
|
||||
import cn.aagro.pp.framework.datapermission.core.rule.DataPermissionRuleFactory;
|
||||
import cn.aagro.pp.framework.datapermission.core.rule.DataPermissionRuleFactoryImpl;
|
||||
import cn.aagro.pp.framework.mybatis.core.util.MyBatisUtils;
|
||||
import cn.aagro.ag.framework.datapermission.core.aop.DataPermissionAnnotationAdvisor;
|
||||
import cn.aagro.ag.framework.datapermission.core.db.DataPermissionRuleHandler;
|
||||
import cn.aagro.ag.framework.datapermission.core.rule.DataPermissionRule;
|
||||
import cn.aagro.ag.framework.datapermission.core.rule.DataPermissionRuleFactory;
|
||||
import cn.aagro.ag.framework.datapermission.core.rule.DataPermissionRuleFactoryImpl;
|
||||
import cn.aagro.ag.framework.mybatis.core.util.MyBatisUtils;
|
||||
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
||||
import com.baomidou.mybatisplus.extension.plugins.inner.DataPermissionInterceptor;
|
||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||
@@ -16,7 +16,7 @@ import java.util.List;
|
||||
/**
|
||||
* 数据权限的自动配置类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@AutoConfiguration
|
||||
public class AagroDataPermissionAutoConfiguration {
|
||||
@@ -1,9 +1,9 @@
|
||||
package cn.aagro.pp.framework.datapermission.config;
|
||||
package cn.aagro.ag.framework.datapermission.config;
|
||||
|
||||
import cn.aagro.pp.framework.common.biz.system.permission.PermissionCommonApi;
|
||||
import cn.aagro.pp.framework.datapermission.core.rule.dept.DeptDataPermissionRule;
|
||||
import cn.aagro.pp.framework.datapermission.core.rule.dept.DeptDataPermissionRuleCustomizer;
|
||||
import cn.aagro.pp.framework.security.core.LoginUser;
|
||||
import cn.aagro.ag.framework.common.biz.system.permission.PermissionCommonApi;
|
||||
import cn.aagro.ag.framework.datapermission.core.rule.dept.DeptDataPermissionRule;
|
||||
import cn.aagro.ag.framework.datapermission.core.rule.dept.DeptDataPermissionRuleCustomizer;
|
||||
import cn.aagro.ag.framework.security.core.LoginUser;
|
||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
@@ -14,7 +14,7 @@ import java.util.List;
|
||||
/**
|
||||
* 基于部门的数据权限 AutoConfiguration
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@AutoConfiguration
|
||||
@ConditionalOnClass(LoginUser.class)
|
||||
@@ -1,6 +1,6 @@
|
||||
package cn.aagro.pp.framework.datapermission.core.annotation;
|
||||
package cn.aagro.ag.framework.datapermission.core.annotation;
|
||||
|
||||
import cn.aagro.pp.framework.datapermission.core.rule.DataPermissionRule;
|
||||
import cn.aagro.ag.framework.datapermission.core.rule.DataPermissionRule;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
@@ -8,7 +8,7 @@ import java.lang.annotation.*;
|
||||
* 数据权限注解
|
||||
* 可声明在类或者方法上,标识使用的数据权限规则
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@Target({ElementType.TYPE, ElementType.METHOD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@@ -1,6 +1,6 @@
|
||||
package cn.aagro.pp.framework.datapermission.core.aop;
|
||||
package cn.aagro.ag.framework.datapermission.core.aop;
|
||||
|
||||
import cn.aagro.pp.framework.datapermission.core.annotation.DataPermission;
|
||||
import cn.aagro.ag.framework.datapermission.core.annotation.DataPermission;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import org.aopalliance.aop.Advice;
|
||||
@@ -10,9 +10,9 @@ import org.springframework.aop.support.ComposablePointcut;
|
||||
import org.springframework.aop.support.annotation.AnnotationMatchingPointcut;
|
||||
|
||||
/**
|
||||
* {@link cn.aagro.pp.framework.datapermission.core.annotation.DataPermission} 注解的 Advisor 实现类
|
||||
* {@link cn.aagro.ag.framework.datapermission.core.annotation.DataPermission} 注解的 Advisor 实现类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@Getter
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@@ -1,6 +1,6 @@
|
||||
package cn.aagro.pp.framework.datapermission.core.aop;
|
||||
package cn.aagro.ag.framework.datapermission.core.aop;
|
||||
|
||||
import cn.aagro.pp.framework.datapermission.core.annotation.DataPermission;
|
||||
import cn.aagro.ag.framework.datapermission.core.annotation.DataPermission;
|
||||
import lombok.Getter;
|
||||
import org.aopalliance.intercept.MethodInterceptor;
|
||||
import org.aopalliance.intercept.MethodInvocation;
|
||||
@@ -16,7 +16,7 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
* 1. 在执行方法前,将 @DataPermission 注解入栈
|
||||
* 2. 在执行方法后,将 @DataPermission 注解出栈
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@DataPermission // 该注解,用于 {@link DATA_PERMISSION_NULL} 的空对象
|
||||
public class DataPermissionAnnotationInterceptor implements MethodInterceptor {
|
||||
@@ -1,6 +1,6 @@
|
||||
package cn.aagro.pp.framework.datapermission.core.aop;
|
||||
package cn.aagro.ag.framework.datapermission.core.aop;
|
||||
|
||||
import cn.aagro.pp.framework.datapermission.core.annotation.DataPermission;
|
||||
import cn.aagro.ag.framework.datapermission.core.annotation.DataPermission;
|
||||
import com.alibaba.ttl.TransmittableThreadLocal;
|
||||
|
||||
import java.util.LinkedList;
|
||||
@@ -9,7 +9,7 @@ import java.util.List;
|
||||
/**
|
||||
* {@link DataPermission} 注解的 Context 上下文
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class DataPermissionContextHolder {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package cn.aagro.pp.framework.datapermission.core.db;
|
||||
package cn.aagro.ag.framework.datapermission.core.db;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.aagro.pp.framework.datapermission.core.rule.DataPermissionRule;
|
||||
import cn.aagro.pp.framework.datapermission.core.rule.DataPermissionRuleFactory;
|
||||
import cn.aagro.pp.framework.mybatis.core.util.MyBatisUtils;
|
||||
import cn.aagro.ag.framework.datapermission.core.rule.DataPermissionRule;
|
||||
import cn.aagro.ag.framework.datapermission.core.rule.DataPermissionRuleFactory;
|
||||
import cn.aagro.ag.framework.mybatis.core.util.MyBatisUtils;
|
||||
import com.baomidou.mybatisplus.extension.plugins.handler.MultiDataPermissionHandler;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import net.sf.jsqlparser.expression.Expression;
|
||||
@@ -12,7 +12,7 @@ import net.sf.jsqlparser.schema.Table;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static cn.aagro.pp.framework.security.core.util.SecurityFrameworkUtils.skipPermissionCheck;
|
||||
import static cn.aagro.ag.framework.security.core.util.SecurityFrameworkUtils.skipPermissionCheck;
|
||||
|
||||
/**
|
||||
* 基于 {@link DataPermissionRule} 的数据权限处理器
|
||||
@@ -20,7 +20,7 @@ import static cn.aagro.pp.framework.security.core.util.SecurityFrameworkUtils.sk
|
||||
* 它的底层,是基于 MyBatis Plus 的 <a href="https://baomidou.com/plugins/data-permission/">数据权限插件</a>
|
||||
* 核心原理:它会在 SQL 执行前拦截 SQL 语句,并根据用户权限动态添加权限相关的 SQL 片段。这样,只有用户有权限访问的数据才会被查询出来
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
public class DataPermissionRuleHandler implements MultiDataPermissionHandler {
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.datapermission.core.rule;
|
||||
package cn.aagro.ag.framework.datapermission.core.rule;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
|
||||
import net.sf.jsqlparser.expression.Alias;
|
||||
@@ -10,7 +10,7 @@ import java.util.Set;
|
||||
* 数据权限规则接口
|
||||
* 通过实现接口,自定义数据规则。例如说,
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public interface DataPermissionRule {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package cn.aagro.pp.framework.datapermission.core.rule;
|
||||
package cn.aagro.ag.framework.datapermission.core.rule;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -6,7 +6,7 @@ import java.util.List;
|
||||
* {@link DataPermissionRule} 工厂接口
|
||||
* 作为 {@link DataPermissionRule} 的容器,提供管理能力
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public interface DataPermissionRuleFactory {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package cn.aagro.pp.framework.datapermission.core.rule;
|
||||
package cn.aagro.ag.framework.datapermission.core.rule;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.aagro.pp.framework.datapermission.core.annotation.DataPermission;
|
||||
import cn.aagro.pp.framework.datapermission.core.aop.DataPermissionContextHolder;
|
||||
import cn.aagro.ag.framework.datapermission.core.annotation.DataPermission;
|
||||
import cn.aagro.ag.framework.datapermission.core.aop.DataPermissionContextHolder;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import java.util.Collections;
|
||||
@@ -14,7 +14,7 @@ import java.util.stream.Collectors;
|
||||
* 默认的 DataPermissionRuleFactoryImpl 实现类
|
||||
* 支持通过 {@link DataPermissionContextHolder} 过滤数据权限
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
public class DataPermissionRuleFactoryImpl implements DataPermissionRuleFactory {
|
||||
@@ -1,18 +1,18 @@
|
||||
package cn.aagro.pp.framework.datapermission.core.rule.dept;
|
||||
package cn.aagro.ag.framework.datapermission.core.rule.dept;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.aagro.pp.framework.common.biz.system.permission.PermissionCommonApi;
|
||||
import cn.aagro.pp.framework.common.biz.system.permission.dto.DeptDataPermissionRespDTO;
|
||||
import cn.aagro.pp.framework.common.enums.UserTypeEnum;
|
||||
import cn.aagro.pp.framework.common.util.collection.CollectionUtils;
|
||||
import cn.aagro.pp.framework.common.util.json.JsonUtils;
|
||||
import cn.aagro.pp.framework.datapermission.core.rule.DataPermissionRule;
|
||||
import cn.aagro.pp.framework.mybatis.core.dataobject.BaseDO;
|
||||
import cn.aagro.pp.framework.mybatis.core.util.MyBatisUtils;
|
||||
import cn.aagro.pp.framework.security.core.LoginUser;
|
||||
import cn.aagro.pp.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import cn.aagro.ag.framework.common.biz.system.permission.PermissionCommonApi;
|
||||
import cn.aagro.ag.framework.common.biz.system.permission.dto.DeptDataPermissionRespDTO;
|
||||
import cn.aagro.ag.framework.common.enums.UserTypeEnum;
|
||||
import cn.aagro.ag.framework.common.util.collection.CollectionUtils;
|
||||
import cn.aagro.ag.framework.common.util.json.JsonUtils;
|
||||
import cn.aagro.ag.framework.datapermission.core.rule.DataPermissionRule;
|
||||
import cn.aagro.ag.framework.mybatis.core.dataobject.BaseDO;
|
||||
import cn.aagro.ag.framework.mybatis.core.util.MyBatisUtils;
|
||||
import cn.aagro.ag.framework.security.core.LoginUser;
|
||||
import cn.aagro.ag.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -46,7 +46,7 @@ import java.util.Set;
|
||||
* 3)想要保证原 dept_id 和 user_id 都可以看的到,此时使用 dept_id 和 user_id 一起过滤;
|
||||
* 最终过滤条件是 WHERE dept_id = ? OR user_id IN (?, ?, ? ...)
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Slf4j
|
||||
@@ -1,9 +1,9 @@
|
||||
package cn.aagro.pp.framework.datapermission.core.rule.dept;
|
||||
package cn.aagro.ag.framework.datapermission.core.rule.dept;
|
||||
|
||||
/**
|
||||
* {@link DeptDataPermissionRule} 的自定义配置接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@FunctionalInterface
|
||||
public interface DeptDataPermissionRuleCustomizer {
|
||||
@@ -0,0 +1,6 @@
|
||||
/**
|
||||
* 基于部门的数据权限规则
|
||||
*
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
package cn.aagro.ag.framework.datapermission.core.rule.dept;
|
||||
@@ -1,7 +1,7 @@
|
||||
package cn.aagro.pp.framework.datapermission.core.util;
|
||||
package cn.aagro.ag.framework.datapermission.core.util;
|
||||
|
||||
import cn.aagro.pp.framework.datapermission.core.annotation.DataPermission;
|
||||
import cn.aagro.pp.framework.datapermission.core.aop.DataPermissionContextHolder;
|
||||
import cn.aagro.ag.framework.datapermission.core.annotation.DataPermission;
|
||||
import cn.aagro.ag.framework.datapermission.core.aop.DataPermissionContextHolder;
|
||||
import lombok.SneakyThrows;
|
||||
|
||||
import java.util.concurrent.Callable;
|
||||
@@ -9,7 +9,7 @@ import java.util.concurrent.Callable;
|
||||
/**
|
||||
* 数据权限 Util
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
public class DataPermissionUtils {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/**
|
||||
* 基于 JSqlParser 解析 SQL,增加数据权限的 WHERE 条件
|
||||
*/
|
||||
package cn.aagro.pp.framework.datapermission;
|
||||
package cn.aagro.ag.framework.datapermission;
|
||||
@@ -1,6 +0,0 @@
|
||||
/**
|
||||
* 基于部门的数据权限规则
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
package cn.aagro.pp.framework.datapermission.core.rule.dept;
|
||||
@@ -1,2 +1,2 @@
|
||||
cn.aagro.pp.framework.datapermission.config.AagroDataPermissionAutoConfiguration
|
||||
cn.aagro.pp.framework.datapermission.config.AagroDeptDataPermissionAutoConfiguration
|
||||
cn.aagro.ag.framework.datapermission.config.AagroDataPermissionAutoConfiguration
|
||||
cn.aagro.ag.framework.datapermission.config.AagroDeptDataPermissionAutoConfiguration
|
||||
@@ -4,7 +4,7 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>aagro-framework</artifactId>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>cn.aagro.gg</groupId>
|
||||
<groupId>cn.aagro.aa</groupId>
|
||||
<artifactId>aagro-common</artifactId>
|
||||
</dependency>
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package cn.aagro.pp.framework.ip.core;
|
||||
package cn.aagro.ag.framework.ip.core;
|
||||
|
||||
import cn.aagro.pp.framework.ip.core.enums.AreaTypeEnum;
|
||||
import cn.aagro.ag.framework.ip.core.enums.AreaTypeEnum;
|
||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
||||
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
||||
import lombok.AllArgsConstructor;
|
||||
@@ -15,7 +15,7 @@ import java.util.List;
|
||||
*
|
||||
* 数据可见 resources/area.csv 文件
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@@ -1,6 +1,6 @@
|
||||
package cn.aagro.pp.framework.ip.core.enums;
|
||||
package cn.aagro.ag.framework.ip.core.enums;
|
||||
|
||||
import cn.aagro.pp.framework.common.core.ArrayValuable;
|
||||
import cn.aagro.ag.framework.common.core.ArrayValuable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
@@ -9,7 +9,7 @@ import java.util.Arrays;
|
||||
/**
|
||||
* 区域类型枚举
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author AIOTAGRO
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user