From b7eb149907954fca17831a1781f173355e09aa3b Mon Sep 17 00:00:00 2001
From: xuzhitang <xzt@bronet.cn>
Date: Wed, 17 Oct 2018 10:55:05 +0800
Subject: [PATCH] 后台物流订阅及物流轨迹完成、订单分类完成,订单退款未完成

---
 app/admin/controller/ZjOrderController.php                 | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------
 public/themes/admin_simpleboot3/admin/zj_order/detail.html | 17 +++++++++++++++--
 public/themes/admin_simpleboot3/admin/zj_order/index.html  | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 126 insertions(+), 8 deletions(-)

diff --git a/app/admin/controller/ZjOrderController.php b/app/admin/controller/ZjOrderController.php
index 3de3c40..983d8ab 100644
--- a/app/admin/controller/ZjOrderController.php
+++ b/app/admin/controller/ZjOrderController.php
@@ -9,6 +9,7 @@
 namespace app\admin\controller;
 
 
+use app\kdnapi\controller\KdnApiController;
 use cmf\controller\AdminBaseController;
 use think\Db;
 
@@ -26,6 +27,12 @@ class ZjOrderController extends AdminBaseController
             if (!empty($arr['uid'])){
                 $where['o.uid']=$arr['uid'];
             }
+            if (!empty($arr['yi'])){
+                $where['o.cid']=$arr['yi'];
+            }
+            if (!empty($arr['er'])){
+                $where['o.cids']=['like','%-'.$arr['er'].'-%'];
+            }
             if (!empty($arr['step'])){
                 $where['o.step']=$arr['step'];
             }
@@ -45,9 +52,23 @@ class ZjOrderController extends AdminBaseController
                 $where1['o.create_time']=['elt',strtotime($arr['end_time'])];
             }
         }
-        $all=Db::name('zj_order')->alias('o')->join('user u','o.uid=u.id','left')->where($where)->where($where1)
-            ->order('create_time','desc')->field('o.*,u.user_nickname')->paginate(15);
+        $all=Db::name('zj_order')->alias('o')->join('user u','o.uid=u.id','left')
+            ->where($where)->where($where1)->order('create_time','desc')->field('o.*,u.user_nickname')->paginate(15);
         $all->appends($arr);
+
+        //查询商品分类
+        $cate=Db::name('zj_category')->where(['delete_time'=>'0'])->field('name,id,cid,grade')->select()->toArray();
+        $cate1=[];
+        $cate2=[];
+        foreach ($cate as $k=>$v){
+            if ($cate[$k]['grade']==1){
+                $cate1[$k]=$cate[$k];
+            }else{
+                $cate2[$k]=$cate[$k];
+            }
+        }
+        $cate1=array_values($cate1);
+        $cate2=array_values($cate2);
         $this->assign('start_time', !empty($arr['start_time']) ? $arr['start_time'] : '');
         $this->assign('end_time', !empty($arr['end_time']) ? $arr['end_time'] : '');
         $this->assign('uid',!empty($arr['uid'])?$arr['uid']:'');
@@ -55,8 +76,12 @@ class ZjOrderController extends AdminBaseController
         $this->assign('num',!empty($arr['num'])?$arr['num']:'');
         $this->assign('name',!empty($arr['name'])?$arr['name']:'');
         $this->assign('mobile',!empty($arr['mobile'])?$arr['mobile']:'');
+        $this->assign('yi',!empty($arr['yi'])?$arr['yi']:'');
+        $this->assign('er',!empty($arr['er'])?$arr['er']:'');
         $this->assign('page',$all->render());
         $this->assign('all',$all->items());
+        $this->assign('cate1',$cate1);
+        $this->assign('cate2',$cate2);
         return $this->fetch();
     }
 
@@ -77,6 +102,11 @@ class ZjOrderController extends AdminBaseController
             $kd=Db::name('zj_kd')->select();
             $all=Db::name('zj_order_goods')->alias('og')->join('zj_goods g','og.gid=g.id')->where('oid',$id)
                 ->field('g.name,og.num')->select();
+            if ($one['step']>2&&$one['kid']!=0){
+                $kdgj=Db::name('zj_kd_order')->where(['kd_num'=>$one['kd_num']])->value('text');
+                $kdgj=json_decode($kdgj,true);
+                $this->assign('kdgj',$kdgj);
+            }
             $this->assign('kd',$kd);
             $this->assign('url',$url);
             $this->assign('one',$one);
@@ -91,10 +121,25 @@ class ZjOrderController extends AdminBaseController
         if ($this->request->param()){
             $param=input('param.');
             $edit=Db::name('zj_order')->update($param);
+            if ($param['step']=='3'){
+                if ($param['kid']=='0'){
+                    $kds='自提订单';
+                }else{
+                    //引入快递订阅接口
+                    $kd=new KdnApiController();
+                    $kds=$kd->orderTracesSubByJson($param['id']);
+                    $kds=json_decode($kds,true);
+                    if ($kds['Success']==true){
+                        $kds='快递状态订阅成功';
+                    }else{
+                        $kds='快递状态订阅失败';
+                    }
+                }
+            }
             if (empty($edit)){
-                $this->error('修改失败');
+                $this->error('修改失败,'.$kds);
             }else{
-                $this->success('修改成功');
+                $this->success('修改成功,'.$kds);
             }
         }
     }
@@ -180,12 +225,22 @@ class ZjOrderController extends AdminBaseController
             if (empty($param['kd_num'])){
                 $this->error('快递单号不能为空');
             }
+
             $param['step']=3;
             $edit=Db::name('zj_order')->update($param);
+            //引入快递订阅接口
+            $kd=new KdnApiController();
+            $kds=$kd->orderTracesSubByJson($param['id']);
+            $kds=json_decode($kds,true);
+            if ($kds['Success']==true){
+                $kds='快递状态订阅成功';
+            }else{
+                $kds='快递状态订阅失败';
+            }
             if (empty($edit)){
-                $this->error('订单状态更新失败');
+                $this->error('订单状态更新失败,'.$kds);
             }else{
-                $this->success('订单状态更新成功');
+                $this->success('订单状态更新成功,'.$kds);
             }
         }
     }
diff --git a/public/themes/admin_simpleboot3/admin/zj_order/detail.html b/public/themes/admin_simpleboot3/admin/zj_order/detail.html
index e69d893..ea13d74 100644
--- a/public/themes/admin_simpleboot3/admin/zj_order/detail.html
+++ b/public/themes/admin_simpleboot3/admin/zj_order/detail.html
@@ -87,7 +87,7 @@
                     <td>
                         <span>
                             <if condition="$one.step eq 5||$one.step eq 9">
-                            {:date('Y-m-d H:i',$vo.end_time)}
+                            {:date('Y-m-d H:i',$one.end_time)}
                             <elseif condition="$one.step lt 5">
                                 订单未完成
                                 <elseif condition="$one.step gt 5&&$one.step neq 9">
@@ -108,6 +108,17 @@
                         <span>{$one.whole_num}</span>
                     </td>
                 </tr>
+                <if condition="$one.step gt 2 && $one.kid neq 0">
+                    <tr>
+                        <th>物流轨迹</th>
+                        <td>
+                            <foreach name="kdgj" item="vo">
+                                <p><span>{$vo.AcceptTime}</span>&nbsp;&nbsp;&nbsp;{$vo.AcceptStation}</p>
+                            </foreach>
+                        </td>
+                    </tr>
+                </if>
+
             </table>
 
             <if condition="$one.step gt 5">
@@ -197,7 +208,8 @@
                                 <tr>
                                     <th>快递公司</th>
                                     <td>
-                                        <select name="step" class="form-control" style="width: 120px;">
+                                        <select name="kid" class="form-control" style="width: 120px;">
+                                            <option value="0">自提</option>
                                             <foreach name="kd" item="vo">
                                                 <option value="{$vo.id}" <eq name="$one.kid" value="$vo.id">selected</eq>>{$vo.name}</option>
                                             </foreach>
@@ -245,6 +257,7 @@
                     </table>
                     <if condition="$one.step elt 5">
                         <input type="hidden" value="{$one.id}" name="id">
+                        <input type="hidden" value="{$one.step}" name="step">
                         <div class="form-group">
                             <div class="col-sm-offset-2 col-sm-10">
                                 <button type="submit" class="btn btn-primary js-ajax-submit">保存</button>
diff --git a/public/themes/admin_simpleboot3/admin/zj_order/index.html b/public/themes/admin_simpleboot3/admin/zj_order/index.html
index 485f770..00acab1 100644
--- a/public/themes/admin_simpleboot3/admin/zj_order/index.html
+++ b/public/themes/admin_simpleboot3/admin/zj_order/index.html
@@ -25,9 +25,22 @@
         收货人:
         <input class="form-control" type="text" name="name" style="width: 200px;" value="{$name|default=''}"
                placeholder="请输入收货姓名">
+        一级分类:
+        <select name="yi" class="form-control" style="width: 120px;" onchange="lie(this.value,0)">
+            <option value>请选择分类</option>
+            <foreach name="cate1" item="vo">
+                <option value="{$vo.id}" <eq name="$yi" value="$vo.id"> selected </eq>  >{$vo.name}</option>
+            </foreach>
+        </select>
+        二级分类:
+        <select name="er" class="form-control" style="width: 120px;" id="er">
+            <option value>请选择分类</option>
+        </select>
+        <br/>
         手机号:
         <input class="form-control" type="number" name="mobile" style="width: 200px;" value="{$mobile|default=''}"
                placeholder="请输入收货手机号">
+
         下单时间:
         <input type="text" class="form-control js-bootstrap-datetime" name="start_time"
                value="{$start_time|default=''}"
@@ -118,5 +131,42 @@
     </form>
 </div>
 <script src="__STATIC__/js/admin.js"></script>
+<script>
+    //分类默认选中
+    var yi="{$yi}";
+    var er0="{$er}";
+    var er1={:json_encode($cate2)};
+
+    function lie(ii,ll) {
+        var ee=document.getElementById('er')
+        var op=document.createElement('option')
+        rem(ee)
+        op.text='请选择分类';
+        op.value='';
+        ee.add(op);
+        if (ii!=''){
+            for (i=0;i<=er1.length-1;i++){
+                if (ii==er1[i]['cid']){
+                    var opt=document.createElement('option');
+                    opt.text=er1[i]['name']
+                    opt.value=er1[i]['id']
+                    if (ll==er1[i]['id']){
+                        opt.selected =true
+                    }
+                    ee.add(opt)
+                }
+            }
+        }
+    }
+
+    lie(yi,er0);
+
+    //删除option
+    function rem(ii) {
+        for (i=ii.options.length-1;i>=0;i--){
+            ii.remove(i)
+        }
+    }
+</script>
 </body>
 </html>
\ No newline at end of file
--
libgit2 0.24.0