kevin_zhangl 2 년 전
부모
커밋
ede3a16b05
2개의 변경된 파일47개의 추가작업 그리고 63개의 파일을 삭제
  1. 15 13
      common/helpers/Logistics.php
  2. 32 50
      frontendApi/modules/v1/controllers/ShopController.php

+ 15 - 13
common/helpers/Logistics.php

@@ -2,6 +2,7 @@
 
 namespace common\helpers;
 
+use common\models\OrderGoods;
 use common\models\Region;
 use Yii;
 
@@ -108,19 +109,18 @@ class Logistics
     // 2.创建订单和产品(以前不存在/已提交的产品).
     function createOrder($order)
     {
-        $baseOrder = $order[0];
         $request = [
-            'order_no' => $baseOrder['SN'],   // 客户系统中的订单号
+            'order_no' => $order['SN'],   // 客户系统中的订单号
             'delivery_method_id' => '60', // 快递方式ID. TODO: 133(test)
             'warehouse_id' => '1',   // 仓库ID. TODO:
             'country' => 'China',    // 收件人国家 Malaysia
-            'state' => Region::getCnName($baseOrder['PROVINCE']), // ,   // 收件人省 Johor(test)
-            'city' => Region::getCnName($baseOrder['CITY']) . Region::getCnName($baseOrder['COUNTY']),   // 收件市县
-            'post_code' => $baseOrder['ZIP_CODE'], // 收件人邮政编码
-            'address' => $baseOrder['ADDRESS'],    // 收件人送货地址
-            'consignee' => $baseOrder['CONSIGNEE_REAL_NAME'],  // 收货人姓名,使用订单中的收货人真实姓名
-            'consignee_ic_number' => $baseOrder['CONSIGNEE_ID_NO'], // 收件人身份证号
-            'telephone' => $baseOrder['MOBILE'],  // 收件人电话号码
+            'state' => Region::getCnName($order['PROVINCE']), // ,   // 收件人省 Johor(test)
+            'city' => Region::getCnName($order['CITY']) . Region::getCnName($order['COUNTY']),   // 收件市县
+            'post_code' => $order['ZIP_CODE'], // 收件人邮政编码
+            'address' => $order['ADDRESS'],    // 收件人送货地址
+            'consignee' => $order['CONSIGNEE_REAL_NAME'],  // 收货人姓名,使用订单中的收货人真实姓名
+            'consignee_ic_number' => $order['CONSIGNEE_ID_NO'], // 收件人身份证号
+            'telephone' => $order['MOBILE'],  // 收件人电话号码
             'sender' => 'Elken',    // 发件人名字
             'sender_country' => 'Malaysia',    // 发件人国家
             'sender_state' => 'Selangor', // ,   // 发件人省
@@ -131,8 +131,11 @@ class Logistics
             'volumetric_details' => '3*4*20',    // 规格
         ];
 
+        // 查询商品
+        $orderGoods = OrderGoods::find()->where('ORDER_SN=:ORDER_SN', [':ORDER_SN' => $order['SN']])->select('ORDER_SN,REAL_PRICE,BUY_NUMS,SKU_CODE,GOODS_TITLE')->asArray()->all();
+
         $products = [];
-        foreach ($order as $item) {
+        foreach ($orderGoods as $item) {
             $products[] = [
                 'product_no' => $item['SKU_CODE'], // 客户系统中的产品编号
                 'product_name' => $item['GOODS_TITLE'],   // 产品名称
@@ -146,9 +149,8 @@ class Logistics
         }
         $request['products'] = $products;
 
-        LoggerTool::info(['actionLogisticsOrder', $request]);
-
-        return $this->curl(self::createOrderUrl, $request);
+        return $request;
+//        return $this->curl(self::createOrderUrl, $request);
     }
 
     // 3.获取产品/包裹的重量和状态.

+ 32 - 50
frontendApi/modules/v1/controllers/ShopController.php

@@ -503,40 +503,19 @@ class ShopController extends BaseController {
         $createdAtStart = strtotime('yesterday');
         $createdAtEnd = strtotime(date('Y-m-d')) - 1;
         // 早5点推送,前一天0-24点的订单
-//        $orderList = OrderGoods::find()
-//            ->alias('OG')
-//            ->where(
-//                '(O.CREATED_AT BETWEEN :CREATED_AT_START AND :CREATED_AT_END) AND O.STATUS=:STATUS AND O.SEND_AT=:SEND_AT AND PAY_TYPE=:PAY_TYPE',
-//                [
-//                    ':CREATED_AT_START' => $createdAtStart,
-//                    ':CREATED_AT_END' => $createdAtEnd,
-//                    ':STATUS' => \Yii::$app->params['orderStatus']['paid']['value'],
-//                    ':SEND_AT' => 0,
-//                    'PAY_TYPE' => 'online',
-//                ]
-//            )
-//            ->select('OG.ORDER_SN,OG.REAL_PRICE,OG.BUY_NUMS,OG.SKU_CODE,OG.GOODS_TITLE,OG.REAL_PV,O.*,U.REAL_NAME')
-//            ->join('LEFT JOIN', Order::tableName() . ' AS O', 'OG.ORDER_SN=O.SN')
-//            ->join('LEFT JOIN', User::tableName() . ' AS U', 'U.ID=O.USER_ID')
-//            ->asArray()
-//            ->all();
-
-
-        // 早5点推送,前一天0-24点的订单
-        $sql = 'SELECT `OG`.`ORDER_SN`, `OG`.`REAL_PRICE`, `OG`.`BUY_NUMS`, `OG`.`SKU_CODE`, `OG`.`GOODS_TITLE`, `OG`.`REAL_PV`, `O`.*, `U`.`REAL_NAME` FROM `AR_ORDER_GOODS` `OG` 
-                LEFT JOIN `AR_ORDER` `O` ON OG.ORDER_SN=O.SN 
-                LEFT JOIN `AR_USER` `U` ON U.ID=O.USER_ID 
-                WHERE (O.CREATED_AT BETWEEN :CREATED_AT_START AND :CREATED_AT_END) AND O.STATUS=:STATUS AND O.SEND_AT=:SEND_AT AND PAY_TYPE=:PAY_TYPE';
-        $orderList = Yii::$app->db->createCommand($sql)->bindValues(                [
-            ':CREATED_AT_START' => $createdAtStart,
-            ':CREATED_AT_END' => $createdAtEnd,
-            ':STATUS' => \Yii::$app->params['orderStatus']['paid']['value'],
-            ':SEND_AT' => 0,
-            ':PAY_TYPE' => 'online',
-        ])->queryAll();
-
-        LoggerTool::warning($orderList);
-        exit();
+        $orderList = Order::find()
+            ->where(
+                'CREATED_AT BETWEEN :CREATED_AT_START AND :CREATED_AT_END) AND STATUS=:STATUS AND SEND_AT=:SEND_AT AND PAY_TYPE=:PAY_TYPE',
+                [
+                    ':CREATED_AT_START' => $createdAtStart,
+                    ':CREATED_AT_END' => $createdAtEnd,
+                    ':STATUS' => \Yii::$app->params['orderStatus']['paid']['value'],
+                    ':SEND_AT' => 0,
+                    'PAY_TYPE' => 'online',
+                ]
+            )
+            ->asArray()
+            ->all();
 
         $orderSnSuccess = [];
         $orderSnFailed = [];
@@ -544,25 +523,28 @@ class ShopController extends BaseController {
         foreach ($orderList as $order) {
             // 发送wst仓库系统
             $response = $logistics->createOrder($order);
-            LoggerTool::info($response);
-            if ($response['success'] == 1) {
-                // 写入mongo
-                Tool::wstOrderCall($response['data']);
-                $orderSnSuccess[] = $order['SN'];
-            } else {
-                $orderSnFailed[] = $order['SN'];
-            }
+            LoggerTool::warning($response);
+//            if ($response['success'] == 1) {
+//                // 写入mongo
+//                Tool::wstOrderCall($response['data']);
+//                $orderSnSuccess[] = $order['SN'];
+//            } else {
+//                $orderSnFailed[] = $order['SN'];
+//            }
+
+            $orderSnSuccess[] = $response;
         }
 
+        return static::notice($orderSnSuccess);
+
         // 更新db中订单推送成功状态
-        if (count($orderSnSuccess) > 0) {
-            Order::updateAll(['SEND_AT' => time()], 'SN IN (:SN)', [':SN' => implode("', '", $orderSnSuccess)]);
-        }
-        if (count($orderSnFailed) > 0) {
-            // 发送钉钉通知
-//            DingTalk::sendNotice('定时推送海外订单到wst失败订单号:' . implode($orderSnFailed));
-        }
+//        if (count($orderSnSuccess) > 0) {
+//            Order::updateAll(['SEND_AT' => time()], 'SN IN (:SN)', [':SN' => implode("', '", $orderSnSuccess)]);
+//        }
+//        if (count($orderSnFailed) > 0) {
+//            // 发送预警通知
+//        }
 
-        return static::notice(sprintf('wstLogisticsAutoSend success order count{%d}, orderSN[%s]; failed count{%d}, orderSN[%s]', count($orderSnSuccess), implode(', ', $orderSnSuccess), count($orderSnFailed), implode(', ', $orderSnFailed)));
+//        return static::notice(sprintf('wstLogisticsAutoSend success order count{%d}, orderSN[%s]; failed count{%d}, orderSN[%s]', count($orderSnSuccess), implode(', ', $orderSnSuccess), count($orderSnFailed), implode(', ', $orderSnFailed)));
     }
 }