diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 031427fc0..65fd242e6 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -30,6 +30,14 @@ mysql-connector-java + + + com.oracle + ojdbc6 + 11.2.0.3 + + + com.ruoyi diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 3838ff50e..0c18ecca3 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -146,6 +146,7 @@ mybatis-plus: localCacheScope: SESSION # 开启Mybatis二级缓存,默认为 true cacheEnabled: true + jdbc-type-for-null: 'null' global-config: # 是否打印 Logo banner banner: true diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java index 72240bc18..3b1441b24 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java @@ -14,7 +14,7 @@ import java.util.*; /** * 部门表 sys_dept - * + * * @author ruoyi */ @@ -22,12 +22,13 @@ import java.util.*; @NoArgsConstructor @Accessors(chain = true) @TableName("sys_dept") +@KeySequence(value = "seq_sys_dept") public class SysDept implements Serializable { private static final long serialVersionUID = 1L; /** 部门ID */ - @TableId(value = "dept_id",type = IdType.AUTO) + @TableId(value = "dept_id",type = IdType.INPUT) private Long deptId; /** 父部门ID */ @@ -85,7 +86,7 @@ public class SysDept implements Serializable @TableField(fill = FieldFill.INSERT_UPDATE) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; - + /** 子部门 */ @TableField(exist = false) private List children = new ArrayList(); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java index c98f9fc37..e9e084da7 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java @@ -18,7 +18,7 @@ import java.util.Map; /** * 字典数据表 sys_dict_data - * + * * @author ruoyi */ @@ -26,13 +26,14 @@ import java.util.Map; @NoArgsConstructor @Accessors(chain = true) @TableName("sys_dict_data") +@KeySequence(value = "seq_sys_dict_data") public class SysDictData implements Serializable { private static final long serialVersionUID = 1L; /** 字典编码 */ @Excel(name = "字典编码", cellType = ColumnType.NUMERIC) - @TableId(value = "dict_code",type = IdType.AUTO) + @TableId(value = "dict_code",type = IdType.INPUT) private Long dictCode; /** 字典排序 */ diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java index 48ed2529f..129199f26 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java @@ -17,7 +17,7 @@ import java.util.Map; /** * 字典类型表 sys_dict_type - * + * * @author ruoyi */ @@ -25,13 +25,14 @@ import java.util.Map; @NoArgsConstructor @Accessors(chain = true) @TableName("sys_dict_type") +@KeySequence(value = "seq_sys_dict_type") public class SysDictType implements Serializable { private static final long serialVersionUID = 1L; /** 字典主键 */ @Excel(name = "字典主键", cellType = ColumnType.NUMERIC) - @TableId(value = "dict_id",type = IdType.AUTO) + @TableId(value = "dict_id",type = IdType.INPUT) private Long dictId; /** 字典名称 */ diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java index b9d0e8dff..b61597504 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java @@ -13,7 +13,7 @@ import java.util.*; /** * 菜单权限表 sys_menu - * + * * @author ruoyi */ @@ -21,12 +21,13 @@ import java.util.*; @NoArgsConstructor @Accessors(chain = true) @TableName("sys_menu") +@KeySequence(value = "seq_sys_menu") public class SysMenu implements Serializable { private static final long serialVersionUID = 1L; /** 菜单ID */ - @TableId(value = "menu_id",type = IdType.AUTO) + @TableId(value = "menu_id",type = IdType.INPUT) private Long menuId; /** 菜单名称 */ @@ -65,7 +66,7 @@ public class SysMenu implements Serializable /** 显示状态(0显示 1隐藏) */ private String visible; - + /** 菜单状态(0显示 1隐藏) */ private String status; 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 6cbd22a35..9313674a0 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 @@ -17,7 +17,7 @@ import java.util.Map; /** * 角色表 sys_role - * + * * @author ruoyi */ @@ -25,13 +25,14 @@ import java.util.Map; @NoArgsConstructor @Accessors(chain = true) @TableName("sys_role") +@KeySequence(value = "seq_sys_role") public class SysRole implements Serializable { private static final long serialVersionUID = 1L; /** 角色ID */ @Excel(name = "角色序号", cellType = ColumnType.NUMERIC) - @TableId(value = "role_id",type = IdType.AUTO) + @TableId(value = "role_id",type = IdType.INPUT) private Long roleId; /** 角色名称 */ 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 110c5480c..0b7dea939 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 @@ -31,13 +31,14 @@ import java.util.Map; @NoArgsConstructor @Accessors(chain = true) @TableName("sys_user") +@KeySequence(value = "seq_sys_user") public class SysUser implements Serializable { private static final long serialVersionUID = 1L; /** 用户ID */ @Excel(name = "用户序号", cellType = ColumnType.NUMERIC, prompt = "用户编号") - @TableId(value = "user_id",type = IdType.AUTO) + @TableId(value = "user_id",type = IdType.INPUT) private Long userId; /** 部门ID */ diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/IServicePlus.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/IServicePlus.java index aeaee0b58..c7db1974e 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/IServicePlus.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/IServicePlus.java @@ -107,7 +107,7 @@ public interface IServicePlus extends IService { /** * 根据 Wrapper,查询一条记录
- *

结果集,如果是多个会抛出异常,随机取一条加上限制条件 wrapper.last("LIMIT 1")

+ *

结果集,如果是多个会抛出异常,随机取一条加上限制条件 wrapper.last("and rownum <= 1")

* * @param kClass vo类型 * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper} @@ -118,7 +118,7 @@ public interface IServicePlus extends IService { /** * 根据 Wrapper,查询一条记录
- *

结果集,如果是多个会抛出异常,随机取一条加上限制条件 wrapper.last("LIMIT 1")

+ *

结果集,如果是多个会抛出异常,随机取一条加上限制条件 wrapper.last("and rownum <= 1")

* * @param convertor 转换函数 * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java index e8ef10185..7e6e9b1d3 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java @@ -117,7 +117,7 @@ public class DataScopeAspect { deptAlias, user.getDeptId())); } else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) { sqlString.append(StrUtil.format( - " OR {}dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )", + " OR {}dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) ]]> 0 )", deptAlias, user.getDeptId(), user.getDeptId())); } else if (DATA_SCOPE_SELF.equals(dataScope)) { if (isUser) { diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java index bce2150b7..dc7f99273 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java @@ -2,6 +2,7 @@ package com.ruoyi.framework.config; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import com.baomidou.mybatisplus.extension.incrementer.OracleKeyGenerator; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; @@ -41,7 +42,7 @@ public class MybatisPlusConfig { public PaginationInnerInterceptor paginationInnerInterceptor() { PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(); // 设置数据库类型为mysql - paginationInnerInterceptor.setDbType(DbType.MYSQL); + paginationInnerInterceptor.setDbType(DbType.ORACLE); // 设置最大单页限制数量,默认 500 条,-1 不受限制 paginationInnerInterceptor.setMaxLimit(-1L); return paginationInnerInterceptor; @@ -106,4 +107,15 @@ public class MybatisPlusConfig { * https://baomidou.com/guide/interceptor-dynamic-table-name.html */ + /** + * Sequence主键自增 + * + * @return 返回oracle自增类 + * @author zhenggc + * @date 2019/1/2 + */ + @Bean + public OracleKeyGenerator oracleKeyGenerator(){ + return new OracleKeyGenerator(); + } } diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/config/ScheduleConfig.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/config/ScheduleConfig.java index c6b838461..7d8ef93a7 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/config/ScheduleConfig.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/config/ScheduleConfig.java @@ -1,13 +1,57 @@ -package com.ruoyi.quartz.config; - -import org.springframework.context.annotation.Configuration; - -/** - * 定时任务配置 - * - * @author Lion Li - */ -@Configuration -public class ScheduleConfig { - -} +package com.ruoyi.quartz.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.quartz.SchedulerFactoryBean; +import javax.sql.DataSource; +import java.util.Properties; + +/** + * 定时任务配置 + * + * @author ruoyi + */ +@Configuration +public class ScheduleConfig +{ + @Bean + public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource) + { + SchedulerFactoryBean factory = new SchedulerFactoryBean(); + factory.setDataSource(dataSource); + + // quartz参数 + Properties prop = new Properties(); + prop.put("org.quartz.scheduler.instanceName", "RuoyiScheduler"); + prop.put("org.quartz.scheduler.instanceId", "AUTO"); + // 线程池配置 + prop.put("org.quartz.threadPool.class", "org.quartz.simpl.SimpleThreadPool"); + prop.put("org.quartz.threadPool.threadCount", "20"); + prop.put("org.quartz.threadPool.threadPriority", "5"); + // JobStore配置 + prop.put("org.quartz.jobStore.class", "org.quartz.impl.jdbcjobstore.JobStoreTX"); + // 集群配置 + prop.put("org.quartz.jobStore.isClustered", "true"); + prop.put("org.quartz.jobStore.clusterCheckinInterval", "15000"); + prop.put("org.quartz.jobStore.maxMisfiresToHandleAtATime", "1"); + prop.put("org.quartz.jobStore.txIsolationLevelSerializable", "true"); + + // sqlserver 启用 + // prop.put("org.quartz.jobStore.selectWithLockSQL", "SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?"); + prop.put("org.quartz.jobStore.misfireThreshold", "12000"); + prop.put("org.quartz.jobStore.tablePrefix", "QRTZ_"); + factory.setQuartzProperties(prop); + + factory.setSchedulerName("RuoyiScheduler"); + // 延时启动 + factory.setStartupDelay(1); + factory.setApplicationContextSchedulerContextKey("applicationContextKey"); + // 可选,QuartzScheduler + // 启动时更新己存在的Job,这样就不用每次修改targetObject后删除qrtz_job_details表对应记录了 + factory.setOverwriteExistingJobs(true); + // 设置自动启动,默认为true + factory.setAutoStartup(true); + + return factory; + } +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java index b1c8941ab..748517612 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java @@ -28,6 +28,7 @@ import java.util.Map; @NoArgsConstructor @Accessors(chain = true) @TableName("sys_job") +@KeySequence(value = "seq_sys_job") public class SysJob implements Serializable { private static final long serialVersionUID = 1L; @@ -35,7 +36,7 @@ public class SysJob implements Serializable { * 任务ID */ @Excel(name = "任务序号", cellType = ColumnType.NUMERIC) - @TableId(value = "job_id", type = IdType.AUTO) + @TableId(value = "job_id", type = IdType.INPUT) private Long jobId; /** diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJobLog.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJobLog.java index b315c5623..50564cc7d 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJobLog.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJobLog.java @@ -1,78 +1,78 @@ -package com.ruoyi.quartz.domain; - -import com.baomidou.mybatisplus.annotation.*; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.ruoyi.common.annotation.Excel; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -/** - * 定时任务调度日志表 sys_job_log - * - * @author ruoyi - */ - -@Data -@NoArgsConstructor -@Accessors(chain = true) -@TableName("sys_job_log") -public class SysJobLog -{ - private static final long serialVersionUID = 1L; - - /** ID */ - @Excel(name = "日志序号") - @TableId(value = "job_log_id", type = IdType.AUTO) - private Long jobLogId; - - /** 任务名称 */ - @Excel(name = "任务名称") - private String jobName; - - /** 任务组名 */ - @Excel(name = "任务组名") - private String jobGroup; - - /** 调用目标字符串 */ - @Excel(name = "调用目标字符串") - private String invokeTarget; - - /** 日志信息 */ - @Excel(name = "日志信息") - private String jobMessage; - - /** 执行状态(0正常 1失败) */ - @Excel(name = "执行状态", readConverterExp = "0=正常,1=失败") - private String status; - - /** 异常信息 */ - @Excel(name = "异常信息") - private String exceptionInfo; - - /** - * 创建时间 - */ - @TableField(fill = FieldFill.INSERT) - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date createTime; - - /** - * 请求参数 - */ - @TableField(exist = false) - private Map params = new HashMap<>(); - - /** 开始时间 */ - @TableField(exist = false) - private Date startTime; - - /** 停止时间 */ - @TableField(exist = false) - private Date stopTime; - -} +package com.ruoyi.quartz.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * 定时任务调度日志表 sys_job_log + * + * @author ruoyi + */ + +@Data +@NoArgsConstructor +@Accessors(chain = true) +@TableName("sys_job_log") +@KeySequence(value = "seq_sys_job_log") +public class SysJobLog { + private static final long serialVersionUID = 1L; + + /** ID */ + @Excel(name = "日志序号") + @TableId(value = "job_log_id", type = IdType.INPUT) + private Long jobLogId; + + /** 任务名称 */ + @Excel(name = "任务名称") + private String jobName; + + /** 任务组名 */ + @Excel(name = "任务组名") + private String jobGroup; + + /** 调用目标字符串 */ + @Excel(name = "调用目标字符串") + private String invokeTarget; + + /** 日志信息 */ + @Excel(name = "日志信息") + private String jobMessage; + + /** 执行状态(0正常 1失败) */ + @Excel(name = "执行状态", readConverterExp = "0=正常,1=失败") + private String status; + + /** 异常信息 */ + @Excel(name = "异常信息") + private String exceptionInfo; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** + * 请求参数 + */ + @TableField(exist = false) + private Map params = new HashMap<>(); + + /** 开始时间 */ + @TableField(exist = false) + private Date startTime; + + /** 停止时间 */ + @TableField(exist = false) + private Date stopTime; + +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobLogServiceImpl.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobLogServiceImpl.java index 28c9d8a9d..3382c11f1 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobLogServiceImpl.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobLogServiceImpl.java @@ -1,114 +1,114 @@ -package com.ruoyi.quartz.service.impl; - -import cn.hutool.core.lang.Validator; -import cn.hutool.core.util.StrUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.utils.PageUtils; -import com.ruoyi.quartz.domain.SysJobLog; -import com.ruoyi.quartz.mapper.SysJobLogMapper; -import com.ruoyi.quartz.service.ISysJobLogService; -import org.springframework.stereotype.Service; - -import java.util.Arrays; -import java.util.List; -import java.util.Map; - -/** - * 定时任务调度日志信息 服务层 - * - * @author ruoyi - */ -@Service -public class SysJobLogServiceImpl extends ServiceImpl implements ISysJobLogService { - - @Override - public TableDataInfo selectPageJobLogList(SysJobLog jobLog) { - Map params = jobLog.getParams(); - LambdaQueryWrapper lqw = new LambdaQueryWrapper() - .like(StrUtil.isNotBlank(jobLog.getJobName()), SysJobLog::getJobName, jobLog.getJobName()) - .eq(StrUtil.isNotBlank(jobLog.getJobGroup()), SysJobLog::getJobGroup, jobLog.getJobGroup()) - .eq(StrUtil.isNotBlank(jobLog.getStatus()), SysJobLog::getStatus, jobLog.getStatus()) - .like(StrUtil.isNotBlank(jobLog.getInvokeTarget()), SysJobLog::getInvokeTarget, jobLog.getInvokeTarget()) - .apply(Validator.isNotEmpty(params.get("beginTime")), - "date_format(create_time,'%y%m%d') >= date_format({0},'%y%m%d')", - params.get("beginTime")) - .apply(Validator.isNotEmpty(params.get("endTime")), - "date_format(create_time,'%y%m%d') <= date_format({0},'%y%m%d')", - params.get("endTime")); - return PageUtils.buildDataInfo(page(PageUtils.buildPage(), lqw)); - } - - /** - * 获取quartz调度器日志的计划任务 - * - * @param jobLog 调度日志信息 - * @return 调度任务日志集合 - */ - @Override - public List selectJobLogList(SysJobLog jobLog) { - Map params = jobLog.getParams(); - return list(new LambdaQueryWrapper() - .like(StrUtil.isNotBlank(jobLog.getJobName()), SysJobLog::getJobName, jobLog.getJobName()) - .eq(StrUtil.isNotBlank(jobLog.getJobGroup()), SysJobLog::getJobGroup, jobLog.getJobGroup()) - .eq(StrUtil.isNotBlank(jobLog.getStatus()), SysJobLog::getStatus, jobLog.getStatus()) - .like(StrUtil.isNotBlank(jobLog.getInvokeTarget()), SysJobLog::getInvokeTarget, jobLog.getInvokeTarget()) - .apply(Validator.isNotEmpty(params.get("beginTime")), - "date_format(create_time,'%y%m%d') >= date_format({0},'%y%m%d')", - params.get("beginTime")) - .apply(Validator.isNotEmpty(params.get("endTime")), - "date_format(create_time,'%y%m%d') <= date_format({0},'%y%m%d')", - params.get("endTime"))); - } - - /** - * 通过调度任务日志ID查询调度信息 - * - * @param jobLogId 调度任务日志ID - * @return 调度任务日志对象信息 - */ - @Override - public SysJobLog selectJobLogById(Long jobLogId) { - return getById(jobLogId); - } - - /** - * 新增任务日志 - * - * @param jobLog 调度日志信息 - */ - @Override - public void addJobLog(SysJobLog jobLog) { - baseMapper.insert(jobLog); - } - - /** - * 批量删除调度日志信息 - * - * @param logIds 需要删除的数据ID - * @return 结果 - */ - @Override - public int deleteJobLogByIds(Long[] logIds) { - return baseMapper.deleteBatchIds(Arrays.asList(logIds)); - } - - /** - * 删除任务日志 - * - * @param jobId 调度日志ID - */ - @Override - public int deleteJobLogById(Long jobId) { - return baseMapper.deleteById(jobId); - } - - /** - * 清空任务日志 - */ - @Override - public void cleanJobLog() { - remove(new LambdaQueryWrapper<>()); - } -} +package com.ruoyi.quartz.service.impl; + +import cn.hutool.core.lang.Validator; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.utils.PageUtils; +import com.ruoyi.quartz.domain.SysJobLog; +import com.ruoyi.quartz.mapper.SysJobLogMapper; +import com.ruoyi.quartz.service.ISysJobLogService; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 定时任务调度日志信息 服务层 + * + * @author ruoyi + */ +@Service +public class SysJobLogServiceImpl extends ServiceImpl implements ISysJobLogService { + + @Override + public TableDataInfo selectPageJobLogList(SysJobLog jobLog) { + Map params = jobLog.getParams(); + LambdaQueryWrapper lqw = new LambdaQueryWrapper() + .like(StrUtil.isNotBlank(jobLog.getJobName()), SysJobLog::getJobName, jobLog.getJobName()) + .eq(StrUtil.isNotBlank(jobLog.getJobGroup()), SysJobLog::getJobGroup, jobLog.getJobGroup()) + .eq(StrUtil.isNotBlank(jobLog.getStatus()), SysJobLog::getStatus, jobLog.getStatus()) + .like(StrUtil.isNotBlank(jobLog.getInvokeTarget()), SysJobLog::getInvokeTarget, jobLog.getInvokeTarget()) + .apply(Validator.isNotEmpty(params.get("beginTime")), + "create_time >= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", + params.get("beginTime")) + .apply(Validator.isNotEmpty(params.get("endTime")), + "create_time <= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", + params.get("endTime")); + return PageUtils.buildDataInfo(page(PageUtils.buildPage(), lqw)); + } + + /** + * 获取quartz调度器日志的计划任务 + * + * @param jobLog 调度日志信息 + * @return 调度任务日志集合 + */ + @Override + public List selectJobLogList(SysJobLog jobLog) { + Map params = jobLog.getParams(); + return list(new LambdaQueryWrapper() + .like(StrUtil.isNotBlank(jobLog.getJobName()), SysJobLog::getJobName, jobLog.getJobName()) + .eq(StrUtil.isNotBlank(jobLog.getJobGroup()), SysJobLog::getJobGroup, jobLog.getJobGroup()) + .eq(StrUtil.isNotBlank(jobLog.getStatus()), SysJobLog::getStatus, jobLog.getStatus()) + .like(StrUtil.isNotBlank(jobLog.getInvokeTarget()), SysJobLog::getInvokeTarget, jobLog.getInvokeTarget()) + .apply(Validator.isNotEmpty(params.get("beginTime")), + "create_time >= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", + params.get("beginTime")) + .apply(Validator.isNotEmpty(params.get("endTime")), + "create_time <= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", + params.get("endTime"))); + } + + /** + * 通过调度任务日志ID查询调度信息 + * + * @param jobLogId 调度任务日志ID + * @return 调度任务日志对象信息 + */ + @Override + public SysJobLog selectJobLogById(Long jobLogId) { + return getById(jobLogId); + } + + /** + * 新增任务日志 + * + * @param jobLog 调度日志信息 + */ + @Override + public void addJobLog(SysJobLog jobLog) { + baseMapper.insert(jobLog); + } + + /** + * 批量删除调度日志信息 + * + * @param logIds 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteJobLogByIds(Long[] logIds) { + return baseMapper.deleteBatchIds(Arrays.asList(logIds)); + } + + /** + * 删除任务日志 + * + * @param jobId 调度日志ID + */ + @Override + public int deleteJobLogById(Long jobId) { + return baseMapper.deleteById(jobId); + } + + /** + * 清空任务日志 + */ + @Override + public void cleanJobLog() { + remove(new LambdaQueryWrapper<>()); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java index 66569b707..392dbff5a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java @@ -25,6 +25,7 @@ import java.util.Map; @NoArgsConstructor @Accessors(chain = true) @TableName("sys_config") +@KeySequence(value = "seq_sys_config") public class SysConfig implements Serializable { private static final long serialVersionUID = 1L; @@ -32,7 +33,7 @@ public class SysConfig implements Serializable { * 参数主键 */ @Excel(name = "参数主键", cellType = ColumnType.NUMERIC) - @TableId(value = "config_id", type = IdType.AUTO) + @TableId(value = "config_id", type = IdType.INPUT) private Long configId; /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java index 3182bc4ce..830ca2a1b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java @@ -1,9 +1,6 @@ package com.ruoyi.system.domain; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel.ColumnType; @@ -26,6 +23,7 @@ import java.util.Map; @NoArgsConstructor @Accessors(chain = true) @TableName("sys_logininfor") +@KeySequence(value = "seq_sys_logininfor") public class SysLogininfor implements Serializable { private static final long serialVersionUID = 1L; @@ -33,7 +31,7 @@ public class SysLogininfor implements Serializable { * ID */ @Excel(name = "序号", cellType = ColumnType.NUMERIC) - @TableId(value = "info_id", type = IdType.AUTO) + @TableId(value = "info_id", type = IdType.INPUT) private Long infoId; /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java index e50ecd12c..ae7f2b3c5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java @@ -22,13 +22,14 @@ import java.util.Map; @NoArgsConstructor @Accessors(chain = true) @TableName("sys_notice") +@KeySequence(value = "seq_sys_notice") public class SysNotice implements Serializable { private static final long serialVersionUID = 1L; /** * 公告ID */ - @TableId(value = "notice_id", type = IdType.AUTO) + @TableId(value = "notice_id", type = IdType.INPUT) private Long noticeId; /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java index 03e5d26fa..5aea80e3a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java @@ -1,9 +1,6 @@ package com.ruoyi.system.domain; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel.ColumnType; @@ -26,6 +23,7 @@ import java.util.Map; @NoArgsConstructor @Accessors(chain = true) @TableName("sys_oper_log") +@KeySequence(value = "seq_sys_oper_log") public class SysOperLog implements Serializable { private static final long serialVersionUID = 1L; @@ -33,7 +31,7 @@ public class SysOperLog implements Serializable { * 日志主键 */ @Excel(name = "操作序号", cellType = ColumnType.NUMERIC) - @TableId(value = "oper_id", type = IdType.AUTO) + @TableId(value = "oper_id", type = IdType.INPUT) private Long operId; /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java index 5bde68450..612639d72 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java @@ -25,6 +25,7 @@ import java.util.Map; @NoArgsConstructor @Accessors(chain = true) @TableName("sys_post") +@KeySequence(value = "seq_sys_post") public class SysPost implements Serializable { private static final long serialVersionUID = 1L; @@ -32,7 +33,7 @@ public class SysPost implements Serializable { * 岗位序号 */ @Excel(name = "岗位序号", cellType = ColumnType.NUMERIC) - @TableId(value = "post_id", type = IdType.AUTO) + @TableId(value = "post_id", type = IdType.INPUT) private Long postId; /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java index d0b37c5e3..6ee527898 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java @@ -52,10 +52,10 @@ public class SysConfigServiceImpl extends ServiceImpl= date_format({0},'%y%m%d')", + "create_time >= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", params.get("beginTime")) .apply(Validator.isNotEmpty(params.get("endTime")), - "date_format(create_time,'%y%m%d') <= date_format({0},'%y%m%d')", + "create_time <= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", params.get("endTime")); return PageUtils.buildDataInfo(page(PageUtils.buildPage(), lqw)); } @@ -107,10 +107,10 @@ public class SysConfigServiceImpl extends ServiceImpl= date_format({0},'%y%m%d')", + "create_time >= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", params.get("beginTime")) .apply(Validator.isNotEmpty(params.get("endTime")), - "date_format(create_time,'%y%m%d') <= date_format({0},'%y%m%d')", + "create_time <= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", params.get("endTime")); return baseMapper.selectList(lqw); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index 7cdda238a..facd529da 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -123,7 +123,7 @@ public class SysDeptServiceImpl extends ServiceImpl impl public int selectNormalChildrenDeptById(Long deptId) { return count(new LambdaQueryWrapper() .eq(SysDept::getStatus, 0) - .apply("find_in_set({0}, ancestors)", deptId)); + .apply("find_in_set({0}, ancestors) <> 0", deptId)); } /** @@ -136,7 +136,7 @@ public class SysDeptServiceImpl extends ServiceImpl impl public boolean hasChildByDeptId(Long deptId) { int result = count(new LambdaQueryWrapper() .eq(SysDept::getParentId, deptId) - .last("limit 1")); + .last("and rownum <= 1")); return result > 0 ? true : false; } @@ -165,7 +165,7 @@ public class SysDeptServiceImpl extends ServiceImpl impl SysDept info = getOne(new LambdaQueryWrapper() .eq(SysDept::getDeptName, dept.getDeptName()) .eq(SysDept::getParentId, dept.getParentId()) - .last("limit 1")); + .last("and rownum <= 1")); if (Validator.isNotNull(info) && info.getDeptId().longValue() != deptId.longValue()) { return UserConstants.NOT_UNIQUE; } @@ -239,7 +239,7 @@ public class SysDeptServiceImpl extends ServiceImpl impl */ public void updateDeptChildren(Long deptId, String newAncestors, String oldAncestors) { List children = list(new LambdaQueryWrapper() - .apply("find_in_set({0},ancestors)",deptId)); + .apply("find_in_set({0},ancestors) <> 0",deptId)); for (SysDept child : children) { child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors)); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java index c4f9d955d..eb5a70584 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java @@ -52,10 +52,10 @@ public class SysDictTypeServiceImpl extends ServiceImpl= date_format({0},'%y%m%d')", + "create_time >= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", params.get("beginTime")) .apply(Validator.isNotEmpty(params.get("endTime")), - "date_format(create_time,'%y%m%d') <= date_format({0},'%y%m%d')", + "create_time <= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", params.get("endTime")); return PageUtils.buildDataInfo(page(PageUtils.buildPage(), lqw)); } @@ -74,10 +74,10 @@ public class SysDictTypeServiceImpl extends ServiceImpl= date_format({0},'%y%m%d')", + "create_time >= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", params.get("beginTime")) .apply(Validator.isNotEmpty(params.get("endTime")), - "date_format(create_time,'%y%m%d') <= date_format({0},'%y%m%d')", + "create_time <= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", params.get("endTime"))); } @@ -228,7 +228,7 @@ public class SysDictTypeServiceImpl extends ServiceImpl() .eq(SysDictType::getDictType, dict.getDictType()) - .last("limit 1")); + .last("and rownum <= 1")); if (Validator.isNotNull(dictType) && dictType.getDictId().longValue() != dictId.longValue()) { return UserConstants.NOT_UNIQUE; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java index ff5d47df5..e50a25d7a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java @@ -32,10 +32,10 @@ public class SysLogininforServiceImpl extends ServiceImpl= date_format({0},'%y%m%d')", + "login_time >= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", params.get("beginTime")) .apply(Validator.isNotEmpty(params.get("endTime")), - "date_format(login_time,'%y%m%d') <= date_format({0},'%y%m%d')", + "login_time <= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", params.get("endTime")) .orderByDesc(SysLogininfor::getInfoId); return PageUtils.buildDataInfo(page(PageUtils.buildPage(), lqw)); @@ -66,10 +66,10 @@ public class SysLogininforServiceImpl extends ServiceImpl= date_format({0},'%y%m%d')", + "login_time >= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", params.get("beginTime")) .apply(Validator.isNotEmpty(params.get("endTime")), - "date_format(login_time,'%y%m%d') <= date_format({0},'%y%m%d')", + "login_time <= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", params.get("endTime")) .orderByDesc(SysLogininfor::getInfoId)); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index 6f7cc414e..450623864 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -25,7 +25,7 @@ import java.util.stream.Collectors; /** * 菜单 业务层处理 - * + * * @author ruoyi */ @Service @@ -276,7 +276,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl SysMenu info = getOne(new LambdaQueryWrapper() .eq(SysMenu::getMenuName,menu.getMenuName()) .eq(SysMenu::getParentId,menu.getParentId()) - .last("limit 1")); + .last("and rownum <= 1")); if (Validator.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue()) { return UserConstants.NOT_UNIQUE; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java index 0a3186efb..a7253783d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java @@ -41,10 +41,10 @@ public class SysOperLogServiceImpl extends ServiceImpl= date_format({0},'%y%m%d')", + "oper_time >= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", params.get("beginTime")) .apply(Validator.isNotEmpty(params.get("endTime")), - "date_format(oper_time,'%y%m%d') <= date_format({0},'%y%m%d')", + "oper_time <= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", params.get("endTime")) .orderByDesc(SysOperLog::getOperId); return PageUtils.buildDataInfo(page(PageUtils.buildPage(), lqw)); @@ -83,10 +83,10 @@ public class SysOperLogServiceImpl extends ServiceImpl= date_format({0},'%y%m%d')", + "oper_time >= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", params.get("beginTime")) .apply(Validator.isNotEmpty(params.get("endTime")), - "date_format(oper_time,'%y%m%d') <= date_format({0},'%y%m%d')", + "oper_time <= TO_DATE({0},'yyyy-MM-dd HH24:mi:ss')", params.get("endTime")) .orderByDesc(SysOperLog::getOperId)); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java index d2aeab070..d569b60ba 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java @@ -95,7 +95,7 @@ public class SysPostServiceImpl extends ServiceImpl impl public String checkPostNameUnique(SysPost post) { Long postId = Validator.isNull(post.getPostId()) ? -1L : post.getPostId(); SysPost info = getOne(new LambdaQueryWrapper() - .eq(SysPost::getPostName, post.getPostName()).last("limit 1")); + .eq(SysPost::getPostName, post.getPostName()).last("and rownum <= 1")); if (Validator.isNotNull(info) && info.getPostId().longValue() != postId.longValue()) { return UserConstants.NOT_UNIQUE; } @@ -112,7 +112,7 @@ public class SysPostServiceImpl extends ServiceImpl impl public String checkPostCodeUnique(SysPost post) { Long postId = Validator.isNull(post.getPostId()) ? -1L : post.getPostId(); SysPost info = getOne(new LambdaQueryWrapper() - .eq(SysPost::getPostCode, post.getPostCode()).last("limit 1")); + .eq(SysPost::getPostCode, post.getPostCode()).last("and rownum <= 1")); if (Validator.isNotNull(info) && info.getPostId().longValue() != postId.longValue()) { return UserConstants.NOT_UNIQUE; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java index c46c45f99..9cff0c5b8 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java @@ -119,7 +119,7 @@ public class SysRoleServiceImpl extends ServiceImpl impl public String checkRoleNameUnique(SysRole role) { Long roleId = Validator.isNull(role.getRoleId()) ? -1L : role.getRoleId(); SysRole info = getOne(new LambdaQueryWrapper() - .eq(SysRole::getRoleName, role.getRoleName()).last("limit 1")); + .eq(SysRole::getRoleName, role.getRoleName()).last("and rownum <= 1")); if (Validator.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) { return UserConstants.NOT_UNIQUE; } @@ -136,7 +136,7 @@ public class SysRoleServiceImpl extends ServiceImpl impl public String checkRoleKeyUnique(SysRole role) { Long roleId = Validator.isNull(role.getRoleId()) ? -1L : role.getRoleId(); SysRole info = getOne(new LambdaQueryWrapper() - .eq(SysRole::getRoleKey, role.getRoleKey()).last("limit 1")); + .eq(SysRole::getRoleKey, role.getRoleKey()).last("and rownum <= 1")); if (Validator.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) { return UserConstants.NOT_UNIQUE; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index dd12f10b2..615c4dfe0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -137,7 +137,7 @@ public class SysUserServiceImpl extends ServiceImpl impl */ @Override public String checkUserNameUnique(String userName) { - int count = count(new LambdaQueryWrapper().eq(SysUser::getUserName, userName).last("limit 1")); + int count = count(new LambdaQueryWrapper().eq(SysUser::getUserName, userName).last("and rownum <= 1")); if (count > 0) { return UserConstants.NOT_UNIQUE; } @@ -155,7 +155,7 @@ public class SysUserServiceImpl extends ServiceImpl impl Long userId = Validator.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = getOne(new LambdaQueryWrapper() .select(SysUser::getUserId, SysUser::getPhonenumber) - .eq(SysUser::getPhonenumber, user.getPhonenumber()).last("limit 1")); + .eq(SysUser::getPhonenumber, user.getPhonenumber()).last("and rownum <= 1")); if (Validator.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } @@ -173,7 +173,7 @@ public class SysUserServiceImpl extends ServiceImpl impl Long userId = Validator.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = getOne(new LambdaQueryWrapper() .select(SysUser::getUserId, SysUser::getEmail) - .eq(SysUser::getEmail, user.getEmail()).last("limit 1")); + .eq(SysUser::getEmail, user.getEmail()).last("and rownum <= 1")); if (Validator.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml index 2f565444b..4c5393c31 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -34,7 +34,7 @@ AND parent_id = #{parentId} - AND dept_name like concat('%', #{deptName}, '%') + AND dept_name like concat(concat('%', #{deptName}), '%') AND status = #{status} diff --git a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml index 05cf4171f..d2f9b6e1f 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -38,7 +38,7 @@ menu_type, visible, status, - ifnull(perms, '') as perms, + nvl(perms, '') as perms, icon, create_time from sys_menu @@ -53,7 +53,7 @@ m.component, m.visible, m.status, - ifnull(m.perms, '') as perms, + nvl(m.perms, '') as perms, m.is_frame, m.is_cache, m.menu_type, @@ -68,14 +68,14 @@ - \ No newline at end of file + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml index cace1f56e..e5f2a77c3 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml @@ -10,10 +10,17 @@ - insert into sys_role_dept(role_id, dept_id) values - - (#{item.roleId},#{item.deptId}) - + insert all + + into + sys_role_dept(role_id, dept_id) + values + ( + #{item.roleId}, + #{item.deptId} + ) + + SELECT 1 FROM DUAL diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml index 1a542f830..253dee559 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml @@ -43,19 +43,19 @@ where r.del_flag = '0' - AND r.role_name like concat('%', #{role.roleName}, '%') + AND r.role_name like concat(concat('%', #{role.roleName}), '%') AND r.status = #{role.status} - AND r.role_key like concat('%', #{role.roleKey}, '%') + AND r.role_key like concat(concat('%', #{role.roleKey}), '%') - and date_format(r.create_time,'%y%m%d') >= date_format(#{role.params.beginTime},'%y%m%d') + and r.create_time >= to_date(#{role.params.beginTime},'yyyy-MM-dd HH24:mi:ss') - and date_format(r.create_time,'%y%m%d') <= date_format(#{role.params.endTime},'%y%m%d') + and r.create_time <= to_date(#{role.params.endTime},'yyyy-MM-dd HH24:mi:ss') @@ -68,19 +68,19 @@ where r.del_flag = '0' - AND r.role_name like concat('%', #{roleName}, '%') + AND r.role_name like concat(concat('%', #{roleName}), '%') AND r.status = #{status} - AND r.role_key like concat('%', #{roleKey}, '%') + AND r.role_key like concat(concat('%', #{roleKey}), '%') - and date_format(r.create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') + and r.create_time >= to_date(#{params.beginTime},'yyyy-MM-dd HH24:mi:ss') - and date_format(r.create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') + and r.create_time <= to_date(#{params.endTime},'yyyy-MM-dd HH24:mi:ss') diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml index 356b61237..7cc645c3d 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml @@ -10,10 +10,17 @@ - insert into sys_role_menu(role_id, menu_id) values - - (#{item.roleId},#{item.menuId}) - + insert all + + into + sys_role_menu(role_id, menu_id) + values + ( + #{item.roleId}, + #{item.menuId} + ) + + SELECT 1 FROM DUAL diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index df59332b3..f5940a44d 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -87,23 +87,23 @@ left join sys_dept d on u.dept_id = d.dept_id where u.del_flag = '0' - AND u.user_name like concat('%', #{user.userName}, '%') + AND u.user_name like concat(concat('%', #{user.userName}), '%') AND u.status = #{user.status} - AND u.phonenumber like concat('%', #{user.phonenumber}, '%') + AND u.phonenumber like concat(concat('%',#{user.phonenumber}),'%') - AND date_format(u.create_time,'%y%m%d') >= date_format(#{user.params.beginTime},'%y%m%d') + AND u.create_time >= to_date(#{user.params.beginTime},'yyyy-MM-dd HH24:mi:ss') - AND date_format(u.create_time,'%y%m%d') <= date_format(#{user.params.endTime},'%y%m%d') + AND u.create_time <= to_date(#{user.params.endTime},'yyyy-MM-dd HH24:mi:ss') AND (u.dept_id = #{user.deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{user.deptId}, - ancestors) )) + ancestors) ]]> 0 )) @@ -118,23 +118,23 @@ left join sys_dept d on u.dept_id = d.dept_id where u.del_flag = '0' - AND u.user_name like concat('%', #{userName}, '%') + AND u.user_name like concat(concat('%', #{userName}), '%') AND u.status = #{status} - AND u.phonenumber like concat('%', #{phonenumber}, '%') + AND u.phonenumber like concat(concat('%',#{phonenumber}),'%') - AND date_format(u.create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') + AND u.create_time >= to_date(#{params.beginTime},'yyyy-MM-dd HH24:mi:ss') - AND date_format(u.create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') + AND u.create_time <= to_date(#{params.endTime},'yyyy-MM-dd HH24:mi:ss') AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, - ancestors) )) + ancestors) ]]> 0 )) diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml index 8d70825c1..8a48b1104 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml @@ -10,10 +10,17 @@ - insert into sys_user_post(user_id, post_id) values - - (#{item.userId},#{item.postId}) - + insert all + + into + sys_user_post(user_id, post_id) + values + ( + #{item.userId}, + #{item.postId} + ) + + SELECT 1 FROM DUAL diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml index 1db2f0fe3..dde016898 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml @@ -10,10 +10,17 @@ - insert into sys_user_role(user_id, role_id) values - - (#{item.userId},#{item.roleId}) - + insert all + + into + sys_user_role(user_id, role_id) + values + ( + #{item.userId}, + #{item.roleId} + ) + + SELECT 1 FROM DUAL