Browse Source

订单到预发货时间再同步卖家云

sunhao 5 years ago
parent
commit
9ea269c8e1

+ 86 - 0
app/Console/Commands/SyncOrderToMj.php

@@ -0,0 +1,86 @@
1
+<?php 
2
+namespace App\Console\Commands;
3
+
4
+use Illuminate\Console\Command;
5
+use DB;
6
+use App\Order;
7
+use App\GoodsSkus;
8
+use App\Goods;
9
+
10
+class SyncOrderToMj extends Command {
11
+
12
+    protected $signature = 'SyncOrderToMj';
13
+
14
+    /**
15
+     * The console command description.
16
+     *
17
+     * @var string
18
+     */
19
+    protected $description = '同步订单到卖家云';
20
+
21
+
22
+    public function handle()
23
+    {
24
+        $this->SyncOrder();
25
+    }
26
+
27
+    public function SyncOrder(){
28
+        //查询需要同步到卖家云的订单
29
+        $today_date = date('Y-m-d');
30
+        echo "\n订单同步时间: " . date('Y-m-d H:i:s');
31
+        $result = Order::where('delivery_date', '=', $today_date)->where('warehouse', 3)->where('is_del', 0)->where('status','>=', 2)->whereNull('orderCode')->lists('id');
32
+
33
+        if(empty($result)){
34
+            return;
35
+        }
36
+
37
+        foreach($result as $id){
38
+            $res = $this->syncOrderToMj($id);
39
+            if(!$res){
40
+                echo "\n订单ID:".$id." 同步失败";
41
+            }else{
42
+                echo "\n订单ID:".$id." 同步成功";
43
+            }
44
+        }
45
+    }
46
+
47
+    /**
48
+     * 订单同步到卖家云
49
+     */
50
+    public function syncOrderToMj($id, $order = []){
51
+        if( empty($order) ){ 
52
+            $order = Order::select('eshopCode','outerCode','status','customerName','shippingType','expressCompanyCode','expressCompanyName','receiverName','receiverMobile','receiverPhone','receiverState','receiverCity','receiverDistrict','receiverStreet','receiverAddress','buyerPostageFee','discountFee','adjustFee','serviceFee','paymentMethod','paymentType','paymentAccount','paymentTime','receivedAmount','buyerMemo','sellerMemo','createTime','modifyTime')->where('id', $id)->first();
53
+
54
+            $order = json_decode(json_encode($order), true);
55
+            $skus = DB::table('order_goods_skus')->where('order_id', $id)->get();
56
+            $skus = json_decode(json_encode($skus), true);
57
+            foreach($skus as $k=>$v){
58
+                $sku_info = GoodsSkus::where('id', $v['sku_id'])->first();
59
+                $goods_info = Goods::where('id', $v['goods_id'])->first();
60
+                $params = array();
61
+                $params['outerCode'] = $order['outerCode']+$k+1; //外部平台中子订单编码
62
+                $params['outerParentCode'] = $order['outerCode']; //外部平台中订单编码
63
+                $params['goodsCode'] = $sku_info->goodsCode;// 
64
+                $params['skuCode'] = $v['sku_id']; 
65
+                #商品名称
66
+                $params['goodsName'] = $goods_info->name;
67
+                $params['propertiesName'] = $sku_info->propsName;
68
+                //$params['goodsName'] = '海钓黄翅鱼';//$goods->code; 
69
+                $params['price'] = $v['price'];
70
+                $params['quantity'] = $v['num'];
71
+                $params['discountFee'] = 0;
72
+                $params['adjustFee'] = 0;
73
+                $params['refundStatus'] = '正常';
74
+                $order['skuList'][] = $params;
75
+            }
76
+        }
77
+        //卖家云添加订单 ->改为审核通过再同步卖家云
78
+        $mj_add = Order::mjOrderAdd($order);
79
+        //同步卖家云订单数据到本系统
80
+        $mjorder = array();
81
+        $mjorder['orderCode'] = isset($mj_add['order']['code']) ? $mj_add['order']['code'] : '-1';
82
+        Order::where('id', $id)->update($mjorder);
83
+        return $mj_add;
84
+    }
85
+
86
+}

+ 1 - 0
app/Console/Kernel.php

@@ -30,6 +30,7 @@ class Kernel extends ConsoleKernel {
30 30
         'App\Console\Commands\DisRoiByDay45History',
31 31
         'App\Console\Commands\SyncMjOrderStatus',
32 32
         'App\Console\Commands\SyncMjWarehouse',
33
+        'App\Console\Commands\SyncOrderToMj',
33 34
 
34 35
         
35 36
     ];

+ 9 - 5
app/Http/Controllers/Admin/OrderController.php

@@ -814,15 +814,18 @@ class OrderController extends Controller
814 814
         $id = (int)$request->input('id');
815 815
         //获取订单原信息
816 816
         $old_order = DB::table('order')->where('id', $id)->first();
817
+        $today_date = date('Y-m-d');
817 818
         //是否同步卖家
818 819
         $mjFlag = 0;
819 820
         if($order['warehouse'] == 3 && $old_order->status >= 2 ){
820
-            $mjFlag = 2; //订单更新同步卖家云
821
-            if( $old_order->warehouse != 3 ){
821
+            if($old_order->orderCode>0){
822
+                $mjFlag = 2; //订单已存在卖家云,更新同步到卖家云
823
+            } 
824
+            if( $old_order->warehouse != 3 && $order['delivery_date']<=$today_date){
822 825
                 //订单其他仓变c仓同步到卖家云
823 826
                 $mjFlag = 1;
824 827
             }
825
-            //判断是否在卖家云存在
828
+            //获取订单在卖家云信息
826 829
             $mjOrder = $this->getMjOrder($id, $old_order->outerCode);
827 830
         
828 831
             $orderSkus = [];
@@ -1052,8 +1055,9 @@ class OrderController extends Controller
1052 1055
                 #发提醒短信
1053 1056
                 //$this->sendRemind($self_id, $id, $order->status);
1054 1057
 
1055
-                #如果审核通过,c仓, 同步卖家云
1056
-                if($order->status == 2 && $order->warehouse == 3){
1058
+                $today_date = date('Y-m-d');
1059
+                #如果审核通过,c仓, 并且到预发货时间,同步卖家云
1060
+                if($order->status == 2 && $order->warehouse == 3 && $order->delivery_date <= $today_date){
1057 1061
                     $syncMj = $this->syncOrderToMj($id);
1058 1062
                     if( $syncMj == false ){
1059 1063
                         throw new Exception("订单同步到卖家云失败");