修改框架

This commit is contained in:
2026-04-22 15:25:22 +08:00
parent 611cad2672
commit 1a6be585ff
291 changed files with 1010 additions and 815 deletions
@@ -1,5 +1,6 @@
package com.quoted; package com.quoted;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@@ -7,13 +8,11 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
/** /**
* 启动程序 * 启动程序
* *
* @author ruoyi * quoted
*/ */
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class QuotedApplication public class QuotedApplication {
{ public static void main(String[] args) {
public static void main(String[] args)
{
// System.setProperty("spring.devtools.restart.enabled", "false"); // System.setProperty("spring.devtools.restart.enabled", "false");
SpringApplication.run(QuotedApplication.class, args); SpringApplication.run(QuotedApplication.class, args);
System.out.println("(♥◠‿◠)ノ゙ 若依启动成功 ლ(´ڡ`ლ)゙ \n" + System.out.println("(♥◠‿◠)ノ゙ 若依启动成功 ლ(´ڡ`ლ)゙ \n" +
@@ -6,7 +6,7 @@ import org.springframework.boot.web.servlet.support.SpringBootServletInitializer
/** /**
* web容器中进行部署 * web容器中进行部署
* *
* @author ruoyi * quoted
*/ */
public class QuotedServletInitializer extends SpringBootServletInitializer public class QuotedServletInitializer extends SpringBootServletInitializer
{ {
@@ -11,7 +11,7 @@ import org.springframework.util.FastByteArrayOutputStream;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.google.code.kaptcha.Producer; import com.google.code.kaptcha.Producer;
import com.quoted.common.config.RuoYiConfig; import com.quoted.common.config.QuotedConfig;
import com.quoted.common.constant.CacheConstants; import com.quoted.common.constant.CacheConstants;
import com.quoted.common.constant.Constants; import com.quoted.common.constant.Constants;
import com.quoted.common.core.domain.AjaxResult; import com.quoted.common.core.domain.AjaxResult;
@@ -23,7 +23,7 @@ import com.quoted.system.service.ISysConfigService;
/** /**
* 验证码操作处理 * 验证码操作处理
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
public class CaptchaController public class CaptchaController
@@ -61,7 +61,7 @@ public class CaptchaController
BufferedImage image = null; BufferedImage image = null;
// 生成验证码 // 生成验证码
String captchaType = RuoYiConfig.getCaptchaType(); String captchaType = QuotedConfig.getCaptchaType();
if ("math".equals(captchaType)) if ("math".equals(captchaType))
{ {
String capText = captchaProducerMath.createText(); String capText = captchaProducerMath.createText();
@@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import com.quoted.common.config.RuoYiConfig; import com.quoted.common.config.QuotedConfig;
import com.quoted.common.core.domain.AjaxResult; import com.quoted.common.core.domain.AjaxResult;
import com.quoted.common.utils.StringUtils; import com.quoted.common.utils.StringUtils;
import com.quoted.common.utils.file.FileUploadUtils; import com.quoted.common.utils.file.FileUploadUtils;
@@ -23,7 +23,7 @@ import com.quoted.framework.config.ServerConfig;
/** /**
* 通用请求处理 * 通用请求处理
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
@RequestMapping("/common") @RequestMapping("/common")
@@ -52,7 +52,7 @@ public class CommonController
throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName)); throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName));
} }
String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1); String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
String filePath = RuoYiConfig.getDownloadPath() + fileName; String filePath = QuotedConfig.getDownloadPath() + fileName;
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
FileUtils.setAttachmentResponseHeader(response, realFileName); FileUtils.setAttachmentResponseHeader(response, realFileName);
@@ -77,7 +77,7 @@ public class CommonController
try try
{ {
// 上传文件路径 // 上传文件路径
String filePath = RuoYiConfig.getUploadPath(); String filePath = QuotedConfig.getUploadPath();
// 上传并返回新文件名称 // 上传并返回新文件名称
String fileName = FileUploadUtils.upload(filePath, file); String fileName = FileUploadUtils.upload(filePath, file);
String url = serverConfig.getUrl() + fileName; String url = serverConfig.getUrl() + fileName;
@@ -103,7 +103,7 @@ public class CommonController
try try
{ {
// 上传文件路径 // 上传文件路径
String filePath = RuoYiConfig.getUploadPath(); String filePath = QuotedConfig.getUploadPath();
List<String> urls = new ArrayList<String>(); List<String> urls = new ArrayList<String>();
List<String> fileNames = new ArrayList<String>(); List<String> fileNames = new ArrayList<String>();
List<String> newFileNames = new ArrayList<String>(); List<String> newFileNames = new ArrayList<String>();
@@ -145,7 +145,7 @@ public class CommonController
throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource)); throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource));
} }
// 本地资源路径 // 本地资源路径
String localPath = RuoYiConfig.getProfile(); String localPath = QuotedConfig.getProfile();
// 数据库资源地址 // 数据库资源地址
String downloadPath = localPath + FileUtils.stripPrefix(resource); String downloadPath = localPath + FileUtils.stripPrefix(resource);
// 下载名称 // 下载名称
@@ -25,7 +25,7 @@ import com.quoted.system.domain.SysCache;
/** /**
* 缓存监控 * 缓存监控
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
@RequestMapping("/monitor/cache") @RequestMapping("/monitor/cache")
@@ -10,7 +10,7 @@ import com.quoted.framework.web.domain.Server;
/** /**
* 服务器监控 * 服务器监控
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
@RequestMapping("/monitor/server") @RequestMapping("/monitor/server")
@@ -23,7 +23,7 @@ import com.quoted.system.service.ISysLogininforService;
/** /**
* 系统访问记录 * 系统访问记录
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
@RequestMapping("/monitor/logininfor") @RequestMapping("/monitor/logininfor")
@@ -22,7 +22,7 @@ import com.quoted.system.service.ISysOperLogService;
/** /**
* 操作日志记录 * 操作日志记录
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
@RequestMapping("/monitor/operlog") @RequestMapping("/monitor/operlog")
@@ -26,7 +26,7 @@ import com.quoted.system.service.ISysUserOnlineService;
/** /**
* 在线用户监控 * 在线用户监控
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
@RequestMapping("/monitor/online") @RequestMapping("/monitor/online")
@@ -25,7 +25,7 @@ import com.quoted.system.service.ISysConfigService;
/** /**
* 参数配置 信息操作处理 * 参数配置 信息操作处理
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
@RequestMapping("/system/config") @RequestMapping("/system/config")
@@ -26,7 +26,7 @@ import com.quoted.system.service.ISysDeptService;
/** /**
* 部门信息 * 部门信息
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
@RequestMapping("/system/dept") @RequestMapping("/system/dept")
@@ -28,7 +28,7 @@ import com.quoted.system.service.ISysDictTypeService;
/** /**
* 数据字典信息 * 数据字典信息
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
@RequestMapping("/system/dict/data") @RequestMapping("/system/dict/data")
@@ -25,7 +25,7 @@ import com.quoted.system.service.ISysDictTypeService;
/** /**
* 数据字典信息 * 数据字典信息
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
@RequestMapping("/system/dict/type") @RequestMapping("/system/dict/type")
@@ -6,7 +6,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.quoted.common.config.RuoYiConfig; import com.quoted.common.config.QuotedConfig;
import com.quoted.common.core.domain.AjaxResult; import com.quoted.common.core.domain.AjaxResult;
import com.quoted.common.core.domain.entity.SysUser; import com.quoted.common.core.domain.entity.SysUser;
import com.quoted.common.utils.SecurityUtils; import com.quoted.common.utils.SecurityUtils;
@@ -16,14 +16,14 @@ import com.quoted.system.service.ISysUserService;
/** /**
* 首页 * 首页
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
public class SysIndexController public class SysIndexController
{ {
/** 系统基础配置 */ /** 系统基础配置 */
@Autowired @Autowired
private RuoYiConfig ruoyiConfig; private QuotedConfig ruoyiConfig;
@Autowired @Autowired
private ISysUserService userService; private ISysUserService userService;
@@ -27,7 +27,7 @@ import com.quoted.system.service.ISysMenuService;
/** /**
* 登录验证 * 登录验证
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
public class SysLoginController public class SysLoginController
@@ -25,7 +25,7 @@ import com.quoted.system.service.ISysMenuService;
/** /**
* 菜单信息 * 菜单信息
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
@RequestMapping("/system/menu") @RequestMapping("/system/menu")
@@ -26,7 +26,7 @@ import com.quoted.system.service.ISysNoticeService;
/** /**
* 公告 信息操作处理 * 公告 信息操作处理
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
@RequestMapping("/system/notice") @RequestMapping("/system/notice")
@@ -25,7 +25,7 @@ import com.quoted.system.service.ISysPostService;
/** /**
* 岗位信息操作处理 * 岗位信息操作处理
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
@RequestMapping("/system/post") @RequestMapping("/system/post")
@@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import com.quoted.common.annotation.Log; import com.quoted.common.annotation.Log;
import com.quoted.common.config.RuoYiConfig; import com.quoted.common.config.QuotedConfig;
import com.quoted.common.core.controller.BaseController; import com.quoted.common.core.controller.BaseController;
import com.quoted.common.core.domain.AjaxResult; import com.quoted.common.core.domain.AjaxResult;
import com.quoted.common.core.domain.entity.SysUser; import com.quoted.common.core.domain.entity.SysUser;
@@ -29,7 +29,7 @@ import com.quoted.system.service.ISysUserService;
/** /**
* 个人信息 业务处理 * 个人信息 业务处理
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
@RequestMapping("/system/user/profile") @RequestMapping("/system/user/profile")
@@ -128,13 +128,13 @@ public class SysProfileController extends BaseController
if (!file.isEmpty()) if (!file.isEmpty())
{ {
LoginUser loginUser = getLoginUser(); LoginUser loginUser = getLoginUser();
String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file, MimeTypeUtils.IMAGE_EXTENSION, true); String avatar = FileUploadUtils.upload(QuotedConfig.getAvatarPath(), file, MimeTypeUtils.IMAGE_EXTENSION, true);
if (userService.updateUserAvatar(loginUser.getUserId(), avatar)) if (userService.updateUserAvatar(loginUser.getUserId(), avatar))
{ {
String oldAvatar = loginUser.getUser().getAvatar(); String oldAvatar = loginUser.getUser().getAvatar();
if (StringUtils.isNotEmpty(oldAvatar)) if (StringUtils.isNotEmpty(oldAvatar))
{ {
FileUtils.deleteFile(RuoYiConfig.getProfile() + FileUtils.stripPrefix(oldAvatar)); FileUtils.deleteFile(QuotedConfig.getProfile() + FileUtils.stripPrefix(oldAvatar));
} }
AjaxResult ajax = AjaxResult.success(); AjaxResult ajax = AjaxResult.success();
ajax.put("imgUrl", avatar); ajax.put("imgUrl", avatar);
@@ -14,7 +14,7 @@ import com.quoted.system.service.ISysConfigService;
/** /**
* 注册验证 * 注册验证
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
public class SysRegisterController extends BaseController public class SysRegisterController extends BaseController
@@ -32,7 +32,7 @@ import com.quoted.system.service.ISysUserService;
/** /**
* 角色信息 * 角色信息
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
@RequestMapping("/system/role") @RequestMapping("/system/role")
@@ -35,7 +35,7 @@ import com.quoted.system.service.ISysUserService;
/** /**
* 用户信息 * 用户信息
* *
* @author ruoyi * quoted
*/ */
@RestController @RestController
@RequestMapping("/system/user") @RequestMapping("/system/user")
@@ -25,7 +25,7 @@ import io.swagger.annotations.ApiOperation;
/** /**
* swagger 用户测试方法 * swagger 用户测试方法
* *
* @author ruoyi * quoted
*/ */
@Api("用户信息管理") @Api("用户信息管理")
@RestController @RestController
@@ -2,11 +2,12 @@ package com.quoted.web.core.config;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.quoted.common.config.QuotedConfig;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import com.quoted.common.config.RuoYiConfig;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.models.auth.In; import io.swagger.models.auth.In;
import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.ApiInfoBuilder;
@@ -24,21 +25,26 @@ import springfox.documentation.spring.web.plugins.Docket;
/** /**
* Swagger2的接口配置 * Swagger2的接口配置
* * <p>
* @author ruoyi * quoted
*/ */
@Configuration @Configuration
public class SwaggerConfig public class SwaggerConfig {
{ /**
/** 系统基础配置 */ * 系统基础配置
*/
@Autowired @Autowired
private RuoYiConfig ruoyiConfig; private QuotedConfig quotedConfig;
/** 是否开启swagger */ /**
* 是否开启swagger
*/
@Value("${swagger.enabled}") @Value("${swagger.enabled}")
private boolean enabled; private boolean enabled;
/** 设置请求的统一前缀 */ /**
* 设置请求的统一前缀
*/
@Value("${swagger.pathMapping}") @Value("${swagger.pathMapping}")
private String pathMapping; private String pathMapping;
@@ -46,8 +52,7 @@ public class SwaggerConfig
* 创建API * 创建API
*/ */
@Bean @Bean
public Docket createRestApi() public Docket createRestApi() {
{
return new Docket(DocumentationType.OAS_30) return new Docket(DocumentationType.OAS_30)
// 是否启用Swagger // 是否启用Swagger
.enable(enabled) .enable(enabled)
@@ -58,7 +63,7 @@ public class SwaggerConfig
// 扫描所有有注解的api,用这种方式更灵活 // 扫描所有有注解的api,用这种方式更灵活
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
// 扫描指定包中的swagger注解 // 扫描指定包中的swagger注解
// .apis(RequestHandlerSelectors.basePackage("com.ruoyi.project.tool.swagger")) // .apis(RequestHandlerSelectors.basePackage("com.quoted.project.tool.swagger"))
// 扫描所有 .apis(RequestHandlerSelectors.any()) // 扫描所有 .apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any()) .paths(PathSelectors.any())
.build() .build()
@@ -71,8 +76,7 @@ public class SwaggerConfig
/** /**
* 安全模式,这里指定token通过Authorization头请求头传递 * 安全模式,这里指定token通过Authorization头请求头传递
*/ */
private List<SecurityScheme> securitySchemes() private List<SecurityScheme> securitySchemes() {
{
List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>(); List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>();
apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue())); apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue()));
return apiKeyList; return apiKeyList;
@@ -81,8 +85,7 @@ public class SwaggerConfig
/** /**
* 安全上下文 * 安全上下文
*/ */
private List<SecurityContext> securityContexts() private List<SecurityContext> securityContexts() {
{
List<SecurityContext> securityContexts = new ArrayList<>(); List<SecurityContext> securityContexts = new ArrayList<>();
securityContexts.add( securityContexts.add(
SecurityContext.builder() SecurityContext.builder()
@@ -95,8 +98,7 @@ public class SwaggerConfig
/** /**
* 默认的安全上引用 * 默认的安全上引用
*/ */
private List<SecurityReference> defaultAuth() private List<SecurityReference> defaultAuth() {
{
AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
authorizationScopes[0] = authorizationScope; authorizationScopes[0] = authorizationScope;
@@ -108,18 +110,17 @@ public class SwaggerConfig
/** /**
* 添加摘要信息 * 添加摘要信息
*/ */
private ApiInfo apiInfo() private ApiInfo apiInfo() {
{
// 用ApiInfoBuilder进行定制 // 用ApiInfoBuilder进行定制
return new ApiInfoBuilder() return new ApiInfoBuilder()
// 设置标题 // 设置标题
.title("标题:若依管理系统_接口文档") .title("标题:quoted管理系统_接口文档")
// 描述 // 描述
.description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...") .description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...")
// 作者信息 // 作者信息
.contact(new Contact(ruoyiConfig.getName(), null, null)) .contact(new Contact(quotedConfig.getName(), null, null))
// 版本 // 版本
.version("版本号:" + ruoyiConfig.getVersion()) .version("版本号:" + quotedConfig.getVersion())
.build(); .build();
} }
} }
@@ -6,9 +6,9 @@ spring:
druid: druid:
# 主库数据源 # 主库数据源
master: master:
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 url: jdbc:mysql://localhost:3306/quoted?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root username: root
password: password password: RdCcZOL1QxdYqEot
# 从库数据源 # 从库数据源
slave: slave:
# 从数据源开关/默认关闭 # 从数据源开关/默认关闭
@@ -1,13 +1,13 @@
# 项目相关配置 # 项目相关配置
ruoyi: quoted:
# 名称 # 名称
name: RuoYi name: quoted
# 版本 # 版本
version: 3.9.2 version: 3.9.2
# 版权年份 # 版权年份
copyrightYear: 2026 copyrightYear: 2026
# 文件路径 示例( Windows配置D:/ruoyi/uploadPathLinux配置 /home/ruoyi/uploadPath # 文件路径 示例( Windows配置D:/quoted/uploadPathLinux配置 /home/quoted/uploadPath
profile: D:/ruoyi/uploadPath profile: D:/quoted/uploadPath
# 获取ip地址开关 # 获取ip地址开关
addressEnabled: false addressEnabled: false
# 验证码类型 math 数字计算 char 字符验证 # 验证码类型 math 数字计算 char 字符验证
@@ -124,7 +124,7 @@ referer:
# 防盗链开关 # 防盗链开关
enabled: false enabled: false
# 允许的域名列表 # 允许的域名列表
allowed-domains: localhost,127.0.0.1,ruoyi.vip,www.ruoyi.vip allowed-domains: localhost,127.0.0.1
# 防止XSS攻击 # 防止XSS攻击
xss: xss:
+1 -1
View File
@@ -1,4 +1,4 @@
Application Version: ${ruoyi.version} Application Version: ${quoted.version}
Spring Boot Version: ${spring-boot.version} Spring Boot Version: ${spring-boot.version}
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// _ooOoo_ // // _ooOoo_ //
+2 -2
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<!-- 日志存放路径 --> <!-- 日志存放路径 -->
<property name="log.path" value="/home/ruoyi/logs" /> <property name="log.path" value="/home/quoted/logs" />
<!-- 日志输出格式 --> <!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" /> <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
@@ -72,7 +72,7 @@
</appender> </appender>
<!-- 系统模块日志级别控制 --> <!-- 系统模块日志级别控制 -->
<logger name="com.ruoyi" level="info" /> <logger name="com.quoted" level="info" />
<!-- Spring日志级别控制 --> <!-- Spring日志级别控制 -->
<logger name="org.springframework" level="warn" /> <logger name="org.springframework" level="warn" />
@@ -9,7 +9,7 @@ import java.lang.annotation.Target;
/** /**
* 匿名访问不鉴权注解 * 匿名访问不鉴权注解
* *
* @author ruoyi * quoted
*/ */
@Target({ ElementType.METHOD, ElementType.TYPE }) @Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@@ -9,7 +9,7 @@ import java.lang.annotation.Target;
/** /**
* 数据权限过滤注解 * 数据权限过滤注解
* *
* @author ruoyi * quoted
*/ */
@Target(ElementType.METHOD) @Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@@ -13,7 +13,7 @@ import com.quoted.common.enums.DataSourceType;
* *
* 优先级:先方法,后类,如果方法覆盖了类上的数据源类型,以方法的为准,否则以类上的为准 * 优先级:先方法,后类,如果方法覆盖了类上的数据源类型,以方法的为准,否则以类上的为准
* *
* @author ruoyi * quoted
*/ */
@Target({ ElementType.METHOD, ElementType.TYPE }) @Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@@ -12,7 +12,7 @@ import com.quoted.common.utils.poi.ExcelHandlerAdapter;
/** /**
* 自定义导出Excel数据注解 * 自定义导出Excel数据注解
* *
* @author ruoyi * quoted
*/ */
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD) @Target(ElementType.FIELD)
@@ -8,7 +8,7 @@ import java.lang.annotation.Target;
/** /**
* Excel注解集 * Excel注解集
* *
* @author ruoyi * quoted
*/ */
@Target(ElementType.FIELD) @Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@@ -11,7 +11,7 @@ import com.quoted.common.enums.OperatorType;
/** /**
* 自定义操作日志记录注解 * 自定义操作日志记录注解
* *
* @author ruoyi * quoted
* *
*/ */
@Target({ ElementType.PARAMETER, ElementType.METHOD }) @Target({ ElementType.PARAMETER, ElementType.METHOD })
@@ -11,7 +11,7 @@ import com.quoted.common.enums.LimitType;
/** /**
* 限流注解 * 限流注解
* *
* @author ruoyi * quoted
*/ */
@Target(ElementType.METHOD) @Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@@ -10,7 +10,7 @@ import java.lang.annotation.Target;
/** /**
* 自定义注解防止表单重复提交 * 自定义注解防止表单重复提交
* *
* @author ruoyi * quoted
* *
*/ */
@Inherited @Inherited
@@ -12,7 +12,7 @@ import com.quoted.common.enums.DesensitizedType;
/** /**
* 数据脱敏注解 * 数据脱敏注解
* *
* @author ruoyi * quoted
*/ */
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD) @Target(ElementType.FIELD)
@@ -5,79 +5,80 @@ import org.springframework.stereotype.Component;
/** /**
* 读取项目相关配置 * 读取项目相关配置
* * <p>
* @author ruoyi * quoted
*/ */
@Component @Component
@ConfigurationProperties(prefix = "ruoyi") @ConfigurationProperties(prefix = "quoted")
public class RuoYiConfig public class QuotedConfig {
{ /**
/** 项目名称 */ * 项目名称
*/
private String name; private String name;
/** 版本 */ /**
* 版本
*/
private String version; private String version;
/** 版权年份 */ /**
* 版权年份
*/
private String copyrightYear; private String copyrightYear;
/** 上传路径 */ /**
* 上传路径
*/
private static String profile; private static String profile;
/** 获取地址开关 */ /**
* 获取地址开关
*/
private static boolean addressEnabled; private static boolean addressEnabled;
/** 验证码类型 */ /**
* 验证码类型
*/
private static String captchaType; private static String captchaType;
public String getName() public String getName() {
{
return name; return name;
} }
public void setName(String name) public void setName(String name) {
{
this.name = name; this.name = name;
} }
public String getVersion() public String getVersion() {
{
return version; return version;
} }
public void setVersion(String version) public void setVersion(String version) {
{
this.version = version; this.version = version;
} }
public String getCopyrightYear() public String getCopyrightYear() {
{
return copyrightYear; return copyrightYear;
} }
public void setCopyrightYear(String copyrightYear) public void setCopyrightYear(String copyrightYear) {
{
this.copyrightYear = copyrightYear; this.copyrightYear = copyrightYear;
} }
public static String getProfile() public static String getProfile() {
{
return profile; return profile;
} }
public void setProfile(String profile) public void setProfile(String profile) {
{ QuotedConfig.profile = profile;
RuoYiConfig.profile = profile;
} }
public static boolean isAddressEnabled() public static boolean isAddressEnabled() {
{
return addressEnabled; return addressEnabled;
} }
public void setAddressEnabled(boolean addressEnabled) public void setAddressEnabled(boolean addressEnabled) {
{ QuotedConfig.addressEnabled = addressEnabled;
RuoYiConfig.addressEnabled = addressEnabled;
} }
public static String getCaptchaType() { public static String getCaptchaType() {
@@ -85,38 +86,34 @@ public class RuoYiConfig
} }
public void setCaptchaType(String captchaType) { public void setCaptchaType(String captchaType) {
RuoYiConfig.captchaType = captchaType; QuotedConfig.captchaType = captchaType;
} }
/** /**
* 获取导入上传路径 * 获取导入上传路径
*/ */
public static String getImportPath() public static String getImportPath() {
{
return getProfile() + "/import"; return getProfile() + "/import";
} }
/** /**
* 获取头像上传路径 * 获取头像上传路径
*/ */
public static String getAvatarPath() public static String getAvatarPath() {
{
return getProfile() + "/avatar"; return getProfile() + "/avatar";
} }
/** /**
* 获取下载路径 * 获取下载路径
*/ */
public static String getDownloadPath() public static String getDownloadPath() {
{
return getProfile() + "/download/"; return getProfile() + "/download/";
} }
/** /**
* 获取上传路径 * 获取上传路径
*/ */
public static String getUploadPath() public static String getUploadPath() {
{
return getProfile() + "/upload"; return getProfile() + "/upload";
} }
} }
@@ -16,7 +16,7 @@ import com.quoted.common.utils.SecurityUtils;
/** /**
* 数据脱敏序列化过滤 * 数据脱敏序列化过滤
* *
* @author ruoyi * quoted
*/ */
public class SensitiveJsonSerializer extends JsonSerializer<String> implements ContextualSerializer public class SensitiveJsonSerializer extends JsonSerializer<String> implements ContextualSerializer
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.constant;
/** /**
* 缓存的key 常量 * 缓存的key 常量
* *
* @author ruoyi * quoted
*/ */
public class CacheConstants public class CacheConstants
{ {
@@ -6,7 +6,7 @@ import io.jsonwebtoken.Claims;
/** /**
* 通用常量信息 * 通用常量信息
* *
* @author ruoyi * quoted
*/ */
public class Constants public class Constants
{ {
@@ -158,18 +158,18 @@ public class Constants
/** /**
* 自动识别json对象白名单配置(仅允许解析的包名,范围越小越安全) * 自动识别json对象白名单配置(仅允许解析的包名,范围越小越安全)
*/ */
public static final String[] JSON_WHITELIST_STR = { "com.ruoyi" }; public static final String[] JSON_WHITELIST_STR = { "com.quoted" };
/** /**
* 定时任务白名单配置(仅允许访问的包名,如其他需要可以自行添加) * 定时任务白名单配置(仅允许访问的包名,如其他需要可以自行添加)
*/ */
public static final String[] JOB_WHITELIST_STR = { "com.ruoyi.quartz.task" }; public static final String[] JOB_WHITELIST_STR = { "com.quoted.quartz.task" };
/** /**
* 定时任务违规的字符 * 定时任务违规的字符
*/ */
public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml", public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml",
"org.springframework", "org.apache", "com.ruoyi.common.utils.file", "com.ruoyi.common.config", "com.ruoyi.generator" }; "org.springframework", "org.apache", "com.quoted.common.utils.file", "com.quoted.common.config", "com.quoted.generator" };
/** /**
* 部门相关常量 * 部门相关常量
@@ -3,7 +3,7 @@ package com.quoted.common.constant;
/** /**
* 代码生成通用常量 * 代码生成通用常量
* *
* @author ruoyi * quoted
*/ */
public class GenConstants public class GenConstants
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.constant;
/** /**
* 返回状态码 * 返回状态码
* *
* @author ruoyi * quoted
*/ */
public class HttpStatus public class HttpStatus
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.constant;
/** /**
* 任务调度通用常量 * 任务调度通用常量
* *
* @author ruoyi * quoted
*/ */
public class ScheduleConstants public class ScheduleConstants
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.constant;
/** /**
* 用户常量信息 * 用户常量信息
* *
* @author ruoyi * quoted
*/ */
public class UserConstants public class UserConstants
{ {
@@ -24,7 +24,7 @@ import com.quoted.common.utils.sql.SqlUtil;
/** /**
* web层通用数据处理 * web层通用数据处理
* *
* @author ruoyi * quoted
*/ */
public class BaseController public class BaseController
{ {
@@ -8,7 +8,7 @@ import com.quoted.common.utils.StringUtils;
/** /**
* 操作消息提醒 * 操作消息提醒
* *
* @author ruoyi * quoted
*/ */
public class AjaxResult extends HashMap<String, Object> public class AjaxResult extends HashMap<String, Object>
{ {
@@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
/** /**
* Entity基类 * Entity基类
* *
* @author ruoyi * quoted
*/ */
public class BaseEntity implements Serializable public class BaseEntity implements Serializable
{ {
@@ -6,7 +6,7 @@ import com.quoted.common.constant.HttpStatus;
/** /**
* 响应信息主体 * 响应信息主体
* *
* @author ruoyi * quoted
*/ */
public class R<T> implements Serializable public class R<T> implements Serializable
{ {
@@ -6,7 +6,7 @@ import java.util.List;
/** /**
* Tree基类 * Tree基类
* *
* @author ruoyi * quoted
*/ */
public class TreeEntity extends BaseEntity public class TreeEntity extends BaseEntity
{ {
@@ -12,7 +12,7 @@ import com.quoted.common.utils.StringUtils;
/** /**
* Treeselect树结构实体类 * Treeselect树结构实体类
* *
* @author ruoyi * quoted
*/ */
public class TreeSelect implements Serializable public class TreeSelect implements Serializable
{ {
@@ -13,7 +13,7 @@ import com.quoted.common.core.domain.BaseEntity;
/** /**
* 部门表 sys_dept * 部门表 sys_dept
* *
* @author ruoyi * quoted
*/ */
public class SysDept extends BaseEntity public class SysDept extends BaseEntity
{ {
@@ -12,7 +12,7 @@ import com.quoted.common.core.domain.BaseEntity;
/** /**
* 字典数据表 sys_dict_data * 字典数据表 sys_dict_data
* *
* @author ruoyi * quoted
*/ */
public class SysDictData extends BaseEntity public class SysDictData extends BaseEntity
{ {
@@ -12,7 +12,7 @@ import com.quoted.common.core.domain.BaseEntity;
/** /**
* 字典类型表 sys_dict_type * 字典类型表 sys_dict_type
* *
* @author ruoyi * quoted
*/ */
public class SysDictType extends BaseEntity public class SysDictType extends BaseEntity
{ {
@@ -12,7 +12,7 @@ import com.quoted.common.core.domain.BaseEntity;
/** /**
* 菜单权限表 sys_menu * 菜单权限表 sys_menu
* *
* @author ruoyi * quoted
*/ */
public class SysMenu extends BaseEntity public class SysMenu extends BaseEntity
{ {
@@ -13,7 +13,7 @@ import com.quoted.common.core.domain.BaseEntity;
/** /**
* 角色表 sys_role * 角色表 sys_role
* *
* @author ruoyi * quoted
*/ */
public class SysRole extends BaseEntity public class SysRole extends BaseEntity
{ {
@@ -18,7 +18,7 @@ import com.quoted.common.xss.Xss;
/** /**
* 用户对象 sys_user * 用户对象 sys_user
* *
* @author ruoyi * quoted
*/ */
public class SysUser extends BaseEntity public class SysUser extends BaseEntity
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.core.domain.model;
/** /**
* 用户登录对象 * 用户登录对象
* *
* @author ruoyi * quoted
*/ */
public class LoginBody public class LoginBody
{ {
@@ -10,7 +10,7 @@ import java.util.Set;
/** /**
* 登录用户身份权限 * 登录用户身份权限
* *
* @author ruoyi * quoted
*/ */
public class LoginUser implements UserDetails public class LoginUser implements UserDetails
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.core.domain.model;
/** /**
* 用户注册对象 * 用户注册对象
* *
* @author ruoyi * quoted
*/ */
public class RegisterBody extends LoginBody public class RegisterBody extends LoginBody
{ {
@@ -5,7 +5,7 @@ import com.quoted.common.utils.StringUtils;
/** /**
* 分页数据 * 分页数据
* *
* @author ruoyi * quoted
*/ */
public class PageDomain public class PageDomain
{ {
@@ -6,7 +6,7 @@ import java.util.List;
/** /**
* 表格分页数据对象 * 表格分页数据对象
* *
* @author ruoyi * quoted
*/ */
public class TableDataInfo implements Serializable public class TableDataInfo implements Serializable
{ {
@@ -6,7 +6,7 @@ import com.quoted.common.utils.ServletUtils;
/** /**
* 表格数据处理 * 表格数据处理
* *
* @author ruoyi * quoted
*/ */
public class TableSupport public class TableSupport
{ {
@@ -16,7 +16,7 @@ import org.springframework.stereotype.Component;
/** /**
* spring redis 工具类 * spring redis 工具类
* *
* @author ruoyi * quoted
**/ **/
@SuppressWarnings(value = { "unchecked", "rawtypes" }) @SuppressWarnings(value = { "unchecked", "rawtypes" })
@Component @Component
@@ -7,7 +7,7 @@ import com.quoted.common.utils.StringUtils;
/** /**
* 字符集工具类 * 字符集工具类
* *
* @author ruoyi * quoted
*/ */
public class CharsetKit public class CharsetKit
{ {
@@ -12,7 +12,7 @@ import com.quoted.common.utils.StringUtils;
/** /**
* 类型转换器 * 类型转换器
* *
* @author ruoyi * quoted
*/ */
public class Convert public class Convert
{ {
@@ -5,7 +5,7 @@ import com.quoted.common.utils.StringUtils;
/** /**
* 字符串格式化 * 字符串格式化
* *
* @author ruoyi * quoted
*/ */
public class StrFormatter public class StrFormatter
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.enums;
/** /**
* 操作状态 * 操作状态
* *
* @author ruoyi * quoted
* *
*/ */
public enum BusinessStatus public enum BusinessStatus
@@ -3,7 +3,7 @@ package com.quoted.common.enums;
/** /**
* 业务操作类型 * 业务操作类型
* *
* @author ruoyi * quoted
*/ */
public enum BusinessType public enum BusinessType
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.enums;
/** /**
* 数据源 * 数据源
* *
* @author ruoyi * quoted
*/ */
public enum DataSourceType public enum DataSourceType
{ {
@@ -6,7 +6,7 @@ import com.quoted.common.utils.DesensitizedUtil;
/** /**
* 脱敏类型 * 脱敏类型
* *
* @author ruoyi * quoted
*/ */
public enum DesensitizedType public enum DesensitizedType
{ {
@@ -7,7 +7,7 @@ import org.springframework.lang.Nullable;
/** /**
* 请求方式 * 请求方式
* *
* @author ruoyi * quoted
*/ */
public enum HttpMethod public enum HttpMethod
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.enums;
/** /**
* 限流类型 * 限流类型
* *
* @author ruoyi * quoted
*/ */
public enum LimitType public enum LimitType
@@ -3,7 +3,7 @@ package com.quoted.common.enums;
/** /**
* 操作人类别 * 操作人类别
* *
* @author ruoyi * quoted
*/ */
public enum OperatorType public enum OperatorType
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.enums;
/** /**
* 用户状态 * 用户状态
* *
* @author ruoyi * quoted
*/ */
public enum UserStatus public enum UserStatus
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.exception;
/** /**
* 演示模式异常 * 演示模式异常
* *
* @author ruoyi * quoted
*/ */
public class DemoModeException extends RuntimeException public class DemoModeException extends RuntimeException
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.exception;
/** /**
* 全局异常 * 全局异常
* *
* @author ruoyi * quoted
*/ */
public class GlobalException extends RuntimeException public class GlobalException extends RuntimeException
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.exception;
/** /**
* 业务异常 * 业务异常
* *
* @author ruoyi * quoted
*/ */
public final class ServiceException extends RuntimeException public final class ServiceException extends RuntimeException
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.exception;
/** /**
* 工具类异常 * 工具类异常
* *
* @author ruoyi * quoted
*/ */
public class UtilException extends RuntimeException public class UtilException extends RuntimeException
{ {
@@ -6,7 +6,7 @@ import com.quoted.common.utils.StringUtils;
/** /**
* 基础异常 * 基础异常
* *
* @author ruoyi * quoted
*/ */
public class BaseException extends RuntimeException public class BaseException extends RuntimeException
{ {
@@ -5,7 +5,7 @@ import com.quoted.common.exception.base.BaseException;
/** /**
* 文件信息异常类 * 文件信息异常类
* *
* @author ruoyi * quoted
*/ */
public class FileException extends BaseException public class FileException extends BaseException
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.exception.file;
/** /**
* 文件名称超长限制异常类 * 文件名称超长限制异常类
* *
* @author ruoyi * quoted
*/ */
public class FileNameLengthLimitExceededException extends FileException public class FileNameLengthLimitExceededException extends FileException
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.exception.file;
/** /**
* 文件名大小限制异常类 * 文件名大小限制异常类
* *
* @author ruoyi * quoted
*/ */
public class FileSizeLimitExceededException extends FileException public class FileSizeLimitExceededException extends FileException
{ {
@@ -6,7 +6,7 @@ import java.io.PrintWriter;
/** /**
* 文件上传异常类 * 文件上传异常类
* *
* @author ruoyi * quoted
*/ */
public class FileUploadException extends Exception public class FileUploadException extends Exception
{ {
@@ -5,7 +5,7 @@ import java.util.Arrays;
/** /**
* 文件上传无效扩展名异常类 * 文件上传无效扩展名异常类
* *
* @author ruoyi * quoted
*/ */
public class InvalidExtensionException extends FileUploadException public class InvalidExtensionException extends FileUploadException
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.exception.job;
/** /**
* 计划策略异常 * 计划策略异常
* *
* @author ruoyi * quoted
*/ */
public class TaskException extends Exception public class TaskException extends Exception
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.exception.user;
/** /**
* 黑名单IP异常类 * 黑名单IP异常类
* *
* @author ruoyi * quoted
*/ */
public class BlackListException extends UserException public class BlackListException extends UserException
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.exception.user;
/** /**
* 验证码错误异常类 * 验证码错误异常类
* *
* @author ruoyi * quoted
*/ */
public class CaptchaException extends UserException public class CaptchaException extends UserException
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.exception.user;
/** /**
* 验证码失效异常类 * 验证码失效异常类
* *
* @author ruoyi * quoted
*/ */
public class CaptchaExpireException extends UserException public class CaptchaExpireException extends UserException
{ {
@@ -5,7 +5,7 @@ import com.quoted.common.exception.base.BaseException;
/** /**
* 用户信息异常类 * 用户信息异常类
* *
* @author ruoyi * quoted
*/ */
public class UserException extends BaseException public class UserException extends BaseException
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.exception.user;
/** /**
* 用户不存在异常类 * 用户不存在异常类
* *
* @author ruoyi * quoted
*/ */
public class UserNotExistsException extends UserException public class UserNotExistsException extends UserException
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.exception.user;
/** /**
* 用户密码不正确或不符合规范异常类 * 用户密码不正确或不符合规范异常类
* *
* @author ruoyi * quoted
*/ */
public class UserPasswordNotMatchException extends UserException public class UserPasswordNotMatchException extends UserException
{ {
@@ -3,7 +3,7 @@ package com.quoted.common.exception.user;
/** /**
* 用户错误最大次数异常类 * 用户错误最大次数异常类
* *
* @author ruoyi * quoted
*/ */
public class UserPasswordRetryLimitExceedException extends UserException public class UserPasswordRetryLimitExceedException extends UserException
{ {
@@ -5,7 +5,7 @@ import com.alibaba.fastjson2.filter.SimplePropertyPreFilter;
/** /**
* 排除JSON敏感属性 * 排除JSON敏感属性
* *
* @author ruoyi * quoted
*/ */
public class PropertyPreExcludeFilter extends SimplePropertyPreFilter public class PropertyPreExcludeFilter extends SimplePropertyPreFilter
{ {
@@ -15,7 +15,7 @@ import javax.servlet.http.HttpServletResponse;
/** /**
* 防盗链过滤器 * 防盗链过滤器
* *
* @author ruoyi * quoted
*/ */
public class RefererFilter implements Filter public class RefererFilter implements Filter
{ {
@@ -14,7 +14,7 @@ import com.quoted.common.utils.StringUtils;
/** /**
* Repeatable 过滤器 * Repeatable 过滤器
* *
* @author ruoyi * quoted
*/ */
public class RepeatableFilter implements Filter public class RepeatableFilter implements Filter
{ {
@@ -15,7 +15,7 @@ import com.quoted.common.constant.Constants;
/** /**
* 构建可重复读取inputStream的request * 构建可重复读取inputStream的request
* *
* @author ruoyi * quoted
*/ */
public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper
{ {
@@ -17,7 +17,7 @@ import com.quoted.common.enums.HttpMethod;
/** /**
* 防止XSS攻击的过滤器 * 防止XSS攻击的过滤器
* *
* @author ruoyi * quoted
*/ */
public class XssFilter implements Filter public class XssFilter implements Filter
{ {
@@ -15,7 +15,7 @@ import com.quoted.common.utils.html.EscapeUtil;
/** /**
* XSS过滤处理 * XSS过滤处理
* *
* @author ruoyi * quoted
*/ */
public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper
{ {
@@ -6,7 +6,7 @@ import java.math.RoundingMode;
/** /**
* 精确的浮点数运算 * 精确的浮点数运算
* *
* @author ruoyi * quoted
*/ */
public class Arith public class Arith
{ {

Some files were not shown because too many files have changed in this diff Show More