Java需求分析:根据时间筛选列表

Posted ABin-阿斌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java需求分析:根据时间筛选列表相关的知识,希望对你有一定的参考价值。

我是 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/,如果你们公司没有强制限制其实这个工具是非常不错的

以上是关于Java需求分析:根据时间筛选列表的主要内容,如果未能解决你的问题,请参考以下文章

Java需求场景:根据前端页面点击不同字段进行相应排序

python三大类型数据筛选

Java:通用的排序工具类,能够对自定义对象,针对不同的属性(字段),实现排序(正序倒序)

Java基础:枚举类的具体使用

Java基础:多线程的具体介绍与使用

在列表,字典,集合中根据条件筛选数据