diff --git a/pom.xml b/pom.xml index 8b589aa5d..4c020da75 100644 --- a/pom.xml +++ b/pom.xml @@ -208,6 +208,13 @@ com.github.yulichang mybatis-plus-join-boot-starter ${mybatis-plus-join.version} + + + + com.github.yulichang + mybatis-plus-join-wrapper-ext + + diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/IAuthStrategy.java b/ruoyi-admin/src/main/java/org/dromara/web/service/IAuthStrategy.java index 15546e89f..19c02945d 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/IAuthStrategy.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/IAuthStrategy.java @@ -3,7 +3,6 @@ package org.dromara.web.service; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.SpringUtils; -import org.dromara.system.domain.SysClient; import org.dromara.system.domain.vo.SysClientVo; import org.dromara.web.domain.vo.LoginVo; diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EmailAuthStrategy.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EmailAuthStrategy.java index 73e9ec92f..12b87cbc2 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EmailAuthStrategy.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EmailAuthStrategy.java @@ -3,7 +3,7 @@ package org.dromara.web.service.impl; import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.parameter.SaLoginParameter; import cn.hutool.core.util.ObjectUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.constant.Constants; @@ -101,7 +101,7 @@ public class EmailAuthStrategy implements IAuthStrategy { * @return 用户信息 */ private SysUserVo loadUserByEmail(String email) { - SysUserVo user = userMapper.selectVoOne(new LambdaQueryWrapper().eq(SysUser::getEmail, email)); + SysUserVo user = userMapper.selectVoOne(new MPJLambdaWrapper().eq(SysUser::getEmail, email)); if (ObjectUtil.isNull(user)) { log.info("登录用户:{} 不存在.", email); throw new UserException("user.not.exists", email); diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/PasswordAuthStrategy.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/PasswordAuthStrategy.java index 4968d8491..00ac469ff 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/PasswordAuthStrategy.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/PasswordAuthStrategy.java @@ -4,7 +4,7 @@ import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.parameter.SaLoginParameter; import cn.hutool.core.util.ObjectUtil; import cn.hutool.crypto.digest.BCrypt; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.constant.Constants; @@ -118,7 +118,7 @@ public class PasswordAuthStrategy implements IAuthStrategy { * @return 用户信息 */ private SysUserVo loadUserByUsername(String username) { - SysUserVo user = userMapper.selectVoOne(new LambdaQueryWrapper().eq(SysUser::getUserName, username)); + SysUserVo user = userMapper.selectVoOne(new MPJLambdaWrapper().eq(SysUser::getUserName, username)); if (ObjectUtil.isNull(user)) { log.info("登录用户:{} 不存在.", username); throw new UserException("user.not.exists", username); diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/SmsAuthStrategy.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/SmsAuthStrategy.java index 686ee1626..9e4c69a80 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/SmsAuthStrategy.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/SmsAuthStrategy.java @@ -3,7 +3,7 @@ package org.dromara.web.service.impl; import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.parameter.SaLoginParameter; import cn.hutool.core.util.ObjectUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.constant.Constants; @@ -101,7 +101,7 @@ public class SmsAuthStrategy implements IAuthStrategy { * @return 用户信息 */ private SysUserVo loadUserByPhoneNumber(String phoneNumber) { - SysUserVo user = userMapper.selectVoOne(new LambdaQueryWrapper().eq(SysUser::getPhoneNumber, phoneNumber)); + SysUserVo user = userMapper.selectVoOne(new MPJLambdaWrapper().eq(SysUser::getPhoneNumber, phoneNumber)); if (ObjectUtil.isNull(user)) { log.info("登录用户:{} 不存在.", phoneNumber); throw new UserException("user.not.exists", phoneNumber); diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index 1b52fab96..6cc34d83d 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -1,7 +1,7 @@ --- # 监控中心配置 spring.boot.admin.client: # 增加客户端开关 - enabled: true + enabled: false url: http://localhost:9090/admin instance: service-host-type: IP @@ -13,7 +13,7 @@ spring.boot.admin.client: --- # snail-job 配置 snail-job: - enabled: true + enabled: false # 需要在 SnailJob 后台组管理创建对应名称的组,然后创建任务的时候选择对应的组,才能正确分派任务 group: "ruoyi_group" # SnailJob 接入验证令牌 详见 script/sql/ry_job.sql `sj_group_config` 表 @@ -102,7 +102,7 @@ spring.data: # 数据库索引 database: 0 # redis 密码必须配置 - password: ruoyi123 +# password: ruoyi123 # 连接超时时间 timeout: 10s # 是否开启ssl diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/exception/base/BaseException.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/exception/base/BaseException.java index 4f47a8acf..67f2ea3ac 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/exception/base/BaseException.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/exception/base/BaseException.java @@ -1,11 +1,11 @@ package org.dromara.common.core.exception.base; import lombok.AllArgsConstructor; -import org.dromara.common.core.utils.MessageUtils; -import org.dromara.common.core.utils.StringUtils; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; +import org.dromara.common.core.utils.MessageUtils; +import org.dromara.common.core.utils.StringUtils; import java.io.Serial; diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/ThreadUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/ThreadUtils.java index fd382918b..81003767c 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/ThreadUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/ThreadUtils.java @@ -5,7 +5,10 @@ import lombok.NoArgsConstructor; import java.util.ArrayList; import java.util.List; -import java.util.concurrent.*; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; /** * 线程工具 diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/reflect/ReflectUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/reflect/ReflectUtils.java index 367e8c98c..073983f9e 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/reflect/ReflectUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/reflect/ReflectUtils.java @@ -1,9 +1,9 @@ package org.dromara.common.core.utils.reflect; import cn.hutool.core.util.ReflectUtil; -import org.dromara.common.core.utils.StringUtils; import lombok.AccessLevel; import lombok.NoArgsConstructor; +import org.dromara.common.core.utils.StringUtils; import java.lang.reflect.Method; diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enums/EnumPattern.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enums/EnumPattern.java index b2cdd6098..c960dcc98 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enums/EnumPattern.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enums/EnumPattern.java @@ -3,7 +3,10 @@ package org.dromara.common.core.validate.enums; import jakarta.validation.Constraint; import jakarta.validation.Payload; -import java.lang.annotation.*; +import java.lang.annotation.Documented; +import java.lang.annotation.Repeatable; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; import static java.lang.annotation.ElementType.*; import static java.lang.annotation.RetentionPolicy.RUNTIME; diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/xss/Xss.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/xss/Xss.java index eed495f45..6def0633c 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/xss/Xss.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/xss/Xss.java @@ -2,6 +2,7 @@ package org.dromara.common.core.xss; import jakarta.validation.Constraint; import jakarta.validation.Payload; + import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/xss/XssValidator.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/xss/XssValidator.java index 9c3256300..873d59426 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/xss/XssValidator.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/xss/XssValidator.java @@ -2,7 +2,6 @@ package org.dromara.common.core.xss; import cn.hutool.core.util.ReUtil; import cn.hutool.http.HtmlUtil; - import jakarta.validation.ConstraintValidator; import jakarta.validation.ConstraintValidatorContext; diff --git a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/core/EncryptContext.java b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/core/EncryptContext.java index 61c875cd2..053342863 100644 --- a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/core/EncryptContext.java +++ b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/core/EncryptContext.java @@ -1,8 +1,8 @@ package org.dromara.common.encrypt.core; +import lombok.Data; import org.dromara.common.encrypt.enums.AlgorithmType; import org.dromara.common.encrypt.enums.EncodeType; -import lombok.Data; /** * 加密上下文 用于encryptor传递必要的参数。 diff --git a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/EncryptResponseBodyWrapper.java b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/EncryptResponseBodyWrapper.java index 78e06ff73..94dae75ca 100644 --- a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/EncryptResponseBodyWrapper.java +++ b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/EncryptResponseBodyWrapper.java @@ -7,7 +7,10 @@ import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponseWrapper; import org.dromara.common.encrypt.utils.EncryptUtils; -import java.io.*; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; import java.nio.charset.StandardCharsets; /** diff --git a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/properties/EncryptorProperties.java b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/properties/EncryptorProperties.java index a6886b061..0e8cf1a6b 100644 --- a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/properties/EncryptorProperties.java +++ b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/properties/EncryptorProperties.java @@ -1,8 +1,8 @@ package org.dromara.common.encrypt.properties; +import lombok.Data; import org.dromara.common.encrypt.enums.AlgorithmType; import org.dromara.common.encrypt.enums.EncodeType; -import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; /** diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelDictConvert.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelDictConvert.java index 5df7efb73..ebea926c5 100644 --- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelDictConvert.java +++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelDictConvert.java @@ -3,18 +3,18 @@ package org.dromara.common.excel.convert; import cn.hutool.core.annotation.AnnotationUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.ObjectUtil; +import lombok.extern.slf4j.Slf4j; import org.apache.fesod.sheet.converters.Converter; import org.apache.fesod.sheet.enums.CellDataTypeEnum; import org.apache.fesod.sheet.metadata.GlobalConfiguration; import org.apache.fesod.sheet.metadata.data.ReadCellData; import org.apache.fesod.sheet.metadata.data.WriteCellData; import org.apache.fesod.sheet.metadata.property.ExcelContentProperty; -import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.core.service.DictService; import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.utils.ExcelUtil; -import lombok.extern.slf4j.Slf4j; import java.lang.reflect.Field; diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelEnumConvert.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelEnumConvert.java index 4960ab16f..879dc16c4 100644 --- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelEnumConvert.java +++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelEnumConvert.java @@ -3,6 +3,7 @@ package org.dromara.common.excel.convert; import cn.hutool.core.annotation.AnnotationUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.ObjectUtil; +import lombok.extern.slf4j.Slf4j; import org.apache.fesod.sheet.converters.Converter; import org.apache.fesod.sheet.enums.CellDataTypeEnum; import org.apache.fesod.sheet.metadata.GlobalConfiguration; @@ -11,7 +12,6 @@ import org.apache.fesod.sheet.metadata.data.WriteCellData; import org.apache.fesod.sheet.metadata.property.ExcelContentProperty; import org.dromara.common.core.utils.reflect.ReflectUtils; import org.dromara.common.excel.annotation.ExcelEnumFormat; -import lombok.extern.slf4j.Slf4j; import java.lang.reflect.Field; import java.util.HashMap; diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/CellMergeHandler.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/CellMergeHandler.java index 694c16462..bcda202bf 100644 --- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/CellMergeHandler.java +++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/CellMergeHandler.java @@ -3,10 +3,10 @@ package org.dromara.common.excel.core; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; +import lombok.SneakyThrows; import org.apache.fesod.sheet.annotation.ExcelIgnore; import org.apache.fesod.sheet.annotation.ExcelIgnoreUnannotated; import org.apache.fesod.sheet.annotation.ExcelProperty; -import lombok.SneakyThrows; import org.apache.poi.ss.util.CellRangeAddress; import org.dromara.common.core.utils.reflect.ReflectUtils; import org.dromara.common.excel.annotation.CellMerge; diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/DefaultExcelListener.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/DefaultExcelListener.java index 4bd3e18b4..b4e5540bf 100644 --- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/DefaultExcelListener.java +++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/DefaultExcelListener.java @@ -1,6 +1,10 @@ package org.dromara.common.excel.core; import cn.hutool.core.util.StrUtil; +import jakarta.validation.ConstraintViolation; +import jakarta.validation.ConstraintViolationException; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.apache.fesod.sheet.context.AnalysisContext; import org.apache.fesod.sheet.event.AnalysisEventListener; import org.apache.fesod.sheet.exception.ExcelAnalysisException; @@ -8,10 +12,6 @@ import org.apache.fesod.sheet.exception.ExcelDataConvertException; import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.ValidatorUtils; import org.dromara.common.json.utils.JsonUtils; -import jakarta.validation.ConstraintViolation; -import jakarta.validation.ConstraintViolationException; -import lombok.NoArgsConstructor; -import lombok.extern.slf4j.Slf4j; import java.util.Map; import java.util.Set; diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java index 98609e468..aa9ff0bfd 100644 --- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java +++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java @@ -6,13 +6,13 @@ import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.EnumUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import lombok.extern.slf4j.Slf4j; import org.apache.fesod.sheet.metadata.FieldCache; import org.apache.fesod.sheet.metadata.FieldWrapper; import org.apache.fesod.sheet.util.ClassUtils; import org.apache.fesod.sheet.write.handler.SheetWriteHandler; import org.apache.fesod.sheet.write.metadata.holder.WriteSheetHolder; import org.apache.fesod.sheet.write.metadata.holder.WriteWorkbookHolder; -import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddressList; import org.apache.poi.ss.util.WorkbookUtil; diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelUtil.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelUtil.java index 06d568309..97862d057 100644 --- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelUtil.java +++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelUtil.java @@ -3,17 +3,17 @@ package org.dromara.common.excel.utils; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.io.resource.ClassPathResource; import cn.hutool.core.util.IdUtil; -import org.apache.fesod.sheet.FesodSheet; +import jakarta.servlet.ServletOutputStream; +import jakarta.servlet.http.HttpServletResponse; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import org.apache.fesod.sheet.ExcelWriter; +import org.apache.fesod.sheet.FesodSheet; import org.apache.fesod.sheet.write.builder.ExcelWriterSheetBuilder; import org.apache.fesod.sheet.write.metadata.WriteSheet; import org.apache.fesod.sheet.write.metadata.fill.FillConfig; import org.apache.fesod.sheet.write.metadata.fill.FillWrapper; import org.apache.fesod.sheet.write.style.column.LongestMatchColumnWidthStyleStrategy; -import jakarta.servlet.ServletOutputStream; -import jakarta.servlet.http.HttpServletResponse; -import lombok.AccessLevel; -import lombok.NoArgsConstructor; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.file.FileUtils; import org.dromara.common.excel.convert.ExcelBigNumberConvert; diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/LoginInfoEvent.java b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/LoginInfoEvent.java index 428fb84bc..27563cbf1 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/LoginInfoEvent.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/LoginInfoEvent.java @@ -1,8 +1,7 @@ package org.dromara.common.log.event; -import lombok.Data; - import jakarta.servlet.http.HttpServletRequest; +import lombok.Data; import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-common/ruoyi-common-mybatis/pom.xml b/ruoyi-common/ruoyi-common-mybatis/pom.xml index c6b69a558..16364a861 100644 --- a/ruoyi-common/ruoyi-common-mybatis/pom.xml +++ b/ruoyi-common/ruoyi-common-mybatis/pom.xml @@ -45,6 +45,13 @@ com.github.yulichang mybatis-plus-join-boot-starter + + + + com.github.yulichang + mybatis-plus-join-wrapper-ext + + diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/github/yulichang/wrapper/ext/Ext.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/github/yulichang/wrapper/ext/Ext.java new file mode 100644 index 000000000..033c5c258 --- /dev/null +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/github/yulichang/wrapper/ext/Ext.java @@ -0,0 +1,161 @@ +package com.github.yulichang.wrapper.ext; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.toolkit.support.SFunction; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.github.yulichang.wrapper.interfaces.IExt; +import org.dromara.common.mybatis.helper.DataBaseHelper; + +import java.util.Collection; + +/** + * 扩展接口,提供基于MPJ额外的查询方法 + * + * @author LukewarmMe + * @since 2026/3/25 + */ +public interface Ext> extends IExt { + + /** + * JSON字段属性非空查询 + * 假如 SYS_USER 中有一个数据库类型为 JSON 的字段 USER_EXT_INFO + * 实体类中为 private UserExtInfo userExtInfo,UserExtInfo对象有属性workNumber + * 使用方式:wrapper.jsonIsNotNull(SysUser::getUserExtInfo, UserExtInfo::getWorkNumber) + * + * @param jsonColumn 实体中JSON类型字段 + * @param jsonProperty JSON内部对象的属性Lambda + */ + default Children jsonIsNotNull(SFunction jsonColumn, SFunction jsonProperty) { + getChildren().applyFunc( + DataBaseHelper.buildJsonIsNotNullSql(jsonProperty), + arg -> arg.accept(jsonColumn) + ); + return getChildren(); + } + + /** + * JSON字段等值查询 + * 使用方法 wrapper.jsonEqIfExists(SysUser::getUserExtInfo, UserExtInfo::getWorkNumber, userExtInfo.getWorkNumber()); + * + * @param jsonColumn 实体类中JSON类型的字段 + * @param jsonProperty JSON内部对象的属性Lambda + * @param jsonBean JSON对象(传整个对象,无需get取值) + */ + default Children jsonEqIfExists(SFunction jsonColumn, SFunction jsonProperty, E jsonBean) { + // 对象为空直接跳过 + if (jsonBean == null) { + return getChildren(); + } + Object value = jsonProperty.apply(jsonBean); + // 值为空跳过 + if (ObjectUtil.isEmpty(value)) { + return getChildren(); + } + // 拼接SQL + getChildren().applyFunc( + DataBaseHelper.buildJsonEqSql(jsonProperty), + arg -> arg.accept(jsonColumn), + value + ); + return getChildren(); + } + + /** + * JSON字段模糊查询 + * 使用方法 wrapper.jsonLikeIfExists(SysUser::getUserExtInfo, UserExtInfo::getWorkNumber, userExtInfo.getWorkNumber()); + * + * @param jsonColumn 实体类中JSON类型的字段 + * @param jsonProperty JSON内部对象的属性Lambda + * @param jsonBean JSON对象(传整个对象,无需get取值) + */ + default Children jsonLikeIfExists(SFunction jsonColumn, SFunction jsonProperty, E jsonBean) { + // 对象为空直接跳过 + if (jsonBean == null) { + return getChildren(); + } + Object value = jsonProperty.apply(jsonBean); + // 值为空跳过 + if (ObjectUtil.isEmpty(value)) { + return getChildren(); + } + // 拼接SQL + getChildren().applyFunc( + DataBaseHelper.buildJsonLikeSql(jsonProperty), + arg -> arg.accept(jsonColumn), + "%" + value.toString().trim() + "%" + ); + return getChildren(); + } + + /** + * 根据给定的列名和祖先值查找集合中是否存在匹配的记录 + * + * @param column 祖级列表字段 + * @param ancestorsValue 要查询的值 + */ + default Children findInSetIfExists(SFunction column, Object ancestorsValue) { + // 调用getChildren()获取Children对象,并调用其findInSet方法 + // 查询条件为:ancestorsValue不为null时才进行查询 + getChildren().findInSet(ObjectUtil.isNotNull(ancestorsValue), column, ancestorsValue); + // 返回Children对象以支持链式调用 + return getChildren(); + } + + /** + * 根据条件执行实现 FIND_IN_SET 语句片段 + * + * @param condition 是否执行该查询的条件 + * @param column 祖级列表字段 + * @param ancestorsValue 要查询的值 + */ + default Children findInSet(boolean condition, SFunction column, Object ancestorsValue) { + if (condition) { + getChildren().findInSet(column, ancestorsValue); + } + return getChildren(); + } + + /** + * 实现 FIND_IN_SET 语句片段 + * 例如:根据父部门ID查询其所有子部门的列表 + * new MPJLambdaWrapper() + * .select(SysDept::getDeptId) + * .findInSet(SysDept::getAncestors, parentId) + * + * @param column 祖级列表字段 + * @param ancestorsValue 要查询的值 + */ + default Children findInSet(SFunction column, Object ancestorsValue) { + getChildren().applyFunc( + DataBaseHelper.findInSet(), + arg -> arg.accept(column), + ancestorsValue); + return getChildren(); + } + + /** + * 当传入的集合不为空时才进行in查询 + * + * @param column 查询字段 + * @param coll 集合 + */ + default Children inIfExists(SFunction column, Collection coll) { + if (ObjectUtil.isNotEmpty(coll)) { + getChildren().in(column, coll); + } + return getChildren(); + } + + /** + * 当传入的集合不为空时才进行not in查询 + * + * @param column 列 + * @param coll 集合 + */ + default Children notInIfExists(SFunction column, Collection coll) { + if (ObjectUtil.isNotEmpty(coll)) { + getChildren().notIn(column, coll); + } + return getChildren(); + } +} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/mapper/BaseMapperPlus.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/mapper/BaseMapperPlus.java index 93541188d..67585c33b 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/mapper/BaseMapperPlus.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/mapper/BaseMapperPlus.java @@ -1,24 +1,21 @@ package org.dromara.common.mybatis.core.mapper; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ObjectUtil; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.metadata.TableInfo; +import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; import com.baomidou.mybatisplus.core.toolkit.reflect.GenericTypeUtils; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.toolkit.Db; import com.github.yulichang.base.MPJBaseMapper; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.logging.Log; import org.apache.ibatis.logging.LogFactory; import org.dromara.common.core.utils.MapstructUtils; -import org.dromara.common.core.utils.StreamUtils; import java.io.Serializable; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.function.Function; /** * 自定义 Mapper 接口, 实现 自定义扩展 @@ -57,7 +54,7 @@ public interface BaseMapperPlus extends MPJBaseMapper { * @return 返回查询结果的列表 */ default List selectList() { - return this.selectList(new QueryWrapper<>()); + return this.selectList(new MPJLambdaWrapper<>()); } /** @@ -142,11 +139,11 @@ public interface BaseMapperPlus extends MPJBaseMapper { * @return 查询到的单个VO对象,经过转换为指定的VO类后返回 */ default C selectVoById(Serializable id, Class voClass) { - T obj = this.selectById(id); - if (ObjectUtil.isNull(obj)) { - return null; - } - return MapstructUtils.convert(obj, voClass); + TableInfo tableInfo = TableInfoHelper.getTableInfo(currentModelClass()); + return selectJoinOne(voClass, new MPJLambdaWrapper<>(this.currentModelClass()) + .selectAsClass(this.currentModelClass(), voClass) + .eq(tableInfo.getKeyColumn(), id) + ); } /** @@ -168,11 +165,11 @@ public interface BaseMapperPlus extends MPJBaseMapper { * @return 查询到的VO对象列表,经过转换为指定的VO类后返回 */ default List selectVoByIds(Collection idList, Class voClass) { - List list = this.selectByIds(idList); - if (CollUtil.isEmpty(list)) { - return CollUtil.newArrayList(); - } - return MapstructUtils.convert(list, voClass); + TableInfo tableInfo = TableInfoHelper.getTableInfo(currentModelClass()); + return selectJoinList(voClass, new MPJLambdaWrapper<>(this.currentModelClass()) + .selectAsClass(this.currentModelClass(), voClass) + .in(tableInfo.getKeyColumn(), idList) + ); } /** @@ -207,48 +204,9 @@ public interface BaseMapperPlus extends MPJBaseMapper { * @param wrapper 查询条件Wrapper * @return 查询到的单个VO对象 */ - default V selectVoOne(Wrapper wrapper) { - return selectVoOne(wrapper, this.currentVoClass()); - } - - /** - * 根据条件查询单个VO对象,并根据需要决定是否抛出异常 - * - * @param wrapper 查询条件Wrapper - * @param throwEx 是否抛出异常的标志 - * @return 查询到的单个VO对象 - */ - default V selectVoOne(Wrapper wrapper, boolean throwEx) { - return selectVoOne(wrapper, this.currentVoClass(), throwEx); - } - - /** - * 根据条件查询单个VO对象,并指定返回的VO对象的类型 - * - * @param wrapper 查询条件Wrapper - * @param voClass 返回的VO对象的Class对象 - * @param 返回的VO对象的类型 - * @return 查询到的单个VO对象,经过类型转换为指定的VO类后返回 - */ - default C selectVoOne(Wrapper wrapper, Class voClass) { - return selectVoOne(wrapper, voClass, true); - } - - /** - * 根据条件查询单个实体对象,并将其转换为指定的VO对象 - * - * @param wrapper 查询条件Wrapper - * @param voClass 要转换的VO类的Class对象 - * @param throwEx 是否抛出异常的标志 - * @param VO类的类型 - * @return 查询到的单个VO对象,经过转换为指定的VO类后返回 - */ - default C selectVoOne(Wrapper wrapper, Class voClass, boolean throwEx) { - T obj = this.selectOne(wrapper, throwEx); - if (ObjectUtil.isNull(obj)) { - return null; - } - return MapstructUtils.convert(obj, voClass); + default V selectVoOne(MPJLambdaWrapper wrapper) { + wrapper.selectAsClass(this.currentModelClass(), this.currentVoClass()); + return selectJoinOne(this.currentVoClass(), wrapper); } /** @@ -257,7 +215,7 @@ public interface BaseMapperPlus extends MPJBaseMapper { * @return 查询到的VO对象列表 */ default List selectVoList() { - return selectVoList(new QueryWrapper<>(), this.currentVoClass()); + return this.selectJoinList(this.currentVoClass(), new MPJLambdaWrapper<>()); } /** @@ -266,24 +224,14 @@ public interface BaseMapperPlus extends MPJBaseMapper { * @param wrapper 查询条件Wrapper * @return 查询到的VO对象列表 */ - default List selectVoList(Wrapper wrapper) { - return selectVoList(wrapper, this.currentVoClass()); + default List selectVoList(MPJLambdaWrapper wrapper) { + wrapper.selectAsClass(this.currentModelClass(), this.currentVoClass()); + return this.selectJoinList(this.currentVoClass(), wrapper); } - /** - * 根据条件查询实体对象列表,并将其转换为指定的VO对象列表 - * - * @param wrapper 查询条件Wrapper - * @param voClass 要转换的VO类的Class对象 - * @param VO类的类型 - * @return 查询到的VO对象列表,经过转换为指定的VO类后返回 - */ - default List selectVoList(Wrapper wrapper, Class voClass) { - List list = this.selectList(wrapper); - if (CollUtil.isEmpty(list)) { - return CollUtil.newArrayList(); - } - return MapstructUtils.convert(list, voClass); + default List selectVoList(MPJLambdaWrapper wrapper,Class voClass) { + wrapper.selectAsClass(this.currentModelClass(), voClass); + return this.selectJoinList(voClass, wrapper); } /** @@ -293,42 +241,14 @@ public interface BaseMapperPlus extends MPJBaseMapper { * @param wrapper 查询条件Wrapper * @return 查询到的VO对象分页列表 */ - default

> P selectVoPage(IPage page, Wrapper wrapper) { - return selectVoPage(page, wrapper, this.currentVoClass()); + default

> P selectVoPage(P page, MPJLambdaWrapper wrapper) { + wrapper.selectAsClass(this.currentModelClass(), this.currentVoClass()); + return this.selectJoinPage(page, this.currentVoClass(), wrapper); } - /** - * 根据条件分页查询实体对象列表,并将其转换为指定的VO对象分页列表 - * - * @param page 分页信息 - * @param wrapper 查询条件Wrapper - * @param voClass 要转换的VO类的Class对象 - * @param VO类的类型 - * @param

VO对象分页列表的类型 - * @return 查询到的VO对象分页列表,经过转换为指定的VO类后返回 - */ - default > P selectVoPage(IPage page, Wrapper wrapper, Class voClass) { - // 根据条件分页查询实体对象列表 - List list = this.selectList(page, wrapper); - // 创建一个新的VO对象分页列表,并设置分页信息 - IPage voPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal()); - if (CollUtil.isEmpty(list)) { - return (P) voPage; - } - voPage.setRecords(MapstructUtils.convert(list, voClass)); - return (P) voPage; - } - - /** - * 根据条件查询符合条件的对象,并将其转换为指定类型的对象列表 - * - * @param wrapper 查询条件Wrapper - * @param mapper 转换函数,用于将查询到的对象转换为指定类型的对象 - * @param 要转换的对象的类型 - * @return 查询到的符合条件的对象列表,经过转换为指定类型的对象后返回 - */ - default List selectObjs(Wrapper wrapper, Function mapper) { - return StreamUtils.toList(this.selectObjs(wrapper), mapper); + default

> P selectVoPage(P page, MPJLambdaWrapper wrapper, Class voClass) { + wrapper.selectAsClass(this.currentModelClass(), voClass); + return this.selectJoinPage(page, voClass, wrapper); } } diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataBaseHelper.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataBaseHelper.java index 1a923a30a..452bb87e3 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataBaseHelper.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataBaseHelper.java @@ -2,6 +2,9 @@ package org.dromara.common.mybatis.helper; import cn.hutool.core.convert.Convert; import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; +import com.baomidou.mybatisplus.core.toolkit.LambdaUtils; +import com.baomidou.mybatisplus.core.toolkit.support.LambdaMeta; +import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.dromara.common.core.exception.ServiceException; @@ -81,4 +84,84 @@ public class DataBaseHelper { public static List getDataSourceNameList() { return new ArrayList<>(DS.getDataSources().keySet()); } + + + /** + * 获取findInSet所需的sql片段(使用MPJ的applyFunc来实现) + * @author LukewarmMe + */ + public static String findInSet() { + return switch (getDataBaseType()) { + case ORACLE -> "instr(','||%s||',', ',{0},') <> 0"; + case POSTGRE_SQL -> "strpos(','||%s||',', ',{0},') <> 0"; + case SQL_SERVER -> "charindex(',{0},', ','+%s+',') <> 0"; + default -> "find_in_set({0}, %s) > 0"; + }; + } + + /** + * 构建不同数据库的JSON等值查询SQL模板(使用MPJ的applyFunc来实现) + * @author LukewarmMe + */ + public static String buildJsonEqSql(SFunction jsonProperty) { + String jsonPath = lambdaToJsonPath(jsonProperty); + return switch (DataBaseHelper.getDataBaseType()) { + case ORACLE -> "json_value(%s, '$" + jsonPath + "') = {0}"; + case POSTGRE_SQL -> "%s->>'" + jsonPath.replaceFirst("\\.", "") + "' = {0}"; + case SQL_SERVER -> "JSON_VALUE(%s, '$" + jsonPath + "') = {0}"; + default -> "%s->>'$" + jsonPath + "' = {0}"; + }; + } + + /** + * 构建不同数据库的JSON模糊查询SQL模板(使用MPJ的applyFunc来实现) + * @author LukewarmMe + */ + public static String buildJsonLikeSql(SFunction jsonProperty) { + String jsonPath = lambdaToJsonPath(jsonProperty); + return switch (DataBaseHelper.getDataBaseType()) { + case ORACLE -> "json_value(%s, '$" + jsonPath + "') LIKE {0}"; + case POSTGRE_SQL -> "%s->>'" + jsonPath.replaceFirst("\\.", "") + "' LIKE {0}"; + case SQL_SERVER -> "JSON_VALUE(%s, '$" + jsonPath + "') LIKE {0}"; + default -> "%s->>'$" + jsonPath + "' LIKE {0}"; + }; + } + + /** + * 构建不同数据库的JSON非空判断SQL模板(使用MPJ的applyFunc来实现) + * @author LukewarmMe + */ + public static String buildJsonIsNotNullSql(SFunction jsonProperty) { + String jsonPath = lambdaToJsonPath(jsonProperty); + return switch (DataBaseHelper.getDataBaseType()) { + case ORACLE -> "json_value(%s, '$" + jsonPath + "') IS NOT NULL"; + case POSTGRE_SQL -> "%s->>'" + jsonPath.replaceFirst("\\.", "") + "' IS NOT NULL"; + case SQL_SERVER -> "JSON_VALUE(%s, '$" + jsonPath + "') IS NOT NULL"; + default -> "%s->>'$" + jsonPath + "' IS NOT NULL"; + }; + } + + /** + * 核心:Lambda 解析为 JSON 路径(复用原有逻辑,增加空值校验) + * 示例:SysUser中UserExtInfo::getWorkNumber → .workNumber + * @author LukewarmMe + */ + public static String lambdaToJsonPath(SFunction jsonProperty) { + LambdaMeta lambdaMeta = LambdaUtils.extract(jsonProperty); + String methodName = lambdaMeta.getImplMethodName(); + String propertyName; + if (methodName.startsWith("get")) { + propertyName = methodName.substring(3); + } else if (methodName.startsWith("is")) { + propertyName = methodName.substring(2); + } else if (methodName.startsWith("set")) { + propertyName = methodName.substring(3); + } else { + throw new ServiceException("不支持的Lambda方法类型,仅支持get/is/set开头:" + methodName); + } + if (!propertyName.isEmpty()) { + propertyName = Character.toLowerCase(propertyName.charAt(0)) + propertyName.substring(1); + } + return "." + propertyName; + } } diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataPermissionHelper.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataPermissionHelper.java index 839abc27c..e13341c67 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataPermissionHelper.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataPermissionHelper.java @@ -8,9 +8,9 @@ import com.baomidou.mybatisplus.core.plugins.IgnoreStrategy; import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper; import lombok.AccessLevel; import lombok.NoArgsConstructor; -import org.dromara.common.mybatis.core.domain.DataPermissionAccess; import org.dromara.common.core.utils.reflect.ReflectUtils; import org.dromara.common.mybatis.annotation.DataPermission; +import org.dromara.common.mybatis.core.domain.DataPermissionAccess; import java.util.HashMap; import java.util.Map; diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/org/dromara/common/security/handler/AllUrlHandler.java b/ruoyi-common/ruoyi-common-security/src/main/java/org/dromara/common/security/handler/AllUrlHandler.java index 158738e4f..9253a5257 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/org/dromara/common/security/handler/AllUrlHandler.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/org/dromara/common/security/handler/AllUrlHandler.java @@ -1,8 +1,8 @@ package org.dromara.common.security.handler; import cn.hutool.core.util.ReUtil; -import org.dromara.common.core.utils.SpringUtils; import lombok.Data; +import org.dromara.common.core.utils.SpringUtils; import org.springframework.beans.factory.InitializingBean; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.mvc.method.RequestMappingInfo; diff --git a/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/annotation/Translation.java b/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/annotation/Translation.java index 7a515e21f..4737062ea 100644 --- a/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/annotation/Translation.java +++ b/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/annotation/Translation.java @@ -4,7 +4,10 @@ import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; import org.dromara.common.translation.core.handler.TranslationHandler; import tools.jackson.databind.annotation.JsonSerialize; -import java.lang.annotation.*; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * 通用翻译注解 diff --git a/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DeptNameTranslationImpl.java b/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DeptNameTranslationImpl.java index cc2ec7b05..19aad7fbe 100644 --- a/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DeptNameTranslationImpl.java +++ b/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DeptNameTranslationImpl.java @@ -1,10 +1,10 @@ package org.dromara.common.translation.core.impl; +import lombok.AllArgsConstructor; import org.dromara.common.core.service.DeptService; import org.dromara.common.translation.annotation.TranslationType; import org.dromara.common.translation.constant.TransConstant; import org.dromara.common.translation.core.TranslationInterface; -import lombok.AllArgsConstructor; /** * 部门翻译实现 diff --git a/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java b/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java index 95ff5ffa3..0444fd8bb 100644 --- a/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java +++ b/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java @@ -1,11 +1,11 @@ package org.dromara.common.translation.core.impl; +import lombok.AllArgsConstructor; import org.dromara.common.core.service.DictService; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.translation.annotation.TranslationType; import org.dromara.common.translation.constant.TransConstant; import org.dromara.common.translation.core.TranslationInterface; -import lombok.AllArgsConstructor; /** * 字典翻译实现 diff --git a/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/OssUrlTranslationImpl.java b/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/OssUrlTranslationImpl.java index a3b59aafb..51a86f40d 100644 --- a/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/OssUrlTranslationImpl.java +++ b/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/OssUrlTranslationImpl.java @@ -1,10 +1,10 @@ package org.dromara.common.translation.core.impl; +import lombok.AllArgsConstructor; import org.dromara.common.core.service.OssService; import org.dromara.common.translation.annotation.TranslationType; import org.dromara.common.translation.constant.TransConstant; import org.dromara.common.translation.core.TranslationInterface; -import lombok.AllArgsConstructor; /** * OSS翻译实现 diff --git a/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/UserNameTranslationImpl.java b/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/UserNameTranslationImpl.java index 5a59511ad..c7b85d360 100644 --- a/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/UserNameTranslationImpl.java +++ b/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/UserNameTranslationImpl.java @@ -1,11 +1,11 @@ package org.dromara.common.translation.core.impl; import cn.hutool.core.convert.Convert; +import lombok.AllArgsConstructor; import org.dromara.common.core.service.UserService; import org.dromara.common.translation.annotation.TranslationType; import org.dromara.common.translation.constant.TransConstant; import org.dromara.common.translation.core.TranslationInterface; -import lombok.AllArgsConstructor; /** * 用户名翻译实现 diff --git a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/core/I18nLocaleResolver.java b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/core/I18nLocaleResolver.java index 6499abfcd..a604bec6d 100644 --- a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/core/I18nLocaleResolver.java +++ b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/core/I18nLocaleResolver.java @@ -1,9 +1,9 @@ package org.dromara.common.web.core; -import org.springframework.web.servlet.LocaleResolver; - import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +import org.springframework.web.servlet.LocaleResolver; + import java.util.Locale; /** diff --git a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/filter/RepeatableFilter.java b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/filter/RepeatableFilter.java index c51a6704d..02536ac78 100644 --- a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/filter/RepeatableFilter.java +++ b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/filter/RepeatableFilter.java @@ -1,10 +1,10 @@ package org.dromara.common.web.filter; -import org.dromara.common.core.utils.StringUtils; -import org.springframework.http.MediaType; - import jakarta.servlet.*; import jakarta.servlet.http.HttpServletRequest; +import org.dromara.common.core.utils.StringUtils; +import org.springframework.http.MediaType; + import java.io.IOException; /** diff --git a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/filter/RepeatedlyRequestWrapper.java b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/filter/RepeatedlyRequestWrapper.java index a282a9bfc..e9ef48f3a 100644 --- a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/filter/RepeatedlyRequestWrapper.java +++ b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/filter/RepeatedlyRequestWrapper.java @@ -1,13 +1,12 @@ package org.dromara.common.web.filter; import cn.hutool.core.io.IoUtil; -import org.dromara.common.core.constant.Constants; - import jakarta.servlet.ReadListener; import jakarta.servlet.ServletInputStream; import jakarta.servlet.ServletResponse; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequestWrapper; +import org.dromara.common.core.constant.Constants; import java.io.BufferedReader; import java.io.ByteArrayInputStream; diff --git a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/filter/XssFilter.java b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/filter/XssFilter.java index b63af29d7..ebbacc0e6 100644 --- a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/filter/XssFilter.java +++ b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/filter/XssFilter.java @@ -1,13 +1,13 @@ package org.dromara.common.web.filter; +import jakarta.servlet.*; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.web.config.properties.XssProperties; import org.springframework.http.HttpMethod; -import jakarta.servlet.*; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import java.util.List; diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisCacheController.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisCacheController.java index 2335da4cd..1959d1e4b 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisCacheController.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisCacheController.java @@ -1,10 +1,10 @@ package org.dromara.demo.controller; import cn.hutool.core.thread.ThreadUtil; +import lombok.RequiredArgsConstructor; import org.dromara.common.core.constant.CacheNames; import org.dromara.common.core.domain.R; import org.dromara.common.redis.utils.RedisUtils; -import lombok.RequiredArgsConstructor; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CachePut; import org.springframework.cache.annotation.Cacheable; diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisLockController.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisLockController.java index 237b6ee2d..9fa954ca6 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisLockController.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisLockController.java @@ -5,8 +5,8 @@ import com.baomidou.lock.LockInfo; import com.baomidou.lock.LockTemplate; import com.baomidou.lock.annotation.Lock4j; import com.baomidou.lock.executor.RedissonLockExecutor; -import org.dromara.common.core.domain.R; import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.R; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisPubSubController.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisPubSubController.java index bdbf0334a..88227b6fd 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisPubSubController.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisPubSubController.java @@ -1,8 +1,8 @@ package org.dromara.demo.controller; +import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.redis.utils.RedisUtils; -import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisRateLimiterController.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisRateLimiterController.java index 71cf3b618..324e6e79c 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisRateLimiterController.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/RedisRateLimiterController.java @@ -1,9 +1,9 @@ package org.dromara.demo.controller; +import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.R; import org.dromara.common.redis.annotation.RateLimiter; import org.dromara.common.redis.enums.LimitType; -import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestBatchController.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestBatchController.java index af8c77b3a..62cddab4a 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestBatchController.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestBatchController.java @@ -1,11 +1,11 @@ package org.dromara.demo.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.web.core.BaseController; import org.dromara.demo.domain.TestDemo; import org.dromara.demo.mapper.TestDemoMapper; -import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java index b91c4f80c..20d2f36f1 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java @@ -1,36 +1,36 @@ package org.dromara.demo.controller; import cn.dev33.satoken.annotation.SaCheckPermission; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.PageResult; import org.dromara.common.core.domain.R; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.ValidatorUtils; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; import org.dromara.common.core.validate.QueryGroup; -import org.dromara.common.web.core.BaseController; -import org.dromara.common.redis.annotation.RepeatSubmit; -import org.dromara.common.mybatis.core.page.PageQuery; -import org.dromara.common.core.domain.PageResult; import org.dromara.common.excel.core.ExcelResult; import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.redis.annotation.RepeatSubmit; +import org.dromara.common.web.core.BaseController; import org.dromara.demo.domain.TestDemo; import org.dromara.demo.domain.bo.TestDemoBo; import org.dromara.demo.domain.vo.TestDemoImportVo; import org.dromara.demo.domain.vo.TestDemoVo; import org.dromara.demo.service.ITestDemoService; -import lombok.RequiredArgsConstructor; import org.springframework.http.MediaType; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; - -import java.util.*; +import java.util.Arrays; +import java.util.List; import java.util.concurrent.TimeUnit; /** diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestI18nController.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestI18nController.java index 40393c525..9339ac96d 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestI18nController.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestI18nController.java @@ -1,17 +1,16 @@ package org.dromara.demo.controller; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; import org.dromara.common.core.domain.R; import org.dromara.common.core.utils.MessageUtils; -import lombok.Data; import org.hibernate.validator.constraints.Range; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; - /** * 测试国际化 diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java index eba05527c..653337073 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestSensitiveController.java @@ -1,11 +1,11 @@ package org.dromara.demo.controller; -import org.dromara.common.core.domain.R; -import org.dromara.common.web.core.BaseController; -import org.dromara.common.sensitive.annotation.Sensitive; -import org.dromara.common.sensitive.core.SensitiveStrategy; import lombok.Data; +import org.dromara.common.core.domain.R; +import org.dromara.common.sensitive.annotation.Sensitive; import org.dromara.common.sensitive.core.SensitiveService; +import org.dromara.common.sensitive.core.SensitiveStrategy; +import org.dromara.common.web.core.BaseController; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestTreeController.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestTreeController.java index 1677abce0..e0c224aee 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestTreeController.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestTreeController.java @@ -1,25 +1,25 @@ package org.dromara.demo.controller; import cn.dev33.satoken.annotation.SaCheckPermission; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; import org.dromara.common.core.validate.QueryGroup; -import org.dromara.common.web.core.BaseController; import org.dromara.common.excel.utils.ExcelUtil; -import org.dromara.common.redis.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.redis.annotation.RepeatSubmit; +import org.dromara.common.web.core.BaseController; import org.dromara.demo.domain.bo.TestTreeBo; import org.dromara.demo.domain.vo.TestTreeVo; import org.dromara.demo.service.ITestTreeService; -import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; import java.util.Arrays; import java.util.List; diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/PriorityQueueController.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/PriorityQueueController.java index 02c739650..c5d9f797e 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/PriorityQueueController.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/queue/PriorityQueueController.java @@ -1,10 +1,10 @@ package org.dromara.demo.controller.queue; import cn.hutool.core.util.RandomUtil; -import org.dromara.common.core.domain.R; -import org.dromara.common.redis.utils.QueueUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.R; +import org.dromara.common.redis.utils.QueueUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/TestDemoEncrypt.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/TestDemoEncrypt.java index 40acef101..5ca743cd7 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/TestDemoEncrypt.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/TestDemoEncrypt.java @@ -1,10 +1,10 @@ package org.dromara.demo.domain; import com.baomidou.mybatisplus.annotation.TableName; -import org.dromara.common.encrypt.annotation.EncryptField; -import org.dromara.common.encrypt.enums.AlgorithmType; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.encrypt.annotation.EncryptField; +import org.dromara.common.encrypt.enums.AlgorithmType; @Data @EqualsAndHashCode(callSuper = true) diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java index fbefc5e6f..adf27fe33 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/ExportDemoVo.java @@ -1,12 +1,12 @@ package org.dromara.demo.domain.vo; -import org.apache.fesod.sheet.annotation.ExcelIgnoreUnannotated; -import org.apache.fesod.sheet.annotation.ExcelProperty; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import org.apache.fesod.sheet.annotation.ExcelIgnoreUnannotated; +import org.apache.fesod.sheet.annotation.ExcelProperty; import org.dromara.common.core.enums.UserStatus; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoImportVo.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoImportVo.java index 247d01677..c444196ea 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoImportVo.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoImportVo.java @@ -1,11 +1,10 @@ package org.dromara.demo.domain.vo; -import org.apache.fesod.sheet.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; - import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.apache.fesod.sheet.annotation.ExcelProperty; import org.dromara.demo.domain.TestDemo; /** diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java index 0f760c8a3..c0cdd86c3 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java @@ -1,5 +1,7 @@ package org.dromara.demo.domain.vo; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; import org.apache.fesod.sheet.annotation.ExcelIgnoreUnannotated; import org.apache.fesod.sheet.annotation.ExcelProperty; import org.apache.fesod.sheet.annotation.format.DateTimeFormat; @@ -8,8 +10,6 @@ import org.dromara.common.excel.annotation.ExcelRequired; import org.dromara.common.translation.annotation.Translation; import org.dromara.common.translation.constant.TransConstant; import org.dromara.demo.domain.TestDemo; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java index 2b54bfec7..6611be844 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java @@ -1,10 +1,10 @@ package org.dromara.demo.domain.vo; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; import org.apache.fesod.sheet.annotation.ExcelIgnoreUnannotated; import org.apache.fesod.sheet.annotation.ExcelProperty; import org.dromara.demo.domain.TestTree; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/mapper/TestDemoMapper.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/mapper/TestDemoMapper.java index 19b2d52df..89d7974e4 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/mapper/TestDemoMapper.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/mapper/TestDemoMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.annotation.DataColumn; import org.dromara.common.mybatis.annotation.DataPermission; @@ -31,10 +32,10 @@ public interface TestDemoMapper extends BaseMapperPlus { @Override @DataPermission({ - @DataColumn(key = "deptName", value = "dept_id"), - @DataColumn(key = "userName", value = "user_id") + @DataColumn(key = "deptName", value = "t.dept_id"), + @DataColumn(key = "userName", value = "t.user_id") }) - default

> P selectVoPage(IPage page, Wrapper wrapper) { + default

> P selectVoPage(P page, MPJLambdaWrapper wrapper) { return selectVoPage(page, wrapper, this.currentVoClass()); } @@ -43,7 +44,7 @@ public interface TestDemoMapper extends BaseMapperPlus { @DataColumn(key = "deptName", value = "dept_id"), @DataColumn(key = "userName", value = "user_id") }) - default List selectVoList(Wrapper wrapper) { + default List selectVoList(MPJLambdaWrapper wrapper) { return selectVoList(wrapper, this.currentVoClass()); } diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/ITestDemoService.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/ITestDemoService.java index 9575d12c2..7c2323bfc 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/ITestDemoService.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/ITestDemoService.java @@ -1,7 +1,7 @@ package org.dromara.demo.service; -import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.core.domain.PageResult; +import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.demo.domain.TestDemo; import org.dromara.demo.domain.bo.TestDemoBo; import org.dromara.demo.domain.vo.TestDemoVo; diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java index 7163530ed..f7b5a3a90 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java @@ -2,10 +2,10 @@ package org.dromara.demo.service.impl; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; -import org.apache.fesod.sheet.write.metadata.WriteSheet; import jakarta.servlet.http.HttpServletResponse; import lombok.Data; import lombok.RequiredArgsConstructor; +import org.apache.fesod.sheet.write.metadata.WriteSheet; import org.dromara.common.core.constant.SystemConstants; import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.file.FileUtils; diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestDemoServiceImpl.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestDemoServiceImpl.java index 014b7e81d..6cca71c0f 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestDemoServiceImpl.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestDemoServiceImpl.java @@ -1,13 +1,11 @@ package org.dromara.demo.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.PageResult; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; -import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.demo.domain.TestDemo; import org.dromara.demo.domain.bo.TestDemoBo; @@ -45,28 +43,28 @@ public class TestDemoServiceImpl implements ITestDemoService { /** * 分页查询测试单表列表。 * - * @param bo 查询条件 + * @param bo 查询条件 * @param pageQuery 分页参数 * @return 分页结果 */ @Override public PageResult queryPageList(TestDemoBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + MPJLambdaWrapper wrapper = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), wrapper); return PageResult.build(result.getRecords(), result.getTotal()); } /** * 通过自定义 SQL 分页查询测试单表列表。 * - * @param bo 查询条件 + * @param bo 查询条件 * @param pageQuery 分页参数 * @return 分页结果 */ @Override public PageResult customPageList(TestDemoBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.customPageList(pageQuery.build(), lqw); + MPJLambdaWrapper wrapper = buildQueryWrapper(bo); + Page result = baseMapper.customPageList(pageQuery.build(), wrapper); return PageResult.build(result.getRecords(), result.getTotal()); } @@ -87,14 +85,14 @@ public class TestDemoServiceImpl implements ITestDemoService { * @param bo 查询条件 * @return 查询条件包装器 */ - private LambdaQueryWrapper buildQueryWrapper(TestDemoBo bo) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(bo.getDeptId() != null, TestDemo::getDeptId, bo.getDeptId()); - lqw.eq(bo.getUserId() != null, TestDemo::getUserId, bo.getUserId()); - lqw.like(StringUtils.isNotBlank(bo.getTestKey()), TestDemo::getTestKey, bo.getTestKey()); - lqw.eq(StringUtils.isNotBlank(bo.getValue()), TestDemo::getValue, bo.getValue()); - lqw.orderByAsc(TestDemo::getId); - return lqw; + private MPJLambdaWrapper buildQueryWrapper(TestDemoBo bo) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.eqIfExists(TestDemo::getDeptId, bo.getDeptId()); + wrapper.eqIfExists(TestDemo::getUserId, bo.getUserId()); + wrapper.likeIfExists(TestDemo::getTestKey, bo.getTestKey()); + wrapper.eqIfExists(TestDemo::getValue, bo.getValue()); + wrapper.orderByAsc(TestDemo::getId); + return wrapper; } /** @@ -139,7 +137,7 @@ public class TestDemoServiceImpl implements ITestDemoService { /** * 按主键集合删除测试单表数据,并按需执行删除前校验。 * - * @param ids 主键集合 + * @param ids 主键集合 * @param isValid 是否执行删除校验 * @return 是否删除成功 */ diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestTreeServiceImpl.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestTreeServiceImpl.java index 4671e4876..1d5f4cc9a 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestTreeServiceImpl.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestTreeServiceImpl.java @@ -1,10 +1,8 @@ package org.dromara.demo.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; import org.dromara.common.core.utils.MapstructUtils; -import org.dromara.common.core.utils.StringUtils; import org.dromara.demo.domain.TestTree; import org.dromara.demo.domain.bo.TestTreeBo; import org.dromara.demo.domain.vo.TestTreeVo; @@ -40,6 +38,7 @@ public class TestTreeServiceImpl implements ITestTreeService { } // @DS("slave") // 切换从库查询 + /** * 查询符合条件的测试树表列表。 * @@ -48,8 +47,8 @@ public class TestTreeServiceImpl implements ITestTreeService { */ @Override public List queryList(TestTreeBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + MPJLambdaWrapper wrapper = buildQueryWrapper(bo); + return baseMapper.selectVoList(wrapper); } /** @@ -58,13 +57,13 @@ public class TestTreeServiceImpl implements ITestTreeService { * @param bo 查询条件 * @return 查询条件包装器 */ - private LambdaQueryWrapper buildQueryWrapper(TestTreeBo bo) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(bo.getDeptId() != null, TestTree::getDeptId, bo.getDeptId()); - lqw.eq(bo.getUserId() != null, TestTree::getUserId, bo.getUserId()); - lqw.like(StringUtils.isNotBlank(bo.getTreeName()), TestTree::getTreeName, bo.getTreeName()); - lqw.orderByAsc(TestTree::getId); - return lqw; + private MPJLambdaWrapper buildQueryWrapper(TestTreeBo bo) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.eqIfExists(TestTree::getDeptId, bo.getDeptId()); + wrapper.eqIfExists(TestTree::getUserId, bo.getUserId()); + wrapper.likeIfExists(TestTree::getTreeName, bo.getTreeName()); + wrapper.orderByAsc(TestTree::getId); + return wrapper; } /** @@ -109,7 +108,7 @@ public class TestTreeServiceImpl implements ITestTreeService { /** * 按主键集合删除测试树表数据,并按需执行删除前校验。 * - * @param ids 主键集合 + * @param ids 主键集合 * @param isValid 是否执行删除校验 * @return 是否删除成功 */ diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/controller/GenController.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/controller/GenController.java index d37248d24..a3bc39126 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/controller/GenController.java +++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/controller/GenController.java @@ -6,13 +6,13 @@ import cn.hutool.core.io.IoUtil; import com.baomidou.lock.annotation.Lock4j; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.PageResult; import org.dromara.common.core.domain.R; -import org.dromara.common.redis.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.mybatis.core.page.PageQuery; -import org.dromara.common.core.domain.PageResult; import org.dromara.common.mybatis.helper.DataBaseHelper; +import org.dromara.common.redis.annotation.RepeatSubmit; import org.dromara.common.web.core.BaseController; import org.dromara.generator.domain.GenTable; import org.dromara.generator.domain.GenTableColumn; diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTable.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTable.java index 1ee32e64f..02b92d0bf 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTable.java +++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTable.java @@ -4,13 +4,13 @@ import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import org.dromara.common.core.utils.StringUtils; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import org.dromara.generator.constant.GenConstants; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.generator.constant.GenConstants; import java.util.HashMap; import java.util.List; diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/IGenTableService.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/IGenTableService.java index 18f03c977..132419835 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/IGenTableService.java +++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/IGenTableService.java @@ -1,7 +1,7 @@ package org.dromara.generator.service; -import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.core.domain.PageResult; +import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.generator.domain.GenTable; import org.dromara.generator.domain.GenTableColumn; diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm index a92fb8758..c42321886 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm @@ -1,14 +1,12 @@ package ${packageName}.service.impl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.dromara.common.core.utils.MapstructUtils; -import org.dromara.common.core.utils.StringUtils; #if($table.crud) import org.dromara.common.core.domain.PageResult; import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; #end -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -42,7 +40,7 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service { * @return ${functionName} */ @Override - public ${ClassName}Vo queryById(${pkColumn.javaType} ${pkColumn.javaField}){ + public ${ClassName}Vo queryById(${pkColumn.javaType} ${pkColumn.javaField}) { return baseMapper.selectVoById(${pkColumn.javaField}); } @@ -56,8 +54,8 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service { */ @Override public PageResult<${ClassName}Vo> queryPageList(${ClassName}Bo bo, PageQuery pageQuery) { - LambdaQueryWrapper<${ClassName}> lqw = buildQueryWrapper(bo); - Page<${ClassName}Vo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); + MPJLambdaWrapper<${ClassName}> wrapper = buildQueryWrapper(bo); + Page<${ClassName}Vo> result = baseMapper.selectVoPage(pageQuery.build(), wrapper); return PageResult.build(result.getRecords(), result.getTotal()); } #end @@ -70,39 +68,45 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service { */ @Override public List<${ClassName}Vo> queryList(${ClassName}Bo bo) { - LambdaQueryWrapper<${ClassName}> lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + MPJLambdaWrapper<${ClassName}> wrapper = buildQueryWrapper(bo); + return baseMapper.selectVoList(wrapper); } - private LambdaQueryWrapper<${ClassName}> buildQueryWrapper(${ClassName}Bo bo) { + private MPJLambdaWrapper<${ClassName}> buildQueryWrapper(${ClassName}Bo bo) { Map params = bo.getParams(); - LambdaQueryWrapper<${ClassName}> lqw = Wrappers.lambdaQuery(); -#foreach($column in $columns) -#if($column.query) -#set($queryType=$column.queryType) -#set($javaField=$column.javaField) -#set($javaType=$column.javaType) -#set($columnName=$column.columnName) -#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) -#set($mpMethod=$column.queryType.toLowerCase()) -#if($queryType != 'BETWEEN') -#if($javaType == 'String') -#set($condition='StringUtils.isNotBlank(bo.get'+$AttrName+'())') -#else -#set($condition='bo.get'+$AttrName+'() != null') -#end - lqw.$mpMethod($condition, ${ClassName}::get$AttrName, bo.get$AttrName()); -#else - lqw.between(params.get("begin$AttrName") != null && params.get("end$AttrName") != null, - ${ClassName}::get$AttrName ,params.get("begin$AttrName"), params.get("end$AttrName")); -#end -#end -#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) -#if($column.isPk==1) - lqw.orderByAsc(${ClassName}::get$AttrName); -#end -#end - return lqw; + MPJLambdaWrapper<${ClassName}> wrapper = new MPJLambdaWrapper<>(); + #foreach($column in $columns) + #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + $column.javaField.substring(1)) + #if($column.isPk==1) + wrapper.orderByAsc(${ClassName}::get$AttrName); + #end + #if($column.query) + #set($queryType=$column.queryType.toLowerCase()) + #set($javaField=$column.javaField) + #if($queryType == 'eq') + wrapper.eqIfExists(${ClassName}::get$AttrName, bo.get$AttrName()); + #elseif($queryType == 'like') + wrapper.likeIfExists(${ClassName}::get$AttrName, bo.get$AttrName()); + #elseif($queryType == 'likeleft') + wrapper.likeLeftIfExists(${ClassName}::get$AttrName, bo.get$AttrName()); + #elseif($queryType == 'likeright') + wrapper.likeRightIfExists(${ClassName}::get$AttrName, bo.get$AttrName()); + #elseif($queryType == 'gt') + wrapper.gtIfExists(${ClassName}::get$AttrName, bo.get$AttrName()); + #elseif($queryType == 'lt') + wrapper.ltIfExists(${ClassName}::get$AttrName, bo.get$AttrName()); + #elseif($queryType == 'ge') + wrapper.geIfExists(${ClassName}::get$AttrName, bo.get$AttrName()); + #elseif($queryType == 'le') + wrapper.leIfExists(${ClassName}::get$AttrName, bo.get$AttrName()); + #elseif($queryType == 'in') + wrapper.inIfExists(${ClassName}::get$AttrName, bo.get$AttrName()); + #elseif($queryType == 'between') + wrapper.betweenIfExists(${ClassName}::get$AttrName, params.get("begin$AttrName"), params.get("end$AttrName")); + #end + #end + #end + return wrapper; } /** @@ -113,10 +117,10 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service { */ @Override public Boolean insertByBo(${ClassName}Bo bo) { - ${ClassName} add = MapstructUtils.convert(bo, ${ClassName}.class); + ${ClassName} add = MapstructUtils.convert(bo, ${ClassName}. class); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; -#set($pk=$pkColumn.javaField.substring(0,1).toUpperCase() + ${pkColumn.javaField.substring(1)}) + #set($pk=$pkColumn.javaField.substring(0,1).toUpperCase() + ${pkColumn.javaField.substring(1)}) if (flag) { bo.set$pk(add.get$pk()); } @@ -131,7 +135,7 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service { */ @Override public Boolean updateByBo(${ClassName}Bo bo) { - ${ClassName} update = MapstructUtils.convert(bo, ${ClassName}.class); + ${ClassName} update = MapstructUtils.convert(bo, ${ClassName}. class); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } @@ -139,7 +143,7 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service { /** * 保存前的数据校验 */ - private void validEntityBeforeSave(${ClassName} entity){ + private void validEntityBeforeSave(${ClassName} entity) { //TODO 做一些数据校验,如唯一约束 } @@ -152,7 +156,7 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service { */ @Override public Boolean deleteWithValidByIds(Collection<${pkColumn.javaType}> ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/ts/api.ts.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/ts/api.ts.vm index a8f2230c8..daf777dfd 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/ts/api.ts.vm +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/ts/api.ts.vm @@ -1,7 +1,7 @@ import request from '@/utils/request'; -import { AxiosPromise } from 'axios'; -import { ${BusinessName}VO, ${BusinessName}Form, ${BusinessName}Query } from '@/api/${moduleName}/${businessName}/types'; -import { PageResult } from '@/api/types'; +import {AxiosPromise} from 'axios'; +import {${BusinessName}Form, ${BusinessName}Query, ${BusinessName}VO} from '@/api/'; +import {PageResult} from '@/api/types'; /** * 查询${functionName}列表 diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm index 6e6ac8789..a40752ff6 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm @@ -269,10 +269,17 @@