From 8dba8d30f6c0791f17d2ff057b06c5204f3a1f29 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 02 三月 2026 09:09:56 +0800
Subject: [PATCH] 客户反馈的bug修改
---
ruoyi-admin/target/classes/application-prod.yml | 58 +---------
ruoyi-system/target/classes/mapper/system/TTrainLibraryMapper.xml | 2
pom.xml | 1
ruoyi-admin/src/main/resources/application.yml | 2
.idea/misc.xml | 5 +
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java | 16 +-
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainValidationDataController.java | 3
/dev/null | 79 ---------------
ruoyi-admin/target/classes/application-test.yml | 42 -------
ruoyi-system/target/classes/mapper/system/SysUserMapper.xml | 12 +
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTrainLibraryController.java | 16 +++
ruoyi-system/target/classes/mapper/system/TPedigreeChartMapper.xml | 24 ++++
ruoyi-system/src/main/java/com/ruoyi/system/model/TSeparationOfCultureDishes.java | 5
.idea/compiler.xml | 4
ruoyi-system/src/main/resources/mapper/system/TTrainLibraryMapper.xml | 2
15 files changed, 84 insertions(+), 187 deletions(-)
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 8ec621c..dea4c01 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -8,7 +8,6 @@
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="ruoyi-framework" />
- <module name="ruoyi-applet" />
<module name="ruoyi-system" />
<module name="ruoyi-common" />
<module name="ruoyi-generator" />
@@ -17,5 +16,8 @@
<module name="ruoyi-admin" />
</profile>
</annotationProcessing>
+ <bytecodeTargetLevel>
+ <module name="ruoyi-applet" target="1.8" />
+ </bytecodeTargetLevel>
</component>
</project>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 0fc7123..a4d6bd3 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -8,6 +8,11 @@
<option value="$PROJECT_DIR$/generator/pom.xml" />
</list>
</option>
+ <option name="ignoredFiles">
+ <set>
+ <option value="$PROJECT_DIR$/ruoyi-applet/pom.xml" />
+ </set>
+ </option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
</project>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 7e522a1..224431a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -186,7 +186,6 @@
<module>ruoyi-quartz</module>
<module>ruoyi-generator</module>
<module>ruoyi-common</module>
- <module>ruoyi-applet</module>
</modules>
<packaging>pom</packaging>
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java
index 729c858..ffcfceb 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java
@@ -62,7 +62,6 @@
private ISysUserService sysUserService;
-
/**
* 获取谱系图分页列表
*/
@@ -70,14 +69,14 @@
@ApiOperation(value = "谱系图-获取谱系图分页列表",response = TPedigreeChartQuery.class)
@PostMapping(value = "/api/t-pedigree-chart/pageList")
public R<PageInfo<TPedigreeChartVO>> pageList(@RequestBody String param) {
-
TPedigreeChartQuery query = JSON.parseObject(param, TPedigreeChartQuery.class);
SysUser sysUser = sysUserService.selectUserById(tokenService.getLoginUser().getUserId());
if (sysUser.getRoleType().equals("2")){
query.setRoleType(2);
List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
.list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
- if (!allProjectIds.isEmpty()){ List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds)
+ if (!allProjectIds.isEmpty()){
+ List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds)
.list().stream().map(TProjectTeam::getId).collect(Collectors.toList());
if (projectIds.isEmpty()){
return R.ok(new PageInfo<>());
@@ -88,19 +87,16 @@
}
}else if (!sysUser.getRoleType().equals("1")){
query.setRoleType(3);
-
List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
.list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
if (!allProjectIds.isEmpty()){ List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds)
.eq(TProjectTeam::getStatus, 1).list().stream().map(TProjectTeam::getId).collect(Collectors.toList());
-
if (projectIds.isEmpty()){
return R.ok(new PageInfo<>());
}
query.setProjectIds(projectIds);
}else{
return R.ok(new PageInfo<>());
-
}
}else{
query.setRoleType(1);
@@ -547,6 +543,7 @@
}
@Log(title = "谱系图-谱系图-删除谱系图", businessType = BusinessType.DELETE)
@ApiOperation(value = "谱系图-删除谱系图")
+ @Transactional
@DeleteMapping(value = "/open/t-pedigree-chart/deleteProgenitor")
public R<Boolean> deleteProgenitor(@RequestParam String id) {
pedigreeChartService.removeById(id);
@@ -556,7 +553,12 @@
@ApiOperation(value = "谱系图-删除菌种传代项",response = TPedigreeChartParentDTO.class)
@DeleteMapping(value = "/open/t-pedigree-chart/deleteProgenitorChild")
public R<Boolean> deleteProgenitorChild(@RequestParam String id) {
- pedigreeChartDetailService.removeById(id);
+ List<TPedigreeChartDetail> children = pedigreeChartDetailService.lambdaQuery().eq(TPedigreeChartDetail::getParentId, id)
+ .list();
+ if (!children.isEmpty()){
+ return R.fail("请先删除子项");
+ }
+ pedigreeChartDetailService.removeById(id);
return R.ok();
}
@Log(title = "谱系图-谱系图-编辑菌种传代/传代数项", businessType = BusinessType.UPDATE)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainValidationDataController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainValidationDataController.java
index 27b04b5..1e613ee 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainValidationDataController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainValidationDataController.java
@@ -124,6 +124,9 @@
List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
.eq(TProjectTeamStaff::getRoleType, 3)
.list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
+ if (allProjectIds.isEmpty()){
+ allProjectIds.add("0");
+ }
TProjectTeam projectTeam = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds)
.eq(TProjectTeam::getStatus, 1)
.orderByDesc(BaseModel::getCreateTime).last("limit 1").one();
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTrainLibraryController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTrainLibraryController.java
index cb597d4..4234335 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTrainLibraryController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTrainLibraryController.java
@@ -2,6 +2,8 @@
import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.annotation.Log;
@@ -237,6 +239,20 @@
}
return R.ok();
}
+
+ public static void main(String[] args) {
+// String jsonStr = "[{\"id\":1,\"num1\":\"00:00\",\"num2\":\"19:00\",\"num3\":1,\"num4\":1,\"num5\":1,\"num6\":1,\"num7\":1}]";
+// JSONArray startingFareJsonArray = JSONArray.parseArray(jsonStr);
+// for (int i = 0; i < startingFareJsonArray.size(); i++) {
+// JSONObject jsonObject = startingFareJsonArray.getJSONObject(i);
+// System.out.println(jsonObject.getString("num1"));
+// System.out.println(jsonObject.getString("num2"));
+// System.out.println(jsonObject.getInteger("num3"));
+// }
+ Long temp =2027571910897541122L;
+ System.out.println(temp%20);
+
+ }
/**
* 新增菌种库
*/
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/MsgUtils.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/MsgUtils.java
deleted file mode 100644
index 119a5ea..0000000
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/MsgUtils.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package com.ruoyi.web.controller.tool;
-
-import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
-import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
-import com.aliyun.tea.TeaException;
-import com.aliyun.teaopenapi.models.Config;
-import com.aliyun.teautil.models.RuntimeOptions;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-
-@Component
-@Slf4j
-public class MsgUtils {
-
- @Value("${code.config.accessKeyId}")
- private String accessKeyId;
- @Value("${code.config.accessKeySecret}")
- private String accessKeySecret;
- @Value("${code.config.signName}")
- private String signName;
- @Value("${code.config.templateCode}")
- private String templateCode;
- @Value("${code.config.signNameTest}")
- private String signNameTest;
- @Value("${code.config.templateCodeTest}")
- private String templateCodeTest;
-
- /**
- * 使用AK&SK初始化账号Client
- * @param accessKeyId
- * @param accessKeySecret
- * @return Client
- * @throws Exception
- */
- public static com.aliyun.dysmsapi20170525.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
- Config config = new Config()
- // 您的 AccessKey ID
- .setAccessKeyId(accessKeyId)
- // 您的 AccessKey Secret
- .setAccessKeySecret(accessKeySecret);
- // 访问的域名
- config.endpoint = "dysmsapi.aliyuncs.com";
- return new com.aliyun.dysmsapi20170525.Client(config);
- }
-
- public void sendMsg(String phone,String code) throws Exception {
- com.aliyun.dysmsapi20170525.Client client = MsgUtils.createClient(accessKeyId,accessKeySecret);
- SendSmsRequest sendSmsRequest = new SendSmsRequest()
- .setSignName(signName)
- .setTemplateCode(templateCode)
- .setPhoneNumbers(phone)
- .setTemplateParam("{\"code\":\""+code+"\"}");
- RuntimeOptions runtime = new RuntimeOptions();
- try {
- // 复制代码运行请自行打印 API 的返回值
- SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, runtime);
- log.info("短信发送成功:{},{}",sendSmsResponse.getBody().getMessage(),sendSmsResponse.getStatusCode());
- } catch (TeaException error) {
- // 如有需要,请打印 error
- com.aliyun.teautil.Common.assertAsString(error.message);
- log.info("短信发送失败:{}",error.message);
- } catch (Exception _error) {
- TeaException error = new TeaException(_error.getMessage(), _error);
- // 如有需要,请打印 error
- com.aliyun.teautil.Common.assertAsString(error.message);
- log.info("短信发送失败:{}",error.message);
- }
- }
-}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/FileUploaderConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/FileUploaderConfig.java
deleted file mode 100644
index d87ab0d..0000000
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/FileUploaderConfig.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.ruoyi.web.core.config;
-
-import com.qcloud.cos.COSClient;
-import com.qcloud.cos.ClientConfig;
-import com.qcloud.cos.auth.BasicCOSCredentials;
-import com.qcloud.cos.auth.COSCredentials;
-import com.qcloud.cos.http.HttpProtocol;
-import com.qcloud.cos.region.Region;
-import lombok.Data;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-@Data
-public class FileUploaderConfig {
-
- /**
- * COS的SecretId
- */
- @Value("${cos.client.accessKey}")
- private String secretId;
- /**
- * COS的SecretKey
- */
- @Value("${cos.client.secretKey}")
- private String secretKey;
- /**
- * 文件上传后访问路径的根路径,后面要最佳文件名字与类型
- */
- @Value("${cos.client.rootSrc}")
- private String rootSrc;
- /**
- * 上传的存储桶的地域
- */
- @Value("${cos.client.bucketAddr}")
- private String bucketAddr;
- /**
- * 存储桶的名字,是自己在存储空间自己创建的,我创建的名字是:qq-test-1303******
- */
- @Value("${cos.client.bucket}")
- private String bucketName;
- /**
- * 文件存放位置
- */
- @Value("${cos.client.location}")
- private String location;
-
- @Value("${file.url.prefix}")
- private String fileUrlPrefix;
-
-
- @Bean
- public COSClient cosClient() {
- // 1 初始化用户身份信息(secretId, secretKey)。
- COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
- // 2.1 设置存储桶的地域(上文获得)
- Region region = new Region(bucketAddr);
- ClientConfig clientConfig = new ClientConfig(region);
- // 2.2 使用https协议传输
- clientConfig.setHttpProtocol(HttpProtocol.https);
- // 生成 cos 客户端
- return new COSClient(cred, clientConfig);
- }
-
-
-}
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index e673e36..dcc106d 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -1,4 +1,4 @@
# 项目相关配置
spring:
profiles:
- active: prod
+ active: test
diff --git a/ruoyi-admin/target/classes/application-prod.yml b/ruoyi-admin/target/classes/application-prod.yml
index 02bf461..097f7da 100644
--- a/ruoyi-admin/target/classes/application-prod.yml
+++ b/ruoyi-admin/target/classes/application-prod.yml
@@ -17,10 +17,10 @@
# 开发环境配置
server:
# 服务器的HTTP端口,默认为8080
- port: 8080
+ port: 8082
servlet:
# 应用的访问路径
- context-path: /
+ context-path: /culture/
tomcat:
# tomcat的URI编码
uri-encoding: UTF-8
@@ -69,20 +69,13 @@
# redis 配置
redis:
# 地址
- # host: 127.0.0.1
- # # 端口,默认为6379
- # port: 6379
- # # 数据库索引
- # database: 0
- # # 密码
- # password: 123456
host: 127.0.0.1
# 端口,默认为6379
- port: 16379
+ port: 6379
# 数据库索引
database: 0
# 密码
- password: 8f5z9g52gx4bg
+ password: 123456
# 连接超时时间
timeout: 10s
lettuce:
@@ -102,9 +95,9 @@
druid:
# 主库数据源
master:
- url: jdbc:mysql://172.27.0.13:3306/xizang?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai
- username: xzgt
- password: changyun!6f2gshj6h3j
+ url: jdbc:mysql://127.0.0.1:10633/strain_library?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai
+ username: root
+ password: Laboratory@2025!
# 从库数据源
slave:
# 从数据源开关/默认关闭
@@ -199,39 +192,6 @@
accessPath: /file/
allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF|.xls|.xlsx|.rar|.zip|.rar
url:
+ # prefix: http://localhost:${server.port}${server.servlet.context-path}
prefix: https://xzgt.test.591taxi.cn:${server.port}${server.servlet.context-path}
-wx:
- conf:
- appId: wxe91f1af7638aa5dd
- secretId: a787e1a462715604e0c9528b6d8960d1
-#OSS及短信配置
-code:
- config:
- templateCodeTest: "SMS_154950909"
- signNameTest: "阿里云短信测试"
- accessKeyId: LTAI5tAdba8HtT1C6UqtSxBt
- accessKeySecret: 0SRb6XGkciQDPWn2rYqbJtq2qRMDY8
- signName: "四川金达通信工程"
- templateCode: "SMS_293985284"
-cos:
- client:
- accessKey: AKIDCF5EF2c0DE1e5JK8r4EGJF4mNsMgp26x
- secretKey: lLl184rUyFOOE0d5KNGC3kmfNsCWk4GU
- bucket: xzgttest-1305134071
- bucketAddr: ap-chengdu
- rootSrc: https://xzgttest-1305134071.cos.ap-chengdu.myqcloud.com/
- location: /xizang
-sms:
- enable: true
- appId: 1400957506
- secretid: AKIDCF5EF2c0DE1e5JK8r4EGJF4mNsMgp26x
- secretkey: lLl184rUyFOOE0d5KNGC3kmfNsCWk4GU
- sign: 畅云出行
-com:
- taxi591:
- bank:
- cer-path: /usr/local/bank/TrustPay.cer
- base-url: http://hello.enjoy.abchina.com
- enable: true
- keystore-password: gggs6666
- pfx-path: /usr/local/bank/103882597000441.pfx
\ No newline at end of file
+
diff --git a/ruoyi-admin/target/classes/application-test.yml b/ruoyi-admin/target/classes/application-test.yml
index adf7853..c1004b2 100644
--- a/ruoyi-admin/target/classes/application-test.yml
+++ b/ruoyi-admin/target/classes/application-test.yml
@@ -17,7 +17,7 @@
# 开发环境配置
server:
# 服务器的HTTP端口,默认为8080
- port: 8081
+ port: 8082
servlet:
# 应用的访问路径
context-path: /
@@ -88,7 +88,7 @@
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
-# 数据源配置
+ # 数据源配置
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
@@ -192,40 +192,6 @@
accessPath: /file/
allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF|.xls|.xlsx|.rar|.zip|.rar
url:
-# prefix: http://localhost:${server.port}${server.servlet.context-path}
+ # prefix: http://localhost:${server.port}${server.servlet.context-path}
prefix: https://xzgt.test.591taxi.cn:${server.port}${server.servlet.context-path}
-wx:
- conf:
- appId: wxe91f1af7638aa5dd
- secretId: a787e1a462715604e0c9528b6d8960d1
-#OSS及短信配置
-code:
- config:
- templateCodeTest: "SMS_154950909"
- signNameTest: "阿里云短信测试"
- accessKeyId: LTAI5tAdba8HtT1C6UqtSxBt
- accessKeySecret: 0SRb6XGkciQDPWn2rYqbJtq2qRMDY8
- signName: "四川金达通信工程"
- templateCode: "SMS_293985284"
-cos:
- client:
- accessKey: AKIDCF5EF2c0DE1e5JK8r4EGJF4mNsMgp26x
- secretKey: lLl184rUyFOOE0d5KNGC3kmfNsCWk4GU
- bucket: xzgttest-1305134071
- bucketAddr: ap-chengdu
- rootSrc: https://xzgttest-1305134071.cos.ap-chengdu.myqcloud.com/
- location: /xizang
-sms:
- enable: true
- appId: 1400957506
- secretid: AKIDCF5EF2c0DE1e5JK8r4EGJF4mNsMgp26x
- secretkey: lLl184rUyFOOE0d5KNGC3kmfNsCWk4GU
- sign: 畅云出行
-com:
- taxi591:
- bank:
- cer-path: D:\workspaces\工作文件\畅云\农业银行\正式\TrustPay.cer
- base-url: http://hello.enjoy.abchina.com
- enable: true
- keystore-password: gggs6666
- pfx-path: D:\workspaces\工作文件\畅云\农业银行\正式\103882597000441.pfx
\ No newline at end of file
+
diff --git a/ruoyi-applet/pom.xml b/ruoyi-applet/pom.xml
deleted file mode 100644
index 13ffff9..0000000
--- a/ruoyi-applet/pom.xml
+++ /dev/null
@@ -1,185 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <parent>
- <artifactId>ruoyi</artifactId>
- <groupId>com.ruoyi</groupId>
- <version>3.8.6</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <packaging>jar</packaging>
- <artifactId>ruoyi-applet</artifactId>
-
- <description>
- web服务入口
- </description>
-
- <dependencies>
- <dependency>
- <groupId>com.aliyun.oss</groupId>
- <artifactId>aliyun-sdk-oss</artifactId>
- <version>3.8.0</version>
- </dependency>
- <!-- spring-boot-devtools -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-devtools</artifactId>
- <optional>true</optional> <!-- 表示依赖不会传递 -->
- </dependency>
-
- <!-- swagger3-->
- <dependency>
- <groupId>io.springfox</groupId>
- <artifactId>springfox-boot-starter</artifactId>
- </dependency>
-
-<!-- <dependency>-->
-<!-- <groupId>com.github.xiaoymin</groupId>-->
-<!-- <artifactId>swagger-bootstrap-ui</artifactId>-->
-<!-- <version>1.9.6</version>-->
-<!-- </dependency>-->
-
-
- <!-- 防止进入swagger页面报类型转换错误,排除3.0.0中的引用,手动增加1.6.2版本 -->
- <dependency>
- <groupId>io.swagger</groupId>
- <artifactId>swagger-models</artifactId>
- <version>1.6.2</version>
- </dependency>
-
- <!-- Mysql驱动包 -->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- </dependency>
-
- <!-- 核心模块-->
- <dependency>
- <groupId>com.ruoyi</groupId>
- <artifactId>ruoyi-framework</artifactId>
-<!-- <exclusions>-->
-<!-- <exclusion>-->
-<!-- <groupId>com.github.pagehelper</groupId>-->
-<!-- <artifactId>pagehelper-spring-boot-starter</artifactId>-->
-<!-- </exclusion>-->
-<!-- </exclusions>-->
- </dependency>
-
- <!-- 定时任务-->
- <dependency>
- <groupId>com.ruoyi</groupId>
- <artifactId>ruoyi-quartz</artifactId>
-<!-- <exclusions>-->
-<!-- <exclusion>-->
-<!-- <groupId>com.github.pagehelper</groupId>-->
-<!-- <artifactId>pagehelper-spring-boot-starter</artifactId>-->
-<!-- </exclusion>-->
-<!-- </exclusions>-->
- </dependency>
-
- <!-- 代码生成-->
- <dependency>
- <groupId>com.ruoyi</groupId>
- <artifactId>ruoyi-generator</artifactId>
-<!-- <exclusions>-->
-<!-- <exclusion>-->
-<!-- <groupId>com.github.pagehelper</groupId>-->
-<!-- <artifactId>pagehelper-spring-boot-starter</artifactId>-->
-<!-- </exclusion>-->
-<!-- </exclusions>-->
- </dependency>
-
- <!-- zxing生成二维码 -->
- <dependency>
- <groupId>com.google.zxing</groupId>
- <artifactId>core</artifactId>
- <version>3.3.3</version>
- </dependency>
-
- <dependency>
- <groupId>com.google.zxing</groupId>
- <artifactId>javase</artifactId>
- <version>3.3.3</version>
- </dependency>
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <version>5.1.3.RELEASE</version>
- </dependency>
-<!-- <dependency>-->
-<!-- <groupId>org.apache.httpcomponents</groupId>-->
-<!-- <artifactId>httpcore</artifactId>-->
-<!-- <version>4.3.2</version>-->
-<!-- </dependency>-->
-
- <dependency>
- <groupId>com.squareup.okhttp3</groupId>
- <artifactId>okhttp</artifactId>
- <version>4.9.3</version>
- </dependency>
-
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>fastjson</artifactId>
- <version>1.2.78</version>
- </dependency>
-
- <!-- easypoi -->
- <dependency>
- <groupId>cn.afterturn</groupId>
- <artifactId>easypoi-base</artifactId>
- <version>3.0.3</version>
- </dependency>
- <dependency>
- <groupId>cn.afterturn</groupId>
- <artifactId>easypoi-web</artifactId>
- <version>3.0.3</version>
- </dependency>
- <dependency>
- <groupId>cn.afterturn</groupId>
- <artifactId>easypoi-annotation</artifactId>
- <version>3.0.3</version>
- </dependency>
-
- <!-- 阿里云短信 -->
- <dependency>
- <groupId>com.aliyun</groupId>
- <artifactId>dysmsapi20170525</artifactId>
- <version>2.0.10</version>
- </dependency>
-
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <version>2.5.15</version>
- <configuration>
- <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
- </configuration>
- <executions>
- <execution>
- <goals>
- <goal>repackage</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <version>3.1.0</version>
- <configuration>
- <failOnMissingWebXml>false</failOnMissingWebXml>
- <warName>${project.artifactId}</warName>
- </configuration>
- </plugin>
- </plugins>
- <finalName>${project.artifactId}</finalName>
- </build>
-
-</project>
\ No newline at end of file
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/RuoYiAppletApplication.java b/ruoyi-applet/src/main/java/com/ruoyi/RuoYiAppletApplication.java
deleted file mode 100644
index d7127b6..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/RuoYiAppletApplication.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.ruoyi;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
-import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.context.annotation.Bean;
-import org.springframework.core.env.Environment;
-import org.springframework.http.client.SimpleClientHttpRequestFactory;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.web.client.RestTemplate;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-
-/**
- * 启动程序
- *
- * @author ruoyi
- */
-@Slf4j
-@EnableScheduling//开启定时任务
-@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
-public class RuoYiAppletApplication
-{
- public static void main(String[] args) {
-
-
- ConfigurableApplicationContext application = SpringApplication.run(RuoYiAppletApplication.class, args);
- try {
-
- Environment env = application.getEnvironment();
- log.info("\n----------------------------------------------------------\n\t" +
- "应用 '{}' 运行成功! 访问连接:\n\t" +
- "Swagger文档: \t\thttp://{}:{}/doc.html\n" +
- "----------------------------------------------------------",
- env.getProperty("spring.application.name", "后台"),
- InetAddress.getLocalHost().getHostAddress(),
- env.getProperty("server.port", "8081"));
- }catch (Exception e){
- e.printStackTrace();
- }
- }
-
- /**
- * 当不存在此 wxRestTemplate 使用此方法的bean注入
- *
- * @return
- */
- @Bean
- @ConditionalOnMissingBean(name = "restTemplate")
- public RestTemplate wxRestTemplate() {
- //复杂构造函数的使用
- SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
- // 设置超时
- requestFactory.setConnectTimeout(6000);
- requestFactory.setReadTimeout(6000);
- RestTemplate restTemplate = new RestTemplate();
- restTemplate.setRequestFactory(requestFactory);
- return restTemplate;
- }
-
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/RuoYiServletInitializer.java b/ruoyi-applet/src/main/java/com/ruoyi/RuoYiServletInitializer.java
deleted file mode 100644
index 7c8401b..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/RuoYiServletInitializer.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.ruoyi;
-
-import org.springframework.boot.builder.SpringApplicationBuilder;
-import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
-
-/**
- * web容器中进行部署
- *
- * @author ruoyi
- */
-public class RuoYiServletInitializer extends SpringBootServletInitializer
-{
- @Override
- protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
- {
- return application.sources(RuoYiAppletApplication.class);
- }
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/aspect/StateAspect.java b/ruoyi-applet/src/main/java/com/ruoyi/web/aspect/StateAspect.java
deleted file mode 100644
index 20e5b87..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/aspect/StateAspect.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.ruoyi.web.aspect;
-
-import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.common.core.domain.model.LoginUser;
-import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.system.service.ISysRoleService;
-import com.ruoyi.system.service.ISysUserService;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Before;
-import org.aspectj.lang.annotation.Pointcut;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-
-@Aspect
-@Component
-
-public class StateAspect {
-
- @Autowired
- private ISysUserService sysUserService;
-
- @Autowired
- private ISysRoleService roleService;
- @Pointcut("execution(* com.ruoyi.web.controller.manage.*.*(..)) && !execution( * com.ruoyi.web.controller.manage.LoginController.*.*(..))")
- public void state(){}
-
- @Before("state()")
- public void isfrozen(){
- System.err.println("进入切面");
- LoginUser loginUser = SecurityUtils.getLoginUser();
- SysUser sysUser = sysUserService.selectUserById(loginUser.getUserId());
- if (sysUser.getStatus().equals("1")){
- throw new ServiceException("当前账号已停用");
- }
- if (roleService.selectRoleByUserId(sysUser.getUserId()).getStatus()==1){
- throw new ServiceException("当前角色已停用");
- };
-
-
- }
-
-
- }
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java
deleted file mode 100644
index d2d6e8c..0000000
--- a/ruoyi-applet/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/ruoyi-applet/src/main/java/com/ruoyi/web/controller/common/CommonController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/common/CommonController.java
deleted file mode 100644
index cec5006..0000000
--- a/ruoyi-applet/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<MultipartFile> files) throws Exception
- {
- try
- {
- // 上传文件路径
- String filePath = RuoYiConfig.getUploadPath();
- List<String> urls = new ArrayList<String>();
- List<String> fileNames = new ArrayList<String>();
- List<String> newFileNames = new ArrayList<String>();
- List<String> originalFilenames = new ArrayList<String>();
- 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/ruoyi-applet/src/main/java/com/ruoyi/web/controller/interceptor/MybatisConfiguration.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/interceptor/MybatisConfiguration.java
deleted file mode 100644
index 5390dc1..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/interceptor/MybatisConfiguration.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.ruoyi.web.controller.interceptor;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class MybatisConfiguration {
-
- /**
- * 注册拦截器
- */
- @Bean
- public MybatisInterceptor getMybatisInterceptor() {
- return new MybatisInterceptor();
- }
-
-}
\ No newline at end of file
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/interceptor/MybatisInterceptor.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/interceptor/MybatisInterceptor.java
deleted file mode 100644
index 57a4ff0..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/interceptor/MybatisInterceptor.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package com.ruoyi.web.controller.interceptor;
-
-import com.ruoyi.framework.web.service.TokenService;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.ibatis.executor.Executor;
-import org.apache.ibatis.mapping.MappedStatement;
-import org.apache.ibatis.mapping.SqlCommandType;
-import org.apache.ibatis.plugin.*;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.lang.reflect.Field;
-import java.util.*;
-
-@Slf4j
-@Component
-@Intercepts({ @Signature(type = Executor.class, method = "update", args = { MappedStatement.class, Object.class }) })
-public class MybatisInterceptor implements Interceptor {
-
- @Autowired
- private TokenService tokenService;
-
- @Override
- public Object intercept(Invocation invocation) throws Throwable {
- MappedStatement mappedStatement = (MappedStatement) invocation.getArgs()[0];
- log.debug("{}:"+mappedStatement);
- log.debug("------sqlId------" + mappedStatement.getId());
- if("com.ruoyi.system.mapper.SysLogininforMapper.insertLogininfor".equals(mappedStatement.getId())){
- return invocation.proceed();
- }
- // sql类型:insert、update、select、delete
- SqlCommandType sqlCommandType = mappedStatement.getSqlCommandType();
- Object parameter = invocation.getArgs()[1];
- log.debug("------sqlCommandType------" + sqlCommandType);
-
- if (parameter == null) {
- return invocation.proceed();
- }
-
- // 当sql为新增或更新类型时,自动填充操作人相关信息
- if (SqlCommandType.INSERT == sqlCommandType) {
-
- Field[] fields = getAllFields(parameter);
- for (Field field : fields) {
- try {
- // 注入创建人
- if ("createBy".equals(field.getName())) {
- // 获取当前登录用户信息
- if(Objects.nonNull(tokenService.getLoginUser())){
- String userName = tokenService.getLoginUser().getUser().getUserName();
- field.setAccessible(true);
- field.set(parameter, userName);
- field.setAccessible(false);
- }
- }
- //注入创建时间
- if ("createTime".equals(field.getName())) {
- field.setAccessible(true);
-// field.set(parameter, new Date());
- field.setAccessible(false);
- }
- } catch (Exception e) {
- log.error("failed to insert data, exception = ", e);
- }
- }
- }
- if (SqlCommandType.UPDATE == sqlCommandType) {
- Field[] fields = getAllFields(parameter);
- for (Field field : fields) {
- try {
- if ("updateBy".equals(field.getName())) {
- // 获取当前登录用户信息
- if(Objects.nonNull(tokenService.getLoginUser())){
- String userName = tokenService.getLoginUser().getUser().getUserName();
- field.setAccessible(true);
- field.set(parameter, userName);
- field.setAccessible(false);
- }
- }
- if ("updateTime".equals(field.getName())) {
- field.setAccessible(true);
-// field.set(parameter, new Date());
- field.setAccessible(false);
- }
- } catch (Exception e) {
- log.error("failed to update data, exception = ", e);
- }
- }
- }
- return invocation.proceed();
- }
-
- @Override
- public Object plugin(Object target) {
- return Plugin.wrap(target, this);
- }
-
- @Override
- public void setProperties(Properties properties) {
- // TODO Auto-generated method stub
- }
-
- /**
- * 获取类的所有属性,包括父类
- *
- * @param object
- * @return
- */
- private Field[] getAllFields(Object object) {
- Class<?> clazz = object.getClass();
- List<Field> fieldList = new ArrayList<>();
- while (clazz != null) {
- fieldList.addAll(new ArrayList<>(Arrays.asList(clazz.getDeclaredFields())));
- clazz = clazz.getSuperclass();
- }
- Field[] fields = new Field[fieldList.size()];
- fieldList.toArray(fields);
- return fields;
- }
-
-}
\ No newline at end of file
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java
deleted file mode 100644
index ef8c5dd..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java
+++ /dev/null
@@ -1,113 +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 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<String, String> redisTemplate;
-
- private final static List<SysCache> caches = new ArrayList<SysCache>();
- {
- 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, "密码错误次数"));
- }
-
- @GetMapping()
- public AjaxResult getInfo() throws Exception
- {
- Properties info = (Properties) redisTemplate.execute((RedisCallback<Object>) connection -> connection.info());
- Properties commandStats = (Properties) redisTemplate.execute((RedisCallback<Object>) connection -> connection.info("commandstats"));
- Object dbSize = redisTemplate.execute((RedisCallback<Object>) connection -> connection.dbSize());
-
- Map<String, Object> result = new HashMap<>(3);
- result.put("info", info);
- result.put("dbSize", dbSize);
-
- List<Map<String, String>> pieList = new ArrayList<>();
- commandStats.stringPropertyNames().forEach(key -> {
- Map<String, String> 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);
- }
-
- @GetMapping("/getNames")
- public AjaxResult cache()
- {
- return AjaxResult.success(caches);
- }
-
- @GetMapping("/getKeys/{cacheName}")
- public AjaxResult getCacheKeys(@PathVariable String cacheName)
- {
- Set<String> cacheKeys = redisTemplate.keys(cacheName + "*");
- return AjaxResult.success(cacheKeys);
- }
-
- @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);
- }
-
- @DeleteMapping("/clearCacheName/{cacheName}")
- public AjaxResult clearCacheName(@PathVariable String cacheName)
- {
- Collection<String> cacheKeys = redisTemplate.keys(cacheName + "*");
- redisTemplate.delete(cacheKeys);
- return AjaxResult.success();
- }
-
- @DeleteMapping("/clearCacheKey/{cacheKey}")
- public AjaxResult clearCacheKey(@PathVariable String cacheKey)
- {
- redisTemplate.delete(cacheKey);
- return AjaxResult.success();
- }
-
- @DeleteMapping("/clearCacheAll")
- public AjaxResult clearCacheAll()
- {
- Collection<String> cacheKeys = redisTemplate.keys("*");
- redisTemplate.delete(cacheKeys);
- return AjaxResult.success();
- }
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/monitor/ServerController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/monitor/ServerController.java
deleted file mode 100644
index 60f09bb..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/monitor/ServerController.java
+++ /dev/null
@@ -1,26 +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
-{
- @GetMapping()
- public AjaxResult getInfo() throws Exception
- {
- Server server = new Server();
- server.copyTo();
- return AjaxResult.success(server);
- }
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java
deleted file mode 100644
index eb748ba..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java
+++ /dev/null
@@ -1,77 +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;
-
- @GetMapping("/list")
- public TableDataInfo list(SysLogininfor logininfor)
- {
-// startPage();
- List<SysLogininfor> list = logininforService.selectLogininforList(logininfor);
- return getDataTable(list);
- }
-
-// @Log(title = "登录日志", businessType = BusinessType.EXPORT)
-// @PostMapping("/export")
-// public void export(HttpServletResponse response, SysLogininfor logininfor)
-// {
-// List<SysLogininfor> list = logininforService.selectLogininforList(logininfor);
-// ExcelUtil<SysLogininfor> util = new ExcelUtil<SysLogininfor>(SysLogininfor.class);
-// util.exportExcel(response, list, "登录日志");
-// }
-
- @Log(title = "登录日志", businessType = BusinessType.DELETE)
- @DeleteMapping("/{infoIds}")
- public AjaxResult remove(@PathVariable Long[] infoIds)
- {
- return toAjax(logininforService.deleteLogininforByIds(infoIds));
- }
-
- @Log(title = "登录日志", businessType = BusinessType.CLEAN)
- @DeleteMapping("/clean")
- public AjaxResult clean()
- {
- logininforService.cleanLogininfor();
- return success();
- }
-
- @Log(title = "账户解锁", businessType = BusinessType.OTHER)
- @GetMapping("/unlock/{userName}")
- public AjaxResult unlock(@PathVariable("userName") String userName)
- {
- passwordService.clearLoginRecordCache(userName);
- return success();
- }
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java
deleted file mode 100644
index 4de770c..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java
+++ /dev/null
@@ -1,112 +0,0 @@
-package com.ruoyi.web.controller.monitor;
-
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.system.service.ISysOperLogService;
-import io.swagger.annotations.Api;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * 操作日志记录
- *
- * @author ruoyi
- */
-@Slf4j
-@Api(tags = "操作日志记录")
-@RestController
-@RequestMapping("/monitor/operlog")
-public class SysOperlogController extends BaseController
-{
- @Autowired
- private ISysOperLogService operLogService;
-
-// @ApiOperation(value = "操作日志分页列表")
-// @PostMapping("/list")
-// public AjaxResult list(@RequestBody SysOperLogQuery query)
-// {
-// startPage(query.getPageNum(), query.getPageSize());
-// List<SysOperLogVO> list = operLogService.selectOperLogPageList(query);
-// operLogService.getLogDetail(list);
-// return AjaxResult.success(getDataTable(list));
-// }
-
- /**
- * 查询操作日志列表导出
- */
-// @ApiOperation(value = "查询操作日志列表导出")
-// @Log(title = "操作日志-查询操作日志列表导出", businessType = BusinessType.EXPORT)
-// @PostMapping("/exportOperLog")
-// public void exportOperLog(@RequestBody SysOperLogQuery query)
-// {
-// List<SysOperLogVO> list = operLogService.selectOperLogPageList(query);
-// List<TOperLogExport> operLogExports = new ArrayList<>();
-// for (SysOperLogVO sysOperLogVO : list) {
-// TOperLogExport operLogExport = new TOperLogExport();
-// BeanUtils.copyProperties(sysOperLogVO,operLogExport);
-// operLogService.getLogDetail(list);
-// operLogExports.add(operLogExport);
-// }
-// Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TOperLogExport.class, operLogExports);
-// HttpServletResponse response = WebUtils.response();
-// response.setContentType("application/vnd.ms-excel");
-// response.setCharacterEncoding("utf-8");
-// ServletOutputStream outputStream = null;
-// try {
-// String fileName = URLEncoder.encode("操作日志信息.xls", "utf-8");
-// response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
-// response.setContentType("application/vnd.ms-excel;charset=UTF-8");
-// response.setHeader("Pragma", "no-cache");
-// response.setHeader("Cache-Control", "no-cache");
-// outputStream = response.getOutputStream();
-// workbook.write(outputStream);
-// } catch (IOException e) {
-// e.printStackTrace();
-// log.error("操作日志导出信息导出失败!");
-// } finally {
-// try {
-// outputStream.close();
-// } catch (IOException e) {
-// e.printStackTrace();
-// }
-// }
-// }
-
-// @Log(title = "操作日志", businessType = BusinessType.EXPORT)
-// @PostMapping("/export")
-// public void export(HttpServletResponse response, SysOperLog operLog)
-// {
-// List<SysOperLog> list = operLogService.selectOperLogList(operLog);
-// ExcelUtil<SysOperLog> util = new ExcelUtil<SysOperLog>(SysOperLog.class);
-// util.exportExcel(response, list, "操作日志");
-// }
-
- @Log(title = "操作日志", businessType = BusinessType.DELETE)
- @DeleteMapping("/deleteById/{operIds}")
- public AjaxResult remove(@PathVariable String operIds)
- {
- String[] split = operIds.split(",");
- List<Long> id = new ArrayList<>();
- for (String s : split) {
- id.add(Long.valueOf(s));
- }
- return AjaxResult.success(operLogService.deleteOperLogByIds(id));
- }
-
- @Log(title = "操作日志", businessType = BusinessType.CLEAN)
- @DeleteMapping("/clean")
- public AjaxResult clean()
- {
- operLogService.cleanOperLog();
- return success();
- }
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java
deleted file mode 100644
index c13bcfc..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java
+++ /dev/null
@@ -1,81 +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;
-
- @GetMapping("/list")
- public TableDataInfo list(String ipaddr, String userName)
- {
- Collection<String> keys = redisCache.keys(CacheConstants.LOGIN_TOKEN_KEY + "*");
- List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>();
- 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);
- }
-
- /**
- * 强退用户
- */
- @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/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java
deleted file mode 100644
index 706ccf2..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java
+++ /dev/null
@@ -1,115 +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;
-
-// @Log(title = "参数管理", businessType = BusinessType.EXPORT)
-// @PostMapping("/export")
-// public void export(HttpServletResponse response, SysConfig config)
-// {
-// List<SysConfig> list = configService.selectConfigList(config);
-// ExcelUtil<SysConfig> util = new ExcelUtil<SysConfig>(SysConfig.class);
-// util.exportExcel(response, list, "参数数据");
-// }
-
- /**
- * 根据参数编号获取详细信息
- */
- @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));
- }
-
- /**
- * 新增参数配置
- */
- @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));
- }
-
- /**
- * 修改参数配置
- */
- @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));
- }
-
- /**
- * 删除参数配置
- */
- @Log(title = "参数管理", businessType = BusinessType.DELETE)
- @DeleteMapping("/{configIds}")
- public AjaxResult remove(@PathVariable Long[] configIds)
- {
- configService.deleteConfigByIds(configIds);
- return success();
- }
-
- /**
- * 刷新参数缓存
- */
- @Log(title = "参数管理", businessType = BusinessType.CLEAN)
- @DeleteMapping("/refreshCache")
- public AjaxResult refreshCache()
- {
- configService.resetConfigCache();
- return success();
- }
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java
deleted file mode 100644
index 990d0f7..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java
+++ /dev/null
@@ -1,126 +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;
-
- /**
- * 获取部门列表
- */
- @GetMapping("/list")
- public AjaxResult list(SysDept dept)
- {
- List<SysDept> depts = deptService.selectDeptList(dept);
- return AjaxResult.success(depts);
- }
-
- /**
- * 查询部门列表(排除节点)
- */
- @GetMapping("/list/exclude/{deptId}")
- public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId)
- {
- List<SysDept> depts = deptService.selectDeptList(new SysDept());
- depts.removeIf(d -> d.getDeptId().intValue() == deptId || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + ""));
- return AjaxResult.success(depts);
- }
-
- /**
- * 根据部门编号获取详细信息
- */
- @GetMapping(value = "/{deptId}")
- public AjaxResult getInfo(@PathVariable Long deptId)
- {
- deptService.checkDeptDataScope(deptId);
- return AjaxResult.success(deptService.selectDeptById(deptId));
- }
-
- /**
- * 新增部门
- */
- @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 AjaxResult.success(deptService.insertDept(dept));
- }
-
- /**
- * 修改部门
- */
- @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 AjaxResult.success(deptService.updateDept(dept));
- }
-
- /**
- * 删除部门
- */
- @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 AjaxResult.success(deptService.deleteDeptById(deptId));
- }
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
deleted file mode 100644
index 23b0c23..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
+++ /dev/null
@@ -1,115 +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;
-
- @GetMapping("/list")
- public TableDataInfo list(SysDictData dictData)
- {
-// startPage();
- List<SysDictData> list = dictDataService.selectDictDataList(dictData);
- return getDataTable(list);
- }
-
-// @Log(title = "字典数据", businessType = BusinessType.EXPORT)
-// @PostMapping("/export")
-// public void export(HttpServletResponse response, SysDictData dictData)
-// {
-// List<SysDictData> list = dictDataService.selectDictDataList(dictData);
-// ExcelUtil<SysDictData> util = new ExcelUtil<SysDictData>(SysDictData.class);
-// util.exportExcel(response, list, "字典数据");
-// }
-
- /**
- * 查询字典数据详细
- */
- @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<SysDictData> data = dictTypeService.selectDictDataByType(dictType);
- if (StringUtils.isNull(data))
- {
- data = new ArrayList<SysDictData>();
- }
- return success(data);
- }
-
- /**
- * 新增字典类型
- */
- @Log(title = "字典数据", businessType = BusinessType.INSERT)
- @PostMapping
- public AjaxResult add(@Validated @RequestBody SysDictData dict)
- {
- dict.setCreateBy(getUsername());
- return toAjax(dictDataService.insertDictData(dict));
- }
-
- /**
- * 修改保存字典类型
- */
- @Log(title = "字典数据", businessType = BusinessType.UPDATE)
- @PutMapping
- public AjaxResult edit(@Validated @RequestBody SysDictData dict)
- {
- dict.setUpdateBy(getUsername());
- return toAjax(dictDataService.updateDictData(dict));
- }
-
- /**
- * 删除字典类型
- */
- @Log(title = "字典类型", businessType = BusinessType.DELETE)
- @DeleteMapping("/{dictCodes}")
- public AjaxResult remove(@PathVariable Long[] dictCodes)
- {
- dictDataService.deleteDictDataByIds(dictCodes);
- return success();
- }
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java
deleted file mode 100644
index 1c5ab6b..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java
+++ /dev/null
@@ -1,124 +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;
-
- @GetMapping("/list")
- public TableDataInfo list(SysDictType dictType)
- {
-// startPage();
- List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
- return getDataTable(list);
- }
-
-// @Log(title = "字典类型", businessType = BusinessType.EXPORT)
-// @PostMapping("/export")
-// public void export(HttpServletResponse response, SysDictType dictType)
-// {
-// List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
-// ExcelUtil<SysDictType> util = new ExcelUtil<SysDictType>(SysDictType.class);
-// util.exportExcel(response, list, "字典类型");
-// }
-
- /**
- * 查询字典类型详细
- */
- @GetMapping(value = "/{dictId}")
- public AjaxResult getInfo(@PathVariable Long dictId)
- {
- return success(dictTypeService.selectDictTypeById(dictId));
- }
-
- /**
- * 新增字典类型
- */
- @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));
- }
-
- /**
- * 修改字典类型
- */
- @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));
- }
-
- /**
- * 删除字典类型
- */
- @Log(title = "字典类型", businessType = BusinessType.DELETE)
- @DeleteMapping("/{dictIds}")
- public AjaxResult remove(@PathVariable Long[] dictIds)
- {
- dictTypeService.deleteDictTypeByIds(dictIds);
- return success();
- }
-
- /**
- * 刷新字典缓存
- */
- @Log(title = "字典类型", businessType = BusinessType.CLEAN)
- @DeleteMapping("/refreshCache")
- public AjaxResult refreshCache()
- {
- dictTypeService.resetDictCache();
- return success();
- }
-
- /**
- * 获取字典选择框列表
- */
- @GetMapping("/optionselect")
- public AjaxResult optionselect()
- {
- List<SysDictType> dictTypes = dictTypeService.selectDictTypeAll();
- return success(dictTypes);
- }
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java
deleted file mode 100644
index 13007eb..0000000
--- a/ruoyi-applet/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/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
deleted file mode 100644
index 224656a..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ /dev/null
@@ -1,166 +0,0 @@
-package com.ruoyi.web.controller.system;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-
-import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.core.domain.entity.SysRole;
-import com.ruoyi.common.core.domain.model.LoginUser;
-import com.ruoyi.common.core.domain.model.LoginUserApplet;
-import com.ruoyi.common.core.redis.RedisCache;
-import com.ruoyi.common.utils.SmsUtil;
-import com.ruoyi.framework.web.service.TokenService;
-import com.ruoyi.system.service.ISysRoleService;
-import com.ruoyi.web.controller.tool.MsgUtils;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.*;
-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.utils.SecurityUtils;
-import com.ruoyi.framework.web.service.SysLoginService;
-import com.ruoyi.framework.web.service.SysPermissionService;
-import com.ruoyi.system.service.ISysMenuService;
-
-/**
- * 登录验证
- *
- * @author ruoyi
- */
-@Api(tags = "登录")
-@RestController
-public class SysLoginController
-{
- @Autowired
- private SysLoginService loginService;
-
- @Autowired
- private ISysMenuService menuService;
-
- @Autowired
- private SysPermissionService permissionService;
- @Autowired
- private RedisCache redisCache;
- @Autowired
- private TokenService tokenService;
- @Autowired
- private ISysRoleService roleService;
- @Autowired
- private MsgUtils msgUtils;
- @Autowired
- private SmsUtil smsUtil;
-
- /**
- * 账号密码登录
- *
- * @param loginBody 登录信息
- * @return 结果
- */
- @ApiOperation(value = "账号密码登录",notes = "账号密码登录")
- @PostMapping("/login")
- public AjaxResult login(@RequestBody LoginBody loginBody)
- {
- AjaxResult ajax = AjaxResult.success();
- // 生成令牌
- LoginUser loginUser = loginService.login(loginBody.getUsername(), loginBody.getPassword());
- ajax.put(Constants.TOKEN, tokenService.createToken(loginUser));
- List<SysRole> roles = loginUser.getUser().getRoles();
- if(CollectionUtils.isEmpty(roles)){
- return AjaxResult.error("请关联角色!");
- }
- if(roles.get(0).getStatus() == 1){
- return AjaxResult.error("该账号角色已被禁用!");
- }
-
- List<SysMenu> menus = roleService.roleInfoFromUserId(loginUser.getUserId());
-
- ajax.put("menus",menus);
- ajax.put("roleName",roles.get(0).getRoleName());
- ajax.put("userInfo",loginUser);
- return ajax;
- }
-
- /**
- * 账号密码登录
- *
- * @param loginBody 登录信息
- * @return 结果
- */
- @ApiOperation(value = "短信登录",notes = "短信登录")
- @PostMapping("/loginCode")
- public AjaxResult loginCode(@RequestBody LoginBody loginBody)
- {
- AjaxResult ajax = AjaxResult.success();
- // 生成令牌
- LoginUserApplet loginUser = loginService.loginCodeApplet(loginBody.getUsername(), loginBody.getCode());
- ajax.put(Constants.TOKEN, tokenService.createTokenApplet(loginUser));
- ajax.put("userInfo",loginUser);
- return ajax;
- }
-
- /**
- * 获取验证码
- *
- * @param phone 手机号
- * @return 结果
- */
- @ApiOperation(value = "获取验证码",notes = "获取验证码")
- @GetMapping("/getCode")
- public AjaxResult getCode(@RequestParam String phone)
- {
- // 发送验证码并存储到redis
- if (StringUtils.hasLength(phone)) {
- String code = String.valueOf((int) (Math.random() * 1000000));
- redisCache.setCacheObject(phone, code,5*60,TimeUnit.SECONDS);
- try {
- smsUtil.sendSms(phone, "2369926", new String[]{code});
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- return AjaxResult.success("发送短信验证码成功!5分钟内有效");
- }
- return AjaxResult.error(500, "发送短信验证码失败,请确认手机号码!");
- }
-
- /**
- * 获取用户信息
- *
- * @return 用户信息
- */
- @GetMapping("getInfo")
- public AjaxResult getInfo()
- {
- SysUser user = SecurityUtils.getLoginUser().getUser();
- // 角色集合
- Set<String> roles = permissionService.getRolePermission(user);
- // 权限集合
- Set<String> permissions = permissionService.getMenuPermission(user);
- 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<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
- return AjaxResult.success(menuService.buildMenus(menus));
- }
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java
deleted file mode 100644
index 2b5e89c..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java
+++ /dev/null
@@ -1,163 +0,0 @@
-package com.ruoyi.web.controller.system;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-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
- */
-@Api(tags = "菜单信息")
-@RestController
-@RequestMapping("/system/menu")
-public class SysMenuController extends BaseController
-{
- @Autowired
- private ISysMenuService menuService;
-
- @ApiOperation("菜单权限(有层级)")
- @GetMapping("/levelList")
- public AjaxResult levelList()
- {
- // 获取当前角色的菜单列表
- List<SysMenu> menus = menuService.selectList();
- if(menus.size()==0){
- return AjaxResult.success(new ArrayList<>());
- }
- // 第三级
- List<SysMenu> s3 = menus.stream().filter(e -> e.getMenuType().equals("F")).collect(Collectors.toList());
- // 第二级
- List<SysMenu> s2 = menus.stream().filter(e -> e.getMenuType().equals("C")).collect(Collectors.toList());
- // 第一级
- List<SysMenu> s1 = menus.stream().filter(e -> e.getMenuType().equals("M")).collect(Collectors.toList());
-
- for (SysMenu menu : s2) {
- List<SysMenu> collect = s3.stream().filter(e -> e.getParentId().equals(menu.getMenuId())).collect(Collectors.toList());
- menu.setChildren(collect);
- }
- for (SysMenu menu : s1) {
- List<SysMenu> collect = s2.stream().filter(e -> e.getParentId().equals(menu.getMenuId())).collect(Collectors.toList());
- menu.setChildren(collect);
- }
-
- return AjaxResult.success(s1);
- }
-
- /**
- * 获取菜单列表
- */
- @GetMapping("/list")
- public AjaxResult list(SysMenu menu)
- {
- List<SysMenu> menus = menuService.selectMenuList(menu, getUserId());
- return AjaxResult.success(menus);
- }
-
- /**
- * 根据菜单编号获取详细信息
- */
- @GetMapping(value = "/{menuId}")
- public AjaxResult getInfo(@PathVariable Long menuId)
- {
- return AjaxResult.success(menuService.selectMenuById(menuId));
- }
-
- /**
- * 获取菜单下拉树列表
- */
- @GetMapping("/treeselect")
- public AjaxResult treeselect(SysMenu menu)
- {
- List<SysMenu> menus = menuService.selectMenuList(menu, getUserId());
- return AjaxResult.success(menuService.buildMenuTreeSelect(menus));
- }
-
- /**
- * 加载对应角色菜单列表树
- */
- @GetMapping(value = "/roleMenuTreeselect/{roleId}")
- public AjaxResult roleMenuTreeselect(@PathVariable("roleId") Long roleId)
- {
- List<SysMenu> menus = menuService.selectMenuList(getUserId());
- AjaxResult ajax = AjaxResult.success();
- ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId));
- ajax.put("menus", menuService.buildMenuTreeSelect(menus));
- return ajax;
- }
-
- /**
- * 新增菜单
- */
- @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 AjaxResult.success(menuService.insertMenu(menu));
- }
-
- /**
- * 修改菜单
- */
- @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 AjaxResult.success(menuService.updateMenu(menu));
- }
-
- /**
- * 删除菜单
- */
- @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 AjaxResult.success(menuService.deleteMenuById(menuId));
- }
-}
\ No newline at end of file
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java
deleted file mode 100644
index 92a1d6b..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java
+++ /dev/null
@@ -1,86 +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;
-
- /**
- * 获取通知公告列表
- */
- @GetMapping("/list")
- public TableDataInfo list(SysNotice notice)
- {
-// startPage();
- List<SysNotice> list = noticeService.selectNoticeList(notice);
- return getDataTable(list);
- }
-
- /**
- * 根据通知公告编号获取详细信息
- */
- @GetMapping(value = "/{noticeId}")
- public AjaxResult getInfo(@PathVariable Long noticeId)
- {
- return success(noticeService.selectNoticeById(noticeId));
- }
-
- /**
- * 新增通知公告
- */
- @Log(title = "通知公告", businessType = BusinessType.INSERT)
- @PostMapping
- public AjaxResult add(@Validated @RequestBody SysNotice notice)
- {
- notice.setCreateBy(getUsername());
- return toAjax(noticeService.insertNotice(notice));
- }
-
- /**
- * 修改通知公告
- */
- @Log(title = "通知公告", businessType = BusinessType.UPDATE)
- @PutMapping
- public AjaxResult edit(@Validated @RequestBody SysNotice notice)
- {
- notice.setUpdateBy(getUsername());
- return toAjax(noticeService.updateNotice(notice));
- }
-
- /**
- * 删除通知公告
- */
- @Log(title = "通知公告", businessType = BusinessType.DELETE)
- @DeleteMapping("/{noticeIds}")
- public AjaxResult remove(@PathVariable Long[] noticeIds)
- {
- return toAjax(noticeService.deleteNoticeByIds(noticeIds));
- }
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysPostController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysPostController.java
deleted file mode 100644
index a7a3e13..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysPostController.java
+++ /dev/null
@@ -1,123 +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;
-
- /**
- * 获取岗位列表
- */
- @GetMapping("/list")
- public TableDataInfo list(SysPost post)
- {
-// startPage();
- List<SysPost> list = postService.selectPostList(post);
- return getDataTable(list);
- }
-
-// @Log(title = "岗位管理", businessType = BusinessType.EXPORT)
-// @PostMapping("/export")
-// public void export(HttpServletResponse response, SysPost post)
-// {
-// List<SysPost> list = postService.selectPostList(post);
-// ExcelUtil<SysPost> util = new ExcelUtil<SysPost>(SysPost.class);
-// util.exportExcel(response, list, "岗位数据");
-// }
-
- /**
- * 根据岗位编号获取详细信息
- */
- @GetMapping(value = "/{postId}")
- public AjaxResult getInfo(@PathVariable Long postId)
- {
- return success(postService.selectPostById(postId));
- }
-
- /**
- * 新增岗位
- */
- @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));
- }
-
- /**
- * 修改岗位
- */
- @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));
- }
-
- /**
- * 删除岗位
- */
- @Log(title = "岗位管理", businessType = BusinessType.DELETE)
- @DeleteMapping("/{postIds}")
- public AjaxResult remove(@PathVariable Long[] postIds)
- {
- return toAjax(postService.deletePostByIds(postIds));
- }
-
- /**
- * 获取岗位选择框列表
- */
- @GetMapping("/optionselect")
- public AjaxResult optionselect()
- {
- List<SysPost> posts = postService.selectPostAll();
- return success(posts);
- }
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
deleted file mode 100644
index be5af6a..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
+++ /dev/null
@@ -1,136 +0,0 @@
-package com.ruoyi.web.controller.system;
-
-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("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
- }
- if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(currentUser))
- {
- return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
- }
- if (userService.updateUserProfile(currentUser) > 0)
- {
- // 更新缓存用户信息
- tokenService.setLoginUser(loginUser);
- return success();
- }
- return error("修改个人信息异常,请联系管理员");
- }
-
- /**
- * 重置密码
- */
- @Log(title = "个人信息", businessType = BusinessType.UPDATE)
- @PutMapping("/updatePwd")
- public AjaxResult updatePwd(String oldPassword, String 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("新密码不能与旧密码相同");
- }
- if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0)
- {
- // 更新缓存用户密码
- loginUser.getUser().setPassword(SecurityUtils.encryptPassword(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/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java
deleted file mode 100644
index fe19249..0000000
--- a/ruoyi-applet/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/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
deleted file mode 100644
index fecb55c..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
+++ /dev/null
@@ -1,305 +0,0 @@
-package com.ruoyi.web.controller.system;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import com.ruoyi.common.basic.PageInfo;
-import com.ruoyi.common.core.domain.entity.SysMenu;
-import com.ruoyi.system.dto.SysRoleDTO;
-import com.ruoyi.system.query.SysRoleQuery;
-import com.ruoyi.system.service.ISysMenuService;
-import com.ruoyi.system.vo.RoleInfoVO;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-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.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
- */
-@Api(tags = "角色信息")
-@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;
- @Autowired
- private ISysMenuService menuService;
-
- @ApiOperation(value = "角色列表")
- @PostMapping("/list")
- public AjaxResult list(@RequestBody SysRoleQuery query)
- {
- PageInfo<SysRole> list = roleService.selectPageList(query);
- return AjaxResult.success(list);
- }
-
- @ApiOperation(value = "角色列表不分页")
- @PostMapping("/listNotPage")
- public AjaxResult list()
- {
- List<SysRole> list = roleService.selectRoleList(new SysRole());
- return AjaxResult.success(list);
- }
-
- @ApiOperation(value = "角色数量统计")
- @PostMapping("/roleCount")
- public AjaxResult roleCount()
- {
- int all = roleService.selectCount(null);
- int normal = roleService.selectCount(0);
- int stop = roleService.selectCount(1);
-
- Map<String,Integer> map = new HashMap<>();
- map.put("all",all);
- map.put("normal",normal);
- map.put("stop",stop);
- return AjaxResult.success(map);
- }
-
-// @Log(title = "角色管理", businessType = BusinessType.EXPORT)
-// @PostMapping("/export")
-// public void export(HttpServletResponse response, SysRole role)
-// {
-// List<SysRole> list = roleService.selectRoleList(role);
-// ExcelUtil<SysRole> util = new ExcelUtil<SysRole>(SysRole.class);
-// util.exportExcel(response, list, "角色数据");
-// }
-
- /**
- * 根据角色编号获取详细信息
- */
- @GetMapping(value = "/{roleId}")
- public AjaxResult getInfo(@PathVariable Long roleId)
- {
- roleService.checkRoleDataScope(roleId);
- return AjaxResult.success(roleService.selectRoleById(roleId));
- }
-
-
- @ApiOperation("角色详情")
- @GetMapping("/roleInfo")
- public AjaxResult roleInfo(@RequestParam Long roleId)
- {
- SysRole role = roleService.selectRoleById(roleId);
- RoleInfoVO roleInfoVo = new RoleInfoVO();
- roleInfoVo.setRoleId(role.getRoleId());
- roleInfoVo.setRoleName(role.getRoleName());
-
- // 获取当前角色的菜单列表
- List<SysMenu> menus = menuService.selectListByRoleId(roleId);
- if(menus.size()==0){
- return AjaxResult.success(new ArrayList<>());
- }
- List<Long> menusId = menus.stream().map(SysMenu::getMenuId).collect(Collectors.toList());
-
- // 获取当前的权限菜单(有层级)
- List<SysMenu> levelMenus = roleService.getMenuLevelList(menusId);
-
- roleInfoVo.setMenus(menusId);
- return AjaxResult.success(roleInfoVo);
- }
-
-
- @ApiOperation("用户获取权限菜单")
- @GetMapping("/roleInfoFromUserId")
- public AjaxResult roleInfoFromUserId(@RequestParam Long userId)
- {
- return AjaxResult.success(roleService.roleInfoFromUserId(userId));
- }
-
-
- /**
- * 新增角色
- */
- @ApiOperation(value = "新增角色")
- @Log(title = "角色信息-新增角色", businessType = BusinessType.INSERT)
- @PostMapping("/add")
- public AjaxResult add(@Validated @RequestBody SysRoleDTO dto)
- {
- Boolean flag= roleService.isExit(dto.getRoleId(),dto.getRoleName());
- if(flag){
- return error("新增角色'" + dto.getRoleName() + "'失败,角色名称已存在");
- }
- roleService.saveRole(dto);
- return AjaxResult.success();
-
- }
-
- /**
- * 修改保存角色
- */
- @ApiOperation(value = "编辑角色")
- @Log(title = "角色信息-编辑角色", businessType = BusinessType.UPDATE)
- @PutMapping
- public AjaxResult edit(@Validated @RequestBody SysRoleDTO dto)
- {
- Boolean flag= roleService.isExit(dto.getRoleId(),dto.getRoleName());
- if (flag){
- return error("修改角色'" + dto.getRoleName() + "'失败,角色名称已存在");
- }
- if (roleService.editRole(dto) > 0)
- {
- // 更新缓存用户权限
- LoginUser loginUser = getLoginUser();
- if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin())
- {
- loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser()));
- loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName()));
- tokenService.setLoginUser(loginUser);
- }
- return AjaxResult.success();
- }
- return error("修改角色'" + dto.getRoleName() + "'失败,请联系管理员");
- }
-
- /**
- * 修改保存数据权限
- */
- @Log(title = "角色管理", businessType = BusinessType.UPDATE)
- @PutMapping("/dataScope")
- public AjaxResult dataScope(@RequestBody SysRole role)
- {
- roleService.checkRoleAllowed(role);
- roleService.checkRoleDataScope(role.getRoleId());
- return AjaxResult.success(roleService.authDataScope(role));
- }
-
- /**
- * 状态修改
- */
- @ApiOperation(value = "状态修改")
- @Log(title = "角色信息-角色状态修改", businessType = BusinessType.UPDATE)
- @PutMapping("/changeStatus")
- public AjaxResult changeStatus(@RequestBody SysRole role)
- {
- role.setUpdateBy(getUsername());
- roleService.updateStatus(role);
- return AjaxResult.success();
- }
-
- /**
- * 删除角色
- */
- @ApiOperation(value = "删除角色")
- @Log(title = "角色信息-角色删除角色", businessType = BusinessType.DELETE)
- @DeleteMapping("/deleteById/{ids}")
- public AjaxResult remove(@PathVariable String ids)
- {
- String[] split = ids.split(",");
- List<Long> id = new ArrayList<>();
- for (String s : split) {
- id.add(Long.valueOf(s));
- }
- return AjaxResult.success(roleService.deleteRoleByIds(id));
- }
-
- /**
- * 获取角色选择框列表
- */
- @GetMapping("/optionselect")
- public AjaxResult optionselect()
- {
- return AjaxResult.success(roleService.selectRoleAll());
- }
-
- /**
- * 查询已分配用户角色列表
- */
- @GetMapping("/authUser/allocatedList")
- public TableDataInfo allocatedList(SysUser user)
- {
-// startPage();
- List<SysUser> list = userService.selectAllocatedList(user);
- return getDataTable(list);
- }
-
- /**
- * 查询未分配用户角色列表
- */
- @GetMapping("/authUser/unallocatedList")
- public TableDataInfo unallocatedList(SysUser user)
- {
-// startPage();
- List<SysUser> list = userService.selectUnallocatedList(user);
- return getDataTable(list);
- }
-
- /**
- * 取消授权用户
- */
- @Log(title = "角色管理", businessType = BusinessType.GRANT)
- @PutMapping("/authUser/cancel")
- public AjaxResult cancelAuthUser(@RequestBody SysUserRole userRole)
- {
- return AjaxResult.success(roleService.deleteAuthUser(userRole));
- }
-
- /**
- * 批量取消授权用户
- */
- @Log(title = "角色管理", businessType = BusinessType.GRANT)
- @PutMapping("/authUser/cancelAll")
- public AjaxResult cancelAuthUserAll(Long roleId, Long[] userIds)
- {
- return AjaxResult.success(roleService.deleteAuthUsers(roleId, userIds));
- }
-
- /**
- * 批量选择用户授权
- */
- @Log(title = "角色管理", businessType = BusinessType.GRANT)
- @PutMapping("/authUser/selectAll")
- public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds)
- {
- roleService.checkRoleDataScope(roleId);
- return AjaxResult.success(roleService.insertAuthUsers(roleId, userIds));
- }
-
- /**
- * 获取对应角色部门树列表
- */
- @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/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
deleted file mode 100644
index f3465ce..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
+++ /dev/null
@@ -1,391 +0,0 @@
-package com.ruoyi.web.controller.system;
-
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.basic.PageInfo;
-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.enums.BusinessType;
-import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.framework.web.service.TokenService;
-import com.ruoyi.system.dto.SysUserUpdateStatusDTO;
-import com.ruoyi.system.query.SysUserQuery;
-import com.ruoyi.system.service.*;
-import com.ruoyi.system.vo.SysUserVO;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.*;
-import java.util.stream.Collectors;
-
-/**
- * 用户信息
- *
- * @author ruoyi
- */
-@Api(tags = "用户信息")
-@RestController
-@RequestMapping("/system/user")
-public class SysUserController extends BaseController
-{
- @Autowired
- private ISysUserService userService;
-
- @Autowired
- private ISysRoleService roleService;
-
- @Autowired
- private ISysDeptService deptService;
- @Autowired
- private TokenService tokenService;
-
- /**
- * 获取用户列表
- */
- @ApiOperation(value = "获取用户列表")
- @PostMapping("/list")
- public AjaxResult list(@RequestBody SysUserQuery query)
- {
- PageInfo<SysUserVO> list = userService.pageList(query);
- return AjaxResult.success(list);
- }
-
- @ApiOperation(value = "获取用户列表-不分页")
- @PostMapping("/listNotPage")
- public AjaxResult listNotPage()
- {
- List<SysUser> list = userService.selectList();
- return AjaxResult.success(list);
- }
-
- /**
- * 获取用户黑名单列表
- */
-// @ApiOperation(value = "获取用户黑名单列表")
-// @PostMapping("/blacklist")
-// public AjaxResult blacklist(@RequestBody SysUserQuery query)
-// {
-// startPage(query.getPageNum(), query.getPageSize());
-// List<SysUserVO> list = userService.selectBlackPageList(query);
-// return AjaxResult.success(getDataTable(list));
-// }
-
- /**
- * 人员借用列表
- */
-// @ApiOperation(value = "人员借用列表")
-// @GetMapping("/userBorrowList")
-// public AjaxResult userBorrowList(@RequestParam(required = false) String name,
-// @RequestParam(required = false) Integer type)
-// {
-//
-// UserAddListVO userAddListVO = new UserAddListVO();
-//
-// Long companyId = tokenService.getLoginUser().getUser().getCompanyId();
-//
-// List<TCompany> companyList = new ArrayList<>();
-// List<TDept> deptList = new ArrayList<>();
-// List<SysUser> userList = new ArrayList<>();
-// // 查询公司
-// if(Objects.nonNull(type) && type == 1){
-// companyList = companyService.userAddListByCompanyName(name);
-// }
-// // 查询部门
-// if(Objects.nonNull(type) && type == 2){
-// deptList = tDeptService.userAddListByDeptName(name);
-// }
-// // 查询用户
-// if(Objects.nonNull(type) && type == 3){
-// userList = userService.selectListByNamePhone(name);
-// }
-//
-// if(Objects.isNull(type)){
-// companyList = companyService.userAddListByCompanyName(name);
-// deptList = tDeptService.userAddListByDeptName(name);
-// userList = userService.selectListByNamePhone(name);
-// }
-//
-// List<Long> companyIds = companyList.stream().map(TCompany::getId).collect(Collectors.toList());
-// List<Long> deptCompanyIds = deptList.stream().map(TDept::getCompanyId).collect(Collectors.toList());
-// List<Long> userCompanyIds = userList.stream().map(SysUser::getCompanyId).collect(Collectors.toList());
-// companyIds.addAll(deptCompanyIds);
-// companyIds.addAll(userCompanyIds);
-//
-// companyIds = companyIds.stream().distinct().collect(Collectors.toList());
-//
-// if(CollectionUtils.isEmpty(companyIds)){
-// return AjaxResult.success(userAddListVO);
-// }
-// SysUser user1 = tokenService.getLoginUser().getUser();
-// if(!user1.isAdmin()){
-// companyIds = companyIds.stream().filter(e->!e.equals(companyId)).collect(Collectors.toList());
-// }
-//
-// // 查询符合要求的公司
-// List<UserLevelVO> parent = companyService.userAddListByCompanyIds(companyIds);
-//
-// List<TDept> depts = tDeptService.selectList();
-//
-// List<SysUser> sysUsers = userService.selectList();
-//
-// for (UserLevelVO userLevelVO : parent) {
-//
-// // 找到公司下的部门
-// List<TDept> tDepts = depts.stream().filter(e -> userLevelVO.getKey().equals(e.getCompanyId())).collect(Collectors.toList());
-// List<UserLevelVO> children = new ArrayList<>();
-// // 封装部门
-// for (TDept dept : tDepts) {
-// userLevelVO.setChildren(children);
-// UserLevelVO userLevelVO1 = new UserLevelVO();
-// userLevelVO1.setKey(dept.getId());
-// userLevelVO1.setTitle(dept.getDeptName());
-// // 找到部门下的人员
-// List<SysUser> users;
-// if(StringUtils.isNotEmpty(name) && type == 3){
-// users = sysUsers.stream().filter(e -> userLevelVO1.getKey().equals(e.getDeptId())
-// && ((StringUtils.isNotEmpty(e.getNickName()) && e.getNickName().contains(name)))
-// || (StringUtils.isNotEmpty(e.getPhonenumber()) && e.getPhonenumber().contains(name))).collect(Collectors.toList());
-// }else {
-// users = sysUsers.stream().filter(e -> userLevelVO1.getKey().equals(e.getDeptId())).collect(Collectors.toList());
-// }
-// List<UserLevelVO> children1 = new ArrayList<>();
-// // 封装人员
-// for (SysUser user : users) {
-// UserLevelVO userLevelVO2 = new UserLevelVO();
-// userLevelVO2.setKey(user.getUserId());
-// userLevelVO2.setTitle(user.getNickName());
-// userLevelVO2.setAvatar(user.getAvatar());
-// userLevelVO2.setFlag(true);
-// children1.add(userLevelVO2);
-// }
-// userLevelVO1.setChildren(children1);
-//
-// children.add(userLevelVO1);
-// }
-// userLevelVO.setChildren(children);
-// }
-// userAddListVO.setUserLevelVOS(parent);
-// userAddListVO.setUserList(sysUsers);
-// return AjaxResult.success(userAddListVO);
-// }
-
- /**
- * 获取用户详情
- */
- @ApiOperation(value = "获取用户详情")
- @GetMapping("/getDetail")
- public AjaxResult getDetail(@RequestParam Long userId)
- {
- SysUser sysUser = userService.selectUserById(userId);
- SysUserVO sysUserVO = new SysUserVO();
- BeanUtils.copyProperties(sysUser,sysUserVO);
-
- return AjaxResult.success(sysUser);
- }
-
-
- /**
- * 获取用户数量统计
- */
- @ApiOperation(value = "获取用户数量统计")
- @PostMapping("/getUserCount")
- public AjaxResult getUserCount()
- {
- Map<String,Integer> map = new HashMap<>();
-
- Integer userCountSum = userService.selectCount(null);
- Integer normalCount = userService.selectCount(0);// 正常
- Integer stopCount = userService.selectCount(1);// 停用
-
- map.put("all",userCountSum);
- map.put("normal",normalCount);
- map.put("stop",stopCount);
-
- return AjaxResult.success(map);
- }
-
- /**
- * 移除黑名单
- */
- @GetMapping("/removeBlackList")
- public AjaxResult removeBlackList(@RequestParam String ids)
- {
- String[] split = ids.split(",");
- List<Long> id = new ArrayList<>();
- for (String s : split) {
- id.add(Long.valueOf(s));
- }
- userService.updateUserIfBlack(id);
- return AjaxResult.success();
- }
-
-
-// @Log(title = "用户管理", businessType = BusinessType.EXPORT)
-// @PostMapping("/export")
-// public void export(HttpServletResponse response, SysUser user)
-// {
-// List<SysUser> list = userService.selectUserList(user);
-// ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
-// util.exportExcel(response, list, "用户数据");
-// }
-
-// @Log(title = "用户管理", businessType = BusinessType.IMPORT)
-// @PostMapping("/importData")
-// public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
-// {
-// ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
-// List<SysUser> userList = util.importExcel(file.getInputStream());
-// String operName = getUsername();
-// String message = userService.importUser(userList, updateSupport, operName);
-// return AjaxResult.success(message);
-// }
-
-// @PostMapping("/importTemplate")
-// public void importTemplate(HttpServletResponse response)
-// {
-// ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
-// util.importTemplateExcel(response, "用户数据");
-// }
-
-
- /**
- * 新增用户
- */
- @ApiOperation(value = "新增用户管理")
- @Log(title = "用户信息-新增用户", businessType = BusinessType.INSERT)
- @PostMapping("/add")
- public AjaxResult add(@Validated @RequestBody SysUser user)
- {
- user.setUserName(user.getPhonenumber());
- if (!userService.checkUserNameUnique(user))
- {
- return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
- }
- else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
- {
- return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
- }
- user.setCreateBy(getUsername());
- user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
- userService.insertUser(user);
- return AjaxResult.success();
- }
-
- /**
- * 修改用户
- */
- @ApiOperation(value = "修改用户管理")
- @Log(title = "用户信息-修改用户", businessType = BusinessType.UPDATE)
- @PostMapping("/edit")
- public AjaxResult edit(@Validated @RequestBody SysUser user)
- {
- user.setUserName(user.getPhonenumber());
-// userService.checkUserAllowed(user);
-// userService.checkUserDataScope(user.getUserId());
- if (!userService.checkUserNameUnique(user))
- {
- return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在");
- }
- else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
- {
- return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
- }
-
- user.setUpdateBy(getUsername());
- user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
- return AjaxResult.success(userService.updateUser(user));
- }
-
- /**
- * 删除用户
- */
- @ApiOperation(value = "批量删除用户")
- @Log(title = "用户信息-批量删除用户", businessType = BusinessType.DELETE)
- @DeleteMapping("/deleteById/{ids}")
- public AjaxResult remove(@PathVariable String ids)
- {
- String[] split = ids.split(",");
- List<Long> userIds = new ArrayList<>();
- for (String s : split) {
- userIds.add(Long.valueOf(s));
- }
- if (userIds.contains(getUserId()))
- {
- return error("当前用户不能删除");
- }
- return AjaxResult.success(userService.deleteUserByIds(userIds));
- }
-
- /**
- * 重置密码
- */
- @ApiOperation(value = "重置密码")
- @Log(title = "用户信息-重置密码", businessType = BusinessType.UPDATE)
- @PostMapping("/resetPwd")
- public AjaxResult resetPwd(@RequestBody SysUser user)
- {
- userService.checkUserAllowed(user);
-// userService.checkUserDataScope(user.getUserId());
- user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
- user.setUpdateBy(getUsername());
- return AjaxResult.success(userService.resetPwd(user));
- }
-
- /**
- * 状态修改
- */
- @ApiOperation(value = "状态修改")
- @Log(title = "用户信息-状态修改", businessType = BusinessType.UPDATE)
- @PutMapping("/changeStatus")
- public AjaxResult changeStatus(@RequestBody SysUserUpdateStatusDTO dto)
- {
- SysUser user = new SysUser();
- user.setUserId(dto.getUserId());
- user.setStatus(String.valueOf(dto.getStatus()));
- user.setRemark(dto.getRemark());
- user.setUpdateBy(getUsername());
- return AjaxResult.success(userService.updateUserStatus(user));
- }
-
- /**
- * 根据用户编号获取授权角色
- */
- @GetMapping("/authRole/{userId}")
- public AjaxResult authRole(@PathVariable("userId") Long userId)
- {
- AjaxResult ajax = AjaxResult.success();
- SysUser user = userService.selectUserById(userId);
- List<SysRole> 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;
- }
-
- /**
- * 用户授权角色
- */
- @Log(title = "用户管理", businessType = BusinessType.GRANT)
- @PutMapping("/authRole")
- public AjaxResult insertAuthRole(Long userId, Long[] roleIds)
- {
- userService.checkUserDataScope(userId);
- userService.insertUserAuth(userId, roleIds);
- return AjaxResult.success();
- }
-
- /**
- * 获取部门树列表
- */
- @GetMapping("/deptTree")
- public AjaxResult deptTree(SysDept dept)
- {
- return AjaxResult.success(deptService.selectDeptTreeList(dept));
- }
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/HttpClientUtil.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/HttpClientUtil.java
deleted file mode 100644
index 2da9a44..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/HttpClientUtil.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package com.ruoyi.web.controller.tool;
-
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-
-/**
- * @author zhy
- * @title: HttpClientUtil
- * @projectName car_park
- * @description: http连接工具类
- * @date 2019/10/2219:23
- */
-public class HttpClientUtil {
-
-
- /**
- * @param strUrl
- * @return byte[]
- * @throws
- * @description: 获取网络图片转成字节流
- * @author zhy
- * @date 2019/10/23 8:59
- */
- public static byte[] getImageFromNetByUrl(String strUrl) {
- if (!isURL(strUrl)){
- return null;
- }
- try {
- URL url = new URL(strUrl);
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();
- conn.setRequestMethod("GET");
- conn.setConnectTimeout(2 * 1000);
- InputStream inStream = conn.getInputStream();// 通过输入流获取图片数据
- byte[] btImg = readInputStream(inStream);// 得到图片的二进制数据
- return btImg;
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
-
- /**
- * 从输入流中获取字节流数据
- *
- * @param inStream 输入流
- * @return
- * @throws Exception
- */
- public static byte[] readInputStream(InputStream inStream) throws Exception {
- ByteArrayOutputStream outStream = new ByteArrayOutputStream();
- byte[] buffer = new byte[10240];
- int len = 0;
- while ((len = inStream.read(buffer)) != -1) {
- outStream.write(buffer, 0, len);
- }
- inStream.close();
- return outStream.toByteArray();
- }
-
- public static boolean isURL(String str) {
- str = str.toLowerCase();
- String regex = "^((https|http|ftp|rtsp|mms)?://)"
- + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?"
- + "(([0-9]{1,3}\\.){3}[0-9]{1,3}"
- + "|"
- + "([0-9a-z_!~*'()-]+\\.)*"
- + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\\."
- + "[a-z]{2,6})"
- + "(:[0-9]{1,5})?"
- + "((/?)|"
- + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";
- return str.matches(regex);
- }
-
-
-}
-
\ No newline at end of file
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/ImportExcelUtil.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/ImportExcelUtil.java
deleted file mode 100644
index e488f03..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/ImportExcelUtil.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.ruoyi.web.controller.tool;
-
-import com.alibaba.fastjson2.JSON;
-import com.alibaba.fastjson2.JSONObject;
-import com.ruoyi.common.core.domain.R;
-import lombok.extern.slf4j.Slf4j;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * 导出返回信息
- */
-@Slf4j
-public class ImportExcelUtil {
-
- /**
- * @param errorLines 错误行数
- * @param successLines 成功行数
- * @param errorMessage 错误信息
- * @return
- * @throws IOException
- */
- public static R<String> importReturnMsg(int errorLines, int successLines, List<String> errorMessage) throws IOException {
- if (errorLines == 0) {
- return R.ok("共" + successLines + "行数据全部导入成功!");
- } else {
- JSONObject result = new JSONObject(5);
- int totalCount = successLines + errorLines;
- result.put("totalCount", totalCount);
- result.put("errorCount", errorLines);
- result.put("errorMessage", errorMessage);
- result.put("successCount", successLines);
- result.put("msg", "总上传行数:" + totalCount + ",已导入行数:" + successLines + ",错误行数:" + errorLines);
- return R.ok(JSON.toJSONString(result));
- }
- }
-
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/MsgCodeUtil.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/MsgCodeUtil.java
deleted file mode 100644
index 073f315..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/MsgCodeUtil.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.ruoyi.web.controller.tool;
-
-import com.alibaba.fastjson.JSONObject;
-import com.ruoyi.system.code.SubmitTemplateReg;
-import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.codec.binary.Hex;
-
-import java.io.Serializable;
-import java.nio.charset.StandardCharsets;
-
-/**
- * 短信工具类
- */
-public class MsgCodeUtil implements Serializable {
-
- /**接口账号用户名*/
- private static final String AP_ID = "";
- /**企业名称*/
- private static final String EC_NAME = "";
- /**签名*/
- private static final String SECRET_KEY = "";
- /**签名编码*/
- private static final String SIGN = "";
- /**模板ID*/
- private static final String TEMPLATE_ID = "";
-
-
- /**
- * 实体封装
- * @param code
- * @return
- */
- public static SubmitTemplateReg getSubmitTemplateReg(String code,String mobiles) {
- SubmitTemplateReg submitReg =new SubmitTemplateReg();
- String[] paramss = {code};
- submitReg.setApId(AP_ID);
- submitReg.setEcName(EC_NAME);
- submitReg.setSecretKey(SECRET_KEY);
- submitReg.setParams(JSONObject.toJSONString(paramss));
- submitReg.setMobiles(mobiles);
- submitReg.setAddSerial("");
- submitReg.setSign(SIGN);
- submitReg.setTemplateId(TEMPLATE_ID);
- submitReg.setMac(TEMPLATE_ID);
- StringBuffer stringBuffer = new StringBuffer();
- stringBuffer.append(submitReg.getEcName( ));stringBuffer.append(submitReg.getApId());
- stringBuffer.append(submitReg.getSecretKey());stringBuffer.append(submitReg.getTemplateId());stringBuffer.append(submitReg.getMobiles());
- stringBuffer.append(submitReg.getParams());stringBuffer.append(submitReg.getSign());stringBuffer.append(submitReg.getAddSerial());
- submitReg.setMac(Hex.encodeHexString(stringBuffer.toString().getBytes(StandardCharsets.UTF_8)));
- String regText = JSONObject.toJSONString(submitReg);
- //加密
- String encode = Base64.encodeBase64String(regText.getBytes());
- System.err.println(encode);
- return submitReg;
- }
-
- public static void main(String[] args) {
- getSubmitTemplateReg("123456","18398968484");
- }
-
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/MsgUtils.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/MsgUtils.java
deleted file mode 100644
index 119a5ea..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/MsgUtils.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package com.ruoyi.web.controller.tool;
-
-import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
-import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
-import com.aliyun.tea.TeaException;
-import com.aliyun.teaopenapi.models.Config;
-import com.aliyun.teautil.models.RuntimeOptions;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-
-@Component
-@Slf4j
-public class MsgUtils {
-
- @Value("${code.config.accessKeyId}")
- private String accessKeyId;
- @Value("${code.config.accessKeySecret}")
- private String accessKeySecret;
- @Value("${code.config.signName}")
- private String signName;
- @Value("${code.config.templateCode}")
- private String templateCode;
- @Value("${code.config.signNameTest}")
- private String signNameTest;
- @Value("${code.config.templateCodeTest}")
- private String templateCodeTest;
-
- /**
- * 使用AK&SK初始化账号Client
- * @param accessKeyId
- * @param accessKeySecret
- * @return Client
- * @throws Exception
- */
- public static com.aliyun.dysmsapi20170525.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
- Config config = new Config()
- // 您的 AccessKey ID
- .setAccessKeyId(accessKeyId)
- // 您的 AccessKey Secret
- .setAccessKeySecret(accessKeySecret);
- // 访问的域名
- config.endpoint = "dysmsapi.aliyuncs.com";
- return new com.aliyun.dysmsapi20170525.Client(config);
- }
-
- public void sendMsg(String phone,String code) throws Exception {
- com.aliyun.dysmsapi20170525.Client client = MsgUtils.createClient(accessKeyId,accessKeySecret);
- SendSmsRequest sendSmsRequest = new SendSmsRequest()
- .setSignName(signName)
- .setTemplateCode(templateCode)
- .setPhoneNumbers(phone)
- .setTemplateParam("{\"code\":\""+code+"\"}");
- RuntimeOptions runtime = new RuntimeOptions();
- try {
- // 复制代码运行请自行打印 API 的返回值
- SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, runtime);
- log.info("短信发送成功:{},{}",sendSmsResponse.getBody().getMessage(),sendSmsResponse.getStatusCode());
- } catch (TeaException error) {
- // 如有需要,请打印 error
- com.aliyun.teautil.Common.assertAsString(error.message);
- log.info("短信发送失败:{}",error.message);
- } catch (Exception _error) {
- TeaException error = new TeaException(_error.getMessage(), _error);
- // 如有需要,请打印 error
- com.aliyun.teautil.Common.assertAsString(error.message);
- log.info("短信发送失败:{}",error.message);
- }
- }
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/MyFileUtil.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/MyFileUtil.java
deleted file mode 100644
index 40af28a..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/MyFileUtil.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package com.ruoyi.web.controller.tool;
-
-import org.springframework.web.multipart.MultipartFile;
-import java.io.*;
-import java.nio.file.Files;
-
-
-/**
- * @author RainbowCloud
- */
-public class MyFileUtil {
-
- /**
- * 将 File 转换为 MultipartFile。
- *
- * @param file 要转换的文件
- * @param fieldName 字段名,通常用于表单中的文件字段名
- * @return 转换后的 MultipartFile
- * @throws IOException 如果发生I/O错误
- */
- public static MultipartFile fileToMultipartFile(File file, String fieldName) throws IOException {
- try {
- if (file == null || !file.exists()) {
- throw new FileNotFoundException("文件未找到:" + file);
- }
- byte[] content = Files.readAllBytes(file.toPath());
- return new ByteArrayMultipartFile(content, file.getName(), fieldName, Files.probeContentType(file.toPath()));
- } catch (IOException e) {
- throw new RuntimeException(e);
- } finally {
- // 删除临时文件
- file.delete();
- }
- }
-
- /**
- * 将 MultipartFile 转换为 File。
- *
- * @param multipartFile 要转换的 MultipartFile
- * @return 转换后的 File
- * @throws IOException 如果发生I/O错误
- */
- public static File multipartFileToFile(MultipartFile multipartFile) throws IOException {
- if (multipartFile.isEmpty()) {
- throw new IOException("传入的MultipartFile为空");
- }
- String originalFilename = multipartFile.getOriginalFilename();
- String tempFileSuffix = originalFilename != null ? originalFilename.substring(originalFilename.lastIndexOf('.')) : ".tmp";
- File tempFile = File.createTempFile("temp", tempFileSuffix);
- try (InputStream ins = multipartFile.getInputStream();
- OutputStream os = new FileOutputStream(tempFile)) {
- byte[] buffer = new byte[8192];
- int bytesRead;
- while ((bytesRead = ins.read(buffer)) != -1) {
- os.write(buffer, 0, bytesRead);
- }
- }
- return tempFile;
- }
-
- /**
- * 内置一个简单的 MultipartFile 实现类,用于File转换
- */
- private static class ByteArrayMultipartFile implements MultipartFile {
- private final byte[] content;
- private final String name;
- private final String originalFilename;
- private final String contentType;
-
- /**
- * 构造函数
- *
- * @param content 文件内容
- * @param originalFilename 文件原始名字
- * @param name 字段名
- * @param contentType 文件类型
- */
- public ByteArrayMultipartFile(byte[] content, String originalFilename, String name, String contentType) {
- this.content = content;
- this.originalFilename = originalFilename;
- this.name = name;
- this.contentType = contentType;
- }
-
- @Override
- public String getName() {
- return this.name;
- }
-
- @Override
- public String getOriginalFilename() {
- return this.originalFilename;
- }
-
- @Override
- public String getContentType() {
- return this.contentType;
- }
-
- @Override
- public boolean isEmpty() {
- return (this.content == null || this.content.length == 0);
- }
-
- @Override
- public long getSize() {
- return this.content.length;
- }
-
- @Override
- public byte[] getBytes() {
- return this.content;
- }
-
- @Override
- public InputStream getInputStream() {
- return new ByteArrayInputStream(this.content);
- }
-
- @Override
- public void transferTo(File dest) throws IOException, IllegalStateException {
- try (OutputStream os = new FileOutputStream(dest)) {
- os.write(this.content);
- }
- }
- }
-
-}
\ No newline at end of file
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/QRCodeUtil.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/QRCodeUtil.java
deleted file mode 100644
index 9097589..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/QRCodeUtil.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package com.ruoyi.web.controller.tool;
-
-import com.google.zxing.BarcodeFormat;
-import com.google.zxing.EncodeHintType;
-import com.google.zxing.MultiFormatWriter;
-import com.google.zxing.WriterException;
-import com.google.zxing.common.BitMatrix;
-import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
-import com.ruoyi.common.utils.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.imageio.ImageIO;
-import javax.swing.filechooser.FileSystemView;
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.OutputStream;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 二维码工具
- * @Author:debug (SteadyJack)
- * @Link: weixin-> debug0868 qq-> 1948831260
- * @Date: 2020/11/16 22:38
- **/
-public class QRCodeUtil {
- private static final Logger log= LoggerFactory.getLogger(QRCodeUtil.class);
-
- //CODE_WIDTH:二维码宽度,单位像素
- private static final int CODE_WIDTH = 400;
- //CODE_HEIGHT:二维码高度,单位像素
- private static final int CODE_HEIGHT = 400;
- //FRONT_COLOR:二维码前景色,0x000000 表示黑色
- private static final int FRONT_COLOR = 0x000000;
- //BACKGROUND_COLOR:二维码背景色,0xFFFFFF 表示白色
- //演示用 16 进制表示,和前端页面 CSS 的取色是一样的,注意前后景颜色应该对比明显,如常见的黑白
- private static final int BACKGROUND_COLOR = 0xFFFFFF;
-
-
- public static void main(String[] args) {
- createCodeToFile("5261548530",new File("C:\\Users\\Admin\\Desktop\\qrcode"),"5261548530.png");
- }
-
- public static void createCodeToFile(String content, File codeImgFileSaveDir, String fileName) {
- try {
- if (StringUtils.isBlank(content) || StringUtils.isBlank(fileName)) {
- return;
- }
- content = content.trim();
- if (codeImgFileSaveDir==null || codeImgFileSaveDir.isFile()) {
- //二维码图片存在目录为空,默认放在桌面...
- codeImgFileSaveDir = FileSystemView.getFileSystemView().getHomeDirectory();
- }
- if (!codeImgFileSaveDir.exists()) {
- //二维码图片存在目录不存在,开始创建...
- codeImgFileSaveDir.mkdirs();
- }
-
- //核心代码-生成二维码
- BufferedImage bufferedImage = getBufferedImage(content);
-
- File codeImgFile = new File(codeImgFileSaveDir, fileName);
- ImageIO.write(bufferedImage, "png", codeImgFile);
-
- log.info("二维码图片生成成功:" + codeImgFile.getPath());
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 生成二维码并输出到输出流, 通常用于输出到网页上进行显示,输出到网页与输出到磁盘上的文件中,区别在于最后一句 ImageIO.write
- * write(RenderedImage im,String formatName,File output):写到文件中
- * write(RenderedImage im,String formatName,OutputStream output):输出到输出流中
- * @param content :二维码内容
- * @param outputStream :输出流,比如 HttpServletResponse 的 getOutputStream
- */
- public static void createCodeToOutputStream(String content, OutputStream outputStream) {
- try {
- if (StringUtils.isBlank(content)) {
- return;
- }
- content = content.trim();
- //核心代码-生成二维码
- BufferedImage bufferedImage = getBufferedImage(content);
-
- //区别就是这一句,输出到输出流中,如果第三个参数是 File,则输出到文件中
- ImageIO.write(bufferedImage, "png", outputStream);
-
- log.info("二维码图片生成到输出流成功...");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- //核心代码-生成二维码
- private static BufferedImage getBufferedImage(String content) throws WriterException {
-
- //com.google.zxing.EncodeHintType:编码提示类型,枚举类型
- Map<EncodeHintType, Object> hints = new HashMap();
-
- //EncodeHintType.CHARACTER_SET:设置字符编码类型
- hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
-
- //EncodeHintType.ERROR_CORRECTION:设置误差校正
- //ErrorCorrectionLevel:误差校正等级,L = ~7% correction、M = ~15% correction、Q = ~25% correction、H = ~30% correction
- //不设置时,默认为 L 等级,等级不一样,生成的图案不同,但扫描的结果是一样的
- hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
-
- //EncodeHintType.MARGIN:设置二维码边距,单位像素,值越小,二维码距离四周越近
- hints.put(EncodeHintType.MARGIN, 1);
-
- MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
- BitMatrix bitMatrix = multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, CODE_WIDTH, CODE_HEIGHT, hints);
- BufferedImage bufferedImage = new BufferedImage(CODE_WIDTH, CODE_HEIGHT, BufferedImage.TYPE_INT_BGR);
- for (int x = 0; x < CODE_WIDTH; x++) {
- for (int y = 0; y < CODE_HEIGHT; y++) {
- bufferedImage.setRGB(x, y, bitMatrix.get(x, y) ? FRONT_COLOR : BACKGROUND_COLOR);
- }
- }
- return bufferedImage;
- }
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/core/config/DataUpdateHandlerConfig.java b/ruoyi-applet/src/main/java/com/ruoyi/web/core/config/DataUpdateHandlerConfig.java
deleted file mode 100644
index e27f2a5..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/core/config/DataUpdateHandlerConfig.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.ruoyi.web.core.config;
-
-import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
-import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.common.utils.StringUtils;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.ibatis.reflection.MetaObject;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * @author xiaochen
- * @ClassName DataUpdateInterceptor
- * @Description 数据更新操作处理
- * @date 2021-12-15
- * <p>
- * 注意,之前在此处注入了 JwtTokenUtils
- * <p>
- * 造成spring循环依赖,项目支棱不起来
- */
-@Slf4j
-@Configuration
-public class DataUpdateHandlerConfig implements MetaObjectHandler {
-
- /**
- * 新增数据执行
- *
- * @param metaObject
- */
- @Override
- public void insertFill(MetaObject metaObject) {
- // 获取登录信息
-// String userName = SecurityUtils.getUsernameApplet();
-// if (StringUtils.isNotBlank(userName)) {
-// this.setFieldValByName("createBy", userName, metaObject);
-// this.setFieldValByName("updateBy", userName, metaObject);
-// } else {
-// this.setFieldValByName("createBy", userName, metaObject);
-// this.setFieldValByName("updateBy", userName, metaObject);
-// }
-
- }
-
- /**
- * 修改数据执行
- *
- * @param metaObject
- */
- @Override
- public void updateFill(MetaObject metaObject) {
- // 获取登录信息
-// String userName = SecurityUtils.getUsernameApplet();
-// if (StringUtils.isNotBlank(userName)){
-// this.setFieldValByName("createBy", userName, metaObject);
-// this.setFieldValByName("updateBy", userName, metaObject);
-// } else {
-// this.setFieldValByName("createBy", userName, metaObject);
-// this.setFieldValByName("updateBy", userName, metaObject);
-// }
-
- }
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/core/config/MybatisPlusConfig.java b/ruoyi-applet/src/main/java/com/ruoyi/web/core/config/MybatisPlusConfig.java
deleted file mode 100644
index fac9a9f..0000000
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/core/config/MybatisPlusConfig.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.ruoyi.web.core.config;
-
-import com.baomidou.mybatisplus.annotation.DbType;
-import com.baomidou.mybatisplus.core.config.GlobalConfig;
-import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
-import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * @author liheng
- * @ClassName MybatisPlusConfig
- * @Description MybatisPlus相关配置
- * @date 2020-09-22 11:22、
- * 直接以实现类作为bean的注入(有事务管理的类)
- * @EnableTransactionManagement(proxyTargetClass = true)
- */
-@Configuration
-public class MybatisPlusConfig {
- private final DataUpdateHandlerConfig dataUpdateHandler;
-
- @Autowired
- public MybatisPlusConfig(DataUpdateHandlerConfig dataUpdateHandler) {
- this.dataUpdateHandler = dataUpdateHandler;
- }
-
- /**
- * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题
- */
- @Bean
- public MybatisPlusInterceptor mybatisPlusInterceptor() {
- MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
- interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
- return interceptor;
- }
-
- /**
- * 自动填充功能
- *
- * @return
- */
- @Bean
- public GlobalConfig globalConfig() {
- GlobalConfig globalConfig = new GlobalConfig();
- globalConfig.setMetaObjectHandler(dataUpdateHandler);
- return globalConfig;
- }
-
-
-}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java b/ruoyi-applet/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java
deleted file mode 100644
index 040116a..0000000
--- a/ruoyi-applet/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<SecurityScheme> securitySchemes()
- {
- List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>();
- apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue()));
- return apiKeyList;
- }
-
- /**
- * 安全上下文
- */
- private List<SecurityContext> securityContexts()
- {
- List<SecurityContext> securityContexts = new ArrayList<>();
- securityContexts.add(
- SecurityContext.builder()
- .securityReferences(defaultAuth())
- .operationSelector(o -> o.requestMappingPattern().matches("/.*"))
- .build());
- return securityContexts;
- }
-
- /**
- * 默认的安全上引用
- */
- private List<SecurityReference> defaultAuth()
- {
- AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
- AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
- authorizationScopes[0] = authorizationScope;
- List<SecurityReference> securityReferences = new ArrayList<>();
- securityReferences.add(new SecurityReference("Authorization", authorizationScopes));
- return securityReferences;
- }
-
- /**
- * 添加摘要信息
- */
- private ApiInfo apiInfo()
- {
- // 用ApiInfoBuilder进行定制
- return new ApiInfoBuilder()
- // 设置标题
- .title("标题:乐山实验室管理系统_接口文档")
- // 描述
- .description("乐山实验室接口文档")
- // 作者信息
- .contact(new Contact(ruoyiConfig.getName(), null, null))
- // 版本
- .version("版本号:" + ruoyiConfig.getVersion())
- .build();
- }
-}
diff --git a/ruoyi-applet/src/main/resources/META-INF/spring-devtools.properties b/ruoyi-applet/src/main/resources/META-INF/spring-devtools.properties
deleted file mode 100644
index 2b23f85..0000000
--- a/ruoyi-applet/src/main/resources/META-INF/spring-devtools.properties
+++ /dev/null
@@ -1 +0,0 @@
-restart.include.json=/com.alibaba.fastjson.*.jar
\ No newline at end of file
diff --git a/ruoyi-applet/src/main/resources/application-prod.yml b/ruoyi-applet/src/main/resources/application-prod.yml
deleted file mode 100644
index 10c4c27..0000000
--- a/ruoyi-applet/src/main/resources/application-prod.yml
+++ /dev/null
@@ -1,230 +0,0 @@
-# 项目相关配置
-ruoyi:
- # 名称
- name: RuoYi
- # 版本
- version: 3.8.6
- # 版权年份
- copyrightYear: 2023
- # 实例演示开关
- demoEnabled: true
- # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
- profile: D:/ruoyi/uploadPath
- # 获取ip地址开关
- addressEnabled: false
- # 验证码类型 math 数字计算 char 字符验证
- captchaType: math
-
-# 开发环境配置
-server:
- # 服务器的HTTP端口,默认为8080
- port: 8082
- 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:
- main:
- allow-bean-definition-overriding: true
- # 资源信息
- messages:
- # 国际化资源文件路径
- basename: i18n/messages
- # 文件上传
- servlet:
- multipart:
- # 单个文件大小
- max-file-size: 500MB
- # 设置总上传的文件大小
- max-request-size: 2000MB
- # 服务模块
- devtools:
- restart:
- # 热部署开关
- enabled: true
- # redis 配置
- redis:
- # 地址
- # host: 127.0.0.1
- # # 端口,默认为6379
- # port: 6379
- # # 数据库索引
- # database: 0
- # # 密码
- # password: 123456
- host: 127.0.0.1
- # 端口,默认为6379
- port: 16379
- # 数据库索引
- database: 0
- # 密码
- password: 8f5z9g52gx4bg
- # 连接超时时间
- timeout: 10s
- lettuce:
- pool:
- # 连接池中的最小空闲连接
- min-idle: 0
- # 连接池中的最大空闲连接
- max-idle: 8
- # 连接池的最大数据库连接数
- max-active: 8
- # #连接池最大阻塞等待时间(使用负值表示没有限制)
- max-wait: -1ms
- # 数据源配置
- datasource:
- type: com.alibaba.druid.pool.DruidDataSource
- driverClassName: com.mysql.cj.jdbc.Driver
- druid:
- # 主库数据源
- master:
- url: jdbc:mysql://172.27.0.13:3306/xizang?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai
- username: xzgt
- password: changyun!6f2gshj6h3j
- # 从库数据源
- 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
-# token配置
-token:
- # 令牌自定义标识
- header: Authorization
- # 令牌密钥
- secret: abcdefghijklmnopqrstuvwxyz
- # 令牌有效期(默认30分钟)
- expireTime: 120
-
-mybatis-plus:
- # 此处在多数据源中生效
- config-location: classpath:/mybatis-config.xml
- global-config:
- banner: false
- db-config:
- logic-not-delete-value: 0
- logic-delete-value: 1
- type-aliases-package: com.ruoyi.**.domain,com.ruoyi.**.vo,com.ruoyi.**.model
- # 指定Mapper文件位置
- mapper-locations: classpath*:mapper/**/*.xml
-
-# Swagger配置
-swagger:
- # 是否开启swagger
- enabled: true
- # 请求前缀
- pathMapping: /
-
-# 防止XSS攻击
-xss:
- # 过滤开关
- enabled: true
- # 排除链接(多个用逗号分隔)
- excludes: /system/notice
- # 匹配链接
- urlPatterns: /system/*,/monitor/*,/tool/*
-# file upload
-file:
- upload:
- location: /file/
- qrLocation: /file/qrCode/
- accessPath: /file/
- allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF
- url:
- prefix: https://xzgt.test.591taxi.cn:${server.port}${server.servlet.context-path}
-wx:
- conf:
- appId: wxe91f1af7638aa5dd
- secretId: a787e1a462715604e0c9528b6d8960d1
-#OSS及短信配置
-code:
- config:
- templateCodeTest: "SMS_154950909"
- signNameTest: "阿里云短信测试"
- accessKeyId: LTAI5tAdba8HtT1C6UqtSxBt
- accessKeySecret: 0SRb6XGkciQDPWn2rYqbJtq2qRMDY8
- signName: "四川金达通信工程"
- templateCode: "SMS_293985284"
-cos:
- client:
- accessKey: AKIDCF5EF2c0DE1e5JK8r4EGJF4mNsMgp26x
- secretKey: lLl184rUyFOOE0d5KNGC3kmfNsCWk4GU
- bucket: xzgttest-1305134071
- bucketAddr: ap-chengdu
- rootSrc: https://xzgttest-1305134071.cos.ap-chengdu.myqcloud.com/
- location: xizang
-sms:
- enable: true
- appId: 1400957506
- secretid: AKIDCF5EF2c0DE1e5JK8r4EGJF4mNsMgp26x
- secretkey: lLl184rUyFOOE0d5KNGC3kmfNsCWk4GU
- sign: 畅云出行
diff --git a/ruoyi-applet/src/main/resources/application-test.yml b/ruoyi-applet/src/main/resources/application-test.yml
deleted file mode 100644
index 40d4e3f..0000000
--- a/ruoyi-applet/src/main/resources/application-test.yml
+++ /dev/null
@@ -1,231 +0,0 @@
-# 项目相关配置
-ruoyi:
- # 名称
- name: RuoYi
- # 版本
- version: 3.8.6
- # 版权年份
- copyrightYear: 2023
- # 实例演示开关
- demoEnabled: true
- # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
- profile: D:/ruoyi/uploadPath
- # 获取ip地址开关
- addressEnabled: false
- # 验证码类型 math 数字计算 char 字符验证
- captchaType: math
-
-# 开发环境配置
-server:
- # 服务器的HTTP端口,默认为8080
- port: 8082
- 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:
- main:
- allow-bean-definition-overriding: true
- # 资源信息
- messages:
- # 国际化资源文件路径
- basename: i18n/messages
- # 文件上传
- servlet:
- multipart:
- # 单个文件大小
- max-file-size: 500MB
- # 设置总上传的文件大小
- max-request-size: 2000MB
- # 服务模块
- devtools:
- restart:
- # 热部署开关
- enabled: true
- # redis 配置
- redis:
- # 地址
-# host: 127.0.0.1
-# # 端口,默认为6379
-# port: 6379
-# # 数据库索引
-# database: 0
-# # 密码
-# password: 123456
- host: xzgt.test.591taxi.cn
- # 端口,默认为6379
- port: 16379
- # 数据库索引
- database: 0
- # 密码
- password: 8f5z9g52gx4bg
- # 连接超时时间
- timeout: 10s
- lettuce:
- pool:
- # 连接池中的最小空闲连接
- min-idle: 0
- # 连接池中的最大空闲连接
- max-idle: 8
- # 连接池的最大数据库连接数
- max-active: 8
- # #连接池最大阻塞等待时间(使用负值表示没有限制)
- max-wait: -1ms
-# 数据源配置
- datasource:
- type: com.alibaba.druid.pool.DruidDataSource
- driverClassName: com.mysql.cj.jdbc.Driver
- druid:
- # 主库数据源
- master:
- url: jdbc:mysql://xzgt.test.591taxi.cn:13306/xizang?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai
- username: root
- password: 8f5z9g52gx4bg
- # 从库数据源
- 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
-# token配置
-token:
- # 令牌自定义标识
- header: Authorization
- # 令牌密钥
- secret: abcdefghijklmnopqrstuvwxyz
- # 令牌有效期(默认30分钟)
- expireTime: 120
-
-mybatis-plus:
- # 此处在多数据源中生效
- config-location: classpath:/mybatis-config.xml
- global-config:
- banner: false
- db-config:
- logic-not-delete-value: 0
- logic-delete-value: 1
- type-aliases-package: com.ruoyi.**.domain,com.ruoyi.**.vo,com.ruoyi.**.model
- # 指定Mapper文件位置
- mapper-locations: classpath*:mapper/**/*.xml
-
-# Swagger配置
-swagger:
- # 是否开启swagger
- enabled: true
- # 请求前缀
- pathMapping: /
-
-# 防止XSS攻击
-xss:
- # 过滤开关
- enabled: true
- # 排除链接(多个用逗号分隔)
- excludes: /system/notice
- # 匹配链接
- urlPatterns: /system/*,/monitor/*,/tool/*
-# file upload
-file:
- upload:
- location: /file/
- qrLocation: /file/qrCode/
- accessPath: /file/
- allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF
- url:
-# prefix: http://localhost:${server.port}${server.servlet.context-path}
- prefix: https://xzgt.test.591taxi.cn:${server.port}${server.servlet.context-path}
-wx:
- conf:
- appId: wxe91f1af7638aa5dd
- secretId: a787e1a462715604e0c9528b6d8960d1
-#OSS及短信配置
-code:
- config:
- templateCodeTest: "SMS_154950909"
- signNameTest: "阿里云短信测试"
- accessKeyId: LTAI5tAdba8HtT1C6UqtSxBt
- accessKeySecret: 0SRb6XGkciQDPWn2rYqbJtq2qRMDY8
- signName: "四川金达通信工程"
- templateCode: "SMS_293985284"
-cos:
- client:
- accessKey: AKIDCF5EF2c0DE1e5JK8r4EGJF4mNsMgp26x
- secretKey: lLl184rUyFOOE0d5KNGC3kmfNsCWk4GU
- bucket: xzgttest-1305134071
- bucketAddr: ap-chengdu
- rootSrc: https://xzgttest-1305134071.cos.ap-chengdu.myqcloud.com/
- location: xizang
-sms:
- enable: true
- appId: 1400957506
- secretid: AKIDCF5EF2c0DE1e5JK8r4EGJF4mNsMgp26x
- secretkey: lLl184rUyFOOE0d5KNGC3kmfNsCWk4GU
- sign: 畅云出行
diff --git a/ruoyi-applet/src/main/resources/application.yml b/ruoyi-applet/src/main/resources/application.yml
deleted file mode 100644
index dcc106d..0000000
--- a/ruoyi-applet/src/main/resources/application.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-# 项目相关配置
-spring:
- profiles:
- active: test
diff --git a/ruoyi-applet/src/main/resources/banner.txt b/ruoyi-applet/src/main/resources/banner.txt
deleted file mode 100644
index 0931cb8..0000000
--- a/ruoyi-applet/src/main/resources/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/ruoyi-applet/src/main/resources/i18n/messages.properties b/ruoyi-applet/src/main/resources/i18n/messages.properties
deleted file mode 100644
index 93de005..0000000
--- a/ruoyi-applet/src/main/resources/i18n/messages.properties
+++ /dev/null
@@ -1,38 +0,0 @@
-#错误消息
-not.null=* 必须填写
-user.jcaptcha.error=验证码错误
-user.jcaptcha.expire=验证码已失效
-user.not.exists=用户不存在/密码错误
-user.password.not.match=用户不存在/密码错误
-user.password.retry.limit.count=密码输入错误{0}次
-user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定{1}分钟
-user.password.delete=对不起,您的账号已被删除
-user.blocked=用户已封禁,请联系管理员
-role.blocked=角色已封禁,请联系管理员
-login.blocked=很遗憾,访问IP已被列入系统黑名单
-user.logout.success=退出成功
-
-length.not.valid=长度必须在{min}到{max}个字符之间
-
-user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头
-user.password.not.valid=* 5-50个字符
-
-user.email.not.valid=邮箱格式错误
-user.mobile.phone.number.not.valid=手机号格式错误
-user.login.success=登录成功
-user.register.success=注册成功
-user.notfound=请重新登录
-user.forcelogout=管理员强制退出,请重新登录
-user.unknown.error=未知错误,请重新登录
-
-##文件上传消息
-upload.exceed.maxSize=上传的文件大小超出限制的文件大小!<br/>允许的文件最大大小是:{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/ruoyi-applet/src/main/resources/logback.xml b/ruoyi-applet/src/main/resources/logback.xml
deleted file mode 100644
index a360583..0000000
--- a/ruoyi-applet/src/main/resources/logback.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration>
- <!-- 日志存放路径 -->
- <property name="log.path" value="/home/ruoyi/logs" />
- <!-- 日志输出格式 -->
- <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
-
- <!-- 控制台输出 -->
- <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
- <encoder>
- <pattern>${log.pattern}</pattern>
- </encoder>
- </appender>
-
- <!-- 系统日志输出 -->
- <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${log.path}/sys-info.log</file>
- <!-- 循环政策:基于时间创建日志文件 -->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 日志文件名格式 -->
- <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
- <!-- 日志最大的历史 60天 -->
- <maxHistory>60</maxHistory>
- </rollingPolicy>
- <encoder>
- <pattern>${log.pattern}</pattern>
- </encoder>
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <!-- 过滤的级别 -->
- <level>INFO</level>
- <!-- 匹配时的操作:接收(记录) -->
- <onMatch>ACCEPT</onMatch>
- <!-- 不匹配时的操作:拒绝(不记录) -->
- <onMismatch>DENY</onMismatch>
- </filter>
- </appender>
-
- <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${log.path}/sys-error.log</file>
- <!-- 循环政策:基于时间创建日志文件 -->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 日志文件名格式 -->
- <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
- <!-- 日志最大的历史 60天 -->
- <maxHistory>60</maxHistory>
- </rollingPolicy>
- <encoder>
- <pattern>${log.pattern}</pattern>
- </encoder>
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <!-- 过滤的级别 -->
- <level>ERROR</level>
- <!-- 匹配时的操作:接收(记录) -->
- <onMatch>ACCEPT</onMatch>
- <!-- 不匹配时的操作:拒绝(不记录) -->
- <onMismatch>DENY</onMismatch>
- </filter>
- </appender>
-
- <!-- 用户访问日志输出 -->
- <appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${log.path}/sys-user.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 按天回滚 daily -->
- <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
- <!-- 日志最大的历史 60天 -->
- <maxHistory>60</maxHistory>
- </rollingPolicy>
- <encoder>
- <pattern>${log.pattern}</pattern>
- </encoder>
- </appender>
-
- <!-- 系统模块日志级别控制 -->
- <logger name="com.ruoyi" level="info" />
- <!-- Spring日志级别控制 -->
- <logger name="org.springframework" level="warn" />
-
- <root level="info">
- <appender-ref ref="console" />
- </root>
-
- <!--系统操作日志-->
- <root level="info">
- <appender-ref ref="file_info" />
- <appender-ref ref="file_error" />
- </root>
-
- <!--系统用户操作日志-->
- <logger name="sys-user" level="info">
- <appender-ref ref="sys-user"/>
- </logger>
-</configuration>
\ No newline at end of file
diff --git a/ruoyi-applet/src/main/resources/mybatis-config.xml b/ruoyi-applet/src/main/resources/mybatis-config.xml
deleted file mode 100644
index 53c5587..0000000
--- a/ruoyi-applet/src/main/resources/mybatis-config.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
-<configuration>
-
- <settings>
- <!-- 打印查询语句 不会写入到日志文件中-->
- <setting name="logImpl" value="STDOUT_LOGGING"/>
- <!--<setting name="logImpl" value="LOG4J" />-->
- <!-- 控制全局缓存(二级缓存),按美团技术团队的说法,尽量别用缓存机制 emmmm.... -->
- <setting name="cacheEnabled" value="true"/>
- <!-- 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。默认 false -->
- <!-- <setting name="lazyLoadingEnabled" value="true"/> -->
- <setting name="mapUnderscoreToCamelCase" value="true"/><!--是否将map下划线方式转为驼峰式命名-->
- <!-- 当开启时,任何方法的调用都会加载该对象的所有属性。默认 false,可通过select标签的 fetchType来覆盖-->
- <!-- <setting name="aggressiveLazyLoading" value="false"/>-->
- <!-- Mybatis 创建具有延迟加载能力的对象所用到的代理工具,默认JAVASSIST -->
- <!--<setting name="proxyFactory" value="CGLIB" />-->
- <!-- 关于mybatis的一二级缓存 请参照:https://tech.meituan.com/2018/01/19/mybatis-cache.html -->
- <!-- 一级缓存范围默认:SESSION ,此范围在复杂应用场景中可能会出现脏读数据-->
- <!-- STATEMENT级别的缓存,使一级缓存,只针对当前执行的这一statement有效 -->
- <!--<setting name="localCacheScope" value="STATEMENT"/>-->
- <setting name="localCacheScope" value="STATEMENT"/>
- </settings>
-
-</configuration>
diff --git a/ruoyi-applet/src/main/resources/mybatis/mybatis-config.xml b/ruoyi-applet/src/main/resources/mybatis/mybatis-config.xml
deleted file mode 100644
index ac47c03..0000000
--- a/ruoyi-applet/src/main/resources/mybatis/mybatis-config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE configuration
-PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-config.dtd">
-<configuration>
- <!-- 全局参数 -->
- <settings>
- <!-- 使全局的映射器启用或禁用缓存 -->
- <setting name="cacheEnabled" value="true" />
- <!-- 允许JDBC 支持自动生成主键 -->
- <setting name="useGeneratedKeys" value="true" />
- <!-- 配置默认的执行器.SIMPLE就是普通执行器;REUSE执行器会重用预处理语句(prepared statements);BATCH执行器将重用语句并执行批量更新 -->
- <setting name="defaultExecutorType" value="SIMPLE" />
- <!-- 指定 MyBatis 所用日志的具体实现 -->
- <setting name="logImpl" value="SLF4J" />
- <!-- 使用驼峰命名法转换字段 -->
- <!-- <setting name="mapUnderscoreToCamelCase" value="true"/> -->
- </settings>
-
-</configuration>
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/config/SmsProperties.java b/ruoyi-common/src/main/java/com/ruoyi/common/config/SmsProperties.java
deleted file mode 100644
index 7a45914..0000000
--- a/ruoyi-common/src/main/java/com/ruoyi/common/config/SmsProperties.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.ruoyi.common.config;
-
-import lombok.Data;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-@Data
-@Component
-@ConfigurationProperties(prefix = "sms")
-public class SmsProperties {
-
- public static final String ENABLE_KEY = "sms.enable";
-
- private Boolean enable;
-
- private String appId;
-
- private String secretid;
-
- private String secretkey;
- /**
- * 短信签名
- */
- private String sign;
-
- /**
- * 账单提醒 ,同一个用户离上次发送短信的最小间隔
- * 单位分钟
- */
- private Integer billSmsDelayPeriod = 60;
- /**
- * 账单提醒 ,同一个用户离上次发送邮件的最小间隔
- * 单位分钟
- */
- private Integer billMailDelayPeriod = 60;
-
-
-}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsUtil.java
deleted file mode 100644
index c558969..0000000
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsUtil.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package com.ruoyi.common.utils;
-
-import com.alibaba.fastjson2.JSON;
-import com.ruoyi.common.config.SmsProperties;
-import com.ruoyi.common.exception.ServiceException;
-import com.tencentcloudapi.common.Credential;
-import com.tencentcloudapi.common.exception.TencentCloudSDKException;
-import com.tencentcloudapi.common.profile.ClientProfile;
-import com.tencentcloudapi.common.profile.HttpProfile;
-import com.tencentcloudapi.sms.v20190711.SmsClient;
-import com.tencentcloudapi.sms.v20190711.models.SendSmsRequest;
-import com.tencentcloudapi.sms.v20190711.models.SendSmsResponse;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.Resource;
-import java.util.Arrays;
-import java.util.List;
-
-@Component
-@Slf4j
-public class SmsUtil {
-
- @Resource
- SmsProperties smsProperties;
- static SmsClient smsClient;
-
-
- public SmsProperties getPro() {
- return smsProperties;
- }
-
- @PostConstruct
- public void createSmsClient() {
- // 实例化一个认证对象,入参需要传入腾讯云账户 SecretId,SecretKey。
- // 为了保护密钥安全,建议将密钥设置在环境变量中或者配置文件中,请参考凭证管理 https://github.com/TencentCloud/tencentcloud-sdk-java?tab=readme-ov-file#%E5%87%AD%E8%AF%81%E7%AE%A1%E7%90%86。
- // 硬编码密钥到代码中有可能随代码泄露而暴露,有安全隐患,并不推荐。
- // SecretId、SecretKey 查询: https://console.cloud.tencent.com/cam/capi
- // Credential cred = new Credential("SecretId", "SecretKey");
-
- Credential cred = new Credential(smsProperties.getSecretid(), smsProperties.getSecretkey());
- // 实例化一个http选项,可选的,没有特殊需求可以跳过
- HttpProfile httpProfile = new HttpProfile();
- // 指定接入地域域名,默认就近地域接入域名为 sms.tencentcloudapi.com ,也支持指定地域域名访问,例如广州地域的域名为 sms.ap-guangzhou.tencentcloudapi.com
- httpProfile.setEndpoint("sms.tencentcloudapi.com");
- // 实例化一个客户端配置对象
- ClientProfile clientProfile = new ClientProfile();
- clientProfile.setHttpProfile(httpProfile);
- // 实例化要请求产品(sms)的client对象,第二个参数是地域信息,可以直接填写字符串ap-guangzhou,支持的地域列表参考 https://cloud.tencent.com/document/api/382/52071#.E5.9C.B0.E5.9F.9F.E5.88.97.E8.A1.A8
- smsClient = new SmsClient(cred, "ap-guangzhou", clientProfile);
- }
-
- public boolean sendSms(String phone,String templateId,String[] param){
- phone = phone.startsWith("+86")?phone:("+86"+phone);
- SendSmsRequest req = new SendSmsRequest();
- req.setSmsSdkAppid(smsProperties.getAppId());
- req.setPhoneNumberSet(new String[]{phone});
- req.setTemplateID(templateId);
- req.setSign(smsProperties.getSign());
- req.setTemplateParamSet(param);
- req.setSenderId("");
- req.setSessionContext("");
- req.setExtendCode("");
- try {
- SendSmsResponse sendSmsResponse = smsClient.SendSms(req);
- System.out.println(JSON.toJSONString(sendSmsResponse));
- return true;
- } catch (TencentCloudSDKException e) {
- log.error("发送短信失败,{},{}",phone,param,e);
- throw new ServiceException("发送短信失败");
- } catch (Exception e){
- log.error("发送短信失败1,{},{}",phone,param,e);
- throw new ServiceException("发送短信失败1");
- }
- }
-
-
-}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TSeparationOfCultureDishes.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSeparationOfCultureDishes.java
index f033e9f..b5083cc 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TSeparationOfCultureDishes.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSeparationOfCultureDishes.java
@@ -33,8 +33,6 @@
@TableField("id")
private String id;
-
-
@ApiModelProperty(value = "菌种选育保藏记录id")
@TableField("breeding_preserve_id")
private String breedingPreserveId;
@@ -46,6 +44,9 @@
@ApiModelProperty(value = "分离菌落编号")
@TableField("separate_bacterial_colonies_code")
private String separateBacterialColoniesCode;
+ @ApiModelProperty(value = "2.0新增字段培养皿编号")
+ @TableField("petri_dish_number")
+ private String petriDishNumber;
}
diff --git a/ruoyi-system/src/main/resources/mapper/system/TTrainLibraryMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TTrainLibraryMapper.xml
index f804864..b4cce6c 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TTrainLibraryMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TTrainLibraryMapper.xml
@@ -57,7 +57,7 @@
</if>
AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
</where>
- order by create_time desc
+ order by strain_code desc
</select>
<select id="getDetailById" resultType="com.ruoyi.system.vo.TTrainLibraryWarehousingVO">
select t1.* from t_train_library_warehousing t1
diff --git a/ruoyi-system/target/classes/mapper/system/SysUserMapper.xml b/ruoyi-system/target/classes/mapper/system/SysUserMapper.xml
index f844487..4cfd0a7 100644
--- a/ruoyi-system/target/classes/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/target/classes/mapper/system/SysUserMapper.xml
@@ -25,6 +25,7 @@
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
<result property="ifBlack" column="ifBlack" />
+ <result property="allocateIp" column="allocateIp" />
<association property="dept" javaType="SysDept" resultMap="deptResult" />
<collection property="roles" javaType="java.util.List" resultMap="RoleResult" />
</resultMap>
@@ -51,7 +52,7 @@
<sql id="selectUserVo">
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password,
u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
- u.roleType,
+ u.roleType,u.allocateIp,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
from sys_user u
@@ -134,7 +135,7 @@
select u.user_id AS userId, u.dept_id AS deptId, u.user_name AS userName, u.nick_name AS nickName, u.email AS email, u.avatar AS avatar,
u.phonenumber AS phonenumber, u.sex AS sex, u.status AS status, u.del_flag AS delFlag, u.login_ip AS loginIp,
u.login_date AS loginDate, u.create_by AS createBy, u.create_time AS createTime, u.remark AS remark,u.ifBlack AS ifBlack,
- u.roleType,u.sign_picture as signPicture,
+ u.roleType,u.sign_picture as signPicture,u.allocateIp,
ur.role_id AS roleId,sr.role_name AS roleName,u.deptName as deptName
from sys_user u
left join sys_user_role ur on u.user_id = ur.user_id
@@ -163,7 +164,7 @@
</select>
<select id="selectList" resultType="com.ruoyi.common.core.domain.entity.SysUser">
select u.user_id AS userId, u.dept_id AS deptId, u.user_name AS userName, u.nick_name AS nickName, u.email AS email, u.avatar AS avatar,
- u.phonenumber AS phonenumber, u.sex AS sex, u.status AS status, u.del_flag AS delFlag, u.login_ip AS loginIp,
+ u.phonenumber AS phonenumber, u.sex AS sex, u.status AS status, u.del_flag AS delFlag, u.login_ip AS loginIp,u.allocateIp,
u.login_date AS loginDate, u.create_by AS createBy, u.create_time AS createTime, u.remark AS remark,u.ifBlack AS ifBlack
from sys_user u
WHERE u.del_flag = 0
@@ -228,7 +229,7 @@
u.phonenumber AS phonenumber, u.sex AS sex, u.status AS status, u.del_flag AS delFlag, u.login_ip AS loginIp,u.operating_time AS operatingTime,u.operating_person AS operatingPerson,
u.login_date AS loginDate, u.create_by AS createBy, u.create_time AS createTime, u.remark AS remark,u.ifBlack AS ifBlack,
r.role_id AS roleId, r.role_name AS roleName, r.role_key AS roleKey, r.role_sort AS roleSort, r.data_scope AS dataScope, r.status as role_status,u.deptName as deptName
- ,u.roleType as roleType
+ ,u.roleType as roleType,u.allocateIp
from sys_user u
left join sys_user_role ur on u.user_id = ur.user_id
left join sys_role r on r.role_id = ur.role_id
@@ -307,6 +308,7 @@
<if test="createBy != null and createBy != ''">create_by,</if>
<if test="remark != null and remark != ''">remark,</if>
<if test="ifBlack != null">ifBlack,</if>
+ <if test="allocateIp != null">allocateIp,</if>
create_time
)values(
<if test="userId != null and userId != ''">#{userId},</if>
@@ -324,6 +326,7 @@
<if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="remark != null and remark != ''">#{remark},</if>
<if test="ifBlack != null">#{ifBlack},</if>
+ <if test="allocateIp != null">#{allocateIp},</if>
sysdate()
)
</insert>
@@ -350,6 +353,7 @@
<if test="operatingTime != null">operating_time = #{operatingTime},</if>
<if test="operatingPerson != null">operating_person = #{operatingPerson},</if>
<if test="roleType != null">roleType = #{roleType},</if>
+ <if test="allocateIp != null">allocateIp = #{allocateIp},</if>
update_time = sysdate()
</set>
where user_id = #{userId}
diff --git a/ruoyi-system/target/classes/mapper/system/TPedigreeChartMapper.xml b/ruoyi-system/target/classes/mapper/system/TPedigreeChartMapper.xml
index 964e772..0285917 100644
--- a/ruoyi-system/target/classes/mapper/system/TPedigreeChartMapper.xml
+++ b/ruoyi-system/target/classes/mapper/system/TPedigreeChartMapper.xml
@@ -35,6 +35,15 @@
<if test="query.generationType != null">
and generation_type = #{query.generationType}
</if>
+ <if test="query.roleType == 1">
+ and status = 2
+ </if>
+ <if test="query.roleType == 2">
+ and status = 2
+ </if>
+ <if test="query.roleType == 3">
+ and status = 2 or status = 1
+ </if>
<if test="query.projectIds != null and query.projectIds.size() > 0">
and project_id in
<foreach item="item" collection="query.projectIds" separator="," open="(" close=")" index="">
@@ -57,9 +66,18 @@
where pedigree_chart_id = #{query.id}
and status = 1
and type = 1
- and vaccinate_id is not null
- and preserve_id is null
- and disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ and audit_status = 1
+ and disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ order by create_time desc
+ </select>
+ <select id="pageListCountDetail" resultType="com.ruoyi.system.vo.TPedigreeChartDetailVO">
+ select * from t_pedigree_chart_detail
+ where pedigree_chart_id = #{query.id}
+ and status = 1
+ and type = 2
+ and audit_status = 1
+ and disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ order by create_time desc
</select>
diff --git a/ruoyi-system/target/classes/mapper/system/TTrainLibraryMapper.xml b/ruoyi-system/target/classes/mapper/system/TTrainLibraryMapper.xml
index f804864..b4cce6c 100644
--- a/ruoyi-system/target/classes/mapper/system/TTrainLibraryMapper.xml
+++ b/ruoyi-system/target/classes/mapper/system/TTrainLibraryMapper.xml
@@ -57,7 +57,7 @@
</if>
AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
</where>
- order by create_time desc
+ order by strain_code desc
</select>
<select id="getDetailById" resultType="com.ruoyi.system.vo.TTrainLibraryWarehousingVO">
select t1.* from t_train_library_warehousing t1
--
Gitblit v1.7.1