parent
0d341f1aaa
commit
cee572f237
@ -0,0 +1,14 @@ |
||||
@echo off |
||||
echo. |
||||
echo [信息] 运行Web工程。 |
||||
echo. |
||||
|
||||
cd %~dp0 |
||||
cd ../ruoyi-admin/target |
||||
|
||||
set JAVA_OPTS=-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m |
||||
|
||||
java -jar %JAVA_OPTS% ruoyi-admin.jar |
||||
|
||||
cd bin |
||||
pause |
Binary file not shown.
@ -0,0 +1,234 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" |
||||
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"> |
||||
<modelVersion>4.0.0</modelVersion> |
||||
|
||||
<groupId>com.ruoyi</groupId> |
||||
<artifactId>ruoyi</artifactId> |
||||
<version>3.0.0</version> |
||||
|
||||
<name>ruoyi</name> |
||||
<url>http://www.ruoyi.vip</url> |
||||
<description>若依管理系统</description> |
||||
|
||||
<properties> |
||||
<ruoyi.version>3.0.0</ruoyi.version> |
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> |
||||
<java.version>1.8</java.version> |
||||
<mybatis.boot.version>1.3.2</mybatis.boot.version> |
||||
<druid.version>1.1.14</druid.version> |
||||
<bitwalker.version>1.19</bitwalker.version> |
||||
<swagger.version>2.9.2</swagger.version> |
||||
<pagehelper.boot.version>1.2.5</pagehelper.boot.version> |
||||
<fastjson.version>1.2.70</fastjson.version> |
||||
<oshi.version>3.9.1</oshi.version> |
||||
<commons.io.version>2.5</commons.io.version> |
||||
<commons.fileupload.version>1.3.3</commons.fileupload.version> |
||||
<poi.version>3.17</poi.version> |
||||
<velocity.version>1.7</velocity.version> |
||||
<jwt.version>0.9.0</jwt.version> |
||||
</properties> |
||||
|
||||
<!-- 依赖声明 --> |
||||
<dependencyManagement> |
||||
<dependencies> |
||||
|
||||
<!-- SpringBoot的依赖配置--> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-dependencies</artifactId> |
||||
<version>2.1.1.RELEASE</version> |
||||
<type>pom</type> |
||||
<scope>import</scope> |
||||
</dependency> |
||||
|
||||
<!--阿里数据库连接池 --> |
||||
<dependency> |
||||
<groupId>com.alibaba</groupId> |
||||
<artifactId>druid-spring-boot-starter</artifactId> |
||||
<version>${druid.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- 解析客户端操作系统、浏览器等 --> |
||||
<dependency> |
||||
<groupId>eu.bitwalker</groupId> |
||||
<artifactId>UserAgentUtils</artifactId> |
||||
<version>${bitwalker.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- pagehelper 分页插件 --> |
||||
<dependency> |
||||
<groupId>com.github.pagehelper</groupId> |
||||
<artifactId>pagehelper-spring-boot-starter</artifactId> |
||||
<version>${pagehelper.boot.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- 获取系统信息 --> |
||||
<dependency> |
||||
<groupId>com.github.oshi</groupId> |
||||
<artifactId>oshi-core</artifactId> |
||||
<version>${oshi.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- swagger2--> |
||||
<dependency> |
||||
<groupId>io.springfox</groupId> |
||||
<artifactId>springfox-swagger2</artifactId> |
||||
<version>${swagger.version}</version> |
||||
<exclusions> |
||||
<exclusion> |
||||
<groupId>io.swagger</groupId> |
||||
<artifactId>swagger-annotations</artifactId> |
||||
</exclusion> |
||||
<exclusion> |
||||
<groupId>io.swagger</groupId> |
||||
<artifactId>swagger-models</artifactId> |
||||
</exclusion> |
||||
</exclusions> |
||||
</dependency> |
||||
|
||||
<!-- swagger2-UI--> |
||||
<dependency> |
||||
<groupId>io.springfox</groupId> |
||||
<artifactId>springfox-swagger-ui</artifactId> |
||||
<version>${swagger.version}</version> |
||||
</dependency> |
||||
|
||||
<!--io常用工具类 --> |
||||
<dependency> |
||||
<groupId>commons-io</groupId> |
||||
<artifactId>commons-io</artifactId> |
||||
<version>${commons.io.version}</version> |
||||
</dependency> |
||||
|
||||
<!--文件上传工具类 --> |
||||
<dependency> |
||||
<groupId>commons-fileupload</groupId> |
||||
<artifactId>commons-fileupload</artifactId> |
||||
<version>${commons.fileupload.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- excel工具 --> |
||||
<dependency> |
||||
<groupId>org.apache.poi</groupId> |
||||
<artifactId>poi-ooxml</artifactId> |
||||
<version>${poi.version}</version> |
||||
</dependency> |
||||
|
||||
<!--velocity代码生成使用模板 --> |
||||
<dependency> |
||||
<groupId>org.apache.velocity</groupId> |
||||
<artifactId>velocity</artifactId> |
||||
<version>${velocity.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- 阿里JSON解析器 --> |
||||
<dependency> |
||||
<groupId>com.alibaba</groupId> |
||||
<artifactId>fastjson</artifactId> |
||||
<version>${fastjson.version}</version> |
||||
</dependency> |
||||
|
||||
<!--Token生成与解析--> |
||||
<dependency> |
||||
<groupId>io.jsonwebtoken</groupId> |
||||
<artifactId>jjwt</artifactId> |
||||
<version>${jwt.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- 定时任务--> |
||||
<dependency> |
||||
<groupId>com.ruoyi</groupId> |
||||
<artifactId>ruoyi-quartz</artifactId> |
||||
<version>${ruoyi.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- 代码生成--> |
||||
<dependency> |
||||
<groupId>com.ruoyi</groupId> |
||||
<artifactId>ruoyi-generator</artifactId> |
||||
<version>${ruoyi.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- 核心模块--> |
||||
<dependency> |
||||
<groupId>com.ruoyi</groupId> |
||||
<artifactId>ruoyi-framework</artifactId> |
||||
<version>${ruoyi.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- 系统模块--> |
||||
<dependency> |
||||
<groupId>com.ruoyi</groupId> |
||||
<artifactId>ruoyi-system</artifactId> |
||||
<version>${ruoyi.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- 通用工具--> |
||||
<dependency> |
||||
<groupId>com.ruoyi</groupId> |
||||
<artifactId>ruoyi-common</artifactId> |
||||
<version>${ruoyi.version}</version> |
||||
</dependency> |
||||
|
||||
</dependencies> |
||||
</dependencyManagement> |
||||
|
||||
<modules> |
||||
<module>ruoyi-admin</module> |
||||
<module>ruoyi-framework</module> |
||||
<module>ruoyi-system</module> |
||||
<module>ruoyi-quartz</module> |
||||
<module>ruoyi-generator</module> |
||||
<module>ruoyi-common</module> |
||||
</modules> |
||||
<packaging>pom</packaging> |
||||
|
||||
|
||||
<dependencies> |
||||
|
||||
</dependencies> |
||||
|
||||
<build> |
||||
<plugins> |
||||
<plugin> |
||||
<groupId>org.apache.maven.plugins</groupId> |
||||
<artifactId>maven-compiler-plugin</artifactId> |
||||
<version>3.1</version> |
||||
<configuration> |
||||
<source>${java.version}</source> |
||||
<target>${java.version}</target> |
||||
<encoding>${project.build.sourceEncoding}</encoding> |
||||
</configuration> |
||||
</plugin> |
||||
</plugins> |
||||
</build> |
||||
|
||||
<repositories> |
||||
<repository> |
||||
<id>public</id> |
||||
<name>aliyun nexus</name> |
||||
<url>http://maven.aliyun.com/nexus/content/groups/public/</url> |
||||
<releases> |
||||
<enabled>true</enabled> |
||||
</releases> |
||||
</repository> |
||||
</repositories> |
||||
|
||||
<pluginRepositories> |
||||
<pluginRepository> |
||||
<id>public</id> |
||||
<name>aliyun nexus</name> |
||||
<url>http://maven.aliyun.com/nexus/content/groups/public/</url> |
||||
<releases> |
||||
<enabled>true</enabled> |
||||
</releases> |
||||
<snapshots> |
||||
<enabled>false</enabled> |
||||
</snapshots> |
||||
</pluginRepository> |
||||
</pluginRepositories> |
||||
|
||||
</project> |
@ -0,0 +1,108 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" |
||||
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> |
||||
<artifactId>ruoyi</artifactId> |
||||
<groupId>com.ruoyi</groupId> |
||||
<version>3.0.0</version> |
||||
</parent> |
||||
<modelVersion>4.0.0</modelVersion> |
||||
<packaging>jar</packaging> |
||||
<artifactId>ruoyi-admin</artifactId> |
||||
|
||||
<description> |
||||
web服务入口 |
||||
</description> |
||||
|
||||
<dependencies> |
||||
|
||||
<!-- spring-boot-devtools --> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-devtools</artifactId> |
||||
<optional>true</optional> <!-- 表示依赖不会传递 --> |
||||
</dependency> |
||||
|
||||
<!-- swagger2--> |
||||
<dependency> |
||||
<groupId>io.springfox</groupId> |
||||
<artifactId>springfox-swagger2</artifactId> |
||||
</dependency> |
||||
|
||||
<!--防止进入swagger页面报类型转换错误,排除2.9.2中的引用,手动增加1.5.21版本--> |
||||
<dependency> |
||||
<groupId>io.swagger</groupId> |
||||
<artifactId>swagger-annotations</artifactId> |
||||
<version>1.5.21</version> |
||||
</dependency> |
||||
|
||||
<dependency> |
||||
<groupId>io.swagger</groupId> |
||||
<artifactId>swagger-models</artifactId> |
||||
<version>1.5.21</version> |
||||
</dependency> |
||||
|
||||
<!-- swagger2-UI--> |
||||
<dependency> |
||||
<groupId>io.springfox</groupId> |
||||
<artifactId>springfox-swagger-ui</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- Mysql驱动包 --> |
||||
<dependency> |
||||
<groupId>mysql</groupId> |
||||
<artifactId>mysql-connector-java</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- 核心模块--> |
||||
<dependency> |
||||
<groupId>com.ruoyi</groupId> |
||||
<artifactId>ruoyi-framework</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- 定时任务--> |
||||
<dependency> |
||||
<groupId>com.ruoyi</groupId> |
||||
<artifactId>ruoyi-quartz</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- 代码生成--> |
||||
<dependency> |
||||
<groupId>com.ruoyi</groupId> |
||||
<artifactId>ruoyi-generator</artifactId> |
||||
</dependency> |
||||
|
||||
</dependencies> |
||||
|
||||
<build> |
||||
<plugins> |
||||
<plugin> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-maven-plugin</artifactId> |
||||
<version>2.1.1.RELEASE</version> |
||||
<configuration> |
||||
<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 --> |
||||
</configuration> |
||||
<executions> |
||||
<execution> |
||||
<goals> |
||||
<goal>repackage</goal> |
||||
</goals> |
||||
</execution> |
||||
</executions> |
||||
</plugin> |
||||
<plugin> |
||||
<groupId>org.apache.maven.plugins</groupId> |
||||
<artifactId>maven-war-plugin</artifactId> |
||||
<version>3.0.0</version> |
||||
<configuration> |
||||
<failOnMissingWebXml>false</failOnMissingWebXml> |
||||
<warName>${project.artifactId}</warName> |
||||
</configuration> |
||||
</plugin> |
||||
</plugins> |
||||
<finalName>${project.artifactId}</finalName> |
||||
</build> |
||||
|
||||
</project> |
@ -1,11 +1,11 @@ |
||||
package com.ruoyi.project.monitor.controller; |
||||
package com.ruoyi.web.controller.monitor; |
||||
|
||||
import org.springframework.security.access.prepost.PreAuthorize; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
import com.ruoyi.framework.web.controller.BaseController; |
||||
import com.ruoyi.framework.web.domain.AjaxResult; |
||||
import com.ruoyi.common.core.controller.BaseController; |
||||
import com.ruoyi.common.core.domain.AjaxResult; |
||||
import com.ruoyi.framework.web.domain.Server; |
||||
|
||||
/** |
@ -0,0 +1,24 @@ |
||||
package com.ruoyi.web.controller.tool; |
||||
|
||||
import org.springframework.security.access.prepost.PreAuthorize; |
||||
import org.springframework.stereotype.Controller; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import com.ruoyi.common.core.controller.BaseController; |
||||
|
||||
/** |
||||
* swagger 接口 |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
@Controller |
||||
@RequestMapping("/tool/swagger") |
||||
public class SwaggerController extends BaseController |
||||
{ |
||||
@PreAuthorize("@ss.hasPermi('tool:swagger:view')") |
||||
@GetMapping() |
||||
public String index() |
||||
{ |
||||
return redirect("/swagger-ui.html"); |
||||
} |
||||
} |
@ -0,0 +1,124 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" |
||||
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> |
||||
<artifactId>ruoyi</artifactId> |
||||
<groupId>com.ruoyi</groupId> |
||||
<version>3.0.0</version> |
||||
</parent> |
||||
<modelVersion>4.0.0</modelVersion> |
||||
|
||||
<artifactId>ruoyi-common</artifactId> |
||||
|
||||
<description> |
||||
common通用工具 |
||||
</description> |
||||
|
||||
<dependencies> |
||||
|
||||
<!-- Spring框架基本的核心工具 --> |
||||
<dependency> |
||||
<groupId>org.springframework</groupId> |
||||
<artifactId>spring-context-support</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- SpringWeb模块 --> |
||||
<dependency> |
||||
<groupId>org.springframework</groupId> |
||||
<artifactId>spring-web</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- spring security 安全认证 --> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-security</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- pagehelper 分页插件 --> |
||||
<dependency> |
||||
<groupId>com.github.pagehelper</groupId> |
||||
<artifactId>pagehelper-spring-boot-starter</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- 自定义验证注解 --> |
||||
<dependency> |
||||
<groupId>javax.validation</groupId> |
||||
<artifactId>validation-api</artifactId> |
||||
</dependency> |
||||
|
||||
<!--常用工具类 --> |
||||
<dependency> |
||||
<groupId>org.apache.commons</groupId> |
||||
<artifactId>commons-lang3</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- JSON工具类 --> |
||||
<dependency> |
||||
<groupId>com.fasterxml.jackson.core</groupId> |
||||
<artifactId>jackson-databind</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- 阿里JSON解析器 --> |
||||
<dependency> |
||||
<groupId>com.alibaba</groupId> |
||||
<artifactId>fastjson</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- io常用工具类 --> |
||||
<dependency> |
||||
<groupId>commons-io</groupId> |
||||
<artifactId>commons-io</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- 文件上传工具类 --> |
||||
<dependency> |
||||
<groupId>commons-fileupload</groupId> |
||||
<artifactId>commons-fileupload</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- excel工具 --> |
||||
<dependency> |
||||
<groupId>org.apache.poi</groupId> |
||||
<artifactId>poi-ooxml</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- yml解析器 --> |
||||
<dependency> |
||||
<groupId>org.yaml</groupId> |
||||
<artifactId>snakeyaml</artifactId> |
||||
</dependency> |
||||
|
||||
<!--Token生成与解析--> |
||||
<dependency> |
||||
<groupId>io.jsonwebtoken</groupId> |
||||
<artifactId>jjwt</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- redis 缓存操作 --> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-data-redis</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- pool 对象池 --> |
||||
<dependency> |
||||
<groupId>org.apache.commons</groupId> |
||||
<artifactId>commons-pool2</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- 解析客户端操作系统、浏览器等 --> |
||||
<dependency> |
||||
<groupId>eu.bitwalker</groupId> |
||||
<artifactId>UserAgentUtils</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- servlet包 --> |
||||
<dependency> |
||||
<groupId>javax.servlet</groupId> |
||||
<artifactId>javax.servlet-api</artifactId> |
||||
</dependency> |
||||
|
||||
</dependencies> |
||||
|
||||
</project> |
@ -1,4 +1,4 @@ |
||||
package com.ruoyi.framework.aspectj.lang.annotation; |
||||
package com.ruoyi.common.annotation; |
||||
|
||||
import java.lang.annotation.Documented; |
||||
import java.lang.annotation.ElementType; |
@ -1,118 +1,118 @@ |
||||
package com.ruoyi.framework.aspectj.lang.annotation; |
||||
|
||||
import java.lang.annotation.ElementType; |
||||
import java.lang.annotation.Retention; |
||||
import java.lang.annotation.RetentionPolicy; |
||||
import java.lang.annotation.Target; |
||||
|
||||
/** |
||||
* 自定义导出Excel数据注解 |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
@Retention(RetentionPolicy.RUNTIME) |
||||
@Target(ElementType.FIELD) |
||||
public @interface Excel |
||||
{ |
||||
/** |
||||
* 导出时在excel中排序 |
||||
*/ |
||||
public int sort() default Integer.MAX_VALUE; |
||||
|
||||
/** |
||||
* 导出到Excel中的名字. |
||||
*/ |
||||
public String name() default ""; |
||||
|
||||
/** |
||||
* 日期格式, 如: yyyy-MM-dd |
||||
*/ |
||||
public String dateFormat() default ""; |
||||
|
||||
/** |
||||
* 读取内容转表达式 (如: 0=男,1=女,2=未知) |
||||
*/ |
||||
public String readConverterExp() default ""; |
||||
|
||||
/** |
||||
* 导出类型(0数字 1字符串) |
||||
*/ |
||||
public ColumnType cellType() default ColumnType.STRING; |
||||
|
||||
/** |
||||
* 导出时在excel中每个列的高度 单位为字符 |
||||
*/ |
||||
public double height() default 14; |
||||
|
||||
/** |
||||
* 导出时在excel中每个列的宽 单位为字符 |
||||
*/ |
||||
public double width() default 16; |
||||
|
||||
/** |
||||
* 文字后缀,如% 90 变成90% |
||||
*/ |
||||
public String suffix() default ""; |
||||
|
||||
/** |
||||
* 当值为空时,字段的默认值 |
||||
*/ |
||||
public String defaultValue() default ""; |
||||
|
||||
/** |
||||
* 提示信息 |
||||
*/ |
||||
public String prompt() default ""; |
||||
|
||||
/** |
||||
* 设置只能选择不能输入的列内容. |
||||
*/ |
||||
public String[] combo() default {}; |
||||
|
||||
/** |
||||
* 是否导出数据,应对需求:有时我们需要导出一份模板,这是标题需要但内容需要用户手工填写. |
||||
*/ |
||||
public boolean isExport() default true; |
||||
|
||||
/** |
||||
* 另一个类中的属性名称,支持多级获取,以小数点隔开 |
||||
*/ |
||||
public String targetAttr() default ""; |
||||
|
||||
/** |
||||
* 字段类型(0:导出导入;1:仅导出;2:仅导入) |
||||
*/ |
||||
Type type() default Type.ALL; |
||||
|
||||
public enum Type |
||||
{ |
||||
ALL(0), EXPORT(1), IMPORT(2); |
||||
private final int value; |
||||
|
||||
Type(int value) |
||||
{ |
||||
this.value = value; |
||||
} |
||||
|
||||
public int value() |
||||
{ |
||||
return this.value; |
||||
} |
||||
} |
||||
|
||||
public enum ColumnType |
||||
{ |
||||
NUMERIC(0), STRING(1); |
||||
private final int value; |
||||
|
||||
ColumnType(int value) |
||||
{ |
||||
this.value = value; |
||||
} |
||||
|
||||
public int value() |
||||
{ |
||||
return this.value; |
||||
} |
||||
} |
||||
} |
||||
package com.ruoyi.common.annotation; |
||||
|
||||
import java.lang.annotation.ElementType; |
||||
import java.lang.annotation.Retention; |
||||
import java.lang.annotation.RetentionPolicy; |
||||
import java.lang.annotation.Target; |
||||
|
||||
/** |
||||
* 自定义导出Excel数据注解 |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
@Retention(RetentionPolicy.RUNTIME) |
||||
@Target(ElementType.FIELD) |
||||
public @interface Excel |
||||
{ |
||||
/** |
||||
* 导出时在excel中排序 |
||||
*/ |
||||
public int sort() default Integer.MAX_VALUE; |
||||
|
||||
/** |
||||
* 导出到Excel中的名字. |
||||
*/ |
||||
public String name() default ""; |
||||
|
||||
/** |
||||
* 日期格式, 如: yyyy-MM-dd |
||||
*/ |
||||
public String dateFormat() default ""; |
||||
|
||||
/** |
||||
* 读取内容转表达式 (如: 0=男,1=女,2=未知) |
||||
*/ |
||||
public String readConverterExp() default ""; |
||||
|
||||
/** |
||||
* 导出类型(0数字 1字符串) |
||||
*/ |
||||
public ColumnType cellType() default ColumnType.STRING; |
||||
|
||||
/** |
||||
* 导出时在excel中每个列的高度 单位为字符 |
||||
*/ |
||||
public double height() default 14; |
||||
|
||||
/** |
||||
* 导出时在excel中每个列的宽 单位为字符 |
||||
*/ |
||||
public double width() default 16; |
||||
|
||||
/** |
||||
* 文字后缀,如% 90 变成90% |
||||
*/ |
||||
public String suffix() default ""; |
||||
|
||||
/** |
||||
* 当值为空时,字段的默认值 |
||||
*/ |
||||
public String defaultValue() default ""; |
||||
|
||||
/** |
||||
* 提示信息 |
||||
*/ |
||||
public String prompt() default ""; |
||||
|
||||
/** |
||||
* 设置只能选择不能输入的列内容. |
||||
*/ |
||||
public String[] combo() default {}; |
||||
|
||||
/** |
||||
* 是否导出数据,应对需求:有时我们需要导出一份模板,这是标题需要但内容需要用户手工填写. |
||||
*/ |
||||
public boolean isExport() default true; |
||||
|
||||
/** |
||||
* 另一个类中的属性名称,支持多级获取,以小数点隔开 |
||||
*/ |
||||
public String targetAttr() default ""; |
||||
|
||||
/** |
||||
* 字段类型(0:导出导入;1:仅导出;2:仅导入) |
||||
*/ |
||||
Type type() default Type.ALL; |
||||
|
||||
public enum Type |
||||
{ |
||||
ALL(0), EXPORT(1), IMPORT(2); |
||||
private final int value; |
||||
|
||||
Type(int value) |
||||
{ |
||||
this.value = value; |
||||
} |
||||
|
||||
public int value() |
||||
{ |
||||
return this.value; |
||||
} |
||||
} |
||||
|
||||
public enum ColumnType |
||||
{ |
||||
NUMERIC(0), STRING(1); |
||||
private final int value; |
||||
|
||||
ColumnType(int value) |
||||
{ |
||||
this.value = value; |
||||
} |
||||
|
||||
public int value() |
||||
{ |
||||
return this.value; |
||||
} |
||||
} |
||||
} |
@ -1,18 +1,18 @@ |
||||
package com.ruoyi.framework.aspectj.lang.annotation; |
||||
|
||||
import java.lang.annotation.ElementType; |
||||
import java.lang.annotation.Retention; |
||||
import java.lang.annotation.RetentionPolicy; |
||||
import java.lang.annotation.Target; |
||||
|
||||
/** |
||||
* Excel注解集 |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
@Target(ElementType.FIELD) |
||||
@Retention(RetentionPolicy.RUNTIME) |
||||
public @interface Excels |
||||
{ |
||||
Excel[] value(); |
||||
} |
||||
package com.ruoyi.common.annotation; |
||||
|
||||
import java.lang.annotation.ElementType; |
||||
import java.lang.annotation.Retention; |
||||
import java.lang.annotation.RetentionPolicy; |
||||
import java.lang.annotation.Target; |
||||
|
||||
/** |
||||
* Excel注解集 |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
@Target(ElementType.FIELD) |
||||
@Retention(RetentionPolicy.RUNTIME) |
||||
public @interface Excels |
||||
{ |
||||
Excel[] value(); |
||||
} |
@ -1,12 +1,12 @@ |
||||
package com.ruoyi.framework.aspectj.lang.annotation; |
||||
package com.ruoyi.common.annotation; |
||||
|
||||
import java.lang.annotation.Documented; |
||||
import java.lang.annotation.ElementType; |
||||
import java.lang.annotation.Retention; |
||||
import java.lang.annotation.RetentionPolicy; |
||||
import java.lang.annotation.Target; |
||||
import com.ruoyi.framework.aspectj.lang.enums.BusinessType; |
||||
import com.ruoyi.framework.aspectj.lang.enums.OperatorType; |
||||
import com.ruoyi.common.enums.BusinessType; |
||||
import com.ruoyi.common.enums.OperatorType; |
||||
|
||||
/** |
||||
* 自定义操作日志记录注解 |
@ -1,23 +1,23 @@ |
||||
package com.ruoyi.framework.interceptor.annotation; |
||||
|
||||
import java.lang.annotation.Documented; |
||||
import java.lang.annotation.ElementType; |
||||
import java.lang.annotation.Inherited; |
||||
import java.lang.annotation.Retention; |
||||
import java.lang.annotation.RetentionPolicy; |
||||
import java.lang.annotation.Target; |
||||
|
||||
/** |
||||
* 自定义注解防止表单重复提交 |
||||
* |
||||
* @author ruoyi |
||||
* |
||||
*/ |
||||
@Inherited |
||||
@Target(ElementType.METHOD) |
||||
@Retention(RetentionPolicy.RUNTIME) |
||||
@Documented |
||||
public @interface RepeatSubmit |
||||
{ |
||||
|
||||
} |
||||
package com.ruoyi.common.annotation; |
||||
|
||||
import java.lang.annotation.Documented; |
||||
import java.lang.annotation.ElementType; |
||||
import java.lang.annotation.Inherited; |
||||
import java.lang.annotation.Retention; |
||||
import java.lang.annotation.RetentionPolicy; |
||||
import java.lang.annotation.Target; |
||||
|
||||
/** |
||||
* 自定义注解防止表单重复提交 |
||||
* |
||||
* @author ruoyi |
||||
* |
||||
*/ |
||||
@Inherited |
||||
@Target(ElementType.METHOD) |
||||
@Retention(RetentionPolicy.RUNTIME) |
||||
@Documented |
||||
public @interface RepeatSubmit |
||||
{ |
||||
|
||||
} |
@ -1,50 +1,50 @@ |
||||
package com.ruoyi.common.constant; |
||||
|
||||
/** |
||||
* 任务调度通用常量 |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
public class ScheduleConstants |
||||
{ |
||||
public static final String TASK_CLASS_NAME = "TASK_CLASS_NAME"; |
||||
|
||||
/** 执行目标key */ |
||||
public static final String TASK_PROPERTIES = "TASK_PROPERTIES"; |
||||
|
||||
/** 默认 */ |
||||
public static final String MISFIRE_DEFAULT = "0"; |
||||
|
||||
/** 立即触发执行 */ |
||||
public static final String MISFIRE_IGNORE_MISFIRES = "1"; |
||||
|
||||
/** 触发一次执行 */ |
||||
public static final String MISFIRE_FIRE_AND_PROCEED = "2"; |
||||
|
||||
/** 不触发立即执行 */ |
||||
public static final String MISFIRE_DO_NOTHING = "3"; |
||||
|
||||
public enum Status |
||||
{ |
||||
/** |
||||
* 正常 |
||||
*/ |
||||
NORMAL("0"), |
||||
/** |
||||
* 暂停 |
||||
*/ |
||||
PAUSE("1"); |
||||
|
||||
private String value; |
||||
|
||||
private Status(String value) |
||||
{ |
||||
this.value = value; |
||||
} |
||||
|
||||
public String getValue() |
||||
{ |
||||
return value; |
||||
} |
||||
} |
||||
} |
||||
package com.ruoyi.common.constant; |
||||
|
||||
/** |
||||
* 任务调度通用常量 |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
public class ScheduleConstants |
||||
{ |
||||
public static final String TASK_CLASS_NAME = "TASK_CLASS_NAME"; |
||||
|
||||
/** 执行目标key */ |
||||
public static final String TASK_PROPERTIES = "TASK_PROPERTIES"; |
||||
|
||||
/** 默认 */ |
||||
public static final String MISFIRE_DEFAULT = "0"; |
||||
|
||||
/** 立即触发执行 */ |
||||
public static final String MISFIRE_IGNORE_MISFIRES = "1"; |
||||
|
||||
/** 触发一次执行 */ |
||||
public static final String MISFIRE_FIRE_AND_PROCEED = "2"; |
||||
|
||||
/** 不触发立即执行 */ |
||||
public static final String MISFIRE_DO_NOTHING = "3"; |
||||
|
||||
public enum Status |
||||
{ |
||||
/** |
||||
* 正常 |
||||
*/ |
||||
NORMAL("0"), |
||||
/** |
||||
* 暂停 |
||||
*/ |
||||
PAUSE("1"); |
||||
|
||||
private String value; |
||||
|
||||
private Status(String value) |
||||
{ |
||||
this.value = value; |
||||
} |
||||
|
||||
public String getValue() |
||||
{ |
||||
return value; |
||||
} |
||||
} |
||||
} |
@ -1,4 +1,4 @@ |
||||
package com.ruoyi.framework.web.domain; |
||||
package com.ruoyi.common.core.domain; |
||||
|
||||
import java.util.HashMap; |
||||
import com.ruoyi.common.constant.HttpStatus; |
@ -1,4 +1,4 @@ |
||||
package com.ruoyi.framework.web.domain; |
||||
package com.ruoyi.common.core.domain; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.Date; |
@ -1,4 +1,4 @@ |
||||
package com.ruoyi.framework.web.domain; |
||||
package com.ruoyi.common.core.domain; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
@ -1,11 +1,11 @@ |
||||
package com.ruoyi.framework.web.domain; |
||||
package com.ruoyi.common.core.domain; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.List; |
||||
import java.util.stream.Collectors; |
||||
import com.fasterxml.jackson.annotation.JsonInclude; |
||||
import com.ruoyi.project.system.domain.SysDept; |
||||
import com.ruoyi.project.system.domain.SysMenu; |
||||
import com.ruoyi.common.core.domain.entity.SysDept; |
||||
import com.ruoyi.common.core.domain.entity.SysMenu; |
||||
|
||||
/** |
||||
* Treeselect树结构实体类 |
@ -1,13 +1,13 @@ |
||||
package com.ruoyi.project.system.domain; |
||||
package com.ruoyi.common.core.domain.entity; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
import javax.validation.constraints.Size; |
||||
import org.apache.commons.lang3.builder.ToStringBuilder; |
||||
import org.apache.commons.lang3.builder.ToStringStyle; |
||||
import com.ruoyi.common.annotation.Excel; |
||||
import com.ruoyi.common.annotation.Excel.ColumnType; |
||||
import com.ruoyi.common.constant.UserConstants; |
||||
import com.ruoyi.framework.aspectj.lang.annotation.Excel; |
||||
import com.ruoyi.framework.aspectj.lang.annotation.Excel.ColumnType; |
||||
import com.ruoyi.framework.web.domain.BaseEntity; |
||||
import com.ruoyi.common.core.domain.BaseEntity; |
||||
|
||||
/** |
||||
* 字典数据表 sys_dict_data |
@ -1,12 +1,12 @@ |
||||
package com.ruoyi.project.system.domain; |
||||
package com.ruoyi.common.core.domain.entity; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
import javax.validation.constraints.Size; |
||||
import org.apache.commons.lang3.builder.ToStringBuilder; |
||||
import org.apache.commons.lang3.builder.ToStringStyle; |
||||
import com.ruoyi.framework.aspectj.lang.annotation.Excel; |
||||
import com.ruoyi.framework.aspectj.lang.annotation.Excel.ColumnType; |
||||
import com.ruoyi.framework.web.domain.BaseEntity; |
||||
import com.ruoyi.common.annotation.Excel; |
||||
import com.ruoyi.common.annotation.Excel.ColumnType; |
||||
import com.ruoyi.common.core.domain.BaseEntity; |
||||
|
||||
/** |
||||
* 字典类型表 sys_dict_type |
@ -1,12 +1,12 @@ |
||||
package com.ruoyi.project.system.domain; |
||||
package com.ruoyi.common.core.domain.entity; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
import javax.validation.constraints.Size; |
||||
import org.apache.commons.lang3.builder.ToStringBuilder; |
||||
import org.apache.commons.lang3.builder.ToStringStyle; |
||||
import com.ruoyi.framework.aspectj.lang.annotation.Excel; |
||||
import com.ruoyi.framework.aspectj.lang.annotation.Excel.ColumnType; |
||||
import com.ruoyi.framework.web.domain.BaseEntity; |
||||
import com.ruoyi.common.annotation.Excel; |
||||
import com.ruoyi.common.annotation.Excel.ColumnType; |
||||
import com.ruoyi.common.core.domain.BaseEntity; |
||||
|
||||
/** |
||||
* 角色表 sys_role |
@ -1,4 +1,4 @@ |
||||
package com.ruoyi.framework.security; |
||||
package com.ruoyi.common.core.domain.model; |
||||
|
||||
/** |
||||
* 用户登录对象 |
@ -1,11 +1,11 @@ |
||||
package com.ruoyi.framework.security; |
||||
package com.ruoyi.common.core.domain.model; |
||||
|
||||
import java.util.Collection; |
||||
import java.util.Set; |
||||
import org.springframework.security.core.GrantedAuthority; |
||||
import org.springframework.security.core.userdetails.UserDetails; |
||||
import com.fasterxml.jackson.annotation.JsonIgnore; |
||||
import com.ruoyi.project.system.domain.SysUser; |
||||
import com.ruoyi.common.core.domain.entity.SysUser; |
||||
|
||||
/** |
||||
* 登录用户身份权限 |
@ -1,4 +1,4 @@ |
||||
package com.ruoyi.framework.web.page; |
||||
package com.ruoyi.common.core.page; |
||||
|
||||
import com.ruoyi.common.utils.ServletUtils; |
||||
|
@ -1,4 +1,4 @@ |
||||
package com.ruoyi.framework.redis; |
||||
package com.ruoyi.common.core.redis; |
||||
|
||||
import java.util.Collection; |
||||
import java.util.List; |
@ -1,4 +1,4 @@ |
||||
package com.ruoyi.framework.aspectj.lang.enums; |
||||
package com.ruoyi.common.enums; |
||||
|
||||
/** |
||||
* 操作状态 |
@ -1,4 +1,4 @@ |
||||
package com.ruoyi.framework.aspectj.lang.enums; |
||||
package com.ruoyi.common.enums; |
||||
|
||||
/** |
||||
* 业务操作类型 |
@ -1,4 +1,4 @@ |
||||
package com.ruoyi.framework.aspectj.lang.enums; |
||||
package com.ruoyi.common.enums; |
||||
|
||||
/** |
||||
* 数据源 |
@ -1,4 +1,4 @@ |
||||
package com.ruoyi.framework.aspectj.lang.enums; |
||||
package com.ruoyi.common.enums; |
||||
|
||||
/** |
||||
* 操作人类别 |
@ -1,34 +1,34 @@ |
||||
package com.ruoyi.common.exception.job; |
||||
|
||||
/** |
||||
* 计划策略异常 |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
public class TaskException extends Exception |
||||
{ |
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
private Code code; |
||||
|
||||
public TaskException(String msg, Code code) |
||||
{ |
||||
this(msg, code, null); |
||||
} |
||||
|
||||
public TaskException(String msg, Code code, Exception nestedEx) |
||||
{ |
||||
super(msg, nestedEx); |
||||
this.code = code; |
||||
} |
||||
|
||||
public Code getCode() |
||||
{ |
||||
return code; |
||||
} |
||||
|
||||
public enum Code |
||||
{ |
||||
TASK_EXISTS, NO_TASK_EXISTS, TASK_ALREADY_STARTED, UNKNOWN, CONFIG_ERROR, TASK_NODE_NOT_AVAILABLE |
||||
} |
||||
package com.ruoyi.common.exception.job; |
||||
|
||||
/** |
||||
* 计划策略异常 |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
public class TaskException extends Exception |
||||
{ |
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
private Code code; |
||||
|
||||
public TaskException(String msg, Code code) |
||||
{ |
||||
this(msg, code, null); |
||||
} |
||||
|
||||
public TaskException(String msg, Code code, Exception nestedEx) |
||||
{ |
||||
super(msg, nestedEx); |
||||
this.code = code; |
||||
} |
||||
|
||||
public Code getCode() |
||||
{ |
||||
return code; |
||||
} |
||||
|
||||
public enum Code |
||||
{ |
||||
TASK_EXISTS, NO_TASK_EXISTS, TASK_ALREADY_STARTED, UNKNOWN, CONFIG_ERROR, TASK_NODE_NOT_AVAILABLE |
||||
} |
||||
} |
@ -1,52 +1,52 @@ |
||||
package com.ruoyi.common.filter; |
||||
|
||||
import java.io.IOException; |
||||
import javax.servlet.Filter; |
||||
import javax.servlet.FilterChain; |
||||
import javax.servlet.FilterConfig; |
||||
import javax.servlet.ServletException; |
||||
import javax.servlet.ServletRequest; |
||||
import javax.servlet.ServletResponse; |
||||
import javax.servlet.http.HttpServletRequest; |
||||
import org.springframework.http.MediaType; |
||||
import com.ruoyi.common.utils.StringUtils; |
||||
|
||||
/** |
||||
* Repeatable 过滤器 |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
public class RepeatableFilter implements Filter |
||||
{ |
||||
@Override |
||||
public void init(FilterConfig filterConfig) throws ServletException |
||||
{ |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) |
||||
throws IOException, ServletException |
||||
{ |
||||
ServletRequest requestWrapper = null; |
||||
if (request instanceof HttpServletRequest && StringUtils.equalsAnyIgnoreCase(request.getContentType(), |
||||
MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_JSON_UTF8_VALUE)) |
||||
{ |
||||
requestWrapper = new RepeatedlyRequestWrapper((HttpServletRequest) request, response); |
||||
} |
||||
if (null == requestWrapper) |
||||
{ |
||||
chain.doFilter(request, response); |
||||
} |
||||
else |
||||
{ |
||||
chain.doFilter(requestWrapper, response); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public void destroy() |
||||
{ |
||||
|
||||
} |
||||
} |
||||
package com.ruoyi.common.filter; |
||||
|
||||
import java.io.IOException; |
||||
import javax.servlet.Filter; |
||||
import javax.servlet.FilterChain; |
||||
import javax.servlet.FilterConfig; |
||||
import javax.servlet.ServletException; |
||||
import javax.servlet.ServletRequest; |
||||
import javax.servlet.ServletResponse; |
||||
import javax.servlet.http.HttpServletRequest; |
||||
import org.springframework.http.MediaType; |
||||
import com.ruoyi.common.utils.StringUtils; |
||||
|
||||
/** |
||||
* Repeatable 过滤器 |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
public class RepeatableFilter implements Filter |
||||
{ |
||||
@Override |
||||
public void init(FilterConfig filterConfig) throws ServletException |
||||
{ |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) |
||||
throws IOException, ServletException |
||||
{ |
||||
ServletRequest requestWrapper = null; |
||||
if (request instanceof HttpServletRequest && StringUtils.equalsAnyIgnoreCase(request.getContentType(), |
||||
MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_JSON_UTF8_VALUE)) |
||||
{ |
||||
requestWrapper = new RepeatedlyRequestWrapper((HttpServletRequest) request, response); |
||||
} |
||||
if (null == requestWrapper) |
||||
{ |
||||
chain.doFilter(request, response); |
||||
} |
||||
else |
||||
{ |
||||
chain.doFilter(requestWrapper, response); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public void destroy() |
||||
{ |
||||
|
||||
} |
||||
} |
@ -1,72 +1,72 @@ |
||||
package com.ruoyi.common.filter; |
||||
|
||||
import java.io.BufferedReader; |
||||
import java.io.ByteArrayInputStream; |
||||
import java.io.IOException; |
||||
import java.io.InputStreamReader; |
||||
import javax.servlet.ReadListener; |
||||
import javax.servlet.ServletInputStream; |
||||
import javax.servlet.ServletResponse; |
||||
import javax.servlet.http.HttpServletRequest; |
||||
import javax.servlet.http.HttpServletRequestWrapper; |
||||
import com.ruoyi.common.utils.http.HttpHelper; |
||||
|
||||
/** |
||||
* 构建可重复读取inputStream的request |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper |
||||
{ |
||||
private final byte[] body; |
||||
|
||||
public RepeatedlyRequestWrapper(HttpServletRequest request, ServletResponse response) throws IOException |
||||
{ |
||||
super(request); |
||||
request.setCharacterEncoding("UTF-8"); |
||||
response.setCharacterEncoding("UTF-8"); |
||||
|
||||
body = HttpHelper.getBodyString(request).getBytes("UTF-8"); |
||||
} |
||||
|
||||
@Override |
||||
public BufferedReader getReader() throws IOException |
||||
{ |
||||
return new BufferedReader(new InputStreamReader(getInputStream())); |
||||
} |
||||
|
||||
@Override |
||||
public ServletInputStream getInputStream() throws IOException |
||||
{ |
||||
|
||||
final ByteArrayInputStream bais = new ByteArrayInputStream(body); |
||||
|
||||
return new ServletInputStream() |
||||
{ |
||||
|
||||
@Override |
||||
public int read() throws IOException |
||||
{ |
||||
return bais.read(); |
||||
} |
||||
|
||||
@Override |
||||
public boolean isFinished() |
||||
{ |
||||
return false; |
||||
} |
||||
|
||||
@Override |
||||
public boolean isReady() |
||||
{ |
||||
return false; |
||||
} |
||||
|
||||
@Override |
||||
public void setReadListener(ReadListener readListener) |
||||
{ |
||||
|
||||
} |
||||
}; |
||||
} |
||||
} |
||||
package com.ruoyi.common.filter; |
||||
|
||||
import java.io.BufferedReader; |
||||
import java.io.ByteArrayInputStream; |
||||
import java.io.IOException; |
||||
import java.io.InputStreamReader; |
||||
import javax.servlet.ReadListener; |
||||
import javax.servlet.ServletInputStream; |
||||
import javax.servlet.ServletResponse; |
||||
import javax.servlet.http.HttpServletRequest; |
||||
import javax.servlet.http.HttpServletRequestWrapper; |
||||
import com.ruoyi.common.utils.http.HttpHelper; |
||||
|
||||
/** |
||||
* 构建可重复读取inputStream的request |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper |
||||
{ |
||||
private final byte[] body; |
||||
|
||||
public RepeatedlyRequestWrapper(HttpServletRequest request, ServletResponse response) throws IOException |
||||
{ |
||||
super(request); |
||||
request.setCharacterEncoding("UTF-8"); |
||||
response.setCharacterEncoding("UTF-8"); |
||||
|
||||
body = HttpHelper.getBodyString(request).getBytes("UTF-8"); |
||||
} |
||||
|
||||
@Override |
||||
public BufferedReader getReader() throws IOException |
||||
{ |
||||
return new BufferedReader(new InputStreamReader(getInputStream())); |
||||
} |
||||
|
||||
@Override |
||||
public ServletInputStream getInputStream() throws IOException |
||||
{ |
||||
|
||||
final ByteArrayInputStream bais = new ByteArrayInputStream(body); |
||||
|
||||
return new ServletInputStream() |
||||
{ |
||||
|
||||
@Override |
||||
public int read() throws IOException |
||||
{ |
||||
return bais.read(); |
||||
} |
||||
|
||||
@Override |
||||
public boolean isFinished() |
||||
{ |
||||
return false; |
||||
} |
||||
|
||||
@Override |
||||
public boolean isReady() |
||||
{ |
||||
return false; |
||||
} |
||||
|
||||
@Override |
||||
public void setReadListener(ReadListener readListener) |
||||
{ |
||||
|
||||
} |
||||
}; |
||||
} |
||||
} |
@ -1,40 +1,40 @@ |
||||
package com.ruoyi.common.utils; |
||||
|
||||
import java.io.PrintWriter; |
||||
import java.io.StringWriter; |
||||
import org.apache.commons.lang3.exception.ExceptionUtils; |
||||
|
||||
/** |
||||
* 错误信息处理类。 |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
public class ExceptionUtil |
||||
{ |
||||
/** |
||||
* 获取exception的详细错误信息。 |
||||
*/ |
||||
public static String getExceptionMessage(Throwable e) |
||||
{ |
||||
StringWriter sw = new StringWriter(); |
||||
e.printStackTrace(new PrintWriter(sw, true)); |
||||
String str = sw.toString(); |
||||
return str; |
||||
} |
||||
|
||||
public static String getRootErrorMseeage(Exception e) |
||||
{ |
||||
Throwable root = ExceptionUtils.getRootCause(e); |
||||
root = (root == null ? e : root); |
||||
if (root == null) |
||||
{ |
||||
return ""; |
||||
} |
||||
String msg = root.getMessage(); |
||||
if (msg == null) |
||||
{ |
||||
return "null"; |
||||
} |
||||
return StringUtils.defaultString(msg); |
||||
} |
||||
} |
||||
package com.ruoyi.common.utils; |
||||
|
||||
import java.io.PrintWriter; |
||||
import java.io.StringWriter; |
||||
import org.apache.commons.lang3.exception.ExceptionUtils; |
||||
|
||||
/** |
||||
* 错误信息处理类。 |
||||
* |
||||
* @author ruoyi |
||||
*/ |
||||
public class ExceptionUtil |
||||
{ |
||||
/** |
||||
* 获取exception的详细错误信息。 |
||||
*/ |
||||
public static String getExceptionMessage(Throwable e) |
||||
{ |
||||
StringWriter sw = new StringWriter(); |
||||
e.printStackTrace(new PrintWriter(sw, true)); |
||||
String str = sw.toString(); |
||||
return str; |
||||
} |
||||
|
||||
public static String getRootErrorMseeage(Exception e) |
||||
{ |
||||
Throwable root = ExceptionUtils.getRootCause(e); |
||||
root = (root == null ? e : root); |
||||
if (root == null) |
||||
{ |
||||
return ""; |
||||
} |
||||
String msg = root.getMessage(); |
||||
if (msg == null) |
||||
{ |
||||
return "null"; |
||||
} |
||||
return StringUtils.defaultString(msg); |
||||
} |
||||
} |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue