From 5d9f914bcd2ea84bea7cd5ab0f9a247f175ae661 Mon Sep 17 00:00:00 2001 From: zhangjinbo Date: Sat, 11 Oct 2025 14:02:53 +0800 Subject: [PATCH] 1 --- .idea/.gitignore | 8 - .idea/DeliveryManagement_java.iml | 9 - .idea/misc.xml | 6 - .idea/modules.xml | 8 - .idea/vcs.xml | 4 +- pom.xml | 290 ++++++++++++++---- .../controller/common/CaptchaController.java | 94 ------ .../controller/common/CommonController.java | 163 ---------- .../controller/monitor/CacheController.java | 121 -------- .../controller/monitor/ServerController.java | 27 -- .../monitor/SysLogininforController.java | 82 ----- .../monitor/SysOperlogController.java | 69 ----- .../monitor/SysUserOnlineController.java | 83 ----- .../system/SysConfigController.java | 133 -------- .../controller/system/SysDeptController.java | 132 -------- .../system/SysDictDataController.java | 121 -------- .../system/SysDictTypeController.java | 131 -------- .../controller/system/SysIndexController.java | 29 -- .../controller/system/SysLoginController.java | 97 ------ .../controller/system/SysMenuController.java | 142 --------- .../system/SysNoticeController.java | 91 ------ .../controller/system/SysPostController.java | 129 -------- .../system/SysProfileController.java | 140 --------- .../system/SysRegisterController.java | 38 --- .../controller/system/SysRoleController.java | 262 ---------------- .../controller/system/SysUserController.java | 256 ---------------- .../web/controller/tool/TestController.java | 183 ----------- .../ruoyi/web/core/config/SwaggerConfig.java | 125 -------- src/main/resources/application-druid.yml | 4 +- src/main/resources/application.yml | 28 +- .../META-INF/spring-devtools.properties | 1 - target/classes/application-druid.yml | 61 ---- target/classes/application.yml | 129 -------- target/classes/banner.txt | 24 -- .../classes/com/ruoyi/RuoYiApplication.class | Bin 1320 -> 0 bytes .../com/ruoyi/RuoYiServletInitializer.class | Bin 880 -> 0 bytes .../controller/common/CaptchaController.class | Bin 4009 -> 0 bytes .../controller/common/CommonController.class | Bin 6562 -> 0 bytes .../controller/monitor/CacheController.class | Bin 7538 -> 0 bytes .../controller/monitor/ServerController.class | Bin 1152 -> 0 bytes .../monitor/SysLogininforController.class | Bin 3901 -> 0 bytes .../monitor/SysOperlogController.class | Bin 3282 -> 0 bytes .../monitor/SysUserOnlineController.class | Bin 4233 -> 0 bytes .../system/SysConfigController.class | Bin 5376 -> 0 bytes .../controller/system/SysDeptController.class | Bin 6160 -> 0 bytes .../system/SysDictDataController.class | Bin 5239 -> 0 bytes .../system/SysDictTypeController.class | Bin 5474 -> 0 bytes .../system/SysIndexController.class | Bin 1088 -> 0 bytes .../system/SysLoginController.class | Bin 4007 -> 0 bytes .../controller/system/SysMenuController.class | Bin 5620 -> 0 bytes .../system/SysNoticeController.class | Bin 3604 -> 0 bytes .../controller/system/SysPostController.class | Bin 5223 -> 0 bytes .../system/SysProfileController.class | Bin 6181 -> 0 bytes .../system/SysRegisterController.class | Bin 1993 -> 0 bytes .../controller/system/SysRoleController.class | Bin 10013 -> 0 bytes .../controller/system/SysUserController.class | Bin 12092 -> 0 bytes .../web/controller/tool/TestController.class | Bin 4614 -> 0 bytes .../web/controller/tool/UserEntity.class | Bin 1751 -> 0 bytes .../ruoyi/web/core/config/SwaggerConfig.class | Bin 6532 -> 0 bytes target/classes/i18n/messages.properties | 38 --- target/classes/logback.xml | 93 ------ target/classes/mybatis/mybatis-config.xml | 20 -- 62 files changed, 262 insertions(+), 3109 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/DeliveryManagement_java.iml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 src/main/java/com/ruoyi/web/controller/common/CaptchaController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/common/CommonController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/monitor/CacheController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/monitor/ServerController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/system/SysConfigController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/system/SysDeptController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/system/SysIndexController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/system/SysLoginController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/system/SysMenuController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/system/SysPostController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/system/SysProfileController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/system/SysRoleController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/system/SysUserController.java delete mode 100644 src/main/java/com/ruoyi/web/controller/tool/TestController.java delete mode 100644 src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java delete mode 100644 target/classes/META-INF/spring-devtools.properties delete mode 100644 target/classes/application-druid.yml delete mode 100644 target/classes/application.yml delete mode 100644 target/classes/banner.txt delete mode 100644 target/classes/com/ruoyi/RuoYiApplication.class delete mode 100644 target/classes/com/ruoyi/RuoYiServletInitializer.class delete mode 100644 target/classes/com/ruoyi/web/controller/common/CaptchaController.class delete mode 100644 target/classes/com/ruoyi/web/controller/common/CommonController.class delete mode 100644 target/classes/com/ruoyi/web/controller/monitor/CacheController.class delete mode 100644 target/classes/com/ruoyi/web/controller/monitor/ServerController.class delete mode 100644 target/classes/com/ruoyi/web/controller/monitor/SysLogininforController.class delete mode 100644 target/classes/com/ruoyi/web/controller/monitor/SysOperlogController.class delete mode 100644 target/classes/com/ruoyi/web/controller/monitor/SysUserOnlineController.class delete mode 100644 target/classes/com/ruoyi/web/controller/system/SysConfigController.class delete mode 100644 target/classes/com/ruoyi/web/controller/system/SysDeptController.class delete mode 100644 target/classes/com/ruoyi/web/controller/system/SysDictDataController.class delete mode 100644 target/classes/com/ruoyi/web/controller/system/SysDictTypeController.class delete mode 100644 target/classes/com/ruoyi/web/controller/system/SysIndexController.class delete mode 100644 target/classes/com/ruoyi/web/controller/system/SysLoginController.class delete mode 100644 target/classes/com/ruoyi/web/controller/system/SysMenuController.class delete mode 100644 target/classes/com/ruoyi/web/controller/system/SysNoticeController.class delete mode 100644 target/classes/com/ruoyi/web/controller/system/SysPostController.class delete mode 100644 target/classes/com/ruoyi/web/controller/system/SysProfileController.class delete mode 100644 target/classes/com/ruoyi/web/controller/system/SysRegisterController.class delete mode 100644 target/classes/com/ruoyi/web/controller/system/SysRoleController.class delete mode 100644 target/classes/com/ruoyi/web/controller/system/SysUserController.class delete mode 100644 target/classes/com/ruoyi/web/controller/tool/TestController.class delete mode 100644 target/classes/com/ruoyi/web/controller/tool/UserEntity.class delete mode 100644 target/classes/com/ruoyi/web/core/config/SwaggerConfig.class delete mode 100644 target/classes/i18n/messages.properties delete mode 100644 target/classes/logback.xml delete mode 100644 target/classes/mybatis/mybatis-config.xml diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 35410ca..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# 默认忽略的文件 -/shelf/ -/workspace.xml -# 基于编辑器的 HTTP 客户端请求 -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/.idea/DeliveryManagement_java.iml b/.idea/DeliveryManagement_java.iml deleted file mode 100644 index d6ebd48..0000000 --- a/.idea/DeliveryManagement_java.iml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 07115cd..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 2a5fbfa..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 35eb1dd..d843f34 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,4 @@ - - - + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 9617d01..c79c959 100644 --- a/pom.xml +++ b/pom.xml @@ -1,22 +1,74 @@ - - - ruoyi - com.ruoyi - 3.8.9 - 4.0.0 - jar - ruoyi-admin - - web服务入口 - + com.ruoyi + ruoyi + 3.9.0 + jar + + ruoyi + http://www.ruoyi.vip + 若依管理系统 + + + org.springframework.boot + spring-boot-starter-parent + 2.5.15 + + + + + UTF-8 + UTF-8 + 1.8 + 3.1.1 + 1.4.7 + 2.0.58 + 1.2.23 + 2.19.0 + 1.21 + 0.9.1 + 2.3.3 + 3.0.0 + 4.1.2 + 6.8.3 + 2.3 + + 9.0.108 + 1.2.13 + 5.7.14 + 5.3.39 + + + + org.springframework.boot + spring-boot-starter + + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + org.springframework.boot + spring-boot-starter-aop + + + + + org.springframework.boot + spring-boot-starter-web + + org.springframework.boot @@ -24,10 +76,108 @@ true - + + + org.springframework.boot + spring-boot-starter-security + + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + + org.apache.commons + commons-pool2 + + + + + mysql + mysql-connector-java + runtime + + + + + com.github.pagehelper + pagehelper-spring-boot-starter + ${pagehelper.spring.boot.starter.version} + + + + + com.alibaba + druid-spring-boot-starter + ${druid.version} + + + + + org.springframework.boot + spring-boot-starter-validation + + + + + org.apache.commons + commons-lang3 + + + + + commons-io + commons-io + ${commons.io.version} + + + + + eu.bitwalker + UserAgentUtils + ${bitwalker.version} + + + + + com.alibaba.fastjson2 + fastjson2 + ${fastjson.version} + + + + + org.springframework + spring-context-support + + + + + io.jsonwebtoken + jjwt + ${jwt.version} + + + + + javax.xml.bind + jaxb-api + + + io.springfox springfox-boot-starter + ${swagger.version} + + + io.swagger + swagger-models + + @@ -37,60 +187,90 @@ 1.6.2 - + - mysql - mysql-connector-java + com.github.oshi + oshi-core + ${oshi.version} - + - com.ruoyi - ruoyi-framework + org.apache.poi + poi-ooxml + ${poi.version} - + - com.ruoyi - ruoyi-quartz + org.apache.velocity + velocity-engine-core + ${velocity.version} - + - com.ruoyi - ruoyi-generator + org.quartz-scheduler + quartz + + + com.mchange + c3p0 + + - + + + pro.fessional + kaptcha + ${kaptcha.version} + + + servlet-api + javax.servlet + + + - - - - org.springframework.boot - spring-boot-maven-plugin - 2.5.15 - - true - - - - - repackage - - - - - - org.apache.maven.plugins - maven-war-plugin - 3.1.0 - - false - ${project.artifactId} - - - - ${project.artifactId} - + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + true + + + + + + + + public + aliyun nexus + https://maven.aliyun.com/repository/public + + true + + + + + + + public + aliyun nexus + https://maven.aliyun.com/repository/public + + true + + + false + + + \ No newline at end of file diff --git a/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java b/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java deleted file mode 100644 index d2d6e8c..0000000 --- a/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.ruoyi.web.controller.common; - -import java.awt.image.BufferedImage; -import java.io.IOException; -import java.util.concurrent.TimeUnit; -import javax.annotation.Resource; -import javax.imageio.ImageIO; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.FastByteArrayOutputStream; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; -import com.google.code.kaptcha.Producer; -import com.ruoyi.common.config.RuoYiConfig; -import com.ruoyi.common.constant.CacheConstants; -import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.redis.RedisCache; -import com.ruoyi.common.utils.sign.Base64; -import com.ruoyi.common.utils.uuid.IdUtils; -import com.ruoyi.system.service.ISysConfigService; - -/** - * 验证码操作处理 - * - * @author ruoyi - */ -@RestController -public class CaptchaController -{ - @Resource(name = "captchaProducer") - private Producer captchaProducer; - - @Resource(name = "captchaProducerMath") - private Producer captchaProducerMath; - - @Autowired - private RedisCache redisCache; - - @Autowired - private ISysConfigService configService; - /** - * 生成验证码 - */ - @GetMapping("/captchaImage") - public AjaxResult getCode(HttpServletResponse response) throws IOException - { - AjaxResult ajax = AjaxResult.success(); - boolean captchaEnabled = configService.selectCaptchaEnabled(); - ajax.put("captchaEnabled", captchaEnabled); - if (!captchaEnabled) - { - return ajax; - } - - // 保存验证码信息 - String uuid = IdUtils.simpleUUID(); - String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid; - - String capStr = null, code = null; - BufferedImage image = null; - - // 生成验证码 - String captchaType = RuoYiConfig.getCaptchaType(); - if ("math".equals(captchaType)) - { - String capText = captchaProducerMath.createText(); - capStr = capText.substring(0, capText.lastIndexOf("@")); - code = capText.substring(capText.lastIndexOf("@") + 1); - image = captchaProducerMath.createImage(capStr); - } - else if ("char".equals(captchaType)) - { - capStr = code = captchaProducer.createText(); - image = captchaProducer.createImage(capStr); - } - - redisCache.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); - // 转换流信息写出 - FastByteArrayOutputStream os = new FastByteArrayOutputStream(); - try - { - ImageIO.write(image, "jpg", os); - } - catch (IOException e) - { - return AjaxResult.error(e.getMessage()); - } - - ajax.put("uuid", uuid); - ajax.put("img", Base64.encode(os.toByteArray())); - return ajax; - } -} diff --git a/src/main/java/com/ruoyi/web/controller/common/CommonController.java b/src/main/java/com/ruoyi/web/controller/common/CommonController.java deleted file mode 100644 index cec5006..0000000 --- a/src/main/java/com/ruoyi/web/controller/common/CommonController.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.ruoyi.web.controller.common; - -import java.util.ArrayList; -import java.util.List; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; -import com.ruoyi.common.config.RuoYiConfig; -import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.file.FileUploadUtils; -import com.ruoyi.common.utils.file.FileUtils; -import com.ruoyi.framework.config.ServerConfig; - -/** - * 通用请求处理 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/common") -public class CommonController -{ - private static final Logger log = LoggerFactory.getLogger(CommonController.class); - - @Autowired - private ServerConfig serverConfig; - - private static final String FILE_DELIMETER = ","; - - /** - * 通用下载请求 - * - * @param fileName 文件名称 - * @param delete 是否删除 - */ - @GetMapping("/download") - public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) - { - try - { - if (!FileUtils.checkAllowDownload(fileName)) - { - throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName)); - } - String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1); - String filePath = RuoYiConfig.getDownloadPath() + fileName; - - response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); - FileUtils.setAttachmentResponseHeader(response, realFileName); - FileUtils.writeBytes(filePath, response.getOutputStream()); - if (delete) - { - FileUtils.deleteFile(filePath); - } - } - catch (Exception e) - { - log.error("下载文件失败", e); - } - } - - /** - * 通用上传请求(单个) - */ - @PostMapping("/upload") - public AjaxResult uploadFile(MultipartFile file) throws Exception - { - try - { - // 上传文件路径 - String filePath = RuoYiConfig.getUploadPath(); - // 上传并返回新文件名称 - String fileName = FileUploadUtils.upload(filePath, file); - String url = serverConfig.getUrl() + fileName; - AjaxResult ajax = AjaxResult.success(); - ajax.put("url", url); - ajax.put("fileName", fileName); - ajax.put("newFileName", FileUtils.getName(fileName)); - ajax.put("originalFilename", file.getOriginalFilename()); - return ajax; - } - catch (Exception e) - { - return AjaxResult.error(e.getMessage()); - } - } - - /** - * 通用上传请求(多个) - */ - @PostMapping("/uploads") - public AjaxResult uploadFiles(List files) throws Exception - { - try - { - // 上传文件路径 - String filePath = RuoYiConfig.getUploadPath(); - List urls = new ArrayList(); - List fileNames = new ArrayList(); - List newFileNames = new ArrayList(); - List originalFilenames = new ArrayList(); - for (MultipartFile file : files) - { - // 上传并返回新文件名称 - String fileName = FileUploadUtils.upload(filePath, file); - String url = serverConfig.getUrl() + fileName; - urls.add(url); - fileNames.add(fileName); - newFileNames.add(FileUtils.getName(fileName)); - originalFilenames.add(file.getOriginalFilename()); - } - AjaxResult ajax = AjaxResult.success(); - ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER)); - ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER)); - ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER)); - ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER)); - return ajax; - } - catch (Exception e) - { - return AjaxResult.error(e.getMessage()); - } - } - - /** - * 本地资源通用下载 - */ - @GetMapping("/download/resource") - public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response) - throws Exception - { - try - { - if (!FileUtils.checkAllowDownload(resource)) - { - throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource)); - } - // 本地资源路径 - String localPath = RuoYiConfig.getProfile(); - // 数据库资源地址 - String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX); - // 下载名称 - String downloadName = StringUtils.substringAfterLast(downloadPath, "/"); - response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); - FileUtils.setAttachmentResponseHeader(response, downloadName); - FileUtils.writeBytes(downloadPath, response.getOutputStream()); - } - catch (Exception e) - { - log.error("下载文件失败", e); - } - } -} diff --git a/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java b/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java deleted file mode 100644 index c8c49c9..0000000 --- a/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.ruoyi.web.controller.monitor; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.Set; -import java.util.TreeSet; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.RedisCallback; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.constant.CacheConstants; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.system.domain.SysCache; - -/** - * 缓存监控 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/monitor/cache") -public class CacheController -{ - @Autowired - private RedisTemplate redisTemplate; - - private final static List caches = new ArrayList(); - { - caches.add(new SysCache(CacheConstants.LOGIN_TOKEN_KEY, "用户信息")); - caches.add(new SysCache(CacheConstants.SYS_CONFIG_KEY, "配置信息")); - caches.add(new SysCache(CacheConstants.SYS_DICT_KEY, "数据字典")); - caches.add(new SysCache(CacheConstants.CAPTCHA_CODE_KEY, "验证码")); - caches.add(new SysCache(CacheConstants.REPEAT_SUBMIT_KEY, "防重提交")); - caches.add(new SysCache(CacheConstants.RATE_LIMIT_KEY, "限流处理")); - caches.add(new SysCache(CacheConstants.PWD_ERR_CNT_KEY, "密码错误次数")); - } - - @PreAuthorize("@ss.hasPermi('monitor:cache:list')") - @GetMapping() - public AjaxResult getInfo() throws Exception - { - Properties info = (Properties) redisTemplate.execute((RedisCallback) connection -> connection.info()); - Properties commandStats = (Properties) redisTemplate.execute((RedisCallback) connection -> connection.info("commandstats")); - Object dbSize = redisTemplate.execute((RedisCallback) connection -> connection.dbSize()); - - Map result = new HashMap<>(3); - result.put("info", info); - result.put("dbSize", dbSize); - - List> pieList = new ArrayList<>(); - commandStats.stringPropertyNames().forEach(key -> { - Map data = new HashMap<>(2); - String property = commandStats.getProperty(key); - data.put("name", StringUtils.removeStart(key, "cmdstat_")); - data.put("value", StringUtils.substringBetween(property, "calls=", ",usec")); - pieList.add(data); - }); - result.put("commandStats", pieList); - return AjaxResult.success(result); - } - - @PreAuthorize("@ss.hasPermi('monitor:cache:list')") - @GetMapping("/getNames") - public AjaxResult cache() - { - return AjaxResult.success(caches); - } - - @PreAuthorize("@ss.hasPermi('monitor:cache:list')") - @GetMapping("/getKeys/{cacheName}") - public AjaxResult getCacheKeys(@PathVariable String cacheName) - { - Set cacheKeys = redisTemplate.keys(cacheName + "*"); - return AjaxResult.success(new TreeSet<>(cacheKeys)); - } - - @PreAuthorize("@ss.hasPermi('monitor:cache:list')") - @GetMapping("/getValue/{cacheName}/{cacheKey}") - public AjaxResult getCacheValue(@PathVariable String cacheName, @PathVariable String cacheKey) - { - String cacheValue = redisTemplate.opsForValue().get(cacheKey); - SysCache sysCache = new SysCache(cacheName, cacheKey, cacheValue); - return AjaxResult.success(sysCache); - } - - @PreAuthorize("@ss.hasPermi('monitor:cache:list')") - @DeleteMapping("/clearCacheName/{cacheName}") - public AjaxResult clearCacheName(@PathVariable String cacheName) - { - Collection cacheKeys = redisTemplate.keys(cacheName + "*"); - redisTemplate.delete(cacheKeys); - return AjaxResult.success(); - } - - @PreAuthorize("@ss.hasPermi('monitor:cache:list')") - @DeleteMapping("/clearCacheKey/{cacheKey}") - public AjaxResult clearCacheKey(@PathVariable String cacheKey) - { - redisTemplate.delete(cacheKey); - return AjaxResult.success(); - } - - @PreAuthorize("@ss.hasPermi('monitor:cache:list')") - @DeleteMapping("/clearCacheAll") - public AjaxResult clearCacheAll() - { - Collection cacheKeys = redisTemplate.keys("*"); - redisTemplate.delete(cacheKeys); - return AjaxResult.success(); - } -} diff --git a/src/main/java/com/ruoyi/web/controller/monitor/ServerController.java b/src/main/java/com/ruoyi/web/controller/monitor/ServerController.java deleted file mode 100644 index cc805ad..0000000 --- a/src/main/java/com/ruoyi/web/controller/monitor/ServerController.java +++ /dev/null @@ -1,27 +0,0 @@ -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.common.core.domain.AjaxResult; -import com.ruoyi.framework.web.domain.Server; - -/** - * 服务器监控 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/monitor/server") -public class ServerController -{ - @PreAuthorize("@ss.hasPermi('monitor:server:list')") - @GetMapping() - public AjaxResult getInfo() throws Exception - { - Server server = new Server(); - server.copyTo(); - return AjaxResult.success(server); - } -} diff --git a/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java b/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java deleted file mode 100644 index e0175f4..0000000 --- a/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.ruoyi.web.controller.monitor; - -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.framework.web.service.SysPasswordService; -import com.ruoyi.system.domain.SysLogininfor; -import com.ruoyi.system.service.ISysLogininforService; - -/** - * 系统访问记录 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/monitor/logininfor") -public class SysLogininforController extends BaseController -{ - @Autowired - private ISysLogininforService logininforService; - - @Autowired - private SysPasswordService passwordService; - - @PreAuthorize("@ss.hasPermi('monitor:logininfor:list')") - @GetMapping("/list") - public TableDataInfo list(SysLogininfor logininfor) - { - startPage(); - List list = logininforService.selectLogininforList(logininfor); - return getDataTable(list); - } - - @Log(title = "登录日志", businessType = BusinessType.EXPORT) - @PreAuthorize("@ss.hasPermi('monitor:logininfor:export')") - @PostMapping("/export") - public void export(HttpServletResponse response, SysLogininfor logininfor) - { - List list = logininforService.selectLogininforList(logininfor); - ExcelUtil util = new ExcelUtil(SysLogininfor.class); - util.exportExcel(response, list, "登录日志"); - } - - @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')") - @Log(title = "登录日志", businessType = BusinessType.DELETE) - @DeleteMapping("/{infoIds}") - public AjaxResult remove(@PathVariable Long[] infoIds) - { - return toAjax(logininforService.deleteLogininforByIds(infoIds)); - } - - @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')") - @Log(title = "登录日志", businessType = BusinessType.CLEAN) - @DeleteMapping("/clean") - public AjaxResult clean() - { - logininforService.cleanLogininfor(); - return success(); - } - - @PreAuthorize("@ss.hasPermi('monitor:logininfor:unlock')") - @Log(title = "账户解锁", businessType = BusinessType.OTHER) - @GetMapping("/unlock/{userName}") - public AjaxResult unlock(@PathVariable("userName") String userName) - { - passwordService.clearLoginRecordCache(userName); - return success(); - } -} diff --git a/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java b/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java deleted file mode 100644 index 6ca78cf..0000000 --- a/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.ruoyi.web.controller.monitor; - -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.system.domain.SysOperLog; -import com.ruoyi.system.service.ISysOperLogService; - -/** - * 操作日志记录 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/monitor/operlog") -public class SysOperlogController extends BaseController -{ - @Autowired - private ISysOperLogService operLogService; - - @PreAuthorize("@ss.hasPermi('monitor:operlog:list')") - @GetMapping("/list") - public TableDataInfo list(SysOperLog operLog) - { - startPage(); - List list = operLogService.selectOperLogList(operLog); - return getDataTable(list); - } - - @Log(title = "操作日志", businessType = BusinessType.EXPORT) - @PreAuthorize("@ss.hasPermi('monitor:operlog:export')") - @PostMapping("/export") - public void export(HttpServletResponse response, SysOperLog operLog) - { - List list = operLogService.selectOperLogList(operLog); - ExcelUtil util = new ExcelUtil(SysOperLog.class); - util.exportExcel(response, list, "操作日志"); - } - - @Log(title = "操作日志", businessType = BusinessType.DELETE) - @PreAuthorize("@ss.hasPermi('monitor:operlog:remove')") - @DeleteMapping("/{operIds}") - public AjaxResult remove(@PathVariable Long[] operIds) - { - return toAjax(operLogService.deleteOperLogByIds(operIds)); - } - - @Log(title = "操作日志", businessType = BusinessType.CLEAN) - @PreAuthorize("@ss.hasPermi('monitor:operlog:remove')") - @DeleteMapping("/clean") - public AjaxResult clean() - { - operLogService.cleanOperLog(); - return success(); - } -} diff --git a/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java b/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java deleted file mode 100644 index a442863..0000000 --- a/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.ruoyi.web.controller.monitor; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.constant.CacheConstants; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.model.LoginUser; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.core.redis.RedisCache; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.system.domain.SysUserOnline; -import com.ruoyi.system.service.ISysUserOnlineService; - -/** - * 在线用户监控 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/monitor/online") -public class SysUserOnlineController extends BaseController -{ - @Autowired - private ISysUserOnlineService userOnlineService; - - @Autowired - private RedisCache redisCache; - - @PreAuthorize("@ss.hasPermi('monitor:online:list')") - @GetMapping("/list") - public TableDataInfo list(String ipaddr, String userName) - { - Collection keys = redisCache.keys(CacheConstants.LOGIN_TOKEN_KEY + "*"); - List userOnlineList = new ArrayList(); - for (String key : keys) - { - LoginUser user = redisCache.getCacheObject(key); - if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName)) - { - userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user)); - } - else if (StringUtils.isNotEmpty(ipaddr)) - { - userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ipaddr, user)); - } - else if (StringUtils.isNotEmpty(userName) && StringUtils.isNotNull(user.getUser())) - { - userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, user)); - } - else - { - userOnlineList.add(userOnlineService.loginUserToUserOnline(user)); - } - } - Collections.reverse(userOnlineList); - userOnlineList.removeAll(Collections.singleton(null)); - return getDataTable(userOnlineList); - } - - /** - * 强退用户 - */ - @PreAuthorize("@ss.hasPermi('monitor:online:forceLogout')") - @Log(title = "在线用户", businessType = BusinessType.FORCE) - @DeleteMapping("/{tokenId}") - public AjaxResult forceLogout(@PathVariable String tokenId) - { - redisCache.deleteObject(CacheConstants.LOGIN_TOKEN_KEY + tokenId); - return success(); - } -} diff --git a/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java b/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java deleted file mode 100644 index ab4653d..0000000 --- a/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.ruoyi.web.controller.system; - -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.system.domain.SysConfig; -import com.ruoyi.system.service.ISysConfigService; - -/** - * 参数配置 信息操作处理 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/config") -public class SysConfigController extends BaseController -{ - @Autowired - private ISysConfigService configService; - - /** - * 获取参数配置列表 - */ - @PreAuthorize("@ss.hasPermi('system:config:list')") - @GetMapping("/list") - public TableDataInfo list(SysConfig config) - { - startPage(); - List list = configService.selectConfigList(config); - return getDataTable(list); - } - - @Log(title = "参数管理", businessType = BusinessType.EXPORT) - @PreAuthorize("@ss.hasPermi('system:config:export')") - @PostMapping("/export") - public void export(HttpServletResponse response, SysConfig config) - { - List list = configService.selectConfigList(config); - ExcelUtil util = new ExcelUtil(SysConfig.class); - util.exportExcel(response, list, "参数数据"); - } - - /** - * 根据参数编号获取详细信息 - */ - @PreAuthorize("@ss.hasPermi('system:config:query')") - @GetMapping(value = "/{configId}") - public AjaxResult getInfo(@PathVariable Long configId) - { - return success(configService.selectConfigById(configId)); - } - - /** - * 根据参数键名查询参数值 - */ - @GetMapping(value = "/configKey/{configKey}") - public AjaxResult getConfigKey(@PathVariable String configKey) - { - return success(configService.selectConfigByKey(configKey)); - } - - /** - * 新增参数配置 - */ - @PreAuthorize("@ss.hasPermi('system:config:add')") - @Log(title = "参数管理", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysConfig config) - { - if (!configService.checkConfigKeyUnique(config)) - { - return error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在"); - } - config.setCreateBy(getUsername()); - return toAjax(configService.insertConfig(config)); - } - - /** - * 修改参数配置 - */ - @PreAuthorize("@ss.hasPermi('system:config:edit')") - @Log(title = "参数管理", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysConfig config) - { - if (!configService.checkConfigKeyUnique(config)) - { - return error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在"); - } - config.setUpdateBy(getUsername()); - return toAjax(configService.updateConfig(config)); - } - - /** - * 删除参数配置 - */ - @PreAuthorize("@ss.hasPermi('system:config:remove')") - @Log(title = "参数管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{configIds}") - public AjaxResult remove(@PathVariable Long[] configIds) - { - configService.deleteConfigByIds(configIds); - return success(); - } - - /** - * 刷新参数缓存 - */ - @PreAuthorize("@ss.hasPermi('system:config:remove')") - @Log(title = "参数管理", businessType = BusinessType.CLEAN) - @DeleteMapping("/refreshCache") - public AjaxResult refreshCache() - { - configService.resetConfigCache(); - return success(); - } -} diff --git a/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java b/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java deleted file mode 100644 index 59e7588..0000000 --- a/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.ruoyi.web.controller.system; - -import java.util.List; -import org.apache.commons.lang3.ArrayUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.constant.UserConstants; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.entity.SysDept; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.system.service.ISysDeptService; - -/** - * 部门信息 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/dept") -public class SysDeptController extends BaseController -{ - @Autowired - private ISysDeptService deptService; - - /** - * 获取部门列表 - */ - @PreAuthorize("@ss.hasPermi('system:dept:list')") - @GetMapping("/list") - public AjaxResult list(SysDept dept) - { - List depts = deptService.selectDeptList(dept); - return success(depts); - } - - /** - * 查询部门列表(排除节点) - */ - @PreAuthorize("@ss.hasPermi('system:dept:list')") - @GetMapping("/list/exclude/{deptId}") - public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) - { - List depts = deptService.selectDeptList(new SysDept()); - depts.removeIf(d -> d.getDeptId().intValue() == deptId || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + "")); - return success(depts); - } - - /** - * 根据部门编号获取详细信息 - */ - @PreAuthorize("@ss.hasPermi('system:dept:query')") - @GetMapping(value = "/{deptId}") - public AjaxResult getInfo(@PathVariable Long deptId) - { - deptService.checkDeptDataScope(deptId); - return success(deptService.selectDeptById(deptId)); - } - - /** - * 新增部门 - */ - @PreAuthorize("@ss.hasPermi('system:dept:add')") - @Log(title = "部门管理", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysDept dept) - { - if (!deptService.checkDeptNameUnique(dept)) - { - return error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在"); - } - dept.setCreateBy(getUsername()); - return toAjax(deptService.insertDept(dept)); - } - - /** - * 修改部门 - */ - @PreAuthorize("@ss.hasPermi('system:dept:edit')") - @Log(title = "部门管理", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysDept dept) - { - Long deptId = dept.getDeptId(); - deptService.checkDeptDataScope(deptId); - if (!deptService.checkDeptNameUnique(dept)) - { - return error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在"); - } - else if (dept.getParentId().equals(deptId)) - { - return error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己"); - } - else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(deptId) > 0) - { - return error("该部门包含未停用的子部门!"); - } - dept.setUpdateBy(getUsername()); - return toAjax(deptService.updateDept(dept)); - } - - /** - * 删除部门 - */ - @PreAuthorize("@ss.hasPermi('system:dept:remove')") - @Log(title = "部门管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{deptId}") - public AjaxResult remove(@PathVariable Long deptId) - { - if (deptService.hasChildByDeptId(deptId)) - { - return warn("存在下级部门,不允许删除"); - } - if (deptService.checkDeptExistUser(deptId)) - { - return warn("部门存在用户,不允许删除"); - } - deptService.checkDeptDataScope(deptId); - return toAjax(deptService.deleteDeptById(deptId)); - } -} diff --git a/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java b/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java deleted file mode 100644 index 59becaf..0000000 --- a/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.ruoyi.web.controller.system; - -import java.util.ArrayList; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.entity.SysDictData; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.system.service.ISysDictDataService; -import com.ruoyi.system.service.ISysDictTypeService; - -/** - * 数据字典信息 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/dict/data") -public class SysDictDataController extends BaseController -{ - @Autowired - private ISysDictDataService dictDataService; - - @Autowired - private ISysDictTypeService dictTypeService; - - @PreAuthorize("@ss.hasPermi('system:dict:list')") - @GetMapping("/list") - public TableDataInfo list(SysDictData dictData) - { - startPage(); - List list = dictDataService.selectDictDataList(dictData); - return getDataTable(list); - } - - @Log(title = "字典数据", businessType = BusinessType.EXPORT) - @PreAuthorize("@ss.hasPermi('system:dict:export')") - @PostMapping("/export") - public void export(HttpServletResponse response, SysDictData dictData) - { - List list = dictDataService.selectDictDataList(dictData); - ExcelUtil util = new ExcelUtil(SysDictData.class); - util.exportExcel(response, list, "字典数据"); - } - - /** - * 查询字典数据详细 - */ - @PreAuthorize("@ss.hasPermi('system:dict:query')") - @GetMapping(value = "/{dictCode}") - public AjaxResult getInfo(@PathVariable Long dictCode) - { - return success(dictDataService.selectDictDataById(dictCode)); - } - - /** - * 根据字典类型查询字典数据信息 - */ - @GetMapping(value = "/type/{dictType}") - public AjaxResult dictType(@PathVariable String dictType) - { - List data = dictTypeService.selectDictDataByType(dictType); - if (StringUtils.isNull(data)) - { - data = new ArrayList(); - } - return success(data); - } - - /** - * 新增字典类型 - */ - @PreAuthorize("@ss.hasPermi('system:dict:add')") - @Log(title = "字典数据", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysDictData dict) - { - dict.setCreateBy(getUsername()); - return toAjax(dictDataService.insertDictData(dict)); - } - - /** - * 修改保存字典类型 - */ - @PreAuthorize("@ss.hasPermi('system:dict:edit')") - @Log(title = "字典数据", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysDictData dict) - { - dict.setUpdateBy(getUsername()); - return toAjax(dictDataService.updateDictData(dict)); - } - - /** - * 删除字典类型 - */ - @PreAuthorize("@ss.hasPermi('system:dict:remove')") - @Log(title = "字典类型", businessType = BusinessType.DELETE) - @DeleteMapping("/{dictCodes}") - public AjaxResult remove(@PathVariable Long[] dictCodes) - { - dictDataService.deleteDictDataByIds(dictCodes); - return success(); - } -} diff --git a/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java b/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java deleted file mode 100644 index c53867c..0000000 --- a/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.ruoyi.web.controller.system; - -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.entity.SysDictType; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.system.service.ISysDictTypeService; - -/** - * 数据字典信息 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/dict/type") -public class SysDictTypeController extends BaseController -{ - @Autowired - private ISysDictTypeService dictTypeService; - - @PreAuthorize("@ss.hasPermi('system:dict:list')") - @GetMapping("/list") - public TableDataInfo list(SysDictType dictType) - { - startPage(); - List list = dictTypeService.selectDictTypeList(dictType); - return getDataTable(list); - } - - @Log(title = "字典类型", businessType = BusinessType.EXPORT) - @PreAuthorize("@ss.hasPermi('system:dict:export')") - @PostMapping("/export") - public void export(HttpServletResponse response, SysDictType dictType) - { - List list = dictTypeService.selectDictTypeList(dictType); - ExcelUtil util = new ExcelUtil(SysDictType.class); - util.exportExcel(response, list, "字典类型"); - } - - /** - * 查询字典类型详细 - */ - @PreAuthorize("@ss.hasPermi('system:dict:query')") - @GetMapping(value = "/{dictId}") - public AjaxResult getInfo(@PathVariable Long dictId) - { - return success(dictTypeService.selectDictTypeById(dictId)); - } - - /** - * 新增字典类型 - */ - @PreAuthorize("@ss.hasPermi('system:dict:add')") - @Log(title = "字典类型", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysDictType dict) - { - if (!dictTypeService.checkDictTypeUnique(dict)) - { - return error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在"); - } - dict.setCreateBy(getUsername()); - return toAjax(dictTypeService.insertDictType(dict)); - } - - /** - * 修改字典类型 - */ - @PreAuthorize("@ss.hasPermi('system:dict:edit')") - @Log(title = "字典类型", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysDictType dict) - { - if (!dictTypeService.checkDictTypeUnique(dict)) - { - return error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在"); - } - dict.setUpdateBy(getUsername()); - return toAjax(dictTypeService.updateDictType(dict)); - } - - /** - * 删除字典类型 - */ - @PreAuthorize("@ss.hasPermi('system:dict:remove')") - @Log(title = "字典类型", businessType = BusinessType.DELETE) - @DeleteMapping("/{dictIds}") - public AjaxResult remove(@PathVariable Long[] dictIds) - { - dictTypeService.deleteDictTypeByIds(dictIds); - return success(); - } - - /** - * 刷新字典缓存 - */ - @PreAuthorize("@ss.hasPermi('system:dict:remove')") - @Log(title = "字典类型", businessType = BusinessType.CLEAN) - @DeleteMapping("/refreshCache") - public AjaxResult refreshCache() - { - dictTypeService.resetDictCache(); - return success(); - } - - /** - * 获取字典选择框列表 - */ - @GetMapping("/optionselect") - public AjaxResult optionselect() - { - List dictTypes = dictTypeService.selectDictTypeAll(); - return success(dictTypes); - } -} diff --git a/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java b/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java deleted file mode 100644 index 13007eb..0000000 --- a/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.ruoyi.web.controller.system; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.config.RuoYiConfig; -import com.ruoyi.common.utils.StringUtils; - -/** - * 首页 - * - * @author ruoyi - */ -@RestController -public class SysIndexController -{ - /** 系统基础配置 */ - @Autowired - private RuoYiConfig ruoyiConfig; - - /** - * 访问首页,提示语 - */ - @RequestMapping("/") - public String index() - { - return StringUtils.format("欢迎使用{}后台管理框架,当前版本:v{},请通过前端地址访问。", ruoyiConfig.getName(), ruoyiConfig.getVersion()); - } -} diff --git a/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java deleted file mode 100644 index c0d4981..0000000 --- a/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.ruoyi.web.controller.system; - -import java.util.List; -import java.util.Set; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.entity.SysMenu; -import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.domain.model.LoginBody; -import com.ruoyi.common.core.domain.model.LoginUser; -import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.framework.web.service.SysLoginService; -import com.ruoyi.framework.web.service.SysPermissionService; -import com.ruoyi.framework.web.service.TokenService; -import com.ruoyi.system.service.ISysMenuService; - -/** - * 登录验证 - * - * @author ruoyi - */ -@RestController -public class SysLoginController -{ - @Autowired - private SysLoginService loginService; - - @Autowired - private ISysMenuService menuService; - - @Autowired - private SysPermissionService permissionService; - - @Autowired - private TokenService tokenService; - - /** - * 登录方法 - * - * @param loginBody 登录信息 - * @return 结果 - */ - @PostMapping("/login") - public AjaxResult login(@RequestBody LoginBody loginBody) - { - AjaxResult ajax = AjaxResult.success(); - // 生成令牌 - String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), - loginBody.getUuid()); - ajax.put(Constants.TOKEN, token); - return ajax; - } - - /** - * 获取用户信息 - * - * @return 用户信息 - */ - @GetMapping("getInfo") - public AjaxResult getInfo() - { - LoginUser loginUser = SecurityUtils.getLoginUser(); - SysUser user = loginUser.getUser(); - // 角色集合 - Set roles = permissionService.getRolePermission(user); - // 权限集合 - Set permissions = permissionService.getMenuPermission(user); - if (!loginUser.getPermissions().equals(permissions)) - { - loginUser.setPermissions(permissions); - tokenService.refreshToken(loginUser); - } - AjaxResult ajax = AjaxResult.success(); - ajax.put("user", user); - ajax.put("roles", roles); - ajax.put("permissions", permissions); - return ajax; - } - - /** - * 获取路由信息 - * - * @return 路由信息 - */ - @GetMapping("getRouters") - public AjaxResult getRouters() - { - Long userId = SecurityUtils.getUserId(); - List menus = menuService.selectMenuTreeByUserId(userId); - return AjaxResult.success(menuService.buildMenus(menus)); - } -} diff --git a/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java b/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java deleted file mode 100644 index 03b6b65..0000000 --- a/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java +++ /dev/null @@ -1,142 +0,0 @@ -package com.ruoyi.web.controller.system; - -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.constant.UserConstants; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.entity.SysMenu; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.system.service.ISysMenuService; - -/** - * 菜单信息 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/menu") -public class SysMenuController extends BaseController -{ - @Autowired - private ISysMenuService menuService; - - /** - * 获取菜单列表 - */ - @PreAuthorize("@ss.hasPermi('system:menu:list')") - @GetMapping("/list") - public AjaxResult list(SysMenu menu) - { - List menus = menuService.selectMenuList(menu, getUserId()); - return success(menus); - } - - /** - * 根据菜单编号获取详细信息 - */ - @PreAuthorize("@ss.hasPermi('system:menu:query')") - @GetMapping(value = "/{menuId}") - public AjaxResult getInfo(@PathVariable Long menuId) - { - return success(menuService.selectMenuById(menuId)); - } - - /** - * 获取菜单下拉树列表 - */ - @GetMapping("/treeselect") - public AjaxResult treeselect(SysMenu menu) - { - List menus = menuService.selectMenuList(menu, getUserId()); - return success(menuService.buildMenuTreeSelect(menus)); - } - - /** - * 加载对应角色菜单列表树 - */ - @GetMapping(value = "/roleMenuTreeselect/{roleId}") - public AjaxResult roleMenuTreeselect(@PathVariable("roleId") Long roleId) - { - List menus = menuService.selectMenuList(getUserId()); - AjaxResult ajax = AjaxResult.success(); - ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId)); - ajax.put("menus", menuService.buildMenuTreeSelect(menus)); - return ajax; - } - - /** - * 新增菜单 - */ - @PreAuthorize("@ss.hasPermi('system:menu:add')") - @Log(title = "菜单管理", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysMenu menu) - { - if (!menuService.checkMenuNameUnique(menu)) - { - return error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); - } - else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) - { - return error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); - } - menu.setCreateBy(getUsername()); - return toAjax(menuService.insertMenu(menu)); - } - - /** - * 修改菜单 - */ - @PreAuthorize("@ss.hasPermi('system:menu:edit')") - @Log(title = "菜单管理", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysMenu menu) - { - if (!menuService.checkMenuNameUnique(menu)) - { - return error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); - } - else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) - { - return error("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); - } - else if (menu.getMenuId().equals(menu.getParentId())) - { - return error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己"); - } - menu.setUpdateBy(getUsername()); - return toAjax(menuService.updateMenu(menu)); - } - - /** - * 删除菜单 - */ - @PreAuthorize("@ss.hasPermi('system:menu:remove')") - @Log(title = "菜单管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{menuId}") - public AjaxResult remove(@PathVariable("menuId") Long menuId) - { - if (menuService.hasChildByMenuId(menuId)) - { - return warn("存在子菜单,不允许删除"); - } - if (menuService.checkMenuExistRole(menuId)) - { - return warn("菜单已分配,不允许删除"); - } - return toAjax(menuService.deleteMenuById(menuId)); - } -} \ No newline at end of file diff --git a/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java b/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java deleted file mode 100644 index 8622828..0000000 --- a/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.ruoyi.web.controller.system; - -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.system.domain.SysNotice; -import com.ruoyi.system.service.ISysNoticeService; - -/** - * 公告 信息操作处理 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/notice") -public class SysNoticeController extends BaseController -{ - @Autowired - private ISysNoticeService noticeService; - - /** - * 获取通知公告列表 - */ - @PreAuthorize("@ss.hasPermi('system:notice:list')") - @GetMapping("/list") - public TableDataInfo list(SysNotice notice) - { - startPage(); - List list = noticeService.selectNoticeList(notice); - return getDataTable(list); - } - - /** - * 根据通知公告编号获取详细信息 - */ - @PreAuthorize("@ss.hasPermi('system:notice:query')") - @GetMapping(value = "/{noticeId}") - public AjaxResult getInfo(@PathVariable Long noticeId) - { - return success(noticeService.selectNoticeById(noticeId)); - } - - /** - * 新增通知公告 - */ - @PreAuthorize("@ss.hasPermi('system:notice:add')") - @Log(title = "通知公告", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysNotice notice) - { - notice.setCreateBy(getUsername()); - return toAjax(noticeService.insertNotice(notice)); - } - - /** - * 修改通知公告 - */ - @PreAuthorize("@ss.hasPermi('system:notice:edit')") - @Log(title = "通知公告", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysNotice notice) - { - notice.setUpdateBy(getUsername()); - return toAjax(noticeService.updateNotice(notice)); - } - - /** - * 删除通知公告 - */ - @PreAuthorize("@ss.hasPermi('system:notice:remove')") - @Log(title = "通知公告", businessType = BusinessType.DELETE) - @DeleteMapping("/{noticeIds}") - public AjaxResult remove(@PathVariable Long[] noticeIds) - { - return toAjax(noticeService.deleteNoticeByIds(noticeIds)); - } -} diff --git a/src/main/java/com/ruoyi/web/controller/system/SysPostController.java b/src/main/java/com/ruoyi/web/controller/system/SysPostController.java deleted file mode 100644 index c37a543..0000000 --- a/src/main/java/com/ruoyi/web/controller/system/SysPostController.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.ruoyi.web.controller.system; - -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.system.domain.SysPost; -import com.ruoyi.system.service.ISysPostService; - -/** - * 岗位信息操作处理 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/post") -public class SysPostController extends BaseController -{ - @Autowired - private ISysPostService postService; - - /** - * 获取岗位列表 - */ - @PreAuthorize("@ss.hasPermi('system:post:list')") - @GetMapping("/list") - public TableDataInfo list(SysPost post) - { - startPage(); - List list = postService.selectPostList(post); - return getDataTable(list); - } - - @Log(title = "岗位管理", businessType = BusinessType.EXPORT) - @PreAuthorize("@ss.hasPermi('system:post:export')") - @PostMapping("/export") - public void export(HttpServletResponse response, SysPost post) - { - List list = postService.selectPostList(post); - ExcelUtil util = new ExcelUtil(SysPost.class); - util.exportExcel(response, list, "岗位数据"); - } - - /** - * 根据岗位编号获取详细信息 - */ - @PreAuthorize("@ss.hasPermi('system:post:query')") - @GetMapping(value = "/{postId}") - public AjaxResult getInfo(@PathVariable Long postId) - { - return success(postService.selectPostById(postId)); - } - - /** - * 新增岗位 - */ - @PreAuthorize("@ss.hasPermi('system:post:add')") - @Log(title = "岗位管理", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysPost post) - { - if (!postService.checkPostNameUnique(post)) - { - return error("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在"); - } - else if (!postService.checkPostCodeUnique(post)) - { - return error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在"); - } - post.setCreateBy(getUsername()); - return toAjax(postService.insertPost(post)); - } - - /** - * 修改岗位 - */ - @PreAuthorize("@ss.hasPermi('system:post:edit')") - @Log(title = "岗位管理", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysPost post) - { - if (!postService.checkPostNameUnique(post)) - { - return error("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在"); - } - else if (!postService.checkPostCodeUnique(post)) - { - return error("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在"); - } - post.setUpdateBy(getUsername()); - return toAjax(postService.updatePost(post)); - } - - /** - * 删除岗位 - */ - @PreAuthorize("@ss.hasPermi('system:post:remove')") - @Log(title = "岗位管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{postIds}") - public AjaxResult remove(@PathVariable Long[] postIds) - { - return toAjax(postService.deletePostByIds(postIds)); - } - - /** - * 获取岗位选择框列表 - */ - @GetMapping("/optionselect") - public AjaxResult optionselect() - { - List posts = postService.selectPostAll(); - return success(posts); - } -} diff --git a/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java deleted file mode 100644 index 41b7621..0000000 --- a/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java +++ /dev/null @@ -1,140 +0,0 @@ -package com.ruoyi.web.controller.system; - -import java.util.Map; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.config.RuoYiConfig; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.domain.model.LoginUser; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.file.FileUploadUtils; -import com.ruoyi.common.utils.file.MimeTypeUtils; -import com.ruoyi.framework.web.service.TokenService; -import com.ruoyi.system.service.ISysUserService; - -/** - * 个人信息 业务处理 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/user/profile") -public class SysProfileController extends BaseController -{ - @Autowired - private ISysUserService userService; - - @Autowired - private TokenService tokenService; - - /** - * 个人信息 - */ - @GetMapping - public AjaxResult profile() - { - LoginUser loginUser = getLoginUser(); - SysUser user = loginUser.getUser(); - AjaxResult ajax = AjaxResult.success(user); - ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername())); - ajax.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername())); - return ajax; - } - - /** - * 修改用户 - */ - @Log(title = "个人信息", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult updateProfile(@RequestBody SysUser user) - { - LoginUser loginUser = getLoginUser(); - SysUser currentUser = loginUser.getUser(); - currentUser.setNickName(user.getNickName()); - currentUser.setEmail(user.getEmail()); - currentUser.setPhonenumber(user.getPhonenumber()); - currentUser.setSex(user.getSex()); - if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(currentUser)) - { - return error("修改用户'" + loginUser.getUsername() + "'失败,手机号码已存在"); - } - if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(currentUser)) - { - return error("修改用户'" + loginUser.getUsername() + "'失败,邮箱账号已存在"); - } - if (userService.updateUserProfile(currentUser) > 0) - { - // 更新缓存用户信息 - tokenService.setLoginUser(loginUser); - return success(); - } - return error("修改个人信息异常,请联系管理员"); - } - - /** - * 重置密码 - */ - @Log(title = "个人信息", businessType = BusinessType.UPDATE) - @PutMapping("/updatePwd") - public AjaxResult updatePwd(@RequestBody Map params) - { - String oldPassword = params.get("oldPassword"); - String newPassword = params.get("newPassword"); - LoginUser loginUser = getLoginUser(); - String userName = loginUser.getUsername(); - String password = loginUser.getPassword(); - if (!SecurityUtils.matchesPassword(oldPassword, password)) - { - return error("修改密码失败,旧密码错误"); - } - if (SecurityUtils.matchesPassword(newPassword, password)) - { - return error("新密码不能与旧密码相同"); - } - newPassword = SecurityUtils.encryptPassword(newPassword); - if (userService.resetUserPwd(userName, newPassword) > 0) - { - // 更新缓存用户密码 - loginUser.getUser().setPassword(newPassword); - tokenService.setLoginUser(loginUser); - return success(); - } - return error("修改密码异常,请联系管理员"); - } - - /** - * 头像上传 - */ - @Log(title = "用户头像", businessType = BusinessType.UPDATE) - @PostMapping("/avatar") - public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws Exception - { - if (!file.isEmpty()) - { - LoginUser loginUser = getLoginUser(); - String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file, MimeTypeUtils.IMAGE_EXTENSION); - if (userService.updateUserAvatar(loginUser.getUsername(), avatar)) - { - AjaxResult ajax = AjaxResult.success(); - ajax.put("imgUrl", avatar); - // 更新缓存用户头像 - loginUser.getUser().setAvatar(avatar); - tokenService.setLoginUser(loginUser); - return ajax; - } - } - return error("上传图片异常,请联系管理员"); - } -} diff --git a/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java b/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java deleted file mode 100644 index fe19249..0000000 --- a/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.ruoyi.web.controller.system; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.model.RegisterBody; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.framework.web.service.SysRegisterService; -import com.ruoyi.system.service.ISysConfigService; - -/** - * 注册验证 - * - * @author ruoyi - */ -@RestController -public class SysRegisterController extends BaseController -{ - @Autowired - private SysRegisterService registerService; - - @Autowired - private ISysConfigService configService; - - @PostMapping("/register") - public AjaxResult register(@RequestBody RegisterBody user) - { - if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) - { - return error("当前系统没有开启注册功能!"); - } - String msg = registerService.register(user); - return StringUtils.isEmpty(msg) ? success() : error(msg); - } -} diff --git a/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java b/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java deleted file mode 100644 index 42d9e8f..0000000 --- a/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java +++ /dev/null @@ -1,262 +0,0 @@ -package com.ruoyi.web.controller.system; - -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.entity.SysDept; -import com.ruoyi.common.core.domain.entity.SysRole; -import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.domain.model.LoginUser; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.framework.web.service.SysPermissionService; -import com.ruoyi.framework.web.service.TokenService; -import com.ruoyi.system.domain.SysUserRole; -import com.ruoyi.system.service.ISysDeptService; -import com.ruoyi.system.service.ISysRoleService; -import com.ruoyi.system.service.ISysUserService; - -/** - * 角色信息 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/role") -public class SysRoleController extends BaseController -{ - @Autowired - private ISysRoleService roleService; - - @Autowired - private TokenService tokenService; - - @Autowired - private SysPermissionService permissionService; - - @Autowired - private ISysUserService userService; - - @Autowired - private ISysDeptService deptService; - - @PreAuthorize("@ss.hasPermi('system:role:list')") - @GetMapping("/list") - public TableDataInfo list(SysRole role) - { - startPage(); - List list = roleService.selectRoleList(role); - return getDataTable(list); - } - - @Log(title = "角色管理", businessType = BusinessType.EXPORT) - @PreAuthorize("@ss.hasPermi('system:role:export')") - @PostMapping("/export") - public void export(HttpServletResponse response, SysRole role) - { - List list = roleService.selectRoleList(role); - ExcelUtil util = new ExcelUtil(SysRole.class); - util.exportExcel(response, list, "角色数据"); - } - - /** - * 根据角色编号获取详细信息 - */ - @PreAuthorize("@ss.hasPermi('system:role:query')") - @GetMapping(value = "/{roleId}") - public AjaxResult getInfo(@PathVariable Long roleId) - { - roleService.checkRoleDataScope(roleId); - return success(roleService.selectRoleById(roleId)); - } - - /** - * 新增角色 - */ - @PreAuthorize("@ss.hasPermi('system:role:add')") - @Log(title = "角色管理", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysRole role) - { - if (!roleService.checkRoleNameUnique(role)) - { - return error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在"); - } - else if (!roleService.checkRoleKeyUnique(role)) - { - return error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在"); - } - role.setCreateBy(getUsername()); - return toAjax(roleService.insertRole(role)); - - } - - /** - * 修改保存角色 - */ - @PreAuthorize("@ss.hasPermi('system:role:edit')") - @Log(title = "角色管理", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysRole role) - { - roleService.checkRoleAllowed(role); - roleService.checkRoleDataScope(role.getRoleId()); - if (!roleService.checkRoleNameUnique(role)) - { - return error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在"); - } - else if (!roleService.checkRoleKeyUnique(role)) - { - return error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在"); - } - role.setUpdateBy(getUsername()); - - if (roleService.updateRole(role) > 0) - { - // 更新缓存用户权限 - LoginUser loginUser = getLoginUser(); - if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin()) - { - loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName())); - loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser())); - tokenService.setLoginUser(loginUser); - } - return success(); - } - return error("修改角色'" + role.getRoleName() + "'失败,请联系管理员"); - } - - /** - * 修改保存数据权限 - */ - @PreAuthorize("@ss.hasPermi('system:role:edit')") - @Log(title = "角色管理", businessType = BusinessType.UPDATE) - @PutMapping("/dataScope") - public AjaxResult dataScope(@RequestBody SysRole role) - { - roleService.checkRoleAllowed(role); - roleService.checkRoleDataScope(role.getRoleId()); - return toAjax(roleService.authDataScope(role)); - } - - /** - * 状态修改 - */ - @PreAuthorize("@ss.hasPermi('system:role:edit')") - @Log(title = "角色管理", businessType = BusinessType.UPDATE) - @PutMapping("/changeStatus") - public AjaxResult changeStatus(@RequestBody SysRole role) - { - roleService.checkRoleAllowed(role); - roleService.checkRoleDataScope(role.getRoleId()); - role.setUpdateBy(getUsername()); - return toAjax(roleService.updateRoleStatus(role)); - } - - /** - * 删除角色 - */ - @PreAuthorize("@ss.hasPermi('system:role:remove')") - @Log(title = "角色管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{roleIds}") - public AjaxResult remove(@PathVariable Long[] roleIds) - { - return toAjax(roleService.deleteRoleByIds(roleIds)); - } - - /** - * 获取角色选择框列表 - */ - @PreAuthorize("@ss.hasPermi('system:role:query')") - @GetMapping("/optionselect") - public AjaxResult optionselect() - { - return success(roleService.selectRoleAll()); - } - - /** - * 查询已分配用户角色列表 - */ - @PreAuthorize("@ss.hasPermi('system:role:list')") - @GetMapping("/authUser/allocatedList") - public TableDataInfo allocatedList(SysUser user) - { - startPage(); - List list = userService.selectAllocatedList(user); - return getDataTable(list); - } - - /** - * 查询未分配用户角色列表 - */ - @PreAuthorize("@ss.hasPermi('system:role:list')") - @GetMapping("/authUser/unallocatedList") - public TableDataInfo unallocatedList(SysUser user) - { - startPage(); - List list = userService.selectUnallocatedList(user); - return getDataTable(list); - } - - /** - * 取消授权用户 - */ - @PreAuthorize("@ss.hasPermi('system:role:edit')") - @Log(title = "角色管理", businessType = BusinessType.GRANT) - @PutMapping("/authUser/cancel") - public AjaxResult cancelAuthUser(@RequestBody SysUserRole userRole) - { - return toAjax(roleService.deleteAuthUser(userRole)); - } - - /** - * 批量取消授权用户 - */ - @PreAuthorize("@ss.hasPermi('system:role:edit')") - @Log(title = "角色管理", businessType = BusinessType.GRANT) - @PutMapping("/authUser/cancelAll") - public AjaxResult cancelAuthUserAll(Long roleId, Long[] userIds) - { - return toAjax(roleService.deleteAuthUsers(roleId, userIds)); - } - - /** - * 批量选择用户授权 - */ - @PreAuthorize("@ss.hasPermi('system:role:edit')") - @Log(title = "角色管理", businessType = BusinessType.GRANT) - @PutMapping("/authUser/selectAll") - public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds) - { - roleService.checkRoleDataScope(roleId); - return toAjax(roleService.insertAuthUsers(roleId, userIds)); - } - - /** - * 获取对应角色部门树列表 - */ - @PreAuthorize("@ss.hasPermi('system:role:query')") - @GetMapping(value = "/deptTree/{roleId}") - public AjaxResult deptTree(@PathVariable("roleId") Long roleId) - { - AjaxResult ajax = AjaxResult.success(); - ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); - ajax.put("depts", deptService.selectDeptTreeList(new SysDept())); - return ajax; - } -} diff --git a/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/src/main/java/com/ruoyi/web/controller/system/SysUserController.java deleted file mode 100644 index 130c438..0000000 --- a/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ /dev/null @@ -1,256 +0,0 @@ -package com.ruoyi.web.controller.system; - -import java.util.List; -import java.util.stream.Collectors; -import javax.servlet.http.HttpServletResponse; -import org.apache.commons.lang3.ArrayUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.entity.SysDept; -import com.ruoyi.common.core.domain.entity.SysRole; -import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.system.service.ISysDeptService; -import com.ruoyi.system.service.ISysPostService; -import com.ruoyi.system.service.ISysRoleService; -import com.ruoyi.system.service.ISysUserService; - -/** - * 用户信息 - * - * @author ruoyi - */ -@RestController -@RequestMapping("/system/user") -public class SysUserController extends BaseController -{ - @Autowired - private ISysUserService userService; - - @Autowired - private ISysRoleService roleService; - - @Autowired - private ISysDeptService deptService; - - @Autowired - private ISysPostService postService; - - /** - * 获取用户列表 - */ - @PreAuthorize("@ss.hasPermi('system:user:list')") - @GetMapping("/list") - public TableDataInfo list(SysUser user) - { - startPage(); - List list = userService.selectUserList(user); - return getDataTable(list); - } - - @Log(title = "用户管理", businessType = BusinessType.EXPORT) - @PreAuthorize("@ss.hasPermi('system:user:export')") - @PostMapping("/export") - public void export(HttpServletResponse response, SysUser user) - { - List list = userService.selectUserList(user); - ExcelUtil util = new ExcelUtil(SysUser.class); - util.exportExcel(response, list, "用户数据"); - } - - @Log(title = "用户管理", businessType = BusinessType.IMPORT) - @PreAuthorize("@ss.hasPermi('system:user:import')") - @PostMapping("/importData") - public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception - { - ExcelUtil util = new ExcelUtil(SysUser.class); - List userList = util.importExcel(file.getInputStream()); - String operName = getUsername(); - String message = userService.importUser(userList, updateSupport, operName); - return success(message); - } - - @PostMapping("/importTemplate") - public void importTemplate(HttpServletResponse response) - { - ExcelUtil util = new ExcelUtil(SysUser.class); - util.importTemplateExcel(response, "用户数据"); - } - - /** - * 根据用户编号获取详细信息 - */ - @PreAuthorize("@ss.hasPermi('system:user:query')") - @GetMapping(value = { "/", "/{userId}" }) - public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) - { - AjaxResult ajax = AjaxResult.success(); - if (StringUtils.isNotNull(userId)) - { - userService.checkUserDataScope(userId); - SysUser sysUser = userService.selectUserById(userId); - ajax.put(AjaxResult.DATA_TAG, sysUser); - ajax.put("postIds", postService.selectPostListByUserId(userId)); - ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList())); - } - List roles = roleService.selectRoleAll(); - ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); - ajax.put("posts", postService.selectPostAll()); - return ajax; - } - - /** - * 新增用户 - */ - @PreAuthorize("@ss.hasPermi('system:user:add')") - @Log(title = "用户管理", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysUser user) - { - deptService.checkDeptDataScope(user.getDeptId()); - roleService.checkRoleDataScope(user.getRoleIds()); - if (!userService.checkUserNameUnique(user)) - { - return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); - } - else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) - { - return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在"); - } - else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) - { - return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); - } - user.setCreateBy(getUsername()); - user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); - return toAjax(userService.insertUser(user)); - } - - /** - * 修改用户 - */ - @PreAuthorize("@ss.hasPermi('system:user:edit')") - @Log(title = "用户管理", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysUser user) - { - userService.checkUserAllowed(user); - userService.checkUserDataScope(user.getUserId()); - deptService.checkDeptDataScope(user.getDeptId()); - roleService.checkRoleDataScope(user.getRoleIds()); - if (!userService.checkUserNameUnique(user)) - { - return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在"); - } - else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) - { - return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); - } - else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) - { - return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); - } - user.setUpdateBy(getUsername()); - return toAjax(userService.updateUser(user)); - } - - /** - * 删除用户 - */ - @PreAuthorize("@ss.hasPermi('system:user:remove')") - @Log(title = "用户管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{userIds}") - public AjaxResult remove(@PathVariable Long[] userIds) - { - if (ArrayUtils.contains(userIds, getUserId())) - { - return error("当前用户不能删除"); - } - return toAjax(userService.deleteUserByIds(userIds)); - } - - /** - * 重置密码 - */ - @PreAuthorize("@ss.hasPermi('system:user:resetPwd')") - @Log(title = "用户管理", businessType = BusinessType.UPDATE) - @PutMapping("/resetPwd") - public AjaxResult resetPwd(@RequestBody SysUser user) - { - userService.checkUserAllowed(user); - userService.checkUserDataScope(user.getUserId()); - user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); - user.setUpdateBy(getUsername()); - return toAjax(userService.resetPwd(user)); - } - - /** - * 状态修改 - */ - @PreAuthorize("@ss.hasPermi('system:user:edit')") - @Log(title = "用户管理", businessType = BusinessType.UPDATE) - @PutMapping("/changeStatus") - public AjaxResult changeStatus(@RequestBody SysUser user) - { - userService.checkUserAllowed(user); - userService.checkUserDataScope(user.getUserId()); - user.setUpdateBy(getUsername()); - return toAjax(userService.updateUserStatus(user)); - } - - /** - * 根据用户编号获取授权角色 - */ - @PreAuthorize("@ss.hasPermi('system:user:query')") - @GetMapping("/authRole/{userId}") - public AjaxResult authRole(@PathVariable("userId") Long userId) - { - AjaxResult ajax = AjaxResult.success(); - SysUser user = userService.selectUserById(userId); - List roles = roleService.selectRolesByUserId(userId); - ajax.put("user", user); - ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); - return ajax; - } - - /** - * 用户授权角色 - */ - @PreAuthorize("@ss.hasPermi('system:user:edit')") - @Log(title = "用户管理", businessType = BusinessType.GRANT) - @PutMapping("/authRole") - public AjaxResult insertAuthRole(Long userId, Long[] roleIds) - { - userService.checkUserDataScope(userId); - roleService.checkRoleDataScope(roleIds); - userService.insertUserAuth(userId, roleIds); - return success(); - } - - /** - * 获取部门树列表 - */ - @PreAuthorize("@ss.hasPermi('system:user:list')") - @GetMapping("/deptTree") - public AjaxResult deptTree(SysDept dept) - { - return success(deptService.selectDeptTreeList(dept)); - } -} diff --git a/src/main/java/com/ruoyi/web/controller/tool/TestController.java b/src/main/java/com/ruoyi/web/controller/tool/TestController.java deleted file mode 100644 index b4f6bac..0000000 --- a/src/main/java/com/ruoyi/web/controller/tool/TestController.java +++ /dev/null @@ -1,183 +0,0 @@ -package com.ruoyi.web.controller.tool; - -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.utils.StringUtils; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import io.swagger.annotations.ApiOperation; - -/** - * swagger 用户测试方法 - * - * @author ruoyi - */ -@Api("用户信息管理") -@RestController -@RequestMapping("/test/user") -public class TestController extends BaseController -{ - private final static Map users = new LinkedHashMap(); - { - users.put(1, new UserEntity(1, "admin", "admin123", "15888888888")); - users.put(2, new UserEntity(2, "ry", "admin123", "15666666666")); - } - - @ApiOperation("获取用户列表") - @GetMapping("/list") - public R> userList() - { - List userList = new ArrayList(users.values()); - return R.ok(userList); - } - - @ApiOperation("获取用户详细") - @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class) - @GetMapping("/{userId}") - public R getUser(@PathVariable Integer userId) - { - if (!users.isEmpty() && users.containsKey(userId)) - { - return R.ok(users.get(userId)); - } - else - { - return R.fail("用户不存在"); - } - } - - @ApiOperation("新增用户") - @ApiImplicitParams({ - @ApiImplicitParam(name = "userId", value = "用户id", dataType = "Integer", dataTypeClass = Integer.class), - @ApiImplicitParam(name = "username", value = "用户名称", dataType = "String", dataTypeClass = String.class), - @ApiImplicitParam(name = "password", value = "用户密码", dataType = "String", dataTypeClass = String.class), - @ApiImplicitParam(name = "mobile", value = "用户手机", dataType = "String", dataTypeClass = String.class) - }) - @PostMapping("/save") - public R save(UserEntity user) - { - if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId())) - { - return R.fail("用户ID不能为空"); - } - users.put(user.getUserId(), user); - return R.ok(); - } - - @ApiOperation("更新用户") - @PutMapping("/update") - public R update(@RequestBody UserEntity user) - { - if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId())) - { - return R.fail("用户ID不能为空"); - } - if (users.isEmpty() || !users.containsKey(user.getUserId())) - { - return R.fail("用户不存在"); - } - users.remove(user.getUserId()); - users.put(user.getUserId(), user); - return R.ok(); - } - - @ApiOperation("删除用户信息") - @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class) - @DeleteMapping("/{userId}") - public R delete(@PathVariable Integer userId) - { - if (!users.isEmpty() && users.containsKey(userId)) - { - users.remove(userId); - return R.ok(); - } - else - { - return R.fail("用户不存在"); - } - } -} - -@ApiModel(value = "UserEntity", description = "用户实体") -class UserEntity -{ - @ApiModelProperty("用户ID") - private Integer userId; - - @ApiModelProperty("用户名称") - private String username; - - @ApiModelProperty("用户密码") - private String password; - - @ApiModelProperty("用户手机") - private String mobile; - - public UserEntity() - { - - } - - public UserEntity(Integer userId, String username, String password, String mobile) - { - this.userId = userId; - this.username = username; - this.password = password; - this.mobile = mobile; - } - - public Integer getUserId() - { - return userId; - } - - public void setUserId(Integer userId) - { - this.userId = userId; - } - - public String getUsername() - { - return username; - } - - public void setUsername(String username) - { - this.username = username; - } - - public String getPassword() - { - return password; - } - - public void setPassword(String password) - { - this.password = password; - } - - public String getMobile() - { - return mobile; - } - - public void setMobile(String mobile) - { - this.mobile = mobile; - } -} diff --git a/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java b/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java deleted file mode 100644 index ae1c3ec..0000000 --- a/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.ruoyi.web.core.config; - -import java.util.ArrayList; -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import com.ruoyi.common.config.RuoYiConfig; -import io.swagger.annotations.ApiOperation; -import io.swagger.models.auth.In; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.service.ApiKey; -import springfox.documentation.service.AuthorizationScope; -import springfox.documentation.service.Contact; -import springfox.documentation.service.SecurityReference; -import springfox.documentation.service.SecurityScheme; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spi.service.contexts.SecurityContext; -import springfox.documentation.spring.web.plugins.Docket; - -/** - * Swagger2的接口配置 - * - * @author ruoyi - */ -@Configuration -public class SwaggerConfig -{ - /** 系统基础配置 */ - @Autowired - private RuoYiConfig ruoyiConfig; - - /** 是否开启swagger */ - @Value("${swagger.enabled}") - private boolean enabled; - - /** 设置请求的统一前缀 */ - @Value("${swagger.pathMapping}") - private String pathMapping; - - /** - * 创建API - */ - @Bean - public Docket createRestApi() - { - return new Docket(DocumentationType.OAS_30) - // 是否启用Swagger - .enable(enabled) - // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息) - .apiInfo(apiInfo()) - // 设置哪些接口暴露给Swagger展示 - .select() - // 扫描所有有注解的api,用这种方式更灵活 - .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - // 扫描指定包中的swagger注解 - // .apis(RequestHandlerSelectors.basePackage("com.ruoyi.project.tool.swagger")) - // 扫描所有 .apis(RequestHandlerSelectors.any()) - .paths(PathSelectors.any()) - .build() - /* 设置安全模式,swagger可以设置访问token */ - .securitySchemes(securitySchemes()) - .securityContexts(securityContexts()) - .pathMapping(pathMapping); - } - - /** - * 安全模式,这里指定token通过Authorization头请求头传递 - */ - private List securitySchemes() - { - List apiKeyList = new ArrayList(); - apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue())); - return apiKeyList; - } - - /** - * 安全上下文 - */ - private List securityContexts() - { - List securityContexts = new ArrayList<>(); - securityContexts.add( - SecurityContext.builder() - .securityReferences(defaultAuth()) - .operationSelector(o -> o.requestMappingPattern().matches("/.*")) - .build()); - return securityContexts; - } - - /** - * 默认的安全上引用 - */ - private List defaultAuth() - { - AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); - AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; - authorizationScopes[0] = authorizationScope; - List securityReferences = new ArrayList<>(); - securityReferences.add(new SecurityReference("Authorization", authorizationScopes)); - return securityReferences; - } - - /** - * 添加摘要信息 - */ - private ApiInfo apiInfo() - { - // 用ApiInfoBuilder进行定制 - return new ApiInfoBuilder() - // 设置标题 - .title("标题:若依管理系统_接口文档") - // 描述 - .description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...") - // 作者信息 - .contact(new Contact(ruoyiConfig.getName(), null, null)) - // 版本 - .version("版本号:" + ruoyiConfig.getVersion()) - .build(); - } -} diff --git a/src/main/resources/application-druid.yml b/src/main/resources/application-druid.yml index ff0c185..426a48a 100644 --- a/src/main/resources/application-druid.yml +++ b/src/main/resources/application-druid.yml @@ -6,9 +6,9 @@ spring: druid: # 主库数据源 master: - url: jdbc:mysql://localhost:3306/pandian?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root - password: root + password: password # 从库数据源 slave: # 从数据源开关/默认关闭 diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 80e05fc..61d83bc 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -3,7 +3,7 @@ ruoyi: # 名称 name: RuoYi # 版本 - version: 3.8.9 + version: 3.9.0 # 版权年份 copyrightYear: 2025 # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) @@ -96,13 +96,13 @@ token: secret: abcdefghijklmnopqrstuvwxyz # 令牌有效期(默认30分钟) expireTime: 30 - + # MyBatis配置 mybatis: # 搜索指定包别名 - typeAliasesPackage: com.ruoyi.**.domain + typeAliasesPackage: com.ruoyi.project.**.domain # 配置mapper的扫描,找到所有的mapper.xml映射文件 - mapperLocations: classpath*:mapper/**/*Mapper.xml + mapperLocations: classpath*:mybatis/**/*Mapper.xml # 加载全局的配置文件 configLocation: classpath:mybatis/mybatis-config.xml @@ -119,6 +119,13 @@ swagger: # 请求前缀 pathMapping: /dev-api +# 防盗链配置 +referer: + # 防盗链开关 + enabled: false + # 允许的域名列表 + allowed-domains: localhost,127.0.0.1,ruoyi.vip,www.ruoyi.vip + # 防止XSS攻击 xss: # 过滤开关 @@ -127,3 +134,16 @@ xss: excludes: /system/notice # 匹配链接 urlPatterns: /system/*,/monitor/*,/tool/* + +# 代码生成 +gen: + # 作者 + author: ruoyi + # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool + packageName: com.ruoyi.project.system + # 自动去除表前缀,默认是true + autoRemovePre: false + # 表前缀(生成类名不会包含表前缀,多个用逗号分隔) + tablePrefix: sys_ + # 是否允许生成文件覆盖到本地(自定义路径),默认不允许 + allowOverwrite: false \ No newline at end of file diff --git a/target/classes/META-INF/spring-devtools.properties b/target/classes/META-INF/spring-devtools.properties deleted file mode 100644 index 37e7b58..0000000 --- a/target/classes/META-INF/spring-devtools.properties +++ /dev/null @@ -1 +0,0 @@ -restart.include.json=/com.alibaba.fastjson2.*.jar \ No newline at end of file diff --git a/target/classes/application-druid.yml b/target/classes/application-druid.yml deleted file mode 100644 index ff0c185..0000000 --- a/target/classes/application-druid.yml +++ /dev/null @@ -1,61 +0,0 @@ -# 数据源配置 -spring: - datasource: - type: com.alibaba.druid.pool.DruidDataSource - driverClassName: com.mysql.cj.jdbc.Driver - druid: - # 主库数据源 - master: - url: jdbc:mysql://localhost:3306/pandian?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 - username: root - password: root - # 从库数据源 - slave: - # 从数据源开关/默认关闭 - enabled: false - url: - username: - password: - # 初始连接数 - initialSize: 5 - # 最小连接池数量 - minIdle: 10 - # 最大连接池数量 - maxActive: 20 - # 配置获取连接等待超时的时间 - maxWait: 60000 - # 配置连接超时时间 - connectTimeout: 30000 - # 配置网络超时时间 - socketTimeout: 60000 - # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 - timeBetweenEvictionRunsMillis: 60000 - # 配置一个连接在池中最小生存的时间,单位是毫秒 - minEvictableIdleTimeMillis: 300000 - # 配置一个连接在池中最大生存的时间,单位是毫秒 - maxEvictableIdleTimeMillis: 900000 - # 配置检测连接是否有效 - validationQuery: SELECT 1 FROM DUAL - testWhileIdle: true - testOnBorrow: false - testOnReturn: false - webStatFilter: - enabled: true - statViewServlet: - enabled: true - # 设置白名单,不填则允许所有访问 - allow: - url-pattern: /druid/* - # 控制台管理用户名和密码 - login-username: ruoyi - login-password: 123456 - filter: - stat: - enabled: true - # 慢SQL记录 - log-slow-sql: true - slow-sql-millis: 1000 - merge-sql: true - wall: - config: - multi-statement-allow: true \ No newline at end of file diff --git a/target/classes/application.yml b/target/classes/application.yml deleted file mode 100644 index 80e05fc..0000000 --- a/target/classes/application.yml +++ /dev/null @@ -1,129 +0,0 @@ -# 项目相关配置 -ruoyi: - # 名称 - name: RuoYi - # 版本 - version: 3.8.9 - # 版权年份 - copyrightYear: 2025 - # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) - profile: D:/ruoyi/uploadPath - # 获取ip地址开关 - addressEnabled: false - # 验证码类型 math 数字计算 char 字符验证 - captchaType: math - -# 开发环境配置 -server: - # 服务器的HTTP端口,默认为8080 - port: 8080 - servlet: - # 应用的访问路径 - context-path: / - tomcat: - # tomcat的URI编码 - uri-encoding: UTF-8 - # 连接数满后的排队数,默认为100 - accept-count: 1000 - threads: - # tomcat最大线程数,默认为200 - max: 800 - # Tomcat启动初始化的线程数,默认值10 - min-spare: 100 - -# 日志配置 -logging: - level: - com.ruoyi: debug - org.springframework: warn - -# 用户配置 -user: - password: - # 密码最大错误次数 - maxRetryCount: 5 - # 密码锁定时间(默认10分钟) - lockTime: 10 - -# Spring配置 -spring: - # 资源信息 - messages: - # 国际化资源文件路径 - basename: i18n/messages - profiles: - active: druid - # 文件上传 - servlet: - multipart: - # 单个文件大小 - max-file-size: 10MB - # 设置总上传的文件大小 - max-request-size: 20MB - # 服务模块 - devtools: - restart: - # 热部署开关 - enabled: true - # redis 配置 - redis: - # 地址 - host: localhost - # 端口,默认为6379 - port: 6379 - # 数据库索引 - database: 0 - # 密码 - password: - # 连接超时时间 - timeout: 10s - lettuce: - pool: - # 连接池中的最小空闲连接 - min-idle: 0 - # 连接池中的最大空闲连接 - max-idle: 8 - # 连接池的最大数据库连接数 - max-active: 8 - # #连接池最大阻塞等待时间(使用负值表示没有限制) - max-wait: -1ms - -# token配置 -token: - # 令牌自定义标识 - header: Authorization - # 令牌密钥 - secret: abcdefghijklmnopqrstuvwxyz - # 令牌有效期(默认30分钟) - expireTime: 30 - -# MyBatis配置 -mybatis: - # 搜索指定包别名 - typeAliasesPackage: com.ruoyi.**.domain - # 配置mapper的扫描,找到所有的mapper.xml映射文件 - mapperLocations: classpath*:mapper/**/*Mapper.xml - # 加载全局的配置文件 - configLocation: classpath:mybatis/mybatis-config.xml - -# PageHelper分页插件 -pagehelper: - helperDialect: mysql - supportMethodsArguments: true - params: count=countSql - -# Swagger配置 -swagger: - # 是否开启swagger - enabled: true - # 请求前缀 - pathMapping: /dev-api - -# 防止XSS攻击 -xss: - # 过滤开关 - enabled: true - # 排除链接(多个用逗号分隔) - excludes: /system/notice - # 匹配链接 - urlPatterns: /system/*,/monitor/*,/tool/* diff --git a/target/classes/banner.txt b/target/classes/banner.txt deleted file mode 100644 index 0931cb8..0000000 --- a/target/classes/banner.txt +++ /dev/null @@ -1,24 +0,0 @@ -Application Version: ${ruoyi.version} -Spring Boot Version: ${spring-boot.version} -//////////////////////////////////////////////////////////////////// -// _ooOoo_ // -// o8888888o // -// 88" . "88 // -// (| ^_^ |) // -// O\ = /O // -// ____/`---'\____ // -// .' \\| |// `. // -// / \\||| : |||// \ // -// / _||||| -:- |||||- \ // -// | | \\\ - /// | | // -// | \_| ''\---/'' | | // -// \ .-\__ `-` ___/-. / // -// ___`. .' /--.--\ `. . ___ // -// ."" '< `.___\_<|>_/___.' >'"". // -// | | : `- \`.;`\ _ /`;.`/ - ` : | | // -// \ \ `-. \_ __\ /__ _/ .-` / / // -// ========`-.____`-.___\_____/___.-`____.-'======== // -// `=---=' // -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// 佛祖保佑 永不宕机 永无BUG // -//////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/target/classes/com/ruoyi/RuoYiApplication.class b/target/classes/com/ruoyi/RuoYiApplication.class deleted file mode 100644 index 213957ecc834bbeb186096c965954990b0d28e61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1320 zcma)6%}*0i5dS^C7HS17f`X{e&+b;}UcA+i0LH|mQ3D2JASv5rsSn$IWV@@7^q}#g zc;RL=@#{e1&1j4o514rLPw*xYe_97{7DF*K zp;<#q9Ia?$=w7gHS!U643+Cngf@Av(ZRdn5{1Jv`-I&tQ&M;uhlIaCu; z7mLESd?DQ!V%Vc09>-pEGNhzeFw2Xca0~OERdQ}i@1~iT(l;kVV_hWidx6W4*R!=6 z#*0?DoSCk(O!|r}V`LjK+tT%&CEpyE?z|`jo|P{;bt%ZK+?ft^W1ogZ96i{->&%nO zW#1`LDKemw_eObzG_O!npHe$kDbtQV#_sAHkJmOHz1X<(nY6LB{$OkU8Rx$quKiel zy1Dv#bLG{~`>UHP&pGGc?>*7Ky!-ZYmNtYWSd6EKBT18ANsgqt2^Uf^ULiYuIG>4Z zYEh3Fej|j=lic768Vb2{X$44D4aB17xa2uQStH5m+{p3tHl#|F8_F4EQ*}@=)u0+C zs;4reDxho?m650^sD=qkt`K5Y*-QnQ9j5J0W-?SU(V56WbV_zZl1UXtG~q%d>2$OU zv7w6LAo?{7#Bm6N3_W4f?Eb45G}UE((WU>gzOA;KXo{g_T+TTRU0LBemx5B>@vf?_ zVMt`9Z55|1PpJ2*vBke3$_#_qe@{S$I7^nGlzn=m##K2juRtt44crW|Nf~&yb3v#g zdjFoUv^pk3|3u*WqU218vQRzly3!Blk7!34jz&0iR^UsTk#IJg>Ija}G}g@sm9IHV zb}>-D%EkYsTA0h*=6TDvqT)v>&&~|0YaxSU(CDU7(gddN8q$a9&7_sl+M46 zA+6k?JLD+ocmx0^5}*Ueae^!=cq}9Xx)WOJBRa0VMOUKtJr2}(I?+tH1SRi57sb^0 bx^WVx$k&9^p-w`lwUd|)dQ#J1HqQJ3y%<-G diff --git a/target/classes/com/ruoyi/RuoYiServletInitializer.class b/target/classes/com/ruoyi/RuoYiServletInitializer.class deleted file mode 100644 index 03d52f415e4f7b6555f9fdcb60a6f581de977655..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 880 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 yg6D#$Gdb!L`}ze-=k zXyOm>M;Xsf>OP#=bNkMB&YAh~^Xqp2OK4S4K+!{~iV>6<#t+1y;DLy`{B`F* z`i`OeNJYv$VJJ45J03V0F$?JMH?;0&)JE3HtkUFlv%dzzuu7``)_vCU>rV?9&$A4{TAm1oDkjGfYv z^>B+}Dj)5@!!WyXeZfn!!Ha05i=C!Q!6QkS-7unW$Y-Fsh z;~Pe4)-LV~yCF@e8uk7bmV5my2gHr+^zR9!^akn8G~_Lq#lkNL%RsjP diff --git a/target/classes/com/ruoyi/web/controller/monitor/SysLogininforController.class b/target/classes/com/ruoyi/web/controller/monitor/SysLogininforController.class deleted file mode 100644 index 873600f5346759396a8e93778f78d643b1841c90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3901 zcmb7HTXPge6#jY>vLp;dA^|~^i#ft*3Cho=Cwc)_5c($2aDoW=nKeKpA;I(9D%ws+HZPPe zQW!BuDsw@pig|?(9V|{v$)Mu7fgD^so?&eO6EY`1|P^a^yA7$hZ=AYE7< zD+LFaJ>yDov#2F~CtwO2^=nzVRTD5rs>-`-`?54B&^+pu zXth0WyKHx>7KoQIy2=-1-U;*uB>O<;p4tXV>i=YS7Ag+8L-Ds6ZC0zO5LeFul!+ zFDqW4%z`f&ss+!t?@0=8S+txgW7Rbr1VX|*d0SmmIB0Wxu zI-QxmOg6M}Gci20QDdsMSkRh5Wh;FG8FSTug%t!d%pV>S8%3pCEeGa>)HaH@GK<*hgG<-o3l^r3rToj?A&l( zG~!bPL;KWnF_+KHZpfj7st_jZe)V!&3K}v>N;NWw!pc1&3zNhZmsfEnjmI@j?_sU9}|sm8zIr$8h`)% z{hwbv{QHM*|M~KBf}WhYlAEGlGumR_U$sTv+NQm#UzC?@oz(kzB8KPIx_jqQeKUL7 zVN|c_@c38BwUq?cKga5e-la95GgE+*aKf|kfhCg0`Au!CZ7LFs~Ebj#C z=JXox@_b(44wIwcxTW_Y#808fD4%*6co`S@G@=d2;S#?DF5?P~Y2h-*CXSuGE6Dc# z45RN6p37jow|@n@f8;_Fw6Y!Hrd~9oj|lrir3WLySSeLt3~y6;J5684J5-#fq&6MR zjB{p~GkZ8raCS040q^RU8xR4e_%@9hE^1ug(9{-=2Q{Yt5YxnC?7QBv{~=x;Xx`i0 zcckOc3SQCvMi4tFq5tn}!%6JMDICD*5ax+UPYvclT*WMHQFjP9Ly681a1-U)@E)#F zlZL*VSfaIY+KAS!b8VPwU7UHJ>o)=%#s?A~;-gikKE@|hA30_5Z4O0l)=rIb%y4Y) zjhXJsU1+mPXV&T7kZAc6 zeDZ-R%U9pE$_j;+`tI*geum}gnMrm@HoCk_Pj`Rc`ObIU*+2jJ<#zyA@u&?AXiTBW zLNi(f?0itP!*a0cnzv%$a|tCMz77M=lc7ECC^@mS6=)fCeOKQUXiWDlwc!9-Q)shr z(4Y-f&>qX>Y7`>7ItcBBO*L1Np%)aYF+bxP_`m&Flb;mAi*RzdY#>D8Dh1bw6U=^gEbhNYREPHflG`(B6ugXMqLQ0H{ z9cdZ$X@51yr0}}HnTl75xG}8kQsCNC8+qy7<2Hp80;emIN$mD;Z^Ln%G=jrfteU!BTA7c zwY{cw$-c{n$tMryr78u!l9}Bxi1(4<1s%FRW4dILnYPe}eu2&v=0?jTH{+YrE6VVF zSf!T@jMlUX{h)>OxWKyA!Pp~bLtrpHyH47sy64Njc8hY!RW9pc%=ZKBXqQ0|xSkEdf~`u%|JBeb%Ev+Y zxxGvR%3gKy?4?cH*-@~^$~t)LhH@n%&@>UOu(&$1t}kcH#bp^L<<^-E@{YIUgsv&S zW*BU-BBsSq+p|gQ=`5a*JJ>&%&XY#SG}ZiXm=?IbiL^F zW@+2+;a#$$^_aLxBO^64qh!7ux|&IeO2ICLvJ@z7=R(QctOcR_rKEE6y5p6ZoHMtS zy0GS`oD7R@x;Gh*BgSDbD2$kp_Vx)}t!c~TXW8{vste$b)H6=0WV(e`>^LVaaYqWw z)!&Sj{OlX(z9oSJVbZ<=bz`$u%ybesR~74|3TlikI+CqRuM3{!eGIhCDSocdqSVlu|FYjt}z8BO$xZ*BHh zrWMHLYyNV*I3{zB8HZYiFU-r~x^3kgy|z6AO}?Y4&UGR?H8x8(?c|_sAt;A=dD}JB z(4Bl=usJIqE*H!%{eGjmR+I8aMOV~my!Mo@t@=fo+LaI;vbVpflA(c9{7GuySDxUL zA5dI}xohEijcYSke)92oojaSWFsJ=bA%5aZ1K#G-TmvUC!lxArAcIlv1a9CarHpcs zYa`dA{aZ-&{|sy384fjIrhjk?T|e@oF#>CkgwCM}y=0S)Kzm}v1e6eX2e$~`LDM%d zM&NPk8`JU01W$|?$GA@NbV}hi?wFT{5DItsHjQ_AX?T4{Q_Wm^45z_})9kM}{-E=X zr+9Ousk>?5eCMexyk-22DRxo=xX7>9OX$L7oWzxg=G7Qyhh`7nLzcFP9T9Gz#?gpy zBlX%agIOXO>Rsd#-%Zd)d^g8C<3uk{a=d?E;WXwY7O=SO)IBT_K6dH@zTL+I3LB>k zjLB+8e-i2525e!#gt%AJWpyJ7MSwg3y@a)pWcZvjT3m82^b)Sj@Z9f5o;4l4wbglfQQM7@)51@6~q IK8}(5FIBUdZ2$lO diff --git a/target/classes/com/ruoyi/web/controller/monitor/SysUserOnlineController.class b/target/classes/com/ruoyi/web/controller/monitor/SysUserOnlineController.class deleted file mode 100644 index b121889960c15e29c547c93b176df7333c14b3a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4233 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 E18;WqasU7T diff --git a/target/classes/com/ruoyi/web/controller/system/SysDeptController.class b/target/classes/com/ruoyi/web/controller/system/SysDeptController.class deleted file mode 100644 index 7b8200a35cde631652906496ea54f37743bf79ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6160 zcmb7I33wFc8GdIIvSAq@1SG{;0gX)v!NnU1R&t=m28;wyv8_&ahh)g^%rY|ztVb;> zYE>$&RK-%NRtwdNXl)31)!w!CzVC~0^s@K$^y$<0o0;96O%@uSJlUD~=l{Rs{oe2U zzkgo)?}3*AoQr?Q5J5#0l`6)eN$i${BK(woG1Zoj;~)Td9<8$J;bVZ!bJ5 zs9I#0hWj=J6^(ONjYl=cM-fvo0jh$tiqbady$=ovRGZ$gp-J-WT# zNazZhx{4x#HIDx--WeTm-bl2*WfLCtETgD(t+sKw?qpMLOB8QXF!#8#OU;U*4i&YG@|#thg10EBbaioVe%OpI z%j_$$e@)g*xCZ0iZR<%Rp}9JNorzgd%vNz4PA6KW&MK(3^|ZBK?_8r`b|Bk>qKv3H zt0hWjsCX+H6x1gA^~8X{-l4f#Pr}MD;!{VPw@MbxQPG6CCBbUTbtb)Fc@}xF2L7A? zOdfCMsW=mHDlb^HOiSx4O=De_CK0g{5jbac6lW=@D_Yg#+J@QJmNimI-Hu^CDyng= zf{BM7*gO2#&ZD>OKKkJ91{ptJ#RXWvq|!1O-K2B#!f5zn^5OFQEs;##)nTEE7A#UQ zp-=Z1EsiLd))h+uXt|0WtYAD`OKerp+}Jtxloi`o zskjPPD;OVyLl|3I5)6;B)mTkF9DHTZp>6vMe5k`aRJ>DGOE9}Nn+e{TjNv+5ABCo( z7m0j27RXOq^>tY-#d=c$P`=)*t_JCFMlt9IhweUnV3)7+;Lw&Mx4m@ep=XZV`Q-4v zXQSv-&`>6VrsHa+8p46ij>4reC}~IH|xY;!ipjzHm_4~+9;V) zFr2v0nw4^|;GA%L+xs=UhmPrHLT?F`(UNh$x;QFaWEGs^SM_Cn}@ePb!f+v!<%*--nRSj!?zDVz14s9#*3T8)0~PM^2}VB zNqWqbVs(>>n>_|*y+P3`!?&n-4>l>N>DL_3qPCp85>AvchoQQSSovvqaOj>wn3@@< z;mw=_!q>ye||9~Y)>R&j@9W90_THbvK6D&8x)ibZzGM(#}#vufN!xq**flGD3G zckLS~SHx^l@jgLwQj&Y5tLO0(5^h!Tetdvc!7$xbT1qMQD5Uvh7_}rQ(X5P*D?kh%!>%ZHtN1vcRB*aw_ru ze@ST*M8n3(GP+gcBk#2)UYDj|dMOIIOdg4gN6cMxLOS0@tqaQr&CwHCTUtlW>j~o- zThCaIE6oGLxJ3Xi2)6O*`?n&@}p7)w!%^$#Qlr=ZzgTlCVgQ^6SV+gFBp@4MGmE zxXY+lZOX4J$HnEcl{;>mmCVuLN}e>B*vDbJOb{@uR(5x^u2^y+wC~P_Jgf4LDrDWU znDk@8o@q6DPL}g>;Pd zSXn!vUt$P*rjI&JpD9O>V{IViXtONWacwQL zRA;42I+Lq#G=|^cw^95~#qaS4Mx}UUGR*bXfFAGi;NuD{*y-2{vpf`^UJnBqEb275hV*H+rrbw{?b=@{I%h8SRlDwOQm`Yp0sO_AS!>7e(ujI zevV(%$e~p2G)*?zDa~3+SELVse3tC;R%wDQb059nCA(bY9S7Bh2(i{*RfT#ph_&6oLBlbc9a4 ziZ86j7y109g7sI@4gqUMfM$IJO~GwrgjzjR{qXpxwzIA6@XVd=FD#flBQSRaa$gQ1 z_nK!?)Hg}O`W1%NhjB|_NJpT(If93AdeaM-Pe9MEJ!cT-%^k#rywqOApFvzah_=0R zn+9>oAUg9lFBO}wEHa@Mm2~b3OvIJsLJ!WvijeIc1=~9UM!e416;S4R;h)LdApBp& z*XZrn9ee}d)bTBR8{gqf!FPhf7vJU0_xP{i`+0|y8m<;z?4;Q%mx@=-`yuf9v>oB! zHOKI85Z991@7f-MB0M!&grc^eiq;Mxy&ZLdHao(jP^_tTeF&8Vj-d-Vtt} z%o+gX$dDT`ji>I}xCM>agtKvLh$*cFH(LXii*uETOq=St)lj6$Pe!=)Q~Zp)@GD0t z|7&7Wqxn+G$VQRI>jI(6Anw~tX5YVUJI>(qgS8J2VMmY(9Dk(tqki0n@WggRD|ex? zLaMA^{robzAY}al&t^_wvH7J}`NaAvRGeM0nC%mO#is~L@)N04&U@XXX^m!#d+*+J?>YD0ZvFdz z|NIw#bNEXN3A7~9YGEJR1njI=u>G=EarIfjEArq={uBe>%jczUk2p$>Ze0qr4Y@@( zctoJ3r*|QR{Wy?B%0j!gcD`n9T`tD0sEP_?!Je(CF*h5GIe`tcD<|VO4 zATq8B1V(#e5aJojc?HKU+Oin9K_wn%x;L}xtT}c$aPzh{lGaJz9NaoHZtJ4&T{7xv>61G@3ow{N`i;YV-1|IwR&(_8Mga1ZVkXqOu$ z&kqa+flHx*4O{b07k$Y@2Dcvsjk&1pwJ;mdzCcK`L z6b3>04Ow^?>0tdvDH*L>JG5tik1#KT z4H;B2TlV$Lb4*9HOTH|5DzK-0Ne)*$-+fVX^S(7FUnYs&k12I##ZlAJFStFY!zn(f zQ!%L1e!7$( zy~WA#6^zxm=PJATj%|ds>SPO?XwD2#XkOYTCTGXBA{&d1ZOUb|oLTWkvk=}j)2Q*j zM(t@vQVl8?@p2WC)GBi>5#FQ$>IDYk{PfuH-1uHP;dD7x4sE_Hcxx=$p$6l94>>(h z6)?x?p&c&@H?8Rqfet46Ao$M**KfS{2Gc(_o*CD%UD&nQ$IP2ct=g?xWhu%lHS3lA ztbE+nZR&XJGqCoBc}A=B2JS+ZzgD;a zIY?d!EMb|>^yUJOEj%9S+eEVO@38v+f!hH@DTs@Fo>f_;{=8b%yXfgEtuU1 zP^K^1Hh>e{al`;_;l32suue-F`cYyDpXKQze73=7I*8M}Q{nR$6;9zLi7(;hYEWOs zS7<&A>Z?5a8otiOI;c?|HPan^QKnBPu!(-1=7dRe$l18Tt-W*U7VZvw1K*^%x)i<= zOW~_{ja!mh4&UO5z_;;w&{Z+T{4Nfmh z9t@mzL5n}(#oPQZ@YAM{W~z|p8$wzoq^o;@^iCb5ck#2vkbaI|L|M8>sG+jL5`HQH zrt6vd?5t7W>oF*Cb-jmQGRms9qwM^u3gy?K$bW<1a#5)5-)$!?f!`Bl0)H?zI(ha- LUjJ!p`Jev}rIpMo diff --git a/target/classes/com/ruoyi/web/controller/system/SysDictTypeController.class b/target/classes/com/ruoyi/web/controller/system/SysDictTypeController.class deleted file mode 100644 index b4897bbbb540e2eaf3545c14a7bfde85226bdc72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5474 zcmbVQ>wg?o8GcTZX47<V#o z{NG>y4&Wf>8&QMW1nLZ|L%o8TafbpPV3LVb^& zv;AWVwe1}fjcCC71R4!&5N(Ib+AiwJxE8PI`8sQk6}c=pgl2{2bhLF$yR&vmD;!9c4MZBfaLpWwsgCw{Z@^}>Byg93E!e8CZ!N+KEuPNk zlwa~UX?wmxe|yY@c*N39*0OV^&iS@qjN|O?NS?Q5EwkX;8B>&WOVG9(_yl$+7}MGx zuzc&3HJKs6p7!ONJF3{rGgxLICE`Q5DW^MuPb%C~1{t|0hCMUy*yiA+l+KLvHGxl6 zO?_1$jo69ZLYr2FEs>uYD>rTSXDrX_?wDx6UIJRU`sTumfBE84Z zHt0)v$Mpjr6i$Q+E}4?QjP}hL-_M(m@kf%!iBaw4ot&q;mj@(#4-Aj_uAQ5vWl40q zfev)8NLycVC>^9NNJ1c%bVR61T&uzl(zegQejHFpc!g9-d!E8W@kpGUJWs}aobKN9 z)+NF#Wc+}kpD}PhKC5t7YDT9nl;}2|v!5xD5eM&paAy)YsIa|^I1E%@!Oo<$+lU8H z+khhq8$WvE+QK_m!i=@a{O1fDMK_Dw%I9^Cf!iO4SBm$F6hxXCqFs2%z%e|`d<(N# zz{6ISFt)TuWe`tX19}y9w=KMT{XaL}`|sagjZ_)h49 zl+dFFj^isv15Pv9 z|N6%VAH9BaG1A2ITmzQ=jNG2*uHQ+M-_1!or-uvKN$p0hyd~+RtjvVv+S1yi$vS_=roAJv zD6HY26myy27<%#!xru4WEr9M^tUQ+VC1m62ZC`iSQpn6bPO z?Pl%vw(y2=R6=o7!rs=w3a)5JayV({(s7a;*Zv81Q8}P!!3^_OA0C1V=T?9I-L_yV z-8UwfKNd`Id@8Kk5XmL=qHy2J3{<#75Y_2bZM?ID?pdijR)I+;h$`<|a%(as3m(hQ z^W-SBl)~QXc@Og?nLo7Z%#V;_<cTIR&yPRHFNqcjFekVRA%K%jl!PlP;oD0r2}hlP;rTY^Td50-d(>BUSC0g}k~q{44UY{<{wt@J zO~K}&$P*%7))V1u(EBUPRcZ#Kn$h?CJ||sdSn71zrpLEwH?kpcaeQQ;_tfB8`p!rp zM!tGiXPsHrL{EjIc?~g6goNSIwRy!6f7|*A?FUc>29tvV<;bepG!R@e%B9p;BCbc~ z8m^vVmzxQ01njW=$-&-X(!g9gZ#enjkPp7)$bA7KZGuoXnoHLj$DD$j(vRBGQ+CF_ zC(EC|2jos&?Y>Ys@t$86XYMOsH7bh+oGHWKY)0R_g2D6&0(*Ejtl@{f;xE6MIp+9Q z&(Yzyo+H2V`J3mP$x(4!*EtV$oewp5hQG25w8G`D5pIA7pKl5U%yO3qXF1k#+}b&Z zMCT0{T{p3*1}8fA&0*U$F4P9fnu1Los6!{c=?av#hJuk&s=!5DqVi^%E}%%o&r)7Y zhclNsBPh0W{4!^s^Y9gXRUXbld3c^rFW_rj6u*8#Q|makick9jpN4N?=joPR^Z4}9 zx*c_0`&;(R;cmejy4XSq@S9=-{|(uOL)eYOftv?IJ&SI(;_LVZZBcjNa1AB41`gL! zt`RTdo75z(Z=)~a+GW}Z*S^Iy0nx^pm$?42hrRf=#w&QW1nM<>hw4L6-{sTy@O^F; zQ2iVwtIeHJq}ysRhb{?oJZBFFev5T(UG%#dKfn*EZdnLlkA?6@c!MGdp~IVeP7sa-JQ4a!0CA$YB@ZI2fOCb!=dF7{>-6o4ujXa$cmvkBuoB|h`*=G zv-d+~VpD~08z-*8TxWbp8 z2Y`ODT0l?S7SNdzpeHK=IzvF`2QHG8aXh@E*3cpkX zMn7F9hy23_oF_#u#C(bq%M5_33HRi(yH1o$rvu9{tU~US{o>wFvi5b*LSm$9F zo@W?dh=pNOWVn&d=Ng-jT5LYy%w^7qQ%xMpJ?A=YeaP7w{3%#%;nNMi|CzhO2+jQ; DJpdMi diff --git a/target/classes/com/ruoyi/web/controller/system/SysIndexController.class b/target/classes/com/ruoyi/web/controller/system/SysIndexController.class deleted file mode 100644 index 47532b08efb408b56056220cb63e9f3242305b49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1088 zcmb7D-AhzK6hE`>y1H&@W|>*$M<1(21K~rl5r_~4n}J&ki%)mg*=_9JJ2rQ&wum4- zSVEal5Qqi#6eMa88lmlb|3>YHPyPqdnO)Nb3+&;Zk2&Z3&hO4S^ZnP?ZvfB>mjd8{ zDnEFG;Dc%c4I{>wK~2L>)4PcgmQ)0)uXCHL8w9FC-LV>|ArQ+iy)R~Ge{NPwT|Dvmb5|~lRbdWuAnWOF)qoaBz2r*`uF0vyO zrxF#eOtPC?({0|rOPBRb|F4^)_Es?r9k|XOd}IVAE;Q;k^r}&xLG3|}FAilpdK5K5 z?dw?w@~IT=K&it3_0WkjSWbX0IExsa&)oLI#S50d(W+FF6ywu7n(YNF@yyD$XAfe_YomnwU9>0bo+4RsPkDgXcg diff --git a/target/classes/com/ruoyi/web/controller/system/SysLoginController.class b/target/classes/com/ruoyi/web/controller/system/SysLoginController.class deleted file mode 100644 index 6b82525fc35b868ec72d90c21ca3f8fbfbca8077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4007 zcmbVPXLl4;7=CWD$&h6T5Cw@wML0#3|s~dl!4b zuD?Lf@kH>0KfoWQKJRRsWLL9#PIl(bd+&Yg^OpSa=Wo9Q*ohz0XhXY!l!*>>Dy%tg zU$Cu$?ao>!v*&d#ROsC2xK22#(B3~VoyH1u8AzL02~*+roL98`$SXM(S4Gd|%hy)k zE83209XxM8HK~KBKrTiQ<#IX*6o&c-GA&*k=|VSF8(3pvEqWAo)bCx?S;}%l-zyZf zZv~|w)J1Em6lAsE7~8-%tST8vq|2v%T-Duv#hb_H%*O>Bcj_{~Se(aC>Tu?*Ug z))AJ*9oS*uPLs*7OJPfceo^QY0&7a=BHsy1r{#;7Vl?6yOJo(cF9+!aD&z(uei!x_ zxZA{DjQj^kmBk4b$}4L*!P*U}wLm(SEBUnF#3&9Ztew|>(Fp>_t0%|qR+3|4={=fr z5QhvLHgN>^D(tK~@gD)$z=R6XtVyq+>stz={Rxd~h^d#DCH7TdCoyBl!dS6mChilh zg#8KaMs@ZQh2tjfM@FHWyY(H0cx^RPYs^++948G-n0Nq_3ajEguI{o<>L(*xz_Bg~ z(JCMx7GbAMoW?YT1xtkWRIXIHjSNgns2()&5FRGn;$*1QBZX}VpEP&yDM_Bnc{<@N z9yRcoiO2E8BCsugnX-L7Y2$w91jA+d+=P;~s08gk#1D!V!^r!Nf&8 zrI5}>P9ZOBh?(l$7y$9nhPzS=pO(J+jKcn;s4Bz~#y827dNXFh>79&N7>at@37l*} zA9P(Wv_n<`s_SAJcUqOM zzG-o=Cv2H|LhUb#dh60AS?6>RR;-m?H0I8DRi~BvQtM8O+mgc81PGdVc}bZUh%KtV zG<*GGh?VB6Fx$NN=)Oi@kMjDesnE{N(Tg!S4Sdc)wO$jJRY_pnENz;F>lph`Em~>% zZ_sTt|;if)CZxe6-Q)y^sBgcM@tJU#*g!5`Q|Iq+ad~%eB!n6G9*3m85#{1Z>MLAYN}{=l8Qy9?{E8yooU zW4qsiJ+Z{WGS`Yk^2e)qjgnK?gxB!~x%458A-qXF#4X+2dyBufAAt(+4&Eir5WC*v zLg5lkXcL9iO}rqY&tAdy3>DlhTJIZPz&+!Y#nHVf(#LvJS8<{ZUt;Z0Z)yQk+&x43 zBQ$hxM{h@u%{#+qxX8t}aiQg$ki^VXY~~Ki1rGD;2)b~TQM`|ek71A#)OKWO>^S!0 zBzGqGe1N0NWNiLuS;va`DLjbx@d54V!W6Rjkhb*TIP&<2*7V^X%y5+=r<-Hvbl_u3 zU0*x(N$u1pJoPE}HbDJF;T;CL4cukmGXvxN<4)C?U(}p=iL1+1{~;pRcAmTO3T89( z$=uLYcx@0b&JABh)P^f4i38eW2Xx1WAEnsGu$sfvi`>~*W>7P(mrnkQLRK@1U*j7J b5cLIfWy-gtG^%x()bDt%4d2%i;|JhxqFs4E diff --git a/target/classes/com/ruoyi/web/controller/system/SysMenuController.class b/target/classes/com/ruoyi/web/controller/system/SysMenuController.class deleted file mode 100644 index 90063e2d237a3ecfee74d7a28cdd982181db56b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5620 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 eYmq-u-lIVH3mIC5zdDS*0ANp{2DyT#}@ zLzWJatP91&l5AgqB9RCT&b9cANHd#s-ADVmb?)mtg^E>D4?O*@?@h5=m z*y%$8T}gBsID{Ssv*c7w*K_KY-c=o&7FW=Ztz4&45w4l#Qp`4v3_VkpZK*p9UFnha zJ{(4G5`6~xwY6(aYmY@SYDLzi5><1hE*BkTmG)Wem5RHnz&AxNnLA?OC{heZY+rCi zxH}}zFqUr`53R}IotbNx4W%dhaU3U-c)`F)oMOmyuF7ysii#+y0B7EkieWt6?!4?& zxn(yanjFb*^Brz_%Bq-JZBi#^z`z-tWiU2{n&XPE@?wR8nM$_`k3>8~nW#}(OkYc@ z=j;u~5AG!cFXNRKu-SU9?1S}zRJgrq<{f*JkhR6%hF*g`Z{Pw38IsZ~m4uWGw?mx1 zt)=2NDALg6%r^ggSxB!EBw)zEC0u6crv$7KVK%Q){3p|4wtT}Y%C!h)ABK@m zV#GiOqYQ)31Wi_@P_wS!N@VK{r=n;>qa*9O7G5=Q6(-SO*@PkFmf=cAyykRnUN`Ut zu2K0bM@LBYn9fD>`m9V0W8AIiknj5^N9Jg-rhJrccDd(}}it;2w_pDPU)>3)P7K>iBDBQ4)Pvo5vudH*|(sdm^ z>{eSA`5TW^UB}ZvJFECTx6~0g5g$!l$ zLLP6Co$A2D9g1}#mJ=yTo@*(h!*4^g=8Bplm055Fv9jg3))#`55AE=ZN3>j=mh$Qr zmj&Tgt@LmZ(L@mJgihx02*dSQPnwsaWtXGG-xF$q*J`>W$%h%Rk)-z3!-ruq+GK6x zB}zj3Kwvl=z|wOn%x|-R8HNsuf-;Y#ke#K9uz3K)L{-rYA8%=q&@SFPmi*c{+<~BeEt33Km7RQo1dP1 z_bnZZo}^Zla+OMy;c~krVS80+W+P%0Y)@`+Wqx^8w{G01h%1%?)n&6<;`OLZEgE+; zg`#D)9z6BuOT1p3zhyyXAXU~W*9ma9C|mS-KCl6_h)!qET48Qxb^dueq2NVg>v2WZ z*`aJs#f;we1pC*hIO==%YL`aj@wOq(aOt4Z2r&5J%+2TLbvQRW=4#IWj5OIYntddx zk@{8~&n=0&mM*9>jVo32?srvRE1vcpi6={{raJKz{|Sm$^?7cBJ!*!NI!GS|>6@IO zD=nj6x-ZgthfY1Tz7?)?zopYOolII8t%owdf&D_81ZL=0zXr}BOTR`SfLYAZiD4dh zNotz*Ra(1fJ(bx-GV?2p(cf__frZT2E>8bUFS>kVM}46Tx-m*<#(bj}0>#iMnZP}~ zO~zB?dLB74{0`}B*TIu_>4}bFfYv-cU65GBlHNQ3lPJ*cJuH*aX%d>HH9>1C6M}j% zfnA)_h@#=$@R6JjL>ov_SivfpYw@-g@wSfl$y8Ej?gQE|+{cHZ>!r~3z$oS9;x4Z2 zK^W5zUTZ?o|7?KLbC^J6X&1m4Xuuc<6QW_9C!=A|5AYEwek}0`J{9;397Ph)aQZdf zCEAqfk3l>Y()B$^H)A0!5TwQDfwa*AX%k!VkSuJ6S!yF_q6JD&fA=FWQjN@{@DP=d kpy6g_sx2^VI3yI5M{Pf02|OZ%3AjGVCuk?>tQz9pe{A6GTmS$7 diff --git a/target/classes/com/ruoyi/web/controller/system/SysPostController.class b/target/classes/com/ruoyi/web/controller/system/SysPostController.class deleted file mode 100644 index 64f3596ca2d94df535746ca8fb100c14859a26bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5223 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 V%eP%@-*MNM^Z8vt=+qiXdJp`FplSdB diff --git a/target/classes/com/ruoyi/web/controller/system/SysRegisterController.class b/target/classes/com/ruoyi/web/controller/system/SysRegisterController.class deleted file mode 100644 index 4b16a15728504725ee42cdb32c68981367a9c413..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1993 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 diff --git a/target/classes/com/ruoyi/web/controller/system/SysUserController.class b/target/classes/com/ruoyi/web/controller/system/SysUserController.class deleted file mode 100644 index 1761e6ba8191f5e17446a9732d1c6a66188c7d98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12092 zcmbVS34B!5x&OXok~<_95)wgyR1l+t1i0b?LQqLqqe+MfpkmbynF|a|X2!X9fM}~# z>sF!e3yKR?g|AKMJQ_8V zMr+72SEO&5%9llA5&L|m(uTPkD=0`4G^)_4Qm8G=P}^m0_EWL?E!*rfdit#mmYMX^ zn_$_Yq}>(TYEA&Li8@W9DyGU5ruCS~osnLXsj)pn*rkNW^2}&+NxE~JD`_&-XjH4y z2{eVNq1c5?lPoi8_Szy}d&IJtE@<$v^;;(#?+Zm@h8eRXcE6`n^W66Bp`9TkWk;fh z5NHu8$YT7G9c4&QQa})|KYsj5EcNAU;7{+i`$?~??mUy#9Gnnc#in*c* zW6MayBgU%Ty=HU+ZZ-N0Q&Zkd2jYTCRM2#qDXuY#=>%8CXehSTSP>0bR`cAAL7EL^ zj^B4^+(b?-3lv6GS5R&cJQ2AZo;qfSjU4~`p8ZZ)igJlv8D^_jck$sL9`U0*6{ zM-p%;qrzn#TuQf(-KsPuqJug$TBlPNUCcB)Z=DKFWgLl1m~BGD>Wtf+sc4jGir<9mHg883 zYM#4EGFgvK>uCd1P470dcZUEfS)ivko`5ga`j@rG-6)w%m*{jUU6z&5TKn6=PD0DL zmRc~jjyV}FNS8AO!jM4BdWB9`(p9Jf2q~s@eqmfU@VStu)!6)ejuE5~yetv7?6$Ba zm7!OsFhT1|8IuH3Ol9cG%teH3rEMBTblOfk{#0e~Ekwwv${=Hs*jxJr2r=kvztXNj zbBaKakZCm3QWJVqP#wi}O3>9zLF9#Q48s>{yrdw0qH0GaS!8RJ(rG8{0+iWQQH3ox ziOtAbt40mj9~rK>1|`2=r)%h1rm|2X5$$K1nKge)D%NX9Q1w^47qHS7=sJzA*XfIN z19D`BaTaaB-WN(Ro$Fe_kvyN8KQm^nN6g$rU()Dioo=C9nP%kiSt0F5uN_aqK;?E^ zmE@DNq<1N%XF9^)uG5$44%oa`5nwvQFJs;se=>EwRNQT^PG6xr;cfz5vF;{#x^p4R z-E@ye_v&R6=Ka(r4kBL}xmz zoRZ*#XC=KrFKYBHonDf(IyNXi9$p5Pp>zfoz5_ZPp+S^fH<}UTg2>#+t$@H2|uhX|dHC+Qb(MoKHMXpXE9m2Wu%FXEg9ms>h$Kw_}ejkV(uK>^t9|{d(L!&8N2- zaw$6~eP5^d{XLN=5~Lp@E6o{x>V=P9divL|?m52imEmLefArEb!*?DTKJw!5a}N#g zKP3ErtkX|qanOz{%F>VgxlTWoex%GyCgTvlj()Dw2Qp3Cy{>KXm>Em;Z5GWs=r48p zEBb5ckEHgl>Py&2h*`zg)50mff2-5qiQ%gq!#lK;)r0g8St5_ze#glEqmcLb6F2xo zuA^V-^eabX$g&E1hN$2jG4DvrZ{ek`{uwXBcbeiSy`*oXm!zVg@%1C{v7t%^F z&1+~YzKw${T%vO+2RzKB&Ld03cbRba@kW}Mp38OCyu75kh9FNsbba{x;gS1>($Q7N zl{)L5aW*8-V*yhUXp+uVj&V}XpwNJ(TwcL7T&wX3I#1!LOsC3rD3l1nRo#ueWk`6R zWwa!dArHQw?CY_0MUHC7N;hud^98Thux$$RNlYgVAG>$>_Pt8p4+r;tbknin+n)G% z-%}#ube(5#9aB{p8)(}U5vAV*lR`PIO_rRj^Gwkym^9(TUAw|Ec#6)mWw1JY(zbG^=|N!wPNDUO!chy{5L%3KP3YjC=;UuZSz+{D->PRjUHOUm8`NB8@ylbH*o zUGXKz`2rg{pTP@}u@zTI|Lc>cIo|UDSy%9UfX~9lgpsYXc2S<~$Ik4&X1RhF@nVg! zf!xPSir?`|1#-@DHZe`>PT@GC&)gWXA~>RGiN)fuJz7J+cy4>4&Gu$&Of6$eNP4t> zBa~iXz|iqs5%d+!KxIWd3?5bOk(k-(Bx3gjq^3RI8;WiWB_nbo;tmGvZ4vN0%cppe z=SadT>YUnKHqL_R$-YR#9Cg~Z zRAOtX*murcrn3w35ui3lVqw20tTF8lbPIBT0}h4)s9YTqF~JJ!V6qeQQJ7I*ycf#Y}G zg4@k03!!FN>)}~Ur{zQ=F=M?P#(&lG8Kr=k( z-4iNlf0?dm7?s{Ahk4C70vppMe7O;@Vlx9}w~^DVgp*G-Mj5Jg_Pb64o_+!t+B*Iu4C;_fV5l_I zwX))*?9($j!7A4C=OSXNTw>no8-z#GD(B5i&3QF*Jm%MsL!>8wdSW@*nYno}vo8Zk zA*W#*58?lJ#+16(EE#hm`itHja8RfIXpAmeowTGS)A(A5n*mEftMM1IMpeOPI%V|e z!DcPlFQ~DBU8-@dG6l%Y&Mv%NAvw*)-aD%TFB;W%b5m|t$lm5vRcMF?>*|!$;!>Oi zp))QGg<*eW-Z8@`=iF~Rpv)ZI1Yj)&C~xcRStYrqa2i1!ilF_KLn&X<+o(pJo}%!& zLiMK`%H!~(H6HGVEdn^{Kn#yj;bej%;)br3E$df}r_^<&e2K0+Y4*i;BJ7uCb=mF- z;h3h+%3PZA60}5<^SabAbG72{sIqcZ`zldoanUZc(rM!}X}iMnRtxT0KRUi%FE4B- z7~UOfQtvkGL`>DoBj}9m`(Oxdh-yV^4DZ@w365?HFU^XY)t;A*@{BVck1bo%-O>qn zoRDUYunD`J{&-@=?edF$kv&=_x--aBEhGJoy;nugu<2zD`=KOZSHwK`94`Sdg8F*XgXZRrUOj|65Zwus2wP|Vm9@^iGm|0fK#zN!w znNA*iD$14uj!wbZKnZGT0RQo+0x>VeT{(W6@mnHq4f4itzMVIQmsvSu)u_+-C@BE4yd zs!OP&aozw;eI5@=9b%K5Nf$tu<_=g7s|!u#1>zKt9I^i<$4&b$}oAB$TZK9sq+<@epyZ35juHkU|OJQ ze$6QZbgJm9M6AIIqBeYAav@Eni)bdbJ7S)#=%mG*#htv)vBxY&;1aBu;s{)dbrsyj z7gN9yeJX6Do~?$e>RC6Qi4t?bwFk1Uw|E0@H2D&~)Kls*-jr4fn(=4(3QQJbzXK69 z{4Pps(m5aY#+lRr&0iV-1PhmziNezYb%S)yw6Y;;4$#u_#%bjPbU_A9fW zx4Qx&Uy0-2t9))(lUA_C#Zv-Y)XKP>8tKM}AT|lyGr+`f7w3cm2EPIP5giz$H62ZZ z)V_~;++gS~A@^!y33bk^*))HEK6}Z$n$KZ$Gr-$Y0`O!YiU+YFLd7^ryNQPA^CdJ$ zHxAKlY6j--8KS#bh};hz5AGvv{y~~C-(B;Fta&_p&Aghg3Y#H%T3iHN#0LUSL@t19 z5^aOn5nSz{DHNqy2HsS%)bqih+ zphwx}6uiWwWq6;s5(e_3SdHw&$S$lsk4pbYmus~4Qv`HCqoBsSai@V@iTv_4`439f z1C2lLATk}uxQXC8FA<~TgfVBrVFAvdB8o6U7^e~;;_zJyo*%A6~&G!cAElhb2KQ%wVzXAHu0R7qX z82Z^D{lz{y0|X@x{>|vi{yuBjFS3?>IQp{VzGV{a1N3nd*#65P{o4TjN2AO4zr|tx zHxup(>g#DD-n37r8<2Z$qBV3gV&Yc1j&7&>=?;3C_R=wwly~qdS~9-mE|?|_@CPb6 zJJ4xV`UhIGXpsZLOjy$e;ntjtb{pb_93(0kDBO;lFM}xa9cc`DTnt8(=*+Io2N=0a zg-#LB)O*m>au6083!8<0Y(`mE2pn&n1I{Sx^3dT57ZRSB1Id}FYXqmNphw{T`>7sp z&==BUbUr;nSJ9LB7UL;;ke1$%W;r#fx)c*^>jyUj9m9 zSnlMzRA|sv7na#gjRRag$dmU`Wn(R$C~oelG%ZIZm1_r(Oa`fzj{3x%ofdaC-_7^H z0VDyG64yGSN-1rv^Gmz<9qeoRpP-MCB)vI5)WmRP@%9dtwhXK zV!>!igFTm-SXa#>o zGw4GE%rL%z8*wyL9a?uU4`y6|HczF2&l#PFYeNnlzVcWGBj^DoZ7w;&aL} zUqPzNs!1p1KP$~HOTPXzU6#(e%=cWnat_)hE|tj_V;T>KyR zdF>Mr^Z-BU3M#c%0xcIUqgNnG|Q-@ayf$@_HpB( zmmHHGT;&@eUc%2hYT#8cKL>_~!9k^}Z?YHz5MVo1%7c8AUvsX$&2RAc+^aWn^$uoL NVAZ?)ef|MW`#*@{YiIxf diff --git a/target/classes/com/ruoyi/web/controller/tool/TestController.class b/target/classes/com/ruoyi/web/controller/tool/TestController.class deleted file mode 100644 index dea456224b017b54de4448b7f0373d90107b10ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4614 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 V7%teYCHmqbC6QWd2*V~W{RMM)PQ(BJ diff --git a/target/classes/com/ruoyi/web/core/config/SwaggerConfig.class b/target/classes/com/ruoyi/web/core/config/SwaggerConfig.class deleted file mode 100644 index cc9575f25338163c80bab666fc6760da1a884220..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6532 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允许的文件最大大小是:{0}MB! -upload.filename.exceed.length=上传的文件名最长{0}个字符 - -##权限 -no.permission=您没有数据的权限,请联系管理员添加权限 [{0}] -no.create.permission=您没有创建数据的权限,请联系管理员添加权限 [{0}] -no.update.permission=您没有修改数据的权限,请联系管理员添加权限 [{0}] -no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}] -no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}] -no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}] diff --git a/target/classes/logback.xml b/target/classes/logback.xml deleted file mode 100644 index a360583..0000000 --- a/target/classes/logback.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - ${log.pattern} - - - - - - ${log.path}/sys-info.log - - - - ${log.path}/sys-info.%d{yyyy-MM-dd}.log - - 60 - - - ${log.pattern} - - - - INFO - - ACCEPT - - DENY - - - - - ${log.path}/sys-error.log - - - - ${log.path}/sys-error.%d{yyyy-MM-dd}.log - - 60 - - - ${log.pattern} - - - - ERROR - - ACCEPT - - DENY - - - - - - ${log.path}/sys-user.log - - - ${log.path}/sys-user.%d{yyyy-MM-dd}.log - - 60 - - - ${log.pattern} - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/target/classes/mybatis/mybatis-config.xml b/target/classes/mybatis/mybatis-config.xml deleted file mode 100644 index ac47c03..0000000 --- a/target/classes/mybatis/mybatis-config.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - -