refactor: 重构时间范围查询写法

This commit is contained in:
ray
2024-08-03 11:11:47 +08:00
parent 6b7bd38b82
commit 39830df8eb
3 changed files with 13 additions and 19 deletions

View File

@@ -3,7 +3,8 @@ package com.youlai.system.model.query;
import com.youlai.system.common.base.BasePageQuery;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.List;
/**
* 用户分页查询对象
@@ -24,11 +25,7 @@ public class UserPageQuery extends BasePageQuery {
@Schema(description="部门ID")
private Long deptId;
@Schema(description="创建时间-开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private String startTime;
@Schema(description="创建时间范围")
private List<String> createTimeRange;
@Schema(description="创建时间-结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private String endTime;
}

View File

@@ -9,7 +9,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.youlai.system.common.constant.SystemConstants;
import com.youlai.system.util.DateUtils;
import com.youlai.system.converter.UserConverter;
import com.youlai.system.security.util.SecurityUtils;
import com.youlai.system.mapper.SysUserMapper;
@@ -68,10 +67,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
int pageNum = queryParams.getPageNum();
int pageSize = queryParams.getPageSize();
Page<UserBO> page = new Page<>(pageNum, pageSize);
// 格式化为数据库日期格式,避免日期比较使用格式化函数导致索引失效
DateUtils.toDatabaseFormat(queryParams, "startTime", "endTime");
// 查询数据
Page<UserBO> userPage = this.baseMapper.listPagedUsers(page, queryParams);

View File

@@ -37,15 +37,17 @@
<if test='queryParams.deptId!=null'>
AND concat(',',concat(d.tree_path,',',d.id),',') like concat('%,',#{queryParams.deptId},',%')
</if>
<if test="queryParams.startTime != null">
AND u.create_time &gt;= #{queryParams.startTime}
<if test='queryParams.createTimeRange != null'>
<if test="queryParams.createTimeRange[0] != null and queryParams.createTimeRange[0].trim() neq ''">
AND u.create_time >=CONCAT(#{queryParams.createTimeRange[0]}, ' 00:00:00')
</if>
<if test="queryParams.createTimeRange[1] != null and queryParams.createTimeRange[0].trim() neq ''">
AND u.create_time &lt;= CONCAT(#{queryParams.createTimeRange[1]}, ' 23:59:59')
</if>
</if>
<if test="queryParams.endTime != null">
AND u.create_time &lt;= #{queryParams.endTime}
</if>
</where>
GROUP BY u.id
GROUP BY
u.id
</select>
<!-- 用户表单信息映射 -->