欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

搜索功能的实现

程序员文章站 2022-05-07 15:20:45
...

Controller层

/**
     * Lcsx列表界面
     *
     * @return
     */
    @RequestMapping(value = "/lcsxListUI")
    @HtmlTitle(title = "临床舌象")
    public String lcsxListUI(Model model, @ModelAttribute("search") LcsxSearch search, @PageableDefault(size = 10)Pageable pageable){
        Page<Lcsx> lcsxes = lcsxService.findLcsxPage(search,pageable);
        model.addAttribute("page",lcsxes);
        return "sysAdmin/lcsx/lcsxListUI";
    }

Service

/**
     * Lcsx列表界面
     *
     * @param search
     * @param pageable
     * @return
     */
    public Page<Yggl> findYgglPage(YgglSearch search, Pageable pageable) {
        Page<Yggl> ygglPage = ygglRepository.findAll((root, query, cb) -> {
            List<Predicate> predicateList = new ArrayList<>();
            if (StringUtils.isNotBlank(search.getTsch())) {
                predicateList.add(cb.like(root.get("tsch"), "%" + search.getTsch() + "%"));
            }
            if (search.getKsrq()!= null) {
                predicateList.add(cb.greaterThanOrEqualTo(root.get("ksrq"), DateUtils
                        .parseDate(DateUtils.formatDate(search.getKsrq(), "yyyy-MM-dd") + " 00:00:00")));
            }
            if (search.getJsrq() != null) {
                predicateList.add(cb.lessThanOrEqualTo(root.get("jsrq"), DateUtils
                        .parseDate(DateUtils.formatDate(search.getJsrq(), "yyyy-MM-dd") + " 23:59:59")));
            }
            query.where(predicateList.toArray(new Predicate[]{}));
            return null;
        }, pageable);
        return ygglPage;
    }

针对封装(vo层)

package org.lf.admin.api.baseapi.vo;

import lombok.Data;

import java.sql.Date;

@Data
public class YgglSearch {

    private String tsch;

    private Date ksrq;

    private Date jsrq;

}

主界面(html)

<div class="list-search">
            <form th:action="@{/yggl/ygglListUI}"
                  class="form-inline input-line" th:method="post" id="search-form" name="searchForm">
                <div class="form-group form-group-sm">
                    <label>特殊称号:</label>
                    <input type="text" name="tsch" class="form-control width-200" th:value="${search}?${search.tsch}">
                </div>
                <div class="form-group">
                    <label>时间范围</label>
                    <div class="input-group">
                        <input type="text" class="form-control datepicker-autoclose width-100"
                               placeholder="yyyy-mm-dd" th:name="ksrq"
                               th:value="${#calendars.format(search.ksrq,'yyyy-MM-dd')}">
                        <div class="picker-pos"></div>
                        <span class="input-group-addon b-0">-</span>
                        <input type="text" class="form-control datepicker-autoclose width-100"
                               placeholder="yyyy-mm-dd" th:name="jsrq"
                               th:value="${#calendars.format(search.jsrq,'yyyy-MM-dd')}">
                    </div>
                </div>

                <div class="form-group form-group-sm">
                    <a href="javascript:void(0)" onclick="searchForm.submit();" class="btn btn-primary btn-sm">查询</a>
                </div>
                </form>
        </div>