diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index 23210b5..3316f7d 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -5,7 +5,7 @@
ruoyi-flowable-plus
com.ruoyi
- 0.8.3
+ 0.8.2
4.0.0
jar
@@ -21,6 +21,7 @@
org.springframework.boot
spring-boot-devtools
+ runtime
true
@@ -66,6 +67,11 @@
ruoyi-oss
+
+ com.ruoyi
+ ruoyi-sms
+
+
com.ruoyi
@@ -78,6 +84,7 @@
ruoyi-demo
+
com.ruoyi
@@ -105,7 +112,7 @@
- ${project.artifactId}
+ pay
org.springframework.boot
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
index 0153428..50fc468 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
@@ -3,6 +3,7 @@ package com.ruoyi;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
+import org.springframework.scheduling.annotation.EnableScheduling;
/**
* 启动程序
@@ -11,6 +12,7 @@ import org.springframework.boot.context.metrics.buffering.BufferingApplicationSt
*/
@SpringBootApplication
+@EnableScheduling
public class RuoYiApplication {
public static void main(String[] args) {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java
index f5a603a..f0712e4 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java
@@ -4,21 +4,16 @@ import cn.dev33.satoken.annotation.SaIgnore;
import cn.hutool.captcha.AbstractCaptcha;
import cn.hutool.captcha.generator.CodeGenerator;
import cn.hutool.core.util.IdUtil;
-import cn.hutool.core.util.RandomUtil;
import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.CaptchaType;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.email.MailUtils;
import com.ruoyi.common.utils.redis.RedisUtils;
import com.ruoyi.common.utils.reflect.ReflectUtils;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.framework.config.properties.CaptchaProperties;
-import com.ruoyi.framework.config.properties.MailProperties;
import com.ruoyi.sms.config.properties.SmsProperties;
-import com.ruoyi.sms.core.SmsTemplate;
-import com.ruoyi.sms.entity.SmsResult;
import com.ruoyi.system.service.ISysConfigService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -49,7 +44,6 @@ public class CaptchaController {
private final CaptchaProperties captchaProperties;
private final SmsProperties smsProperties;
private final ISysConfigService configService;
- private final MailProperties mailProperties;
/**
* 短信验证码
@@ -57,45 +51,33 @@ public class CaptchaController {
* @param phonenumber 用户手机号
*/
@GetMapping("/captchaSms")
- public R smsCaptcha(@NotBlank(message = "{user.phonenumber.not.blank}") String phonenumber) {
- if (!smsProperties.getEnabled()) {
+ public R smsCaptcha(@NotBlank(message = "{user.phonenumber.not.blank}")
+ String phonenumber) {
+ //实际使用时放开
+ /* if (!smsProperties.getEnabled()) {
return R.fail("当前系统没有开启短信功能!");
}
+ if (!SpringUtils.containsBean("aliyunSmsTemplate")) {
+ return R.fail("阿里云依赖未引入!");
+ }*/
String key = CacheConstants.CAPTCHA_CODE_KEY + phonenumber;
- String code = RandomUtil.randomNumbers(4);
+
+ //实际使用时注掉这个 放开下面的代码,注意修改templateId
+ String code = "1234";
+ RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));
+ /*String code = RandomUtil.randomNumbers(4);
RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));
// 验证码模板id 自行处理 (查数据库或写死均可)
- String templateId = "";
+ String templateId = "SMS_206546421"; //自己阿里云设置的模板id
Map map = new HashMap<>(1);
map.put("code", code);
- SmsTemplate smsTemplate = SpringUtils.getBean(SmsTemplate.class);
+ //SmsTemplate smsTemplate = SpringUtils.getBean(SmsTemplate.class);
+ SmsTemplate smsTemplate = SpringUtils.getBean(AliyunSmsTemplate.class);
SmsResult result = smsTemplate.send(phonenumber, templateId, map);
if (!result.isSuccess()) {
log.error("验证码短信发送异常 => {}", result);
return R.fail(result.getMessage());
- }
- return R.ok();
- }
-
- /**
- * 邮箱验证码
- *
- * @param email 邮箱
- */
- @GetMapping("/captchaEmail")
- public R emailCode(@NotBlank(message = "{user.email.not.blank}") String email) {
- if (!mailProperties.getEnabled()) {
- return R.fail("当前系统没有开启邮箱功能!");
- }
- String key = CacheConstants.CAPTCHA_CODE_KEY + email;
- String code = RandomUtil.randomNumbers(4);
- RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));
- try {
- MailUtils.sendText(email, "登录验证码", "您本次验证码为:" + code + ",有效性为" + Constants.CAPTCHA_EXPIRATION + "分钟,请尽快填写。");
- } catch (Exception e) {
- log.error("验证码短信发送异常 => {}", e.getMessage());
- return R.fail(e.getMessage());
- }
+ }*/
return R.ok();
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java
index f0ecce1..74585fc 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java
@@ -33,6 +33,7 @@ public class CacheController {
private final static List CACHES = new ArrayList<>();
static {
+ CACHES.add(new SysCache(CacheConstants.LOGIN_TOKEN_KEY, "用户信息"));
CACHES.add(new SysCache(CacheConstants.ONLINE_TOKEN_KEY, "在线用户"));
CACHES.add(new SysCache(CacheNames.SYS_CONFIG, "配置信息"));
CACHES.add(new SysCache(CacheNames.SYS_DICT, "数据字典"));
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java
index 33d425a..b0b574c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java
@@ -45,7 +45,7 @@ public class SysUserOnlineController extends BaseController {
List keys = StpUtil.searchTokenValue("", 0, -1, false);
List userOnlineDTOList = new ArrayList<>();
for (String key : keys) {
- String token = StringUtils.substringAfterLast(key, ":");
+ String token = key.replace(CacheConstants.LOGIN_TOKEN_KEY, "");
// 如果已经过期则跳过
if (StpUtil.stpLogic.getTokenActivityTimeoutByToken(token) < -1) {
continue;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
index 01613db..3a14980 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
@@ -37,7 +37,7 @@ public class SysDictDataController extends BaseController {
/**
* 查询字典数据列表
*/
- @SaCheckPermission("system:dict:list")
+ // @SaCheckPermission("system:dict:list")
@GetMapping("/list")
public TableDataInfo list(SysDictData dictData, PageQuery pageQuery) {
return dictDataService.selectPageDictDataList(dictData, pageQuery);
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index f982a5f..24d58fe 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -5,12 +5,13 @@ import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysMenu;
import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.common.core.domain.model.EmailLoginBody;
import com.ruoyi.common.core.domain.model.LoginBody;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.domain.model.SmsLoginBody;
+import com.ruoyi.common.core.service.DictService;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.system.domain.vo.RouterVo;
+import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.service.ISysMenuService;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.SysLoginService;
@@ -22,9 +23,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.text.ParseException;
+import java.util.*;
/**
* 登录验证
@@ -39,7 +39,9 @@ public class SysLoginController {
private final SysLoginService loginService;
private final ISysMenuService menuService;
private final ISysUserService userService;
-
+ private final SysUserMapper userMapper;
+ private final DictService dictService;
+ // private final IAsSubscriptionInfoService iAsSubscriptionInfoService;
/**
* 登录方法
*
@@ -48,17 +50,71 @@ public class SysLoginController {
*/
@SaIgnore
@PostMapping("/login")
- public R
-
-
- org.lionsoul
- ip2region
-
-
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java
index 0fb2c3f..1cdf07e 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java
@@ -7,6 +7,11 @@ package com.ruoyi.common.constant;
*/
public interface CacheConstants {
+ /**
+ * 登录用户 redis key
+ */
+ String LOGIN_TOKEN_KEY = "Authorization:login:token:";
+
/**
* 在线用户 redis key
*/
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheNames.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheNames.java
index 7d4164b..1396b6d 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheNames.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheNames.java
@@ -35,11 +35,6 @@ public interface CacheNames {
*/
String SYS_USER_NAME = "sys_user_name#30d";
- /**
- * 用户昵称
- */
- String SYS_NICK_NAME = "sys_nick_name#30d";
-
/**
* 部门
*/
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
index e634ed2..b0b6ad4 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
@@ -32,6 +32,11 @@ public interface Constants {
*/
String HTTPS = "https://";
+ /**
+ * 资源映射路径 前缀
+ */
+ String RESOURCE_PREFIX = "/profile";
+
/**
* 通用成功标识
*/
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java
index 4a095fa..ebe1d3e 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java
@@ -11,6 +11,8 @@ public interface UserConstants {
* 平台内系统用户的唯一标志
*/
String SYS_USER = "SYS_USER";
+ String CLIENT = "client";
+ String MAINTENANCE = "maintenance";
/**
* 正常状态
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/RoleDTO.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/RoleDTO.java
index e25243f..d610744 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/RoleDTO.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/dto/RoleDTO.java
@@ -30,6 +30,11 @@ public class RoleDTO implements Serializable {
*/
private String roleKey;
+ /**
+ * 所属公司
+ */
+ private Long tenantId;
+
/**
* 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限)
*/
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java
index 5949569..7b600ce 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java
@@ -61,6 +61,12 @@ public class SysRole extends BaseEntity {
@NotNull(message = "显示顺序不能为空")
private Integer roleSort;
+ /**
+ * 所属公司
+ */
+ @ExcelProperty(value = "所属公司ID")
+ private Long tenantId;
+
/**
* 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限)
*/
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
index c1a5342..f849dda 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -1,6 +1,5 @@
package com.ruoyi.common.core.domain.entity;
-import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -37,16 +36,20 @@ public class SysUser extends BaseEntity {
@TableId(value = "user_id")
private Long userId;
+ /**
+ * 部门ID
+ */
+ private Long deptId;
+
/**
* 租户ID
*/
- @ExcelProperty(value = "所属租户ID")
private Long tenantId;
/**
- * 部门ID
+ * 租户公司名称
*/
- private Long deptId;
+ private String tenantName;
/**
* 用户账号
@@ -68,6 +71,16 @@ public class SysUser extends BaseEntity {
*/
private String userType;
+ /**
+ * 客户ID
+ */
+ private Long clientId;
+
+ /**
+ * 维修工ID
+ */
+ private Long maintainerId;
+
/**
* 用户邮箱
*/
@@ -79,7 +92,7 @@ public class SysUser extends BaseEntity {
/**
* 手机号码
*/
- @Sensitive(strategy = SensitiveStrategy.PHONE)
+ //@Sensitive(strategy = SensitiveStrategy.PHONE)
private String phonenumber;
/**
@@ -140,6 +153,18 @@ public class SysUser extends BaseEntity {
@TableField(exist = false)
private SysDept dept;
+ /**
+ * 客户地址
+ */
+ @TableField(exist = false)
+ private String address;
+
+ /**
+ * 客户类型
+ */
+ @TableField(exist = false)
+ private String companyType;
+
/**
* 角色对象
*/
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/EmailLoginBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/EmailLoginBody.java
deleted file mode 100644
index b7bf81b..0000000
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/EmailLoginBody.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.ruoyi.common.core.domain.model;
-
-import lombok.Data;
-
-import javax.validation.constraints.Email;
-import javax.validation.constraints.NotBlank;
-
-/**
- * 短信登录对象
- *
- * @author Lion Li
- */
-
-@Data
-public class EmailLoginBody {
-
- /**
- * 邮箱
- */
- @NotBlank(message = "{user.email.not.blank}")
- @Email(message = "{user.email.not.valid}")
- private String email;
-
- /**
- * 邮箱code
- */
- @NotBlank(message = "{email.code.not.blank}")
- private String emailCode;
-
-}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java
index 2821393..d4592c4 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java
@@ -25,6 +25,11 @@ public class LoginUser implements Serializable {
*/
private Long userId;
+ /**
+ * 部门ID
+ */
+ private Long deptId;
+
/**
* 公司ID
*/
@@ -35,11 +40,6 @@ public class LoginUser implements Serializable {
*/
private String companyName;
- /**
- * 部门ID
- */
- private Long deptId;
-
/**
* 部门名
*/
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsLoginBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsLoginBody.java
index b12e74c..ce774ac 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsLoginBody.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsLoginBody.java
@@ -14,13 +14,13 @@ import javax.validation.constraints.NotBlank;
public class SmsLoginBody {
/**
- * 手机号
+ * 用户名
*/
@NotBlank(message = "{user.phonenumber.not.blank}")
private String phonenumber;
/**
- * 短信code
+ * 用户密码
*/
@NotBlank(message = "{sms.code.not.blank}")
private String smsCode;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java
index 0a8539a..251e04d 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java
@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.*;
+import com.baomidou.mybatisplus.core.toolkit.ReflectionKit;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.toolkit.Db;
import com.ruoyi.common.utils.BeanCopyUtils;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/service/UserService.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/service/UserService.java
index 0d98240..a2da2f9 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/service/UserService.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/service/UserService.java
@@ -14,13 +14,4 @@ public interface UserService {
* @return 用户账户
*/
String selectUserNameById(Long userId);
-
- /**
- * 通过用户ID查询用户昵称
- *
- * @param userId 用户ID
- * @return 用户昵称
- */
- String selectNickNameById(Long userId);
-
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/LoginType.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/LoginType.java
index 875e476..c91a4b9 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/LoginType.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/LoginType.java
@@ -22,11 +22,6 @@ public enum LoginType {
*/
SMS("sms.code.retry.limit.exceed", "sms.code.retry.limit.count"),
- /**
- * 邮箱登录
- */
- EMAIL("email.code.retry.limit.exceed", "email.code.retry.limit.count"),
-
/**
* 小程序登录
*/
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelListener.java b/ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelListener.java
index 2a3fc3b..6cd6d28 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelListener.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelListener.java
@@ -42,7 +42,7 @@ public class DefaultExcelListener extends AnalysisEventListener implements
private ExcelResult excelResult;
public DefaultExcelListener(boolean isValidate) {
- this.excelResult = new DefaultExcelResult<>();
+ this.excelResult = new DefautExcelResult<>();
this.isValidate = isValidate;
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelResult.java b/ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelResult.java
deleted file mode 100644
index 5ef65bf..0000000
--- a/ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelResult.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package com.ruoyi.common.excel;
-
-import cn.hutool.core.util.StrUtil;
-import lombok.Setter;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * 默认excel返回对象
- *
- * @author Yjoioooo
- * @author Lion Li
- */
-public class DefaultExcelResult implements ExcelResult {
-
- /**
- * 数据对象list
- */
- @Setter
- private List list;
-
- /**
- * 错误信息列表
- */
- @Setter
- private List errorList;
-
- public DefaultExcelResult() {
- this.list = new ArrayList<>();
- this.errorList = new ArrayList<>();
- }
-
- public DefaultExcelResult(List list, List errorList) {
- this.list = list;
- this.errorList = errorList;
- }
-
- public DefaultExcelResult(ExcelResult excelResult) {
- this.list = excelResult.getList();
- this.errorList = excelResult.getErrorList();
- }
-
- @Override
- public List getList() {
- return list;
- }
-
- @Override
- public List getErrorList() {
- return errorList;
- }
-
- /**
- * 获取导入回执
- *
- * @return 导入回执
- */
- @Override
- public String getAnalysis() {
- int successCount = list.size();
- int errorCount = errorList.size();
- if (successCount == 0) {
- return "读取失败,未解析到数据";
- } else {
- if (errorCount == 0) {
- return StrUtil.format("恭喜您,全部读取成功!共{}条", successCount);
- } else {
- return "";
- }
- }
- }
-}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataBaseHelper.java b/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataBaseHelper.java
index 33e0a78..1960356 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataBaseHelper.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataBaseHelper.java
@@ -66,7 +66,7 @@ public class DataBaseHelper {
// instr(',0,100,101,' , ',100,') <> 0
return "instr(','||" + var2 + "||',' , '," + var + ",') <> 0";
}
- // find_in_set('100' , '0,100,101')
- return "find_in_set('" + var + "' , " + var2 + ") <> 0";
+ // find_in_set(100 , '0,100,101')
+ return "find_in_set(" + var + " , " + var2 + ") <> 0";
}
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataPermissionHelper.java b/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataPermissionHelper.java
index c3b8b47..e2b1129 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataPermissionHelper.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataPermissionHelper.java
@@ -10,7 +10,6 @@ import lombok.NoArgsConstructor;
import java.util.HashMap;
import java.util.Map;
-import java.util.function.Supplier;
/**
* 数据权限助手
@@ -62,32 +61,4 @@ public class DataPermissionHelper {
InterceptorIgnoreHelper.clearIgnoreStrategy();
}
- /**
- * 在忽略数据权限中执行
- *
- * @param handle 处理执行方法
- */
- public static void ignore(Runnable handle) {
- enableIgnore();
- try {
- handle.run();
- } finally {
- disableIgnore();
- }
- }
-
- /**
- * 在忽略数据权限中执行
- *
- * @param handle 处理执行方法
- */
- public static T ignore(Supplier handle) {
- enableIgnore();
- try {
- return handle.get();
- } finally {
- disableIgnore();
- }
- }
-
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/helper/LoginHelper.java b/ruoyi-common/src/main/java/com/ruoyi/common/helper/LoginHelper.java
index c0c8775..ff6d60d 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/helper/LoginHelper.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/helper/LoginHelper.java
@@ -116,6 +116,18 @@ public class LoginHelper {
return getLoginUser().getNickName();
}
+ /**
+ * 获取用户所属单位
+ */
+ public static Long getTenantId() { return getLoginUser().getTenantId(); }
+
+ /**
+ * 获取用户所属单位名称
+ */
+ public static String getCompanyName() {
+ return getLoginUser().getCompanyName();
+ }
+
/**
* 获取用户类型
*/
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/translation/impl/DeptNameTranslationImpl.java b/ruoyi-common/src/main/java/com/ruoyi/common/translation/impl/DeptNameTranslationImpl.java
index ada3c25..6919617 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/translation/impl/DeptNameTranslationImpl.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/translation/impl/DeptNameTranslationImpl.java
@@ -18,8 +18,7 @@ import org.springframework.stereotype.Component;
public class DeptNameTranslationImpl implements TranslationInterface {
private final DeptService deptService;
-
- @Override
+
public String translation(Object key, String other) {
return deptService.selectDeptNameByIds(key.toString());
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/translation/impl/DictTypeTranslationImpl.java b/ruoyi-common/src/main/java/com/ruoyi/common/translation/impl/DictTypeTranslationImpl.java
index 1e97b66..210312c 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/translation/impl/DictTypeTranslationImpl.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/translation/impl/DictTypeTranslationImpl.java
@@ -20,7 +20,6 @@ public class DictTypeTranslationImpl implements TranslationInterface {
private final DictService dictService;
- @Override
public String translation(Object key, String other) {
if (key instanceof String && StringUtils.isNotBlank(other)) {
return dictService.getDictLabel(other, key.toString());
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/translation/impl/OssUrlTranslationImpl.java b/ruoyi-common/src/main/java/com/ruoyi/common/translation/impl/OssUrlTranslationImpl.java
index 863e4d6..69ebd9a 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/translation/impl/OssUrlTranslationImpl.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/translation/impl/OssUrlTranslationImpl.java
@@ -19,7 +19,6 @@ public class OssUrlTranslationImpl implements TranslationInterface {
private final OssService ossService;
- @Override
public String translation(Object key, String other) {
return ossService.selectUrlByIds(key.toString());
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/translation/impl/UserNameTranslationImpl.java b/ruoyi-common/src/main/java/com/ruoyi/common/translation/impl/UserNameTranslationImpl.java
index eccf1c8..36fd6c3 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/translation/impl/UserNameTranslationImpl.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/translation/impl/UserNameTranslationImpl.java
@@ -19,7 +19,6 @@ public class UserNameTranslationImpl implements TranslationInterface {
private final UserService userService;
- @Override
public String translation(Object key, String other) {
if (key instanceof Long) {
return userService.selectUserNameById((Long) key);
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/EncryptUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/EncryptUtils.java
deleted file mode 100644
index 691b6c0..0000000
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/EncryptUtils.java
+++ /dev/null
@@ -1,243 +0,0 @@
-package com.ruoyi.common.utils;
-
-import cn.hutool.core.codec.Base64;
-import cn.hutool.core.util.ArrayUtil;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.crypto.SecureUtil;
-import cn.hutool.crypto.SmUtil;
-import cn.hutool.crypto.asymmetric.KeyType;
-import cn.hutool.crypto.asymmetric.RSA;
-import cn.hutool.crypto.asymmetric.SM2;
-
-import java.nio.charset.StandardCharsets;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 安全相关工具类
- *
- * @author 老马
- */
-public class EncryptUtils {
- /**
- * 公钥
- */
- public static final String PUBLIC_KEY = "publicKey";
- /**
- * 私钥
- */
- public static final String PRIVATE_KEY = "privateKey";
-
- /**
- * Base64加密
- *
- * @param data 待加密数据
- * @return 加密后字符串
- */
- public static String encryptByBase64(String data) {
- return Base64.encode(data, StandardCharsets.UTF_8);
- }
-
- /**
- * Base64解密
- *
- * @param data 待解密数据
- * @return 解密后字符串
- */
- public static String decryptByBase64(String data) {
- return Base64.decodeStr(data, StandardCharsets.UTF_8);
- }
-
- /**
- * AES加密
- *
- * @param data 待解密数据
- * @param password 秘钥字符串
- * @return 加密后字符串, 采用Base64编码
- */
- public static String encryptByAes(String data, String password) {
- if (StrUtil.isBlank(password)) {
- throw new IllegalArgumentException("AES需要传入秘钥信息");
- }
- // aes算法的秘钥要求是16位、24位、32位
- int[] array = {16, 24, 32};
- if (!ArrayUtil.contains(array, password.length())) {
- throw new IllegalArgumentException("AES秘钥长度要求为16位、24位、32位");
- }
- return SecureUtil.aes(password.getBytes(StandardCharsets.UTF_8)).encryptBase64(data, StandardCharsets.UTF_8);
- }
-
- /**
- * AES解密
- *
- * @param data 待解密数据
- * @param password 秘钥字符串
- * @return 解密后字符串
- */
- public static String decryptByAes(String data, String password) {
- if (StrUtil.isBlank(password)) {
- throw new IllegalArgumentException("AES需要传入秘钥信息");
- }
- // aes算法的秘钥要求是16位、24位、32位
- int[] array = {16, 24, 32};
- if (!ArrayUtil.contains(array, password.length())) {
- throw new IllegalArgumentException("AES秘钥长度要求为16位、24位、32位");
- }
- return SecureUtil.aes(password.getBytes(StandardCharsets.UTF_8)).decryptStr(data, StandardCharsets.UTF_8);
- }
-
- /**
- * sm4加密
- *
- * @param data 待加密数据
- * @param password 秘钥字符串
- * @return 加密后字符串, 采用Base64编码
- */
- public static String encryptBySm4(String data, String password) {
- if (StrUtil.isBlank(password)) {
- throw new IllegalArgumentException("SM4需要传入秘钥信息");
- }
- // sm4算法的秘钥要求是16位长度
- int sm4PasswordLength = 16;
- if (sm4PasswordLength != password.length()) {
- throw new IllegalArgumentException("SM4秘钥长度要求为16位");
- }
- return SmUtil.sm4(password.getBytes(StandardCharsets.UTF_8)).encryptBase64(data, StandardCharsets.UTF_8);
- }
-
- /**
- * sm4解密
- *
- * @param data 待解密数据
- * @param password 秘钥字符串
- * @return 解密后字符串
- */
- public static String decryptBySm4(String data, String password) {
- if (StrUtil.isBlank(password)) {
- throw new IllegalArgumentException("SM4需要传入秘钥信息");
- }
- // sm4算法的秘钥要求是16位长度
- int sm4PasswordLength = 16;
- if (sm4PasswordLength != password.length()) {
- throw new IllegalArgumentException("SM4秘钥长度要求为16位");
- }
- return SmUtil.sm4(password.getBytes(StandardCharsets.UTF_8)).decryptStr(data, StandardCharsets.UTF_8);
- }
-
- /**
- * 产生sm2加解密需要的公钥和私钥
- *
- * @return 公私钥Map
- */
- public static Map generateSm2Key() {
- Map keyMap = new HashMap<>(2);
- SM2 sm2 = SmUtil.sm2();
- keyMap.put(PRIVATE_KEY, sm2.getPrivateKeyBase64());
- keyMap.put(PUBLIC_KEY, sm2.getPublicKeyBase64());
- return keyMap;
- }
-
- /**
- * sm2公钥加密
- *
- * @param data 待加密数据
- * @param publicKey 公钥
- * @return 加密后字符串, 采用Base64编码
- */
- public static String encryptBySm2(String data, String publicKey) {
- if (StrUtil.isBlank(publicKey)) {
- throw new IllegalArgumentException("SM2需要传入公钥进行加密");
- }
- SM2 sm2 = SmUtil.sm2(null, publicKey);
- return sm2.encryptBase64(data, StandardCharsets.UTF_8, KeyType.PublicKey);
- }
-
- /**
- * sm2私钥解密
- *
- * @param data 待加密数据
- * @param privateKey 私钥
- * @return 解密后字符串
- */
- public static String decryptBySm2(String data, String privateKey) {
- if (StrUtil.isBlank(privateKey)) {
- throw new IllegalArgumentException("SM2需要传入私钥进行解密");
- }
- SM2 sm2 = SmUtil.sm2(privateKey, null);
- return sm2.decryptStr(data, KeyType.PrivateKey, StandardCharsets.UTF_8);
- }
-
- /**
- * 产生RSA加解密需要的公钥和私钥
- *
- * @return 公私钥Map
- */
- public static Map generateRsaKey() {
- Map keyMap = new HashMap<>(2);
- RSA rsa = SecureUtil.rsa();
- keyMap.put(PRIVATE_KEY, rsa.getPrivateKeyBase64());
- keyMap.put(PUBLIC_KEY, rsa.getPublicKeyBase64());
- return keyMap;
- }
-
- /**
- * rsa公钥加密
- *
- * @param data 待加密数据
- * @param publicKey 公钥
- * @return 加密后字符串, 采用Base64编码
- */
- public static String encryptByRsa(String data, String publicKey) {
- if (StrUtil.isBlank(publicKey)) {
- throw new IllegalArgumentException("RSA需要传入公钥进行加密");
- }
- RSA rsa = SecureUtil.rsa(null, publicKey);
- return rsa.encryptBase64(data, StandardCharsets.UTF_8, KeyType.PublicKey);
- }
-
- /**
- * rsa私钥解密
- *
- * @param data 待加密数据
- * @param privateKey 私钥
- * @return 解密后字符串
- */
- public static String decryptByRsa(String data, String privateKey) {
- if (StrUtil.isBlank(privateKey)) {
- throw new IllegalArgumentException("RSA需要传入私钥进行解密");
- }
- RSA rsa = SecureUtil.rsa(privateKey, null);
- return rsa.decryptStr(data, KeyType.PrivateKey, StandardCharsets.UTF_8);
- }
-
- /**
- * md5加密
- *
- * @param data 待加密数据
- * @return 加密后字符串, 采用Hex编码
- */
- public static String encryptByMd5(String data) {
- return SecureUtil.md5(data);
- }
-
- /**
- * sha256加密
- *
- * @param data 待加密数据
- * @return 加密后字符串, 采用Hex编码
- */
- public static String encryptBySha256(String data) {
- return SecureUtil.sha256(data);
- }
-
- /**
- * sm3加密
- *
- * @param data 待加密数据
- * @return 加密后字符串, 采用Hex编码
- */
- public static String encryptBySm3(String data) {
- return SmUtil.sm3(data);
- }
-
-}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MimeTypeUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MimeTypeUtils.java
index 6ca97fe..e3cf52e 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MimeTypeUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MimeTypeUtils.java
@@ -37,4 +37,23 @@ public class MimeTypeUtils {
// pdf
"pdf"};
+ public static String getExtension(String prefix)
+ {
+ switch (prefix)
+ {
+ case IMAGE_PNG:
+ return "png";
+ case IMAGE_JPG:
+ return "jpg";
+ case IMAGE_JPEG:
+ return "jpeg";
+ case IMAGE_BMP:
+ return "bmp";
+ case IMAGE_GIF:
+ return "gif";
+ default:
+ return "";
+ }
+ }
+
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java
index 9bf203b..8d3515e 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java
@@ -1,7 +1,12 @@
package com.ruoyi.common.utils.ip;
+import cn.hutool.core.lang.Dict;
import cn.hutool.core.net.NetUtil;
import cn.hutool.http.HtmlUtil;
+import cn.hutool.http.HttpUtil;
+import com.ruoyi.common.config.RuoYiConfig;
+import com.ruoyi.common.constant.Constants;
+import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.common.utils.StringUtils;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
@@ -16,18 +21,40 @@ import lombok.extern.slf4j.Slf4j;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class AddressUtils {
+ // IP地址查询
+ public static final String IP_URL = "http://whois.pconline.com.cn/ipJson.jsp";
+
// 未知地址
public static final String UNKNOWN = "XX XX";
public static String getRealAddressByIP(String ip) {
+ String address = UNKNOWN;
if (StringUtils.isBlank(ip)) {
- return UNKNOWN;
+ return address;
}
// 内网不查询
ip = "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : HtmlUtil.cleanHtmlTag(ip);
if (NetUtil.isInnerIP(ip)) {
return "内网IP";
}
- return RegionUtils.getCityInfo(ip);
+ if (RuoYiConfig.isAddressEnabled()) {
+ try {
+ String rspStr = HttpUtil.createGet(IP_URL)
+ .body("ip=" + ip + "&json=true", Constants.GBK)
+ .execute()
+ .body();
+ if (StringUtils.isEmpty(rspStr)) {
+ log.error("获取地理位置异常 {}", ip);
+ return UNKNOWN;
+ }
+ Dict obj = JsonUtils.parseMap(rspStr);
+ String region = obj.getStr("pro");
+ String city = obj.getStr("city");
+ return String.format("%s %s", region, city);
+ } catch (Exception e) {
+ log.error("获取地理位置异常 {}", ip);
+ }
+ }
+ return UNKNOWN;
}
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/RegionUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/RegionUtils.java
deleted file mode 100644
index 581061a..0000000
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/RegionUtils.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package com.ruoyi.common.utils.ip;
-
-import cn.hutool.core.io.FileUtil;
-import cn.hutool.core.io.resource.ClassPathResource;
-import cn.hutool.core.util.ObjectUtil;
-import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.file.FileUtils;
-import lombok.extern.slf4j.Slf4j;
-import org.lionsoul.ip2region.xdb.Searcher;
-
-import java.io.File;
-
-/**
- * 根据ip地址定位工具类,离线方式
- * 参考地址:集成 ip2region 实现离线IP地址定位库
- *
- * @author lishuyan
- */
-@Slf4j
-public class RegionUtils {
-
- private static final Searcher SEARCHER;
-
- static {
- String fileName = "/ip2region.xdb";
- File existFile = FileUtils.file(FileUtil.getTmpDir() + FileUtil.FILE_SEPARATOR + fileName);
- if (!FileUtils.exist(existFile)) {
- ClassPathResource fileStream = new ClassPathResource(fileName);
- if (ObjectUtil.isEmpty(fileStream.getStream())) {
- throw new ServiceException("RegionUtils初始化失败,原因:IP地址库数据不存在!");
- }
- FileUtils.writeFromStream(fileStream.getStream(), existFile);
- }
-
- String dbPath = existFile.getPath();
-
- // 1、从 dbPath 加载整个 xdb 到内存。
- byte[] cBuff;
- try {
- cBuff = Searcher.loadContentFromFile(dbPath);
- } catch (Exception e) {
- throw new ServiceException("RegionUtils初始化失败,原因:从ip2region.xdb文件加载内容失败!" + e.getMessage());
- }
- // 2、使用上述的 cBuff 创建一个完全基于内存的查询对象。
- try {
- SEARCHER = Searcher.newWithBuffer(cBuff);
- } catch (Exception e) {
- throw new ServiceException("RegionUtils初始化失败,原因:" + e.getMessage());
- }
- }
-
- /**
- * 根据IP地址离线获取城市
- */
- public static String getCityInfo(String ip) {
- try {
- ip = ip.trim();
- // 3、执行查询
- String region = SEARCHER.search(ip);
- return region.replace("0|", "").replace("|0", "");
- } catch (Exception e) {
- log.error("IP地址离线获取城市异常 {}", ip);
- return "未知";
- }
- }
-}
diff --git a/ruoyi-demo/pom.xml b/ruoyi-demo/pom.xml
index 2328512..2334836 100644
--- a/ruoyi-demo/pom.xml
+++ b/ruoyi-demo/pom.xml
@@ -5,7 +5,7 @@
ruoyi-flowable-plus
com.ruoyi
- 0.8.3
+ 0.8.2
4.0.0
@@ -29,10 +29,10 @@
-
-
-
-
+
+ com.aliyun
+ dysmsapi20170525
+
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java
index d040195..ee2e530 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java
@@ -49,16 +49,4 @@ public class RedisRateLimiterController {
return R.ok("操作成功", value);
}
- /**
- * 测试请求IP限流(key基于参数获取)
- * 同一IP请求受影响
- *
- * 简单变量获取 #变量 复杂表达式 #{#变量 != 1 ? 1 : 0}
- */
- @RateLimiter(count = 2, time = 10, limitType = LimitType.IP, key = "#value")
- @GetMapping("/testObj")
- public R testObj(String value) {
- return R.ok("操作成功", value);
- }
-
}
diff --git a/ruoyi-extend/pom.xml b/ruoyi-extend/pom.xml
index a62ce18..84a5d80 100644
--- a/ruoyi-extend/pom.xml
+++ b/ruoyi-extend/pom.xml
@@ -5,7 +5,7 @@
ruoyi-flowable-plus
com.ruoyi
- 0.8.3
+ 0.8.2
4.0.0
ruoyi-extend
diff --git a/ruoyi-extend/ruoyi-monitor-admin/pom.xml b/ruoyi-extend/ruoyi-monitor-admin/pom.xml
index 4fedc79..76da696 100644
--- a/ruoyi-extend/ruoyi-monitor-admin/pom.xml
+++ b/ruoyi-extend/ruoyi-monitor-admin/pom.xml
@@ -5,7 +5,7 @@
ruoyi-extend
com.ruoyi
- 0.8.3
+ 0.8.2
4.0.0
jar
diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml b/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml
index 1b729ef..22ef1ab 100644
--- a/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml
+++ b/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml
@@ -6,9 +6,6 @@ spring:
profiles:
active: @profiles.active@
-logging:
- config: classpath:logback-plus.xml
-
--- # 监控中心服务端配置
spring:
security:
diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/logback-plus.xml b/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/logback-plus.xml
deleted file mode 100644
index 16bb937..0000000
--- a/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/logback-plus.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
- logback
-
-
-
-
-
-
- ${console.log.pattern}
- utf-8
-
-
-
-
- ${log.path}.log
-
- ${log.path}.%d{yyyy-MM-dd}.log
-
- 60
-
-
- ${log.pattern}
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/pom.xml b/ruoyi-extend/ruoyi-xxl-job-admin/pom.xml
index ef29a34..8abec22 100644
--- a/ruoyi-extend/ruoyi-xxl-job-admin/pom.xml
+++ b/ruoyi-extend/ruoyi-xxl-job-admin/pom.xml
@@ -4,7 +4,7 @@
ruoyi-extend
com.ruoyi
- 0.8.3
+ 0.8.2
ruoyi-xxl-job-admin
jar
diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java
index 5cbf872..82ec2de 100644
--- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java
+++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java
@@ -1,6 +1,5 @@
package com.xxl.job.admin.controller;
-import com.xxl.job.admin.controller.annotation.PermissionLimit;
import com.xxl.job.admin.core.model.XxlJobGroup;
import com.xxl.job.admin.core.model.XxlJobRegistry;
import com.xxl.job.admin.core.util.I18nUtil;
@@ -36,14 +35,12 @@ public class JobGroupController {
private XxlJobRegistryDao xxlJobRegistryDao;
@RequestMapping
- @PermissionLimit(adminuser = true)
public String index(Model model) {
return "jobgroup/jobgroup.index";
}
@RequestMapping("/pageList")
@ResponseBody
- @PermissionLimit(adminuser = true)
public Map pageList(HttpServletRequest request,
@RequestParam(required = false, defaultValue = "0") int start,
@RequestParam(required = false, defaultValue = "10") int length,
@@ -63,7 +60,6 @@ public class JobGroupController {
@RequestMapping("/save")
@ResponseBody
- @PermissionLimit(adminuser = true)
public ReturnT save(XxlJobGroup xxlJobGroup) {
// valid
@@ -107,7 +103,6 @@ public class JobGroupController {
@RequestMapping("/update")
@ResponseBody
- @PermissionLimit(adminuser = true)
public ReturnT update(XxlJobGroup xxlJobGroup) {
// valid
if (xxlJobGroup.getAppname() == null || xxlJobGroup.getAppname().trim().length() == 0) {
@@ -176,7 +171,6 @@ public class JobGroupController {
@RequestMapping("/remove")
@ResponseBody
- @PermissionLimit(adminuser = true)
public ReturnT remove(int id) {
// valid
@@ -196,7 +190,6 @@ public class JobGroupController {
@RequestMapping("/loadById")
@ResponseBody
- @PermissionLimit(adminuser = true)
public ReturnT loadById(int id) {
XxlJobGroup jobGroup = xxlJobGroupDao.load(id);
return jobGroup != null ? new ReturnT(jobGroup) : new ReturnT(ReturnT.FAIL_CODE, null);
diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java
index e741c17..3369edb 100644
--- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java
+++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java
@@ -130,26 +130,22 @@ public class JobLogController {
model.addAttribute("triggerCode", jobLog.getTriggerCode());
model.addAttribute("handleCode", jobLog.getHandleCode());
+ model.addAttribute("executorAddress", jobLog.getExecutorAddress());
+ model.addAttribute("triggerTime", jobLog.getTriggerTime().getTime());
model.addAttribute("logId", jobLog.getId());
return "joblog/joblog.detail";
}
@RequestMapping("/logDetailCat")
@ResponseBody
- public ReturnT logDetailCat(long logId, int fromLineNum) {
+ public ReturnT logDetailCat(String executorAddress, long triggerTime, long logId, int fromLineNum) {
try {
- // valid
- XxlJobLog jobLog = xxlJobLogDao.load(logId); // todo, need to improve performance
- if (jobLog == null) {
- return new ReturnT(ReturnT.FAIL_CODE, I18nUtil.getString("joblog_logid_unvalid"));
- }
-
- // log cat
- ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(jobLog.getExecutorAddress());
- ReturnT logResult = executorBiz.log(new LogParam(jobLog.getTriggerTime().getTime(), logId, fromLineNum));
+ ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(executorAddress);
+ ReturnT logResult = executorBiz.log(new LogParam(triggerTime, logId, fromLineNum));
// is end
if (logResult.getContent() != null && logResult.getContent().getFromLineNum() > logResult.getContent().getToLineNum()) {
+ XxlJobLog jobLog = xxlJobLogDao.load(logId);
if (jobLog.getHandleCode() > 0) {
logResult.getContent().setEnd(true);
}
diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/application.yml b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/application.yml
index 6d08292..d4fda93 100644
--- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/application.yml
+++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/application.yml
@@ -16,9 +16,6 @@ spring:
resources:
static-locations: classpath:/static/
-logging:
- config: classpath:logback-plus.xml
-
--- # mybatis 配置
mybatis:
mapper-locations: classpath:/mybatis-mapper/*Mapper.xml
diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/i18n/message_en.properties b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/i18n/message_en.properties
index 881bb8d..8b3c801 100644
--- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/i18n/message_en.properties
+++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/i18n/message_en.properties
@@ -1,6 +1,6 @@
admin_name=Scheduling Center
admin_name_full=Distributed Task Scheduling Platform XXL-JOB
-admin_version=2.4.0
+admin_version=2.3.1
admin_i18n=en
## system
diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/i18n/message_zh_CN.properties b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/i18n/message_zh_CN.properties
index 5be17ff..b3860e4 100644
--- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/i18n/message_zh_CN.properties
+++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/i18n/message_zh_CN.properties
@@ -1,6 +1,6 @@
admin_name=任务调度中心
admin_name_full=分布式任务调度平台XXL-JOB
-admin_version=2.4.0
+admin_version=2.3.1
admin_i18n=
## system
diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/i18n/message_zh_TC.properties b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/i18n/message_zh_TC.properties
index 3250f1a..ca069b3 100644
--- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/i18n/message_zh_TC.properties
+++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/i18n/message_zh_TC.properties
@@ -1,6 +1,6 @@
admin_name=任務調度中心
admin_name_full=分布式任務調度平臺XXL-JOB
-admin_version=2.4.0
+admin_version=2.3.1
admin_i18n=
## system
diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/logback-plus.xml b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/logback-plus.xml
deleted file mode 100644
index 9c2e772..0000000
--- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/logback-plus.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
- logback
-
-
-
-
-
-
- ${console.log.pattern}
- utf-8
-
-
-
-
- ${log.path}.log
-
- ${log.path}.%d{yyyy-MM-dd}.log
-
- 60
-
-
- ${log.pattern}
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/static/js/joblog.detail.1.js b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/static/js/joblog.detail.1.js
index 0638eee..ddefd46 100644
--- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/static/js/joblog.detail.1.js
+++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/static/js/joblog.detail.1.js
@@ -25,6 +25,8 @@ $(function() {
async: false, // sync, make log ordered
url : base_url + '/joblog/logDetailCat',
data : {
+ "executorAddress":executorAddress,
+ "triggerTime":triggerTime,
"logId":logId,
"fromLineNum":fromLineNum
},
diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/templates/joblog/joblog.detail.ftl b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/templates/joblog/joblog.detail.ftl
index 0ea69c7..3881cfa 100644
--- a/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/templates/joblog/joblog.detail.ftl
+++ b/ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/templates/joblog/joblog.detail.ftl
@@ -62,9 +62,11 @@
// 参数
var triggerCode = '${triggerCode}';
var handleCode = '${handleCode}';
+ var executorAddress = '${executorAddress!}';
+ var triggerTime = '${triggerTime?c}';
var logId = '${logId}';