h5上下拉分页,基于iscroll.js+doT.js+ajax

1.html页面引入两个js,doT.js,iscroll.js

静态页面:

<#assign  title="订单" />
<#include '/common/header.html' />
<#assign memberLoginCheckTag = newTag("memberLoginCheckTag") />
<#assign memberInfo = memberLoginCheckTag() />
<#if member?? >
<#assign storeorderList=newTag("storeOrderListTag")/>
<#assign orderList=storeorderList()/>
<#assign orderstatus = "com.enation.app.shop.front.tag.order.OrderStatusDirectiveModel"?new() />
<#assign orderStautsTag = newTag("orderStautsTag") />
<#assign orderState = orderStautsTag() />
<#assign dateformat = "com.enation.framework.directive.DateformateDirective"?new()>
<#assign storeLogiCompanyListTag=newTag("storeLogiCompanyListTag")>
<#assign storeLogiCompanyList=storeLogiCompanyListTag()>   
   	<script type="text/javascript" src="${ctx}${themes_path}/js2.0/store-order-list.js"></script>
    <link rel="stylesheet" href="${ctx}${themes_path}/css2.0/global.css">
    <link rel="stylesheet" href="${ctx}${themes_path}/css2.0/login.css">
    <link rel="stylesheet" href="${ctx}${themes_path}/css2.0/member.css">
   	<script type="text/javascript" src="${ctx}${themes_path}/js2.0/iscroll.js"></script>
	<script type="text/javascript" src="${ctx}${themes_path}/js2.0/doT.js"></script>
	<script type="text/javascript" src="${ctx}${themes_path}/js2.0/TouchSlide.1.1.js"></script>
    <script type="text/javascript" src="${ctx}${themes_path}/js2.0/jquery.min-2.1.4.js"></script>
    <script type="text/javascript">
     var deviceWidth = document.documentElement.clientWidth;
     if(deviceWidth > 750) deviceWidth = 750;
      document.documentElement.style.fontSize = deviceWidth / 7.5 + 'px';
    </script>
    <body style="background:#f1f1f1">
    
<input type="hidden" id="totalPageCount" value="${orderList.storeOrder.totalPageCount!''}">
<div id="wrapper">
    <div id="scroller">
   	 	<!--上面是分页要的div 包括一个input -->
	    <!--pro_header start-->
	    <div class="lo_header f32">
	       <a href="javascript:window.history.back();" class="back"></a>
	       我的仓库-我的订单
	       <a href="${ctx}/store/store-order-list-search.html" id="searchsId" class="searchs"><span  hidden="hidden">搜索</span></a>
	    </div>
	    <!--end pro_header-->
	   <div class="my_order">
	         <ul class="hd">
				<li <#if order_state?? && order_state=="all"> class="selected" order_state="${order_state}"</#if> ><a href="${ctx}/store/store-order-list.html?order_state=all">全部</a></li>
	            <li <#if order_state?? && order_state=="1"> class="selected" order_state="${order_state}"</#if> ><a href="${ctx}/store/store-order-list.html?order_state=1">待接单</a></li>
	            <li <#if order_state?? && order_state=="2"> class="selected" order_state="${order_state}"</#if> ><a href="${ctx}/store/store-order-list.html?order_state=2">待出库</a></li>
	            <li <#if order_state?? && order_state=="3"> class="selected" order_state="${order_state}"</#if> ><a href="${ctx}/store/store-order-list.html?order_state=3">已发货</a></li>
	            <li <#if order_state?? && order_state=="5"> class="selected" order_state="${order_state}"</#if> ><a href="${ctx}/store/store-order-list.html?order_state=5">已完成</a></li>
	            <li <#if order_state?? && order_state=="rog"> class="selected" order_state="${order_state}"</#if> ><a href="${ctx}/store/store-order-list.html?order_state=rog">退换货</a></li>
	         </ul>
	         
	         <div id="pullDown">
             	<span class="pullDownIcon"></span><span class="pullDownLabel"></span>
             </div>
             <!--上面是分页要的拉伸样式等  -->
	         <ul class="bd">
	       	 <#if orderList.totalCount gt 0 >
	            <#list orderList.storeOrder.result as order>
	            <#--创建“订单货物列表”标签-->
	            <#assign orderItemListTag = newTag("orderItemListTag")>
	            <#--调用“订单货物列表”标签,并传递参数-->
	            <#assign orderItemList = orderItemListTag("{'orderid':${order.order_id}}")>
	              <li>
	                <h3><span class="fl f25">订单编号 :${order.sn!''}</span><span class="fr f26"> 
	                  	<#-- 判断是否申请取消订单 -->
						<#if order.is_cancel==1>
							申请取消订单
						<#else>
							<@orderstatus status="${order.status}" type="order" />
						</#if>
	                 	<#if order.is_flow_order=='1'>
	                		<span>(流转订单)</span>
	                 	</#if>
	                </span></h3>
	            	<#list orderItemList as item>
		                 <div class="con">
		                    <a href="href="javascript:;" class="tap" data-href="${ctx}/goods-${item.goods_id}.html">
		                       <#if item.image?exists && item.image != ''>
			                   	 <@image src="${item.image}" />
			                   <#else>
			                  	 <@image src="images/noimg.jpg"  />
			                  </#if>
		                       <div class="con_ri">
		                            <span class="f26"><@substring title="${item.name}" length="48" dot="..." /></span>
		                            <i class="i1 f26">${item.goods_model_id!''}</i>
		                            <i class="i2 f26">${item.sn!''}  ¥${item.orginal_price?number?string('0.00')}  X${item.num}</i>
		                       </div>
		                    </a>
		                 </div>
		                 <#if order.status == orderState.ORDER_CONFIRM && item.state == 0>
		                 <div class="p3">
		               		<!--接单/退回  -->
	                          	<!-- <a class="order-btn3 a2 f24" href="javascript:void(0);" name="recive" order_sn="${order.sn!''}" item_id="${item.item_id}">接单</a> -->
	                          	<a class="order-btn3 a1 f24" href="javascript:void(0);" name="refuse" order_sn="${order.sn!''}" item_id="${item.item_id}">退回</a>
	            		 </div>
	           		     </#if>
	            	</#list>
	            		<div class="p2">
		                   <div class="fr">
		                   		<span class="f22">含运费:<i class="f26">${order.shipping_amount?string.currency}<i class="f20"></i></i></span>
		                   </div>
		                 </div>
	            		 <div class="p2">
	            		   	   <span class="fl f26"><@dateformat time="${order.create_time?c}" pattern="yyyy-MM-dd HH:mm"/></span>
		                   <div class="fr">
		                       <span class="f22"><i class="f26">${order.need_pay_money?string.currency}</i><i class="f20"></i></span>
		                       <span class="f22">共 <i class="f22">${orderItemList?size}</i> 件商品</span>
		                   </div>
		                 </div>
		                 <div class="p3">
		               		<!--可查看物流的装态  -->
		            		<#if order.status == 3 || order.status == 4 || order.status == 5 || order.status == 7 >
		                           <!-- <td class="order-other-title">5、物流信息:</td> -->
		                           <td><a href="order-exp-info.html?ordersn=${order.sn}" class="a2 f24" order_sn=${order.sn} >查看物流</a></td>
	                    	</#if>
	             	
		                    <#if order.status == orderState.ORDER_CONFIRM>
		                        <a class="order-btn3 a2 f24" href="javascript:void(0);" name="recive" order_sn="${order.sn!''}">全部接单</a>
		                     	<a class="order-btn3 a1 f24" href="javascript:void(0);" name="refuse" order_sn="${order.sn!''}">全部退回</a>
		                    </#if>
		                    <!--通知物流 -->
		                   	<#if order.pay_status==orderState.PAY_YES && order.ship_status==orderState.SHIP_NO>
		                       	<#if order.status == orderState.ORDER_PAY>
		                        	<!-- <a href="javascript: void(0);" class="btn btn-default ship-btn a2 f24" order_id="${order.order_id!''}" style="font-size: 12px;">发货</a> -->
		                   				<#list storeLogiCompanyList as logiCompany>
											<#if logiCompany.logi_id?? && (logiCompany.logi_id!=0)>
						      					<#if order.ship_no??>
							      					<a href="javascript: void(0);" class="btn btn-default a2 f24" id="ship-btn" order_id="${order.order_id!''}" style="font-size: 12px;">发货</a>
							      				<#else>
							      					<a href="javascript: void(0);" class="btn btn-default a2 f24" id="notice-btn" order_sn="${order.sn!''}" code="${logiCompany.code}" logi_name="${logiCompany.name}" logi_id="${logiCompany.id}" style="font-size: 12px;">通知物流</a>
							      				</#if>
								     		</#if>
								    </#list>
		                        </#if>
		                    </#if>
	                 	</div>
	              	</li>
	            </#list>
	         <!-- 如果没有数据就不显示 -->
	         <#else>
	                <div style="width:100%;overflow:hidden;text-align: center;padding:20px 0;">
	                    暂无订单
	                </div>
	        </#if>
	        </ul>
	    </div>
	    
	    <div id="pullUp">
       		<span class="pullUpIcon"></span><span class="pullUpLabel"><#if orderList.storeOrder.result?size == 10></#if></span>
  		</div>
	    <!--上面是分页要的  -->
	</div>
</div>   

 
</#if>
<!-- 下面的script 中是通过ajax获得的数据 用 doT.js插件把获得数据按照上面的要输出的页面一模一样写出来 -->
<script id="doT" type="text/template">
{{for (var i = 0; i < it.length; i++){}}
	{{?( it[i].status != 0)}}
	<li>
		<h3>
			<span class="fl f25">订单编号 :{{=it[i].sn }}</span>
			<span class="fr f26">
				{{?( it[i].is_cancel == 1)}}
					申请取消订单
				{{?}}
				{{?( it[i].status == 1)}}
					待接单
				{{??( it[i].status == 2)}}
					待出库
				{{??( it[i].status == 3)}}
					已发货
				{{??( it[i].status == 4 || it[i].status == 7)}}
					退换货
				{{??( it[i].status == 5 )}}
					已完成
				{{??( it[i].status == 6 )}}
					已取消
				{{??( it[i].status == 8 )}}
					订单流转
				{{?}}
				{{?( it[i].is_flow_order == 1)}}
					<span>(流转订单)</span>
				{{?}}
			</span>
		</h3>
		
		{{for (var j = 0; j < it[i].orderItemList.length; j++){}}
			<div class="con">
				<a href="${ctx}/goods-{{=it[i].orderItemList[j].goods_id }}.html">
					{{?( it[i].orderItemList[j].image != "")}}
 						<img src="{{=it[i].orderItemList[j].image }}">
					{{??}}
						<img src="${ctx}/images/noimg.jpg">
					{{?}}
					<div class="con_ri">
						<span class="f26">{{=it[i].orderItemList[j].name }}</span>
						<i class="i1 f26">{{=it[i].orderItemList[j].goods_model_id }}</i>
						<i class="i2 f26">{{=it[i].orderItemList[j].sn }}  ¥{{=it[i].orderItemList[j].orginal_price }}  x{{=it[i].orderItemList[j].num }}</i>
					</div>
				</a>
			</div>
			{{?( it[i].orderItemList[j].state == 0 && it[i].status== 1 )}}
				<div class="p3">
					<a class="order-btn3 a1 f24" href="javascript:void(0);" name="refuse" order_sn="{{=it[i].sn }}" item_id="{{=it[i].orderItemList[j].item_id }}">退回</a>
				</div>
			{{?}}	
		{{}}}
	
		<div class="p2">
			<div class="fr">
				<span class="f22">含运费:<i class="f26">{{=it[i].shipping_amount }}<i class="f20"></i></i></span>
			</div>
		</div>
			
		<div class="p2">
			<span class="fl f26">{{=it[i].xiadan_time }}</span>
			<div class="fr">
				<span class="f22">实付款:¥<i class="f26 price">{{=it[i].need_pay_money }}<i class="f20"></i></i></span>
				<span class="f22">共 <i class="f22">{{=it[i].orderItemList.length }}</i> 件商品</span>
			</div>
		</div>
		
		<div class="p3">
			{{?( it[i].status== 3 || it[i].status== 4 || it[i].status== 5 || it[i].status== 7)}}
				 <td><a href="order-exp-info.html?ordersn={{=it[i].sn }}" class="a2 f24" order_sn="{{=it[i].sn }}" >查看物流</a></td>
			{{?}}
		
			{{?( it[i].status== 1 )}}
				<a class="order-btn3 a2 f24" href="javascript:void(0);" name="recive" order_sn="{{=it[i].sn }}">全部接单</a>
				<a class="order-btn3 a1 f24" href="javascript:void(0);" name="refuse" order_sn="{{=it[i].sn }}">全部退回</a>	
			{{?}}
			
			{{?( it[i].pay_status== 2 &&  it[i].ship_status== 0)}}
				{{?( it[i].status== 2)}}
					{{for (var j = 0; j < it[i].companyList.length; j++){}}
						{{?( it[i].companyList[j].logi_id != "" &&  it[i].companyList[j].logi_id != 0)}}
							{{?( it[i].ship_no != "")}}
								<a href="javascript: void(0);" class="btn btn-default a2 f24" id="ship-btn" order_id="{{=it[i].order_id }}" style="font-size: 12px;">发货</a>	
							{{??}}
								<a href="javascript: void(0);" class="btn btn-default a2 f24" id="notice-btn" order_sn="{{=it[i].sn }}" code="{{=it[i].companyList[j].code }}" logi_name="{{=it[i].companyList[j].name }}" logi_id="{{=it[i].companyList[j].id }}" style="font-size: 12px;">通知物流</a>
							{{?}}
						{{?}}
					{{}}}
				{{?}}
			{{?}}

		</div>
	</li>
	{{?}}
{{}}}
</script>
<!--下面是iscroll插件的js 其中有ajax获取数据  -->
<script type="text/javascript">
        var myScroll,
		pullDownEl, pullDownOffset,
		pullUpEl, pullUpOffset,
		generatedCount = 0,pageNo=2,totalpage=100,isloading=true;
		/* 注意pageNo=2  是第一页数据已经有的上拉是展现第二页第三页等等的数据  下面的ajax中data传的是要加载的页数和一页有多条数据*/
		
		function pullUpAction () {
		    setTimeout(function () {
		        var el = $(".my_order .bd ");
		        /* 上拉伸超过一定的距离触发ajax 注意没有拉伸的效果时看一下class是不是在你的class*/
		          $.ajax({ 
		        	url: '${ctx}/b2c/app/scroll/store_list_page.do',
			        type: 'post',
			        dataType:"JSON",
			        data:{
			        	page:pageNo++,
    		        	pageSize:10,
    		        	order_state : '${order_state!''}'
		            },
			        success: function(data){
			        	 console.log(data.data.data);
			        	 /*  for(var i = 0;i<data.data.data.length;i++){
			        		  console.log(data.data.data[i].companyList.length);
		            		for(var j = 0;j<data.data.data[j].companyList.length;j++){
		            			console.log(data.data.data[i].companyList[j].name);
		            			console.log(data.data.data[i].companyList[j].id);
		            			console.log(data.data.data[i].companyList[j].code);
		            			console.log(data.data.data[i].companyList[j].logi_id);
		            		}  
		            		
		            		for(var j = 0;j<data.data.data[j].orderItemList.length;j++){
		            			console.log(data.data.data[i].orderItemList[j].name);
		            		}
		            	}  */
		            	/* 上面是数据可以打印出来看一下是不是和我想要的展现的数据一样 */
		            	/* 注意一点的是controller层返回的数据有时候不是json 或者数据到这边解析不了报500,那个就要在在java代码里对数据进行处理了,一定要返回可以解析的数据 */
			        	 isloading = true;
	    		        	if(data.result==1)
	    	            	{
	    	            		var evalText = doT.template($("#doT").text());
	    	                	el.append(evalText(data.data.data));
	    	                	totalpage =data.data.totalPageCount;
	    	                	console.log(totalpage)
	    	                  	myScroll.refresh();
	    	                	/* 上面是把数据放到doT.js的插件中 注意! */
	    	            	}
			        },
			       error: function(){
			        	isloading=true;
						alert("加载数据异常!",{closeBtn:false});
			        } 
				});
		    }, 1000);
		}
		
		/*下面的js没有什么要特别的正常写就行  */
		function loaded() {
		pullDownEl = document.getElementById('pullDown');
		pullDownOffset = pullDownEl.offsetHeight;
		pullUpEl = document.getElementById('pullUp');	
		pullUpOffset = pullUpEl.offsetHeight;
		
		totalpage = $('#totalPageCount').val();
		myScroll = new iScroll('wrapper', {
		    useTransition: false, 
		    topOffset: pullDownOffset,
		    onRefresh: function () {
		    	if(pageNo > totalpage){
		    		/* pullUpEl.querySelector('.pullUpLabel').innerHTML = '已到底部'; */
		    		return false;
		    	}
		        if (pullUpEl.className.match('loading')) {
		            pullUpEl.className = '';
		            /* pullUpEl.querySelector('.pullUpLabel').innerHTML = '上拉加载更多...'; */
		        }
		    },
		    onScrollMove: function () {
		    	/* console.log(this.y +'aaa'+ (this.maxScrollY - 5)) */
		    	if(pageNo > totalpage){
		    		/* pullUpEl.querySelector('.pullUpLabel').innerHTML = '已到底部'; */
		    		pullDownEl.querySelector('.pullDownLabel').innerHTML = '';
		   		 	return false;
		    	}
		    	  if (this.y > 5 && !pullDownEl.className.match('flip')) {
		            pullDownEl.className = 'flip';
		            /* pullDownEl.querySelector('.pullDownLabel').innerHTML = '松手开始更新...'; */
		            this.minScrollY = 0;
		        }  else 
		        if (this.y < 5 && pullDownEl.className.match('flip')) {
		            pullDownEl.className = '';
		            /* pullDownEl.querySelector('.pullDownLabel').innerHTML = '下拉加载更多...'; */
		            this.minScrollY = -pullDownOffset;
		        } else if (this.y < (this.maxScrollY -5) && !pullUpEl.className.match('flip')) {
		            pullUpEl.className = 'flip';
		           /*  pullUpEl.querySelector('.pullUpLabel').innerHTML = '松手开始更新...'; */
		            this.maxScrollY = this.maxScrollY;
		        } else  if (this.y > (this.maxScrollY + 5) && pullUpEl.className.match('flip')) {
		            pullUpEl.className = '';
		            /* pullUpEl.querySelector('.pullUpLabel').innerHTML = '上拉加载更多...'; */
		            this.maxScrollY = pullUpOffset;
		        }
		    },
		    onScrollEnd: function () {
		    	if(pageNo >  totalpage){
		    		/* pullUpEl.querySelector('.pullUpLabel').innerHTML = '已到底部'; */
		    		return false;
		    	}
		    	 if (pullDownEl.className.match('flip')) {
		            pullDownEl.className = 'loading';
		            pullDownEl.querySelector('.pullDownLabel').innerHTML = '';				
		            pullUpAction();	// Execute custom function (ajax call?)
		        } else 
		        if (pullUpEl.className.match('flip')) {
		            pullUpEl.className = 'loading';
		            /* pullUpEl.querySelector('.pullUpLabel').innerHTML = '加载中...';  */
		            pullUpAction();
		        }
		    }
		});
		}
		
		document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
	    document.addEventListener('DOMContentLoaded', function () { setTimeout(loaded, 200); }, false);
		
	
</script> 
<!-- 这里是分页要的样式哪有问题可以调 -->
<style>
	#wrapper {
	    z-index:1;
	    top:0; 
	    bottom:0; 
	    /* left:-9999px; */
	    width:100%;
	    background:#fff;
	    overflow:auto;
	    position:absolute;
	    width:7.5rem;
	}
	
	#scroller {
	    position:absolute; z-index:1;
	    /*	-webkit-touch-callout:none;*/
	    -webkit-tap-highlight-color:rgba(0,0,0,0);
	    width:100%;
	    padding:0;
	}
	/* 调整头尾被隐藏 或者下拉加载字体的大小 */
	#pullDown, #pullUp {
	    background:#fff;
	    /*height:0px;
	     line-height:10px;
	    padding:5px 10px;
	    border-bottom:1px solid #ccc; */
	    font-weight:bold;
	    font-size:14px;
	    color:#888;
	}
	#pullDown .pullDownIcon, #pullUp .pullUpIcon  {
	    display:block; float:left;
	    /* width:40px; height:40px; */
	    background:url(pull-icon@2x.png) 0 0 no-repeat;
	    -webkit-background-size:40px 80px; background-size:40px 80px;
	    -webkit-transition-property:-webkit-transform;
	    -webkit-transition-duration:250ms;	
	}
	#pullDown .pullDownIcon {
	    -webkit-transform:rotate(0deg) translateZ(0);
	}
	#pullUp .pullUpIcon  {
	    -webkit-transform:rotate(-180deg) translateZ(0);
	}
	
	#pullDown.flip .pullDownIcon {
	    -webkit-transform:rotate(-180deg) translateZ(0);
	}
	
	#pullUp.flip .pullUpIcon {
	    -webkit-transform:rotate(0deg) translateZ(0);
	}
	
	#pullDown.loading .pullDownIcon, #pullUp.loading .pullUpIcon {
	    background-position:0 100%;
	    -webkit-transform:rotate(0deg) translateZ(0);
	    -webkit-transition-duration:0ms;
	
	    -webkit-animation-name:loading;
	    -webkit-animation-duration:2s;
	    -webkit-animation-iteration-count:infinite;
	    -webkit-animation-timing-function:linear;
	}
	
	@-webkit-keyframes loading {
	    from { -webkit-transform:rotate(0deg) translateZ(0); }
	to { -webkit-transform:rotate(360deg) translateZ(0); }
	}
	
</style>
</body>
</html>

2.controller

 /**
     * 仓库订单列表分页
     * @param page 下一页
     * @param pageSize 每页数量
     * @return 
     * @author lvjianjian
     */
    @ResponseBody
    @RequestMapping(value = "/store_list_page")
    public JsonResult storeListPage(String page ,String pageSize) {
    	HttpServletRequest request=ThreadContextHolder.getHttpRequest();
    	StoreMember member=storeMemberManager.getStoreMember();
		//获取订单列表参数
		String goods=request.getParameter("goods");
		String order_state = request.getParameter("order_state");
		String keyword=request.getParameter("keyword");
		String buyerName=request.getParameter("buyerName");
		String startTime=request.getParameter("startTime");
		String endTime=request.getParameter("endTime");
		String remind=request.getParameter("remind");
		
		Map result=new HashMap();
		result.put("order_state", order_state);
		Page orderList=storeOrderManager.storeOrderList(Integer.valueOf(page),Integer.valueOf(pageSize),member.getStore_id(), result);
		List<Object> list = (List<Object>) orderList.getResult();
		for (Object object : list) {
			Order order = (Order) object;
			Integer orderid = order.getOrder_id();
			List<OrderItem> itemList  =orderManager.listGoodsItems(orderid);
			order.setOrderItemList(itemList);
			//遍历订单项,查询没有评论过的商品列表
			List<OrderItem> orderItemList = new ArrayList<OrderItem>();
			for(int i=0;i<itemList.size();i++){
				Integer order_id = itemList.get(i).getOrder_id();
				Integer goods_id =itemList.get(i).getGoods_id();
				MemberOrderItem memberOrderItem = memberOrderItemManager.getMemberOrderItem(order_id, goods_id, 0);
				if(memberOrderItem!=null){
					orderItemList.add(itemList.get(i));
				}
			}
		}
		//我下面的对数据进行了处理就是因为直接返回orderList前台解析不了我没有找到原因!难过!!
		List companyList = liststoreLogiCompanyManager.listByStore();
		
		List<Order> list1 = (List<Order>) orderList.getResult();
        List<Order> orderlist = new ArrayList<Order>();
        for(int i=0;i<list1.size();i++){
        	Order o = new Order();
        	o.setStatus(list1.get(i).getStatus());//订单状态
        	o.setSn(list1.get(i).getSn());//订单号
        	o.setDepotid(list1.get(i).getDepotid());//仓库号
        	o.setShipping_amount(list1.get(i).getShipping_amount());
        	o.setNeed_pay_money(list1.get(i).getNeed_pay_money());
        	o.setOrder_id(list1.get(i).getOrder_id());
        	o.setIs_cancel(list1.get(i).getIs_cancel());
        	SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            java.util.Date date = new Date(list1.get(i).getCreate_time() * 1000); 
            o.setXiadan_time(sdf.format(date));
        	o.setOrderItemList(list1.get(i).getOrderItemList());
        	o.setCompanyList(companyList);
        	orderlist.add(o);
        }       
        Long totalCount = orderList.getTotalCount();
        result.put("data", orderlist);
        result.put("page", page);
        result.put("pageSize", pageSize);
        result.put("totalCount", totalCount);
		
		return JsonResultUtil.getObjectJson(result);
    }

3.service层简单了要什么数据返回什么就行了 我这里用的是tag 模板 也放上去吧
@Override
	public Page storeOrderList(Integer pageNo, Integer pageSize,Integer storeid,Map map) {
		String order_state=String.valueOf(map.get("order_state"));
		String keyword=String.valueOf(map.get("keyword"));
		String buyerName=String.valueOf(map.get("buyerName"));
		String startTime=String.valueOf(map.get("startTime"));
		String endTime=String.valueOf(map.get("endTime"));
		//在该处获取订单中包含商品
		String goods=String.valueOf(map.get("goods"));	
		String remind=String.valueOf(map.get("remind"));
		//由于需要多关联一张表,故在此对sql语句进行判断,判断依据为商品名称是否为空
		//定义初始变量sql,并分别进行赋值
		StringBuffer sql=null;
		if(!StringUtil.isEmpty(goods)&&!goods.equals("null")){
			sql=new StringBuffer("select o.*,m.uname from es_order o left join es_member m on o.member_id = m.member_id left join es_order_items  s on s.order_id=o.order_id  left join es_goods g on s.goods_id = g.goods_id where o.store_id =" + storeid + 
					" and o.disabled=0 and m.disabled!=1  and g.name like '%"+goods+"%' ");
		}else{
			sql=new StringBuffer("select o.*,m.uname from es_order o left join es_member m on o.member_id = m.member_id where o.store_id =" + storeid + " and o.disabled=0 and m.disabled!=1 ");
		}
//		StringBuffer sql =new StringBuffer("select o.*,m.uname from es_order o left join es_member m on o.member_id = m.member_id where o.store_id =" + storeid + " and o.disabled=0 and m.disabled!=1 "
//				+ "left join es_order_items  s on s.order_id=o.order_id and ");
		if(!StringUtil.isEmpty(order_state)&&!order_state.equals("all")){
			/*if(order_state.equals("wait_ship") ){ //对待发货的处理
				sql.append(" and ( ( payment_type!='cod' and payment_id!=8  and  o.status="+OrderStatus.ORDER_PAY +") ");//非货到付款的,要已结算才能发货
				sql.append(" or ( payment_type='cod' and  status="+OrderStatus.ORDER_NOT_PAY +")) ");//货到付款的,新订单(已确认的)就可以发货
			//等待收款 (货到付款)
			}else if(order_state.equals("wait_pay") ){
				sql.append(" and ( status="+OrderStatus.ORDER_ROG+" and payment_type='cod')");//货到付款的要发货或收货后才能结算 
			//等待收货
			}else */
			if(order_state.equals("rog") ){ 
				sql.append(" and status in("+NewOrderStatus.ORDER_ROG+","+NewOrderStatus.ORDER_MAINTENANCE+")"  ); 
			}
			else if(!StringUtils.isEmpty(order_state)&&!order_state.equals("null")){
				sql.append(" and status="+order_state);
			}
		}else if(!StringUtils.isEmpty(order_state)&&order_state.equals("all")){
		    sql.append(" and status in("+NewOrderStatus.ORDER_COMPLETE+","+NewOrderStatus.ORDER_CONFIRM+","+NewOrderStatus.ORDER_MAINTENANCE+","+NewOrderStatus.ORDER_ROG+","+NewOrderStatus.ORDER_SHIP+","+NewOrderStatus.ORDER_PAY+","+NewOrderStatus.ORDER_CANCELLATION+","+NewOrderStatus.ORDER_FLOW+")"  ); 
		} 
		//提醒发货
		if(!StringUtil.isEmpty(remind)&&!remind.equals("null")){
			sql.append(" AND o.remind = 1");
		}
		if(!StringUtil.isEmpty(keyword)&&!keyword.equals("null")){
			sql.append(" AND o.sn like '%" + keyword + "%'");
		}
		if(!StringUtil.isEmpty(buyerName)&&!buyerName.equals("null")){
			sql.append(" AND ((m.uname like '%"+buyerName+"%') or (m.mobile like '%"+buyerName+"%'))");
		}
		if(!StringUtil.isEmpty(startTime)&&!startTime.equals("null")){
			sql.append(" AND o.create_time >"+DateUtil.getDateline(startTime));
		}
		if(!StringUtil.isEmpty(endTime)&&!endTime.equals("null")){
			
			//2015-11-04 add by sylow 
			endTime += " 23:59:59";
			sql.append(" AND o.create_time <"+DateUtil.getDateline(endTime, "yyyy-MM-dd HH:mm:ss"));
		}
		/*if(!StringUtil.isEmpty(remind)&&!remind.equals("null")){
			sql.append(" AND o.remind = 0");
		}*/
		sql.append (" order by o.create_time desc");
		
		//在该处输出sql进行测试
		
        //System.out.println(sql.toString());
		Page rpage = this.daoSupport.queryForPage(sql.toString(),pageNo, pageSize, Order.class);
		 
		return rpage;
	}










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值