3 Commits 52b2961e8f ... 04de1dacc9

Author SHA1 Message Date
  zhangguidong 04de1dacc9 快递 2 years ago
  zhangguidong d20a12d3fc 快递 2 years ago
  zhangguidong 56b7abf6c1 快递 2 years ago

+ 56 - 5
application/admin/controller/Orders.php

@@ -109,20 +109,71 @@ class Orders extends Backend
 
             $data=input('row/a');
             $this->validate($data,[
-                'address_id|发货地'=>['require',],
-                'com_id|物流公司'=>['require',],
+                'address_id|发货地'=>['require',],
+                'province|发货方式'=>['require',],
                 'remark|备注'=>['max:100'],
             ]);
-            Db::startTrans();
             $address=\app\admin\model\Address::lock(true)->find($data['address_id']);
             if(!$address){
-                $this->error('地址不存在');
+                $this->error('发货地址不存在');
+            }
+
+            $kuayue1 = [1=>'次日达',2=>'隔日达',3=>'陆运件',4=>'省内次日',5=>'同城次日'];
+            $debangkuaidi1 = [6=>'大件快递360',7=>'重包入户'];
+            $shunfeng1 = [8=>'顺丰标快',9=>'顺丰特快'];
+            $kuaidi_data = [1=>'次日达',2=>'隔日达',3=>'陆运件',4=>'省内次日',5=>'同城次日',6=>'大件快递360',7=>'重包入户',8=>'顺丰标快',9=>'顺丰特快'];
+            $kuayue = [1,2,3,4,5];
+            $debangkuaidi = [6,7];
+            $shunfeng = [8,9];
+            if(in_array($data['province'],$kuayue)){
+                $com_id = 23;
+            }
+            if(in_array($data['province'],$debangkuaidi)){
+                $com_id = 15;
+            }
+            if(in_array($data['province'],$shunfeng)){
+                $com_id = 1;
             }
-            $order->makeSendSelf($address,$data['remark']??'',$data['com_id']);
+            $expType = $kuaidi_data[$data['province']];
+
+            Db::startTrans();
+            $order->makeSendSelf($address,$data['remark']??'',$com_id,$expType);
             Db::commit();
             $this->success();
         }
     }
+
+    /**
+     * 判断是否是同城
+     **/
+    public function is_same_city(){
+        $address_id = $this->request->request("address_id");
+        $order_id = $this->request->request("order_id");
+
+        $address = \app\admin\model\Address::lock(true)->find($address_id)->toArray();
+        if(!$address){
+            $this->error('发货地址不存在');
+        }
+        $order_address = \app\common\model\OrderAddress::where(['order_id'=>$order_id])->find()->toArray();
+        if(!$order_address){
+            $this->error('订单地址不存在');
+        }
+        $cityId = explode(',',$order_address['area']);
+        $to_city = \app\common\model\Area::where(['id'=>$cityId[1]])->value('name');
+        if(!$to_city){
+            $this->error('未获取订单地址');
+        }
+        $from_city = explode("/",$address['area']);
+        if(isset($from_city[1])){
+            $type = '0';
+            if($to_city == $from_city[1]){
+                $type = '1';
+            }
+            $this->success('获取成功','',['type'=>$type]);
+        }
+        $this->error('发货地址格式错误');
+    }
+
     #详情
     public function detail($ids){
         $voucher=input('voucher');

+ 28 - 25
application/admin/view/orders/send.html

@@ -1,6 +1,8 @@
 <form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
+
+    <input id="order_id" class="form-control" name="" type="hidden" value="{$row.id}">
     <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('发货地')}:</label>
+        <label class="control-label col-xs-12 col-sm-2">{:__('发货地')}:</label>
         <div class="col-xs-12 col-sm-8">
             <input
                     id="c-name"
@@ -10,37 +12,38 @@
                     data-source="{:url('/address')}"
                     name="row[address_id]"
                     data-multiple="false"
-                    type="text"
                     data-pagination="false"
+                    data-order-by="id desc"
+                    type="text"
                     value=""
             >
         </div>
     </div>
-<!--    <div class="form-group">-->
-<!--        <label class="control-label col-xs-12 col-sm-2">{:__('发货方式')}:</label>-->
-<!--        <div class="col-xs-12 col-sm-8">-->
+    <div class="form-group" style="display: none;" id="province1">
+        <label class="control-label col-xs-12 col-sm-2">{:__('发货方式')}:</label>
+        <div class="col-xs-12 col-sm-8">
 
-<!--            <select class="form-control" name="province" >-->
-<!--                <option value="1" >次日达</option>-->
-<!--                <option value="2" >隔日达</option>-->
-<!--                <option value="3" >陆运件</option>-->
-<!--                <option value="4" >省内次日</option>-->
-<!--                <option value="5" >同城次日</option>-->
-<!--            </select>-->
-<!--        </div>-->
-<!--    </div>-->
-<!--    <div class="form-group">-->
-<!--        <label class="control-label col-xs-12 col-sm-2">{:__('发货方式')}:</label>-->
-<!--        <div class="col-xs-12 col-sm-8">-->
+            <select class="form-control" name="row[province]" id="province11">
+                <option value="1" >次日达</option>
+                <option value="2" >隔日达</option>
+                <option value="3" >陆运件</option>
+                <option value="4" >省内次日</option>
+                <option value="5" >同城次日</option>
+            </select>
+        </div>
+    </div>
+    <div class="form-group" style="display: none;" id="province2">
+        <label class="control-label col-xs-12 col-sm-2">{:__('发货方式')}:</label>
+        <div class="col-xs-12 col-sm-8">
 
-<!--            <select class="form-control" name="province" >-->
-<!--                <option value="6" selected>德邦快递-大件快递360</option>-->
-<!--                <option value="7" selected>德邦快递-重包入户</option>-->
-<!--                <option value="8" selected>顺丰速运-顺丰标快</option>-->
-<!--                <option value="9" selected>顺丰速运-顺丰特快</option>-->
-<!--            </select>-->
-<!--        </div>-->
-<!--    </div>-->
+            <select class="form-control" name="row[province]" id="province22">
+                <option value="6" selected>德邦快递-大件快递360</option>
+                <option value="7" selected>德邦快递-重包入户</option>
+                <option value="8" selected>顺丰速运-顺丰标快</option>
+                <option value="9" selected>顺丰速运-顺丰特快</option>
+            </select>
+        </div>
+    </div>
 
 <!--    <div class="form-group">-->
 <!--        <label class="control-label col-xs-12 col-sm-2">{:__('物流公司')}:</label>-->

+ 20 - 14
application/common/model/Orders.php

@@ -256,11 +256,11 @@ class Orders extends Model
             $logistics->save($newData);
         }
     }
-    public function makeSendSelf(Address $address,$remark,$comId){
-        $com=LogisticsCompany::where('id','=',$comId)->find();
-        $orderAddress = OrderAddress::where(['order_id'=>$this->id])->find()->toArray();
+    public function makeSendSelf(Address $address,$remark,$com_id,$expType){
+        $com = LogisticsCompany::where('id','=',$com_id)->find();
+//        echo '<pre>';print_r($com);echo '</pre>';exit;
         $newData=[
-            'com_id'=>$comId,
+            'com_id'=>$com_id,
             'remark'=>$remark,
             'from_area'=>$address->area,
             'from_address'=>$address->address,
@@ -270,22 +270,29 @@ class Orders extends Model
             //'trans_no'=>$data['kuaidinum'],
         ];
         $newData = array_filter($newData);
-        $cityId = explode(',',$orderAddress['area']);
-        $toCity = Area::where(['id'=>$cityId[1]])->value('name');
-        $fromCitys = Address::where(['id'=>$address->id])->value('area');
-        $fromCity = explode("/",$fromCitys);
-        $expType = '';
-        if($toCity == $fromCity[1]){
-            $expType = '同城次日';
-        }
-
         $logistics=$this->logistics()->save($newData);
+        if(!$logistics){
+            throw_user('出现错误');
+        }
 
         $names=[];
         foreach ($this->info as $info){
             $names[]=sprintf('%s:%s',$info->goods_name,$info->sku_name);
         }
 
+//        print_r($logistics->from_username);
+//        print_r($logistics->from_mobile);
+//        print_r($logistics->fullArea());
+//        print_r($this->address['name']);
+//        print_r($this->address['mobile']);
+//        print_r($this->address['address']);
+//        print_r($this->info()->sum('num'));
+//        print_r($this->order_no);
+//        print_r($names);
+//        print_r(implode('&',$names));
+//        print_r($expType);
+//        exit;
+
         list($res,$data)=logistics()
             ->setLogistics($com)
             ->setUserName($logistics->from_username)
@@ -301,7 +308,6 @@ class Orders extends Model
             ->setComName($com['code_kd100'])
             ->setPartnerId($com['partner_id'])
             ->labelOrder();
-
         if(!$res){
             throw_user($data);
         }

+ 35 - 0
public/assets/js/backend/orders.js

@@ -190,6 +190,41 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
         },
         send: function () {
             Controller.api.bindevent();
+            $(document).on("change", "#c-name", function(){
+                //后续操作
+
+                var address_id = $(this).val();
+                if(!address_id){
+                    $('#province1').fadeOut();
+                    $('#province2').fadeOut();
+                    $('#province11').val('');
+                    $('#province22').val('');
+                    return false;
+                }
+                $.ajax({
+                    url: 'orders/is_same_city',
+                    data: {address_id: $(this).val(),order_id:$('#order_id').val()},
+                    dataType: 'json',
+                    cache: false,
+                    success: function (row) {
+                        if(!row.code){
+                            Toastr.error(row.msg);
+                        }
+                        if(row.data.type == 1){
+                            $('#province1').fadeIn();
+                            $('#province2').fadeOut();
+                            $('#province22').val('');
+                        }
+                        if(row.data.type == 0){
+                            $('#province1').fadeOut();
+                            $('#province2').fadeIn();
+                            $('#province11').val('');
+                        }
+                    }, error: function () {
+                        Toastr.error(__('Network error'));
+                    }
+                });
+            });
         },
         tax: function () {
             Controller.api.bindevent();