MyBatis按今天、本周、本月过滤查询(涉及日期格式转换、多条件查询、分页)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_24192465/article/details/82701512

要点探讨

String转date

 <if test="date  eq  'Mon' ">  
            AND DATE_FORMAT( STR_TO_DATE(time,"%Y年%m月%d日 %H时%i分%s秒"), '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )  
        </if> 

 源码

	<div class="three">
		<div class="tag" style="background:#66B3FF;">
			<ul>
				<li class="active" d1="Day">今天</li>
				<li d1="Week">本周</li>
				<li d1="Mon">本月</li>
			</ul>
		</div>
		<select class="choose1">
			<option>---请选择学校---</option>
		</select> <span class="query1">查询</span> <span class="in1"></span>
		<div class="tb1">
			<table>
				<thead>
					<tr class="table_head1">
						<th>学校名称</th>
						<th>学生姓名</th>
						<th>接收人电话</th>
						<th>打卡时间</th>
						<th>打卡状态</th>
					</tr>
				</thead>
				<tbody class="table_body1"></tbody>
			</table>
		</div>
		<div class="bo1">
			<span class="up1">上一页</span> <input class="num1" type="text" value="1" />
			<span class="down1">下一页</span> <span class="findPage1"></span>
		</div>
		<div class="search1">
			<input class="recvName1" type="text" placeholder="请输入学生姓名"> <input
				class="mobile1" type="text" placeholder="请输入接收人电话"> <span
				class="btn_search1">搜索</span>
		</div>
		<a href="#" class="top">TOP&uarr;</a>

	</div>
//第三个页面	        
	        //时间
			var e ;
			//学校名称
			var schName ;
			//页数
			var page;
	        
			var state = 0;
			
			
			//查询数据		
			//单击上一页按钮事件
			$(".up1").click(function(){
				heads = new Array();
				page = $(".num1").val();
				schName = $(".choose1").val();
				var state = 1;
				if(parseInt(page)>1){
					$(".num1").val(parseInt(page)-1);
					page = $(".num1").val();
					if(schName != "---请选择学校---"){
			            for(var i=0;i<3;i++){
			            	if(($(".three ul li").eq(i)).hasClass('active')){
			            		e = ($(".three ul li").eq(i)).attr("d1");
			        			$(".findPage1").css('display','inline-block');
			        			$(".findPage1").html('').html('翻页中 ......');						
								//查询数据
								getTableData1(e,schName,page,state);
			            	}
			            	
			            }
		            }				
				}

				
			});

			//单击下一页按钮事件
			$(".down1").click(function(){
				heads = new Array();
				page = $(".num1").val();
				schName = $(".choose1").val();
				var state = 2;
				if(schName != "---请选择学校---"){
					$(".num1").val(parseInt(page)+1);
				}
				page = $(".num1").val();
				if(schName != "---请选择学校---"){
		            for(var i=0;i<3;i++){
		            	if(($(".three ul li").eq(i)).hasClass('active')){
		            		e = ($(".three ul li").eq(i)).attr("d1");
		        			$(".findPage1").css('display','inline-block');
		        			$(".findPage1").html('').html('翻页中 ......');						
							//查询数据
							getTableData3(e,schName,page,state);
		            	}
		            	
		            }
	            }
				
			});
			
			
			
			//获得卡片数据并添加模板方法的调用
			getSchName();	
			
			//获得卡片数据并添加模板
			function getSchName(){
				//获得卡片数据
				CUBE.getDataByAjax(
					'../sys/getSchName.do',
					'JSON',
					console.log(JSON),
					function(res){
						if(res.length==0 || res==null){
							$('.stat_messages').html('').append('<img src="../assets/img/empty.jpg" style="width: 250px;margin-right: 20px;" /><span style="color:#999;font-size: 32px;">啊偶~ 没人用呢!.</span>');
						}else{
							//获得学校名单 
							for(var i=0;i<res.length;i++){
								$(".choose1").append("<option>"+res[i]+"</option>");
							}
						}
					}
				);
			}	
			
	        
	      //平安到校信息统计  单击今天/本周/本月 查询数据
			$('.three ul li').click(function(e) {
				heads = new Array();
				$(".num1").val('1');
				schName = $(".choose1").val();
				if(schName != "---请选择学校---"){
		            page = $(".num1").val();
		            $('.three ul li').removeClass('active');
		            $(this).addClass('active');
		            //查询数据
		            getTableData1($(this).attr("d1"),schName,1,state);
				} else{
					alert("请先选择学校");
				}        
			});
	      
			//点击查询按钮 查询数据
			$(".query1").click(function(){
		        $(".recvName").val('');
		        $(".recvName").removeClass("red");
		        $(".recvName").removeClass("green");
		        $(".mobile").val('');	
		        $(".mobile").removeClass("red");
		        $(".mobile").removeClass(".green");

				heads = new Array();
				$(".num1").val('1');
				schName = $(".choose1").val();
	            if(schName != "---请选择学校---"){
	            	for(var i=0;i<3;i++){
		            	if(($(".three ul li").eq(i)).hasClass('active')){
		            		e = ($(".three ul li").eq(i)).attr("d1");
		            		//查询数据

		            		getTableData1(e,schName,1,state);
		            	}
		            }
	            }else{
					alert("请先选择学校");
	            }

			});
			
	        //查询数据的方法 传入时间/学校/页数   默认每页50条数据
	        function getTableData1(e,schName,page,state){
	        	$(".in1").css('display','inline-block');
	        	$(".in1").html('').html('查询中,请稍后 ......');
	        	recvName1 = $(".recvName1").val().trim();
				mobile1 = $(".mobile1").val().trim();
				if(recvName1=='' && mobile1==''){
					url = '../sys/list.do?schName='+encodeURI(encodeURI(schName))+'&date='+e+'&page='+page+'&pageSize='+20;
				}else if(recvName1==''){
					url = '../sys/list.do?schName='+encodeURI(encodeURI(schName))+'&date='+e+'&mobile='+mobile1+'&page='+page+'&pageSize='+20;
				}else if(mobile1==''){
					url = '../sys/list.do?schName='+encodeURI(encodeURI(schName))+'&date='+e+'&recvName='+encodeURI(encodeURI(recvName1))+'&page='+page+'&pageSize='+20;
				}else{
					url = '../sys/list.do?schName='+encodeURI(encodeURI(schName))+'&date='+e+'&recvName='+encodeURI(encodeURI(recvName1))+'&mobile='+mobile1+'&page='+page+'&pageSize='+20;
				}
	        	CUBE.getDataByAjax(
	        		url,
	        		'JSON',
	        		function(res){
	        			search1(e,schName,page);
	        			if(res.length==0 || res==null){
	        				$('.tb1').css('display','block');
							$('.tb1').html('').append('<img src="../assets/img/empty.jpg" style="width: 250px;margin-right: 20px;" /><span style="color:#999;font-size: 32px;">啊偶~ 没人用呢!.</span>');
							$(".bo1").css('display','none');
        				}else{
	        				$('.tb1').css('display','block');
	        				$('.tb1').html('').append('<table>'+
														'<thead>'+
															'<tr class="table_head1">'+
																'<th>学校名称</th>'+
																'<th>学生姓名</th>'+
																'<th>接收人电话</th>'+
																'<th>打卡时间</th>'+
																'<th>打卡状态</th>'+	
															'</tr>'+
														'</thead>'+
														'<tbody class="table_body1"></tbody>'+
													'</table>');
							//画表体
	        				drawTableBody1(res);
	        				
		        			$(".bo1").css('display','block');
		        			search1(e,schName,page);
	        			}
	        				$(".in1").html('').html('查询完毕!');
	        				setTimeout(function(){
	        					$(".in1").css('display','none');
	        				},1000);
							if(state == 2){
	        					$(".findPage1").html('').html('没有更多了!');
							}else if (state == 1){
								$(".findPage1").html('').html('查询完毕!');
							}
	        				setTimeout(function(){
	        					$(".findPage1").css('display','none');
	        				},1000);	        			
	        		},
	        		function(){
						error();	        				
        			}
	        	);
	        }
	        
	        //画表体的方法
	        function drawTableBody1(res){
	        	CUBE.renderList(
					res,
					$(".table_body1"),
					$("#table_body1"),
					$(".table_body1"),
					true,
					function(){}
				);
	        }

	        
	        
	        //点击下一页 查询数据的方法 传入时间/学校/页数   默认每页50条数据
	        function getTableData3(e,schName,page,state){
	        	$(".in1").css('display','inline-block');
	        	$(".in1").html('').html('查询中,请稍后 ......');
	        	recvName1 = $(".recvName1").val().trim();
				mobile1 = $(".mobile1").val().trim();
				if(recvName1=='' && mobile1==''){
					url = '../sys/list.do?schName='+encodeURI(encodeURI(schName))+'&date='+e+'&page='+page+'&pageSize='+20;
				}else if(recvName1==''){
					url = '../sys/list.do?schName='+encodeURI(encodeURI(schName))+'&date='+e+'&mobile='+mobile1+'&page='+page+'&pageSize='+20;
				}else if(mobile1==''){
					url = '../sys/list.do?schName='+encodeURI(encodeURI(schName))+'&date='+e+'&recvName='+encodeURI(encodeURI(recvName1))+'&page='+page+'&pageSize='+20;
				}else{
					url = '../sys/list.do?schName='+encodeURI(encodeURI(schName))+'&date='+e+'&recvName='+encodeURI(encodeURI(recvName1))+'&mobile='+mobile1+'&page='+page+'&pageSize='+20;
				}			
	        	CUBE.getDataByAjax(
	        		url,
	        		// '../sys/all/Mon/112899/2/3',
	        		'JSON',
	        		function(res){
	        			search1(e,schName,page);
	        			if(res.length==0 || res==null){
	        				if(page>1){
	        					getTableData1(e,schName,page-1,state);
	        					$(".num1").val(page-1);
	        				}
							$('.tb1').css('display','block');
							$('.tb1').html('').append('<img src="../assets/img/empty.jpg" style="width: 250px;margin-right: 20px;" /><span style="color:#999;font-size: 32px;">啊偶~ 没人用呢!.</span>');
							$(".bo1").css('display','none');
        				}else{
	        				$('.tb1').css('display','block');
	        				$('.tb1').html('').append('<table>'+
														'<thead>'+
															'<tr class="table_head1">'+
															'<th>学校名称</th>'+
															'<th>学生姓名</th>'+
															'<th>接收人电话</th>'+
															'<th>打卡时间</th>'+
															'<th>打卡状态</th>'+	
															'</tr>'+
														'</thead>'+
														'<tbody class="table_body1"></tbody>'+
													'</table>');
							//画表体
	        				drawTableBody1(res);	
	        				$(".bo1").css('display','block');
	        				
	        			}
	        				$(".in1").html('').html('查询完毕!');
	        				setTimeout(function(){
	        					$(".in1").css('display','none');
	        				},1000);

	        				$(".findPage1").html('').html('查询完毕!');
	        				setTimeout(function(){
	        					$(".findPage1").css('display','none');
	        				},1000);	        			
	        		},
	        		function(){
						error();	        				
        			}
	        	);
	        }
	        
	        $(".btn_search1").click(function(){
	        	schName = $(".choose1").val();
	        	if(schName == "---请选择学校---"){
					alert("请先选择学校");
				}else{
					 getTableData1($('.three ul li').attr("d1"),schName,1,state);
				}
	        });
	        
	        
	        
	        //获取ajax请求地址
	        var url;
			var recvName1;
			var mobile1;
	        //搜索按钮点击的方法
	        function search1(e,schName,page){
			        $(".btn_search1").unbind("click");
					$(".btn_search1").click(function(){
						$(".num1").val('1');
				       	recvName1 = $(".recvName1").val().trim();
					    mobile1 = $(".mobile1").val().trim();
						if(recvName1!='' || mobile1!=''){
							if($(".recvName1").hasClass('red') || $(".mobile1").hasClass('red')){
								alert("格式错误!请重新输入");
							}else{
								getTableData1(e,schName,1,state);

					        	CUBE.getDataByAjax(
					        		url,
					        		// '../sys/all/Mon/112899/2/3',
					        		'JSON',
					        		function(res){
					        			search1(e,schName,page);
					        			if(res.length==0 || res==null){
					        				if(page>1){
					        					getTableData1(e,schName,page-1,state);
					        					$(".num1").val(page-1);
					        				}
											$('.tb1').css('display','block');
											$('.tb1').html('').append('<img src="../assets/img/empty.jpg" style="width: 250px;margin-right: 20px;" /><span style="color:#999;font-size: 32px;">啊偶~ 没人用呢!.</span>');
											$(".bo1").css('display','none');
				        				}else{
					        				$('.tb1').css('display','block');
					        				$('.tb1').html('').append('<table>'+
																		'<thead>'+
																			'<tr class="table_head1">'+
																			'<th>学校名称</th>'+
																			'<th>学生姓名</th>'+
																			'<th>接收人电话</th>'+
																			'<th>打卡时间</th>'+
																			'<th>打卡状态</th>'+	
																			'</tr>'+
																		'</thead>'+
																		'<tbody class="table_body1"></tbody>'+
																	'</table>');
											//画表体
					        				drawTableBody1(res);
					        				
						        				
					        				$(".bo1").css('display','block');
					        				
					        			}
					        				$(".in1").html('').html('查询完毕!');
					        				setTimeout(function(){
					        					$(".in1").css('display','none');
					        				},1000);
				
					        				$(".findPage1").html('').html('完毕!');
					        				setTimeout(function(){
					        					$(".findPage1").css('display','none');
					        				},1000);	        			
					        		},
					        		function(){
										error();	        				
				        			}
					        	);

							}
						}	
				    });	        			
	        }
	        

	//筛选接收人姓名/电话
			//接收人姓名
			var recvName1;
			var regName1 = /^[\u4e00-\u9fa5]+$/;
			//接收人电话
			var mobile1;
			var regMob1 = /^\d{11}$/;


			//正则判断格式
			$(".recvName1").change(function(){
				recvName1 = $(".recvName1").val().trim();
				if(regName1.test(recvName1)){
					$(".recvName1").removeClass('red');
					$(".recvName1").removeClass('green');
					$(".recvName1").addClass('green');
				}else if(recvName1 == undefined || recvName1 == null || recvName1 == ''){
					$(".recvName1").removeClass('red');
					$(".recvName1").removeClass('green');
				}else{
					$(".recvName1").removeClass('red');
					$(".recvName1").removeClass('green');
					$(".recvName1").addClass('red');
				}

			});		

			$(".mobile1").change(function(){
				mobile1 = $(".mobile1").val().trim();
				if(regMob1.test(mobile1)){
					$(".mobile1").removeClass('red');
					$(".mobile1").removeClass('green');
					$(".mobile1").addClass('green');
				}else if(mobile1 == undefined || mobile1 == null || mobile1 == ''){
					$(".mobile1").removeClass('red');
					$(".mobile1").removeClass('green');
				}else{
					$(".mobile1").removeClass('red');
					$(".mobile1").removeClass('green');
					$(".mobile1").addClass('red');
				}

			});

		});
package cn.cube.entity;

public class PadxMessage {
	
	private Long id;
	private String schName;
	private String recv;
	private String stuName;
	private String time;
	private String stuIO;
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getSchName() {
		return schName;
	}
	public void setSchName(String schName) {
		this.schName = schName;
	}
	public String getRecv() {
		return recv;
	}
	public void setRecv(String recv) {
		this.recv = recv;
	}
	public String getStuName() {
		return stuName;
	}
	public void setStuName(String stuName) {
		this.stuName = stuName;
	}
	public String getTime() {
		return time;
	}
	public void setTime(String time) {
		this.time = time;
	}
	public String getStuIO() {
		return stuIO;
	}
	public void setStuIO(String stuIO) {
		this.stuIO = stuIO;
	}
	@Override
	public String toString() {
		return "PadxMessage [id=" + id + ", schName=" + schName + ", recv="
				+ recv + ", stuName=" + stuName + ", time=" + time + ", stuIO="
				+ stuIO + "]";
	}
	public PadxMessage(Long id, String schName, String recv, String stuName,
			String time, String stuIO) {
		super();
		this.id = id;
		this.schName = schName;
		this.recv = recv;
		this.stuName = stuName;
		this.time = time;
		this.stuIO = stuIO;
	}
	
}
package cn.cube.service;

import com.alibaba.fastjson.JSONArray;

public interface PadxMessageService {

	public JSONArray getSchName();
	
	public JSONArray list(String schName, String date, String recvName, String mobile, Integer start, Integer pageSize);
	
}
package cn.cube.service.impl;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.alibaba.fastjson.JSONArray;

import cn.cube.mapper.PadxMessageDao;
import cn.cube.service.PadxMessageService;

@Service
public class PadxMessageServiceImpl implements PadxMessageService{
	
	PadxMessageDao padxMessageDao;
	
	public PadxMessageDao getPadxMessageDao() {
		return padxMessageDao;
	}

	@Resource
	public void setPadxMessageDao(PadxMessageDao padxMessageDao) {
		this.padxMessageDao = padxMessageDao;
	}


	@Override
	public JSONArray getSchName() {
		return padxMessageDao.getSchName();
	}

	@Override
	public JSONArray list(String schName, String date, String recvName, String mobile, Integer start, Integer pageSize) {
		return padxMessageDao.list(schName, date, recvName, mobile, start, pageSize);
	}

}
package cn.cube.mapper;

import org.apache.ibatis.annotations.Param;

import com.alibaba.fastjson.JSONArray;

import cn.cube.util.Mybatis;

@Mybatis
public interface PadxMessageDao {
	
	public JSONArray getSchName();
	
	public JSONArray list(@Param("schName")String schName, @Param("date")String date, @Param("stuName")String stuName, @Param("recv")String recv,
			@Param("start")Integer start, @Param("pageSize")Integer pageSize);

}

 核心

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"      
 "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
 <!-- namespace指定UserMapper接口 -->
<mapper namespace="cn.cube.mapper.PadxMessageDao">
 	<select id="getSchName" resultType="String">
 		select t.schName from padx_message as t group by t.schName
 	</select>
 	
 	<select id="list" resultType="cn.cube.entity.PadxMessage">
 		select * from padx_message where 
 		<if test="schName !=null ">  
            schName=#{schName}  
        </if>
        
        <if test="stuName !=null ">  
            AND stuName=#{stuName}  
        </if>
        
        <if test="recv !=null ">  
            AND recv=#{recv}  
        </if>
        
        <if test="date  eq  'Day' ">  
            AND to_days(STR_TO_DATE(time,"%Y年%m月%d日 %H时%i分%s秒")) = to_days(now())  
        </if> 
        
        <if test="date  eq  'Week' ">  
            AND YEARWEEK(STR_TO_DATE(time,"%Y年%m月%d日 %H时%i分%s秒")) = YEARWEEK(now())  
        </if> 
        
        <if test="date  eq  'Mon' ">  
            AND DATE_FORMAT( STR_TO_DATE(time,"%Y年%m月%d日 %H时%i分%s秒"), '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )  
        </if> 
        
        <if test="start!=null and pageSize!=null">
			limit #{start},#{pageSize}
		</if>
          
 	</select>
 	
</mapper>
package cn.cube.ctrl;

import java.io.UnsupportedEncodingException;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import cn.cube.service.PadxMessageService;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.cicada.cube.ctrl.CubeRestBase;

@Controller
@RequestMapping("/sys")
public class PadxMessageController extends CubeRestBase {

	PadxMessageService padxMessageService;

	public PadxMessageService getPadxMessageService() {
		return padxMessageService;
	}

	@Resource
	public void setPadxMessageService(PadxMessageService padxMessageService) {
		this.padxMessageService = padxMessageService;
	}

	@RequestMapping(value = "/getSchName.do", method = RequestMethod.GET)
	public @ResponseBody JSONArray getSchName() {
		JSONArray ja = padxMessageService.getSchName();
		if (ja != null && !ja.isEmpty()) {
			return ja;
		} else {
			return null;
		}
	}
	
	
	@RequestMapping(value = "/list.do", method = RequestMethod.GET)
	public @ResponseBody JSONObject list(HttpServletRequest  request, HttpServletResponse response ) {
		String schName = null;
		String recvName = null;
		try {
			schName = java.net.URLDecoder.decode(request.getParameter("schName"),"UTF-8");
			if(request.getParameter("recvName") != null){
				recvName =  java.net.URLDecoder.decode(request.getParameter("recvName"),"UTF-8");
			}	
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		Integer page =  Integer.valueOf(request.getParameter("page"));
		Integer pageSize = Integer.valueOf(request.getParameter("pageSize"));
		Integer start = (page-1)*pageSize;
		String date = request.getParameter("date");
		String mobile =  request.getParameter("mobile");
		JSONArray ja = padxMessageService.list(schName,date, recvName, mobile, start, pageSize);
		JSONObject jo = new JSONObject();
		jo.put("data", ja);
		jo.put("success", true);
		if (jo != null && !jo.isEmpty()) {
			return jo;
		} else {
			return null;
		}
	}
	

}

猜你喜欢

转载自blog.csdn.net/qq_24192465/article/details/82701512