作者 徐治堂
1 个管道 的构建 通过 耗费 6 秒

后台物流订阅及物流轨迹完成、订单分类完成,订单退款未完成

@@ -9,6 +9,7 @@ @@ -9,6 +9,7 @@
9 namespace app\admin\controller; 9 namespace app\admin\controller;
10 10
11 11
  12 +use app\kdnapi\controller\KdnApiController;
12 use cmf\controller\AdminBaseController; 13 use cmf\controller\AdminBaseController;
13 use think\Db; 14 use think\Db;
14 15
@@ -26,6 +27,12 @@ class ZjOrderController extends AdminBaseController @@ -26,6 +27,12 @@ class ZjOrderController extends AdminBaseController
26 if (!empty($arr['uid'])){ 27 if (!empty($arr['uid'])){
27 $where['o.uid']=$arr['uid']; 28 $where['o.uid']=$arr['uid'];
28 } 29 }
  30 + if (!empty($arr['yi'])){
  31 + $where['o.cid']=$arr['yi'];
  32 + }
  33 + if (!empty($arr['er'])){
  34 + $where['o.cids']=['like','%-'.$arr['er'].'-%'];
  35 + }
29 if (!empty($arr['step'])){ 36 if (!empty($arr['step'])){
30 $where['o.step']=$arr['step']; 37 $where['o.step']=$arr['step'];
31 } 38 }
@@ -45,9 +52,23 @@ class ZjOrderController extends AdminBaseController @@ -45,9 +52,23 @@ class ZjOrderController extends AdminBaseController
45 $where1['o.create_time']=['elt',strtotime($arr['end_time'])]; 52 $where1['o.create_time']=['elt',strtotime($arr['end_time'])];
46 } 53 }
47 } 54 }
48 - $all=Db::name('zj_order')->alias('o')->join('user u','o.uid=u.id','left')->where($where)->where($where1)  
49 - ->order('create_time','desc')->field('o.*,u.user_nickname')->paginate(15); 55 + $all=Db::name('zj_order')->alias('o')->join('user u','o.uid=u.id','left')
  56 + ->where($where)->where($where1)->order('create_time','desc')->field('o.*,u.user_nickname')->paginate(15);
50 $all->appends($arr); 57 $all->appends($arr);
  58 +
  59 + //查询商品分类
  60 + $cate=Db::name('zj_category')->where(['delete_time'=>'0'])->field('name,id,cid,grade')->select()->toArray();
  61 + $cate1=[];
  62 + $cate2=[];
  63 + foreach ($cate as $k=>$v){
  64 + if ($cate[$k]['grade']==1){
  65 + $cate1[$k]=$cate[$k];
  66 + }else{
  67 + $cate2[$k]=$cate[$k];
  68 + }
  69 + }
  70 + $cate1=array_values($cate1);
  71 + $cate2=array_values($cate2);
51 $this->assign('start_time', !empty($arr['start_time']) ? $arr['start_time'] : ''); 72 $this->assign('start_time', !empty($arr['start_time']) ? $arr['start_time'] : '');
52 $this->assign('end_time', !empty($arr['end_time']) ? $arr['end_time'] : ''); 73 $this->assign('end_time', !empty($arr['end_time']) ? $arr['end_time'] : '');
53 $this->assign('uid',!empty($arr['uid'])?$arr['uid']:''); 74 $this->assign('uid',!empty($arr['uid'])?$arr['uid']:'');
@@ -55,8 +76,12 @@ class ZjOrderController extends AdminBaseController @@ -55,8 +76,12 @@ class ZjOrderController extends AdminBaseController
55 $this->assign('num',!empty($arr['num'])?$arr['num']:''); 76 $this->assign('num',!empty($arr['num'])?$arr['num']:'');
56 $this->assign('name',!empty($arr['name'])?$arr['name']:''); 77 $this->assign('name',!empty($arr['name'])?$arr['name']:'');
57 $this->assign('mobile',!empty($arr['mobile'])?$arr['mobile']:''); 78 $this->assign('mobile',!empty($arr['mobile'])?$arr['mobile']:'');
  79 + $this->assign('yi',!empty($arr['yi'])?$arr['yi']:'');
  80 + $this->assign('er',!empty($arr['er'])?$arr['er']:'');
58 $this->assign('page',$all->render()); 81 $this->assign('page',$all->render());
59 $this->assign('all',$all->items()); 82 $this->assign('all',$all->items());
  83 + $this->assign('cate1',$cate1);
  84 + $this->assign('cate2',$cate2);
60 return $this->fetch(); 85 return $this->fetch();
61 } 86 }
62 87
@@ -77,6 +102,11 @@ class ZjOrderController extends AdminBaseController @@ -77,6 +102,11 @@ class ZjOrderController extends AdminBaseController
77 $kd=Db::name('zj_kd')->select(); 102 $kd=Db::name('zj_kd')->select();
78 $all=Db::name('zj_order_goods')->alias('og')->join('zj_goods g','og.gid=g.id')->where('oid',$id) 103 $all=Db::name('zj_order_goods')->alias('og')->join('zj_goods g','og.gid=g.id')->where('oid',$id)
79 ->field('g.name,og.num')->select(); 104 ->field('g.name,og.num')->select();
  105 + if ($one['step']>2&&$one['kid']!=0){
  106 + $kdgj=Db::name('zj_kd_order')->where(['kd_num'=>$one['kd_num']])->value('text');
  107 + $kdgj=json_decode($kdgj,true);
  108 + $this->assign('kdgj',$kdgj);
  109 + }
80 $this->assign('kd',$kd); 110 $this->assign('kd',$kd);
81 $this->assign('url',$url); 111 $this->assign('url',$url);
82 $this->assign('one',$one); 112 $this->assign('one',$one);
@@ -91,10 +121,25 @@ class ZjOrderController extends AdminBaseController @@ -91,10 +121,25 @@ class ZjOrderController extends AdminBaseController
91 if ($this->request->param()){ 121 if ($this->request->param()){
92 $param=input('param.'); 122 $param=input('param.');
93 $edit=Db::name('zj_order')->update($param); 123 $edit=Db::name('zj_order')->update($param);
  124 + if ($param['step']=='3'){
  125 + if ($param['kid']=='0'){
  126 + $kds='自提订单';
  127 + }else{
  128 + //引入快递订阅接口
  129 + $kd=new KdnApiController();
  130 + $kds=$kd->orderTracesSubByJson($param['id']);
  131 + $kds=json_decode($kds,true);
  132 + if ($kds['Success']==true){
  133 + $kds='快递状态订阅成功';
  134 + }else{
  135 + $kds='快递状态订阅失败';
  136 + }
  137 + }
  138 + }
94 if (empty($edit)){ 139 if (empty($edit)){
95 - $this->error('修改失败'); 140 + $this->error('修改失败,'.$kds);
96 }else{ 141 }else{
97 - $this->success('修改成功'); 142 + $this->success('修改成功,'.$kds);
98 } 143 }
99 } 144 }
100 } 145 }
@@ -180,12 +225,22 @@ class ZjOrderController extends AdminBaseController @@ -180,12 +225,22 @@ class ZjOrderController extends AdminBaseController
180 if (empty($param['kd_num'])){ 225 if (empty($param['kd_num'])){
181 $this->error('快递单号不能为空'); 226 $this->error('快递单号不能为空');
182 } 227 }
  228 +
183 $param['step']=3; 229 $param['step']=3;
184 $edit=Db::name('zj_order')->update($param); 230 $edit=Db::name('zj_order')->update($param);
  231 + //引入快递订阅接口
  232 + $kd=new KdnApiController();
  233 + $kds=$kd->orderTracesSubByJson($param['id']);
  234 + $kds=json_decode($kds,true);
  235 + if ($kds['Success']==true){
  236 + $kds='快递状态订阅成功';
  237 + }else{
  238 + $kds='快递状态订阅失败';
  239 + }
185 if (empty($edit)){ 240 if (empty($edit)){
186 - $this->error('订单状态更新失败'); 241 + $this->error('订单状态更新失败,'.$kds);
187 }else{ 242 }else{
188 - $this->success('订单状态更新成功'); 243 + $this->success('订单状态更新成功,'.$kds);
189 } 244 }
190 } 245 }
191 } 246 }
@@ -87,7 +87,7 @@ @@ -87,7 +87,7 @@
87 <td> 87 <td>
88 <span> 88 <span>
89 <if condition="$one.step eq 5||$one.step eq 9"> 89 <if condition="$one.step eq 5||$one.step eq 9">
90 - {:date('Y-m-d H:i',$vo.end_time)} 90 + {:date('Y-m-d H:i',$one.end_time)}
91 <elseif condition="$one.step lt 5"> 91 <elseif condition="$one.step lt 5">
92 订单未完成 92 订单未完成
93 <elseif condition="$one.step gt 5&&$one.step neq 9"> 93 <elseif condition="$one.step gt 5&&$one.step neq 9">
@@ -108,6 +108,17 @@ @@ -108,6 +108,17 @@
108 <span>{$one.whole_num}</span> 108 <span>{$one.whole_num}</span>
109 </td> 109 </td>
110 </tr> 110 </tr>
  111 + <if condition="$one.step gt 2 && $one.kid neq 0">
  112 + <tr>
  113 + <th>物流轨迹</th>
  114 + <td>
  115 + <foreach name="kdgj" item="vo">
  116 + <p><span>{$vo.AcceptTime}</span>&nbsp;&nbsp;&nbsp;{$vo.AcceptStation}</p>
  117 + </foreach>
  118 + </td>
  119 + </tr>
  120 + </if>
  121 +
111 </table> 122 </table>
112 123
113 <if condition="$one.step gt 5"> 124 <if condition="$one.step gt 5">
@@ -197,7 +208,8 @@ @@ -197,7 +208,8 @@
197 <tr> 208 <tr>
198 <th>快递公司</th> 209 <th>快递公司</th>
199 <td> 210 <td>
200 - <select name="step" class="form-control" style="width: 120px;"> 211 + <select name="kid" class="form-control" style="width: 120px;">
  212 + <option value="0">自提</option>
201 <foreach name="kd" item="vo"> 213 <foreach name="kd" item="vo">
202 <option value="{$vo.id}" <eq name="$one.kid" value="$vo.id">selected</eq>>{$vo.name}</option> 214 <option value="{$vo.id}" <eq name="$one.kid" value="$vo.id">selected</eq>>{$vo.name}</option>
203 </foreach> 215 </foreach>
@@ -245,6 +257,7 @@ @@ -245,6 +257,7 @@
245 </table> 257 </table>
246 <if condition="$one.step elt 5"> 258 <if condition="$one.step elt 5">
247 <input type="hidden" value="{$one.id}" name="id"> 259 <input type="hidden" value="{$one.id}" name="id">
  260 + <input type="hidden" value="{$one.step}" name="step">
248 <div class="form-group"> 261 <div class="form-group">
249 <div class="col-sm-offset-2 col-sm-10"> 262 <div class="col-sm-offset-2 col-sm-10">
250 <button type="submit" class="btn btn-primary js-ajax-submit">保存</button> 263 <button type="submit" class="btn btn-primary js-ajax-submit">保存</button>
@@ -25,9 +25,22 @@ @@ -25,9 +25,22 @@
25 收货人: 25 收货人:
26 <input class="form-control" type="text" name="name" style="width: 200px;" value="{$name|default=''}" 26 <input class="form-control" type="text" name="name" style="width: 200px;" value="{$name|default=''}"
27 placeholder="请输入收货姓名"> 27 placeholder="请输入收货姓名">
  28 + 一级分类:
  29 + <select name="yi" class="form-control" style="width: 120px;" onchange="lie(this.value,0)">
  30 + <option value>请选择分类</option>
  31 + <foreach name="cate1" item="vo">
  32 + <option value="{$vo.id}" <eq name="$yi" value="$vo.id"> selected </eq> >{$vo.name}</option>
  33 + </foreach>
  34 + </select>
  35 + 二级分类:
  36 + <select name="er" class="form-control" style="width: 120px;" id="er">
  37 + <option value>请选择分类</option>
  38 + </select>
  39 + <br/>
28 手机号: 40 手机号:
29 <input class="form-control" type="number" name="mobile" style="width: 200px;" value="{$mobile|default=''}" 41 <input class="form-control" type="number" name="mobile" style="width: 200px;" value="{$mobile|default=''}"
30 placeholder="请输入收货手机号"> 42 placeholder="请输入收货手机号">
  43 +
31 下单时间: 44 下单时间:
32 <input type="text" class="form-control js-bootstrap-datetime" name="start_time" 45 <input type="text" class="form-control js-bootstrap-datetime" name="start_time"
33 value="{$start_time|default=''}" 46 value="{$start_time|default=''}"
@@ -118,5 +131,42 @@ @@ -118,5 +131,42 @@
118 </form> 131 </form>
119 </div> 132 </div>
120 <script src="__STATIC__/js/admin.js"></script> 133 <script src="__STATIC__/js/admin.js"></script>
  134 +<script>
  135 + //分类默认选中
  136 + var yi="{$yi}";
  137 + var er0="{$er}";
  138 + var er1={:json_encode($cate2)};
  139 +
  140 + function lie(ii,ll) {
  141 + var ee=document.getElementById('er')
  142 + var op=document.createElement('option')
  143 + rem(ee)
  144 + op.text='请选择分类';
  145 + op.value='';
  146 + ee.add(op);
  147 + if (ii!=''){
  148 + for (i=0;i<=er1.length-1;i++){
  149 + if (ii==er1[i]['cid']){
  150 + var opt=document.createElement('option');
  151 + opt.text=er1[i]['name']
  152 + opt.value=er1[i]['id']
  153 + if (ll==er1[i]['id']){
  154 + opt.selected =true
  155 + }
  156 + ee.add(opt)
  157 + }
  158 + }
  159 + }
  160 + }
  161 +
  162 + lie(yi,er0);
  163 +
  164 + //删除option
  165 + function rem(ii) {
  166 + for (i=ii.options.length-1;i>=0;i--){
  167 + ii.remove(i)
  168 + }
  169 + }
  170 +</script>
121 </body> 171 </body>
122 </html> 172 </html>