文章目录我是 ABin-阿斌:写一生代码,创一世佳话,筑一览芳华。 如果小伙伴们觉得我的文章不错,记得一键三连,感谢~
- 前言
- 分析
- 实践
- 代码展示:
- 其它时间的演示
- 在日常开发当中我们经常碰到这种根据前端传进来的时间,进行数据筛选的需求。下面就讲一下这种碰到这种需求应该如何分析,如果有小伙伴有更优雅的代码也还可以进行探讨和分享。
- 上面我换了一个简单的原型概念图,可以大概参考一下。一般我们看到这中需求时是很直观的,就是一个简单的查询。只要根据前端传进来的时间我们后台数据进行处理筛选即可,但是,具体的传参 type 我们后台可以自己进行定义。
- 下面的代码我们可以进行一个简单的封装,毕竟这种时间筛选在项目中或者单个模块中都是可以进行通用的,没必要每个方法都写一个,防止代码冗余。
- 这里我会演示两种时间:由于我这个项目使用的是:LocalDateTime 时间,DateUtil 也会演示
- 我们只要将我上图原型中的时间,进行 :1 2 3…type定义,然后前端传哪个我们就去做哪个数据的处理
/**
* 筛选时间处理
*
* @param timeType
* @return
*/
public LocalDateTime timeHandling(Integer timeType) {
LocalDateTime time = null;
switch (timeType) {
case 1:
//一分钟
time = LocalDateTime.now().minusMinutes(1);
break;
case 2:
//一个小时
time = LocalDateTime.now().minusHours(1);
break;
case 3:
//一天
time = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
break;
case 4:
//一周
time = LocalDateTime.now().minusWeeks(1);
break;
case 5:
//一个月
time = LocalDateTime.now().minusMonths(1);
break;
case 6:
//三个月
time = LocalDateTime.now().minusMonths(3);
break;
default:
}
return time;
}
- 将上面封装的方法进行实际运用,先进行时间处理,然后再讲处理好的时间带入到具体的查询中,由于我这里使用的 Mybatis-Plus,没用过的同学可以去官网了解一下:https://baomidou.com
- 上图中的那个:开始时间——结束时间的查询也是很简单,我们只需要在入参中加入【开始时间和结束时间的参数即可】
- 这里我只展示封装的方法,具体嵌入到业务中的方式跟上面是一样的
- Hutool官网:https://hutool.cn/,如果你们公司没有强制限制其实这个工具是非常不错的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)