tp5中订单列表多条件筛选及excel导出

视图层:



<div class="page-content">
<!-- <a class="btn btn-success" href="{:url('order/addorder')}">添加商品</a> -->
<!-- /section:settings.box -->
<div class="page-content-area">

<a href="{:url('order/order',array('s'=>''))}" class="btn btn-white btn-info btn-bold">
全部
</a>


<a href="{:url('order/order',array('s'=>'5'))}" class="btn btn-white btn-info btn-bold">
未付款
</a>


<a href="{:url('order/order',array('s'=>'1'))}" class="btn btn-white btn-info btn-bold">
已付款
</a>
<a href="{:url('order/order',array('s'=>'3'))}" class="btn btn-white btn-info btn-bold">
已发货
</a>

<a href="{:url('order/order',array('s'=>'4'))}" class="btn btn-white btn-info btn-bold">
已收货
</a>
<a href="{:url('order/Excelout',array('start'=>"$start",'end'=>"$end",'s'=>"$s"))}" class="btn btn-white btn-info btn-bold">
Excel导出
</a>
<form action="{:url('order/order')}" method="post">
<input type="hidden" name="s" value="{$s}"/>
<div class="col-xs-12 col-sm-3">
<!-- <label for="id-date-picker-1">时间段选择日期表单</label> -->
<div class="input-group">
<span class="input-group-addon">
<i class="fa fa-calendar bigger-110"></i>
</span>
<input class="form-control" type="text" name="date-range-picker" id="id-date-range-picker-1" value=""/>
</div>

</div>
<input type="submit" class="btn btn-success" value="搜索">
</form>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<div class="row">
<div class="col-xs-12">
<table id="sample-table-1" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>下单时间</th>
<th>支付时间</th>
<th>订单号</th>
<th>商品名称</th>
<th>用户昵称</th>
<th>支付金额</th>
<th>订单状态</th>
<th>操作</th>
</tr>
</thead>


<tbody>
{foreach $data as $vo} 
<tr>
<td>

<?php echo date("Y-m-d",$vo['o_cratetime']); ?>

</td>
<td>
{if condition="$vo['o_paytime']"}
<?php echo date("Y-m-d",$vo['o_paytime']); ?>
{else/}
未支付
{/if}
</td>
<td>{$vo.o_number}</td>
<td>{$vo.g_name}</td>
<td>

{$vo.u_nickname}

</td>
<td>
{if condition="$vo.o_status>=1&&$vo.o_status!=10"}
{$vo.o_price}
{/if}
</td>


<td>
{if condition="$vo.o_status==5"}
<button class="btn-info">未付款</button>
{elseif condition="$vo.o_status==1"/}
<button class="btn-danger">已付款</button>
{elseif condition="$vo.o_status==2"/}
<button class="btn-warning">未发货</button>
{elseif condition="$vo.o_status==3"/}
<button class="btn-success">已发货</button>
{else/}
<button class="btn-info">已收货</button>
{/if}
</td>

<td>
<div class="hidden-sm hidden-xs btn-group">
{if condition="$vo.o_status==1"}
<a class="btn btn-xs btn-info" href="{:url('order/express',array('id'=>$vo.o_id))}">
发货
</a>
{/if}
<a class="btn btn-xs btn-info" href="{:url('order/xiangqing',array('id'=>$vo.o_id))}">
详情
</a>

<a class="btn btn-xs btn-danger" href="{:url('order/delOrder',array('id'=>$vo.o_id))}">
删除
<!-- <i class="ace-icon fa fa-trash-o bigger-120"></i> -->
</a>
</div>
</td>
</tr>
{/foreach}
</tbody>
</table>
{$pagefoot}
</div><!-- /.span -->
</div><!-- /.row -->
<div class="col-sm-6" style="text-align:center;">



<div>
<ul class="pagination">
<!-- <li class="disabled">
<a href="#">首页</a>
</li> -->
<!-- <li class="disabled">
<a href="#">
<i class="ace-icon fa fa-angle-double-left"></i>
</a>
</li> -->



<!-- 
<li>
<a href="#">
<i class="ace-icon fa fa-angle-double-right"></i>
</a>
</li>
<li class="">
<a href="#">尾页</a>
</li> -->
</ul>
</div>

</div>
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content-area -->

</div>


<script src="__PUBLIC__/static/admin/js/bootstrap.min.js"></script>


<script src="__PUBLIC__/static/admin/js/jquery.dataTables.min.js"></script>
<script src="__PUBLIC__/static/admin/js/jquery.dataTables.bootstrap.js"></script>




<script src="__PUBLIC__/static/admin/js/jquery-ui.custom.min.js"></script>
<script src="__PUBLIC__/static/admin/js/jquery.ui.touch-punch.min.js"></script>
<script src="__PUBLIC__/static/admin/js/chosen.jquery.min.js"></script>
<script src="__PUBLIC__/static/admin/js/fuelux/fuelux.spinner.min.js"></script>
<script src="__PUBLIC__/static/admin/js/date-time/bootstrap-datepicker.min.js"></script>
<script src="__PUBLIC__/static/admin/js/date-time/bootstrap-timepicker.min.js"></script>
<script src="__PUBLIC__/static/admin/js/date-time/moment.min.js"></script>
<script src="__PUBLIC__/static/admin/js/date-time/daterangepicker.min.js"></script>
<script src="__PUBLIC__/static/admin/js/date-time/bootstrap-datetimepicker.min.js"></script>
<script src="__PUBLIC__/static/admin/js/bootstrap-colorpicker.min.js"></script>
<script src="__PUBLIC__/static/admin/js/jquery.knob.min.js"></script>
<script src="__PUBLIC__/static/admin/js/jquery.autosize.min.js"></script>
<script src="__PUBLIC__/static/admin/js/jquery.inputlimiter.1.3.1.min.js"></script>
<script src="__PUBLIC__/static/admin/js/jquery.maskedinput.min.js"></script>
<script src="__PUBLIC__/static/admin/js/bootstrap-tag.min.js"></script>
<script src="__PUBLIC__/static/admin/js/typeahead.jquery.min.js"></script>
<script src="__PUBLIC__/static/admin/js/ace-extra.min.js"></script>
<!-- ace scripts -->
<script src="__PUBLIC__/static/admin/js/ace-elements.min.js"></script>

<script src="__PUBLIC__/static/admin/js/ace.min.js"></script>


控制器:

// 订单列表
public function order(){
$start='1';
$end='2';
if(input("date-range-picker")){
$time = input("date-range-picker");
$time = explode('-',$time);
$time[0] = str_replace("/","-",$time[0]);
$time[0] = explode('-',$time[0]);
$start = trim($time[0][2])."-".trim($time[0][0])."-".trim($time[0][1])." 00:00:01";
$time[1] = str_replace("/","-",$time[1]);
$time[1] = explode('-',$time[1]);
$end = trim($time[1][2])."-".trim($time[1][0])."-".trim($time[1][1])." 23:59:59";
$start = strtotime($start);
$end = strtotime($end);
$where['o_cratetime']  = ['between',[$start,$end]];
$size = Config("size");
$s = input("s")?input("s"):null;
if(request()->isGet('search')){
            $search=input('search');                
        }else{ 
            $search = "";
        }
        if(is_null($s)){
        $where['o_delete'] = 0;
}else{
        $where['o_delete'] = 0;
    $where['o_status'] = $s;
        }
        $orderdata=Db::table("dnjk_order")->alias('O')->field("O.*,U.*,G.*,H.*")
->join("user U","O.o_u_id=U.u_id","LEFT")
->join("goods G","O.o_g_id=G.g_id","LEFT")
->join("user_healthy H","O.o_id=H.h_oid","LEFT")
->where("o_number","like","%".$search."%")
->where($where)
->order("o_id desc")
->paginate($size,false,[
'type'     => 'Bootstrap',
'var_page' => 'page',
]);
        $pagefoot=$orderdata->render();
        $this->assign(["data"=>$orderdata,"pagefoot"=>$pagefoot,"search"=>$search,"s"=>$s,"start"=>$start,"end"=>$end]);
return $this->fetch();
}else{
$size = Config("size");
$s = input("s")?input("s"):null;
if(request()->isGet('search')){
            $search=input('search');                
        }else{ 
            $search = "";
        }
        if(is_null($s)){
        $where['o_delete'] = 0;
}else{
        $where['o_delete'] = 0;
        $where['o_status'] = $s;
   
        }
        $orderdata=Db::table("dnjk_order")->alias('O')->field("O.*,U.*,G.*,H.*")
->join("user U","O.o_u_id=U.u_id","LEFT")
->join("goods G","O.o_g_id=G.g_id","LEFT")
->join("user_healthy H","O.o_id=H.h_oid","LEFT")
->where("o_number","like","%".$search."%")
->where($where)
->order("o_id desc")
->paginate($size,false,[
'type'     => 'Bootstrap',
'var_page' => 'page',
]);
        $pagefoot=$orderdata->render();
        $this->assign(["data"=>$orderdata,"pagefoot"=>$pagefoot,"search"=>$search,"s"=>$s,"start"=>$start,"end"=>$end]);
return $this->fetch();
}

}


//Excel导出
public function Excelout(){
$start=input("start")?input("start"):1;
$end=input("end")?input("end"):2;
if($start!=1 && $end!=2){
$where['o_cratetime']  = ['between',[$start,$end]];
}
$size = Config("size");
$s = input("s")?input("s"):null;
if(request()->isGet('search')){
            $search=input('search');                
        }else{ 
            $search = "";
        }
        if(is_null($s)){
        $where['o_delete'] = 0;
}else{
        $where['o_delete'] = 0;
    $where['o_status'] = $s;
        }
        $res=Db::table("dnjk_order")
        ->alias('O')
        ->field("O.*,U.*,G.*,H.*")
        ->join("user U","O.o_u_id=U.u_id","LEFT")
->join("goods G","O.o_g_id=G.g_id","LEFT")
->join("user_healthy H","O.o_id=H.h_oid","LEFT")
->where("o_number","like","%".$search."%")
->where($where)
->order("o_id desc")
->select();
        foreach ($res as $key => $value) {
        $w3['h_oid'] = $value['h_oid'];
        $res[$key]['healty'] = Db::table("dnjk_user_healthy")->where($w3)->find();
        }
import('PHPExcel.PHPExcel', EXTEND_PATH);
        $phpexcel=new \PHPExcel();//实例化PHPExcel类对象,方便操作即将生成的excel表格
        $phpexcel->setActiveSheetIndex(0);//选中我们生成的excel文件的第一张工作表
        $sheet=$phpexcel->getActiveSheet();//获取到选中的工作表,方面后面数据插入操作
        //此处设置的是生成的excel表的第一行标题
        $arr=[
            'o_cratetime'=>'下单时间',
            'o_paytime'=>'支付时间',
            'o_number'=>'订单号',
            'g_name'=>'商品名称',
            'u_nickname'=>'用户昵称',
            'o_price'=>'支付金额',
            'o_status'=>'订单状态',
            'o_username'=>'收货人姓名',
            'o_telphone'=>'收货人手机号',
            'o_address'=>'收货人所在地区',
            'o_addressinfo'=>'收货人详细地址',
            'h_username'=>'用户姓名',
            'h_address'=>'用户所在地',
            'h_physical'=>'持卡人身体状况',
            'h_telephone'=>'联系电话',
            'h_IDcard'=>'卡主身份证',
            'h_weight'=>'体重',
            'h_height'=>'身高',
            'h_blood_type'=>'血型',
            'h_surgery'=>'手术史',
            'h_allergy'=>'药物过敏史',
            'h_inherit'=>'遗传病家族史',
            'h_deformity'=>'残疾情况',
        ];
         array_unshift($res,$arr);
         //将我们上面手动设置的标题信息放到数组中,作为第一行写入数据表
        $currow=0;//因为我们生成的excel表格的行数是从1开始,所以我们预先设置好一个变量,供下面foreach循环的$k使用
        $sheet->setCellValue('A1',$arr['o_cratetime'])
                  ->setCellValue('B1',$arr['o_paytime'])
                  ->setCellValue('C1',$arr['o_number'])
                  ->setCellValue('D1',$arr['g_name'])
              ->setCellValue('E1',$arr['u_nickname'])
                  ->setCellValue('F1',$arr['o_price'])
                  ->setCellValue('G1',$arr['o_status'])
              ->setCellValue('H1',$arr['o_username'])
                  ->setCellValue('I1',$arr['o_telphone'])
                  ->setCellValue('J1',$arr['o_address'])
              ->setCellValue('K1',$arr['o_addressinfo'])
              ->setCellValue('L1',$arr['h_username'])
                  ->setCellValue('M1',$arr['h_address'])
              ->setCellValue('N1',$arr['h_physical'])
                  ->setCellValue('O1',$arr['h_telephone'])
                  ->setCellValue('P1',$arr['h_IDcard'])
              ->setCellValue('Q1',$arr['h_weight'])
                  ->setCellValue('R1',$arr['h_height'])
                  ->setCellValue('S1',$arr['h_blood_type'])
              ->setCellValue('T1',$arr['h_surgery'])
                  ->setCellValue('U1',$arr['h_allergy'])
                  ->setCellValue('V1',$arr['h_inherit'])
              ->setCellValue('W1',$arr['h_deformity'])
            ;
        foreach ($res as $k => $v) {
        if($k==0){
        continue;
        }
        if($v['o_paytime']==""){
                  $v['o_paytime']="未支付";
                  }else{
                  $v['o_paytime']=date("Y-m-d H:i:s",$v['o_paytime']);
                  }
            if($v['o_status']==5){
            $v['o_status']="未付款";
            }elseif($v['o_status']==1){
            $v['o_status']="已付款";
            }
            elseif($v['o_status']==2){
            $v['o_status']="未发货";
            }
            elseif($v['o_status']==3){
            $v['o_status']="已发货";
            }
            elseif($v['o_status']==4){
            $v['o_status']="已收货";
            }else{
            $v['o_status']="已取消";
            }
            if($v['healty']['h_allergy']==0){
            $v['healty']['h_allergy']="无";
            }elseif($v['healty']['h_allergy']==1){
            $v['healty']['h_allergy']="青霉素过敏";
            }elseif($v['healty']['h_allergy']==2){
            $v['healty']['h_allergy']="磺胺";
            }else{
            $v['healty']['h_allergy']="链霉素";
            }
            if($v['healty']['h_inherit']==0){
            $v['healty']['h_inherit']="高血压";
            }elseif($v['healty']['h_inherit']==1){
            $v['healty']['h_inherit']="糖尿病";
            }
            elseif($v['healty']['h_inherit']==2){
            $v['healty']['h_inherit']="慢性阻塞性肺疾病";
            }
            elseif($v['healty']['h_inherit']==3){
            $v['healty']['h_inherit']="冠心病";
            }
            elseif($v['healty']['h_inherit']==4){
            $v['healty']['h_inherit']="结核病";
            }
            elseif($v['healty']['h_inherit']==5){
            $v['healty']['h_inherit']="肝炎";
            }
            elseif($v['healty']['h_inherit']==6){
            $v['healty']['h_inherit']="脑卒中";
            }
            elseif($v['healty']['h_inherit']==7){
            $v['healty']['h_inherit']="重性精神疾病";
            }
            elseif($v['healty']['h_inherit']==8){
            $v['healty']['h_inherit']="恶心肿瘤";
            }
            elseif($v['healty']['h_inherit']==9){
            $v['healty']['h_inherit']="其他法定传染病";
            }
            elseif($v['healty']['h_inherit']==10){
            $v['healty']['h_inherit']="其他";
            }else{
            $v['healty']['h_inherit']="无";
            }
            if($v['healty']['h_deformity']==0){
            $v['healty']['h_deformity']="无疾病";
            }elseif($v['healty']['h_deformity']==1){
            $v['healty']['h_deformity']="视力残疾";
            }
            elseif($v['healty']['h_deformity']==2){
            $v['healty']['h_deformity']="听力残疾";
            }
            elseif($v['healty']['h_deformity']==3){
            $v['healty']['h_deformity']="语言残疾";
            }
            elseif($v['healty']['h_deformity']==4){
            $v['healty']['h_deformity']="肢体残疾";
            }
            elseif($v['healty']['h_deformity']==5){
            $v['healty']['h_deformity']="智力残疾";
            }
            elseif($v['healty']['h_deformity']==6){
            $v['healty']['h_deformity']="精神残疾";
            }else{
            $v['healty']['h_deformity']="其他残疾";
            }
            $currow=$k+1;//表示从生成的excel表格的第一行开始插入数据
            $sheet->setCellValue('A'.$currow,date("Y-m-d H:i:s",$v['o_cratetime']))
                  ->setCellValue('B'.$currow,$v['o_paytime'])
                  ->setCellValue('C'.$currow,$v['o_number'])
                  ->setCellValue('D'.$currow,$v['g_name'])
              ->setCellValue('E'.$currow,$v['u_nickname'])
                  ->setCellValue('F'.$currow,$v['o_price'])
                  ->setCellValue('G'.$currow,$v['o_status'])
              ->setCellValue('H'.$currow,$v['o_username'])
                  ->setCellValue('I'.$currow,$v['o_telphone'])
                  ->setCellValue('J'.$currow,$v['o_address'])
              ->setCellValue('K'.$currow,$v['o_addressinfo'])
                  ->setCellValue('L'.$currow,$v['healty']['h_username'])
                  ->setCellValue('M'.$currow,$v['healty']['h_address'])
              ->setCellValue('N'.$currow,$v['healty']['h_physical'])
                  ->setCellValue('O'.$currow,$v['healty']['h_telephone'])
                  ->setCellValue('P'.$currow,$v['healty']['h_IDcard'])
              ->setCellValue('Q'.$currow,$v['healty']['h_weight'].'kg')
                  ->setCellValue('R'.$currow,$v['healty']['h_height'].'cm')
                  ->setCellValue('S'.$currow,$v['healty']['h_blood_type'].'型')
              ->setCellValue('T'.$currow,$v['healty']['h_surgery'])
                  ->setCellValue('U'.$currow,$v['healty']['h_allergy'])
                  ->setCellValue('V'.$currow,$v['healty']['h_inherit'])
              ->setCellValue('W'.$currow,$v['healty']['h_deformity'])
            ;
        }
        header('Content-Type:application/octet-stream');
        header('Accept-Ranges:bytes');
        header('Content-Type: application/vnd.ms-excel');//设置下载前的头信息
        header('Content-Disposition: attachment;filename="ceshi.xlsx"');
        header('ache-Control: max-age=0');
        header('Pragma: no-cache');
        header('Expires: 0');
        $phpwriter=new \PHPExcel_Writer_Excel2007($phpexcel);
        //此处的2007代表的是高版本的excel表格
        $phpwriter->save('php://output');//生成并下载excel表格
        return;


}

猜你喜欢

转载自blog.csdn.net/tianjingang1/article/details/80939977