Bläddra i källkod

批量发货时兼容有赞平台,新增订单相关接口

wufeng 2 år sedan
förälder
incheckning
5211c93877
3 ändrade filer med 66 tillägg och 5 borttagningar
  1. 26 3
      app/admin/controller/Sale.php
  2. 36 1
      app/youzan/controller/Index.php
  3. 4 1
      app/youzan/route/app.php

+ 26 - 3
app/admin/controller/Sale.php

@@ -4172,7 +4172,7 @@ class Sale extends Base
                 $sale_infos = Db::name("sale")
                     ->where('orderCode', $order_out_infos[$value['outCode']]['orderCode'])
                     ->where('is_del', 0)
-                    ->column('id,send_num,wsend_num,status,good_code', 'orderCode');
+                    ->column('id,send_num,wsend_num,status,good_code,order_source', 'orderCode');
 
                 if (!isset($sale_infos[$order_out_infos[$value['outCode']]['orderCode']])) throw new Exception($value['outCode'] . '该发货单对应的销售单未找到');
 
@@ -4275,6 +4275,8 @@ class Sale extends Base
 
                     }
 
+
+
                 } else throw new Exception($value['outCode'] . '发货失败');
 
             }
@@ -4283,13 +4285,34 @@ class Sale extends Base
 
             Db::commit();
 
-            return app_show(0, "发货成功");
-
         } catch (Exception $exception) {
             Db::rollback();
             return error_show(1004, $exception->getMessage());
         }
 
+
+        //如果是有赞订单的话,将发货信息推到有赞
+        //有赞信息有可能推送失败(比如超过72小时,不允许多次修改等),所以不应该和这里的事务放到一起
+        $yz_error = [];
+        foreach ($param['list'] as $value) {
+
+            //每次循环都需要重新查询对应数据,为了数据及时更新
+            $sale_infos = Db::name("sale")
+                ->where('orderCode', $order_out_infos[$value['outCode']]['orderCode'])
+                ->where('is_del', 0)
+                ->column('id,order_source', 'orderCode');
+
+            if ($sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['order_source'] == 5) {
+                $res = curl_request(config('app.yz_domain') . 'api/yz_out_send', ['orderCode' => $order_out_infos[$value['outCode']]['orderCode'], 'out_stype' => isset($value['post_name']) ? $value['post_name'] : '', 'post_code' => $value['post_code'], 'uid' => $createrid, 'uname' => $creater, 'order_out' => $value['outCode']]);
+                $res = json_decode($res, true);
+                if ($res['code'] != 0) $yz_error[] = $res['message'];
+            }
+
+        }
+
+        if (empty($yz_error)) return app_show(0, '发货成功');
+        else app_show(0, '发货成功', $yz_error);
+
     }
 
     //获取物流信息

+ 36 - 1
app/youzan/controller/Index.php

@@ -151,7 +151,7 @@ class Index extends Base
     }
 
     //有赞订单审核
-    public function checkStatus()
+    public function orderCheckStatus()
     {
 
         $param = $this->request->filter('trim')->only(['id', 'status', 'token', 'reason' => '']);
@@ -166,5 +166,40 @@ class Index extends Base
 
     }
 
+    //有赞订单详情
+    public function orderDetail()
+    {
+
+        $id = $this->request->filter('trim')->post('id/d', 0);
+
+        $res = curl_request(config('app.yz_domain') . 'api/yz_order_detail', ['id' => $id]);
+        $res = json_decode($res, true);
+        if ($res['code'] == 0) return app_show(0, '获取成功', $res['data']);
+        else return error_show(1005, $res['message']);
+
+    }
+
+    //有赞订单取消记录
+    public function refundOrderList()
+    {
+        $param = $this->request->filter('trim')->only(['page' => 1, 'size' => 15, 'start_date' => '', 'end_date' => '', 'oid' => ''], 'post');
+
+        $res = curl_request(config('app.yz_domain') . 'api/yz_get_refund_order_list', $param);
+        $res = json_decode($res, true);
+        if ($res['code'] == 0) return app_show(0, '请求成功', $res['data']);
+        else return error_show(1005, $res['message']);
+    }
+
+    //收货地址修改记录
+    public function changeAddressList()
+    {
+        $param = $this->request->filter('trim')->only(['page' => 1, 'size' => 15, 'start_date' => '', 'end_date' => '', 'tid' => ''], 'post');
+
+        $res = curl_request(config('app.yz_domain') . 'api/yz_get_change_address_list', $param);
+        $res = json_decode($res, true);
+        if ($res['code'] == 0) return app_show(0, '请求成功', $res['data']);
+        else return error_show(1005, $res['message']);
+    }
+
 
 }

+ 4 - 1
app/youzan/route/app.php

@@ -15,7 +15,10 @@ route::rule('yz_order_list', 'youzan/Index/getYzOrderList');//获取有赞订单
 //route::rule('yz_check_handle_status', 'youzan/Index/checkHandleStatus');//处理有赞订单(确认或取消)
 route::rule('yz_get_update_good_log_by_yz', 'youzan/Index/getYzUpdateLog');//获取有赞平台修改商品日志,有赞平台
 route::rule('yz_get_update_good_log_by_caixiao', 'youzan/Index/getUpdateGoodLog');//获取修改商品日志,采销系统
-route::rule('yz_check_status', 'youzan/Index/checkStatus');//有赞订单审核
+route::rule('yz_check_status', 'youzan/Index/orderCheckStatus');//有赞订单审核
+route::rule('yz_order_detail', 'youzan/Index/orderDetail');//有赞订单详情
+route::rule('yz_get_refund_order_list', 'youzan/Index/refundOrderList');//有赞订单取消记录
+route::rule('yz_get_change_address_list', 'youzan/Index/changeAddressList');//收货地址修改记录
 
 route::rule('good_off_line', 'youzan/Other/goodOffLineByYouzan');//商品下架(有赞平台操作)
 route::rule('good_delete_by_yz', 'youzan/Other/goodDeleteByYouzan');//商品删除(有赞平台操作)