Explorar o código

fix query status

stanley-king %!s(int64=6) %!d(string=hai) anos
pai
achega
81f0827172

+ 2 - 0
core/framework/libraries/log.php

@@ -123,12 +123,14 @@ class Log
             }
             self::$cur_file_name = $log_file;
             self::$cur_file = fopen($log_file,'a+');
+            chmod($log_file,777);
         }
 
         $content = "[{$pid} {$now}] {$level}: {$message}\r\n";
         $ret = fwrite(self::$cur_file,$content);
         if($ret === false) {
             self::$cur_file = fopen($log_file,'a+');
+            chmod($log_file,777);
             fwrite(self::$cur_file,$content);
         }
     }

+ 111 - 29
data/logic/delivery.logic.php

@@ -12,6 +12,115 @@ defined('InShopNC') or exit('Access Invalid!');
 
 require_once (BASE_CORE_PATH . '/framework/function/http.php');
 
+class OMSOrderStatus
+{
+    private $mResp;
+
+    const intercept_success = 1;
+    const send_success = 7;
+
+    public function __construct($resp)
+    {
+        $this->mResp = $resp;
+    }
+
+    public function cancel_status(&$status_text)
+    {
+        $status = intval($this->mResp['interceptStatus']);
+
+        switch ($status) {
+            case 0:
+                $status_text = '待拦截';
+                break;
+            case 1:
+                $status_text = '拦截成功';
+                break;
+            case 2:
+                $status_text = '拦截失败';
+                break;
+            case 3:
+                $status_text = '已进入拦截队列不重复拦截';
+                break;
+            default:
+                $status_text = 'Oms系统未定义的状态';
+                break;
+        }
+
+        return $status;
+    }
+
+    public function cancel_success(&$status_text) {
+        return ($this->cancel_status($status_text) == self::intercept_success);
+    }
+
+    public function send_status(&$status_text)
+    {
+        $status = intval($this->mResp['status']);
+
+        switch ($status)
+        {
+            case 0:
+                $status_text = $this->message();
+                break;
+            case 1:
+                $status_text = '新订单';
+                break;
+            case 2:
+                $status_text = '等待仓库处理';
+                break;
+            case 99:
+                $status_text = '已拦截';
+                break;
+            case 90:
+                $status_text = '库存不足';
+                break;
+            case 7:
+                $status_text = '已发货';
+                break;
+            case -99:
+                $status_text = '发货失败';
+                break;
+            case -1:
+                $status_text = '异常订单';
+                break;
+            case -2:
+                $status_text = '订单关闭';
+                break;
+            case -3:
+                $status_text = '订单已存在(没有进行拦截的订单不予更新)';
+                break;
+            default:
+                $status_text = 'Oms系统未定义的状态';
+                break;
+        }
+
+        return $status;
+    }
+    public function send_success(&$status_text) {
+        return ($this->send_status($status_text) == self::send_success);
+    }
+    public function message() {
+        return $this->mResp['message'];
+    }
+    public function send_time() {
+        if(empty($this->mResp['sendTime'])) {
+            return 0;
+        }
+        else {
+            return strtotime($this->mResp['sendTime']);
+        }
+    }
+    public function express() {
+        return $this->mResp['express'];
+    }
+    public function company() {
+        return $this->mResp['expressCompany'];
+    }
+    public function order_sn() {
+        return $this->mResp['tid'];
+    }
+}
+
 class deliveryLogic
 {
     const oms_url = 'https://oapi.lrlz.com/lrlzApiRest/router/rest';
@@ -196,26 +305,6 @@ class deliveryLogic
             Log::record(__METHOD__ . " NET Error",Log::ERR);
             return false;
         }
-        else {
-            Log::record($resp,Log::DEBUG);
-            return $this->order_status($resp,$err_state,$reson);
-        }
-    }
-
-    public function cancel_status($order_sn)
-    {
-        $status = $this->query_order($order_sn);
-        if($status == self::CANCEL_SUCCESS) {
-            return true;
-        }
-        else {
-            return false;
-        }
-    }
-
-    private function order_status($resp,&$err_state,&$reson)
-    {
-        $err_state = 0;
 
         //1:成功 0 :失败
         // 1:新订单 2:等待仓库处理 99:已拦截 90:库存不足 7:已发货
@@ -227,14 +316,8 @@ class deliveryLogic
             {
                 if (!empty($result['data']) && is_array($result['data']) && count($result['data']) > 0)
                 {
-                    // 填充错误理由
-                    $reson = $result['data'][0]['errorMessge'];
-                    if (!empty($result['data'][0]['status'])) {
-                        $status = intval($result['data'][0]['status']);
-                        return $status;
-                    } else {
-                        return false;
-                    }
+                    $status = new OMSOrderStatus($result['data'][0]);
+                    return $status;
                 }
             }
         }
@@ -242,7 +325,6 @@ class deliveryLogic
         return false;
     }
 
-
     /**
      * @param $pay_sn
      * @param $trade_no

+ 4 - 35
shop/control/store_refund.php

@@ -135,43 +135,12 @@ class store_refundControl extends BaseSellerControl {
         Log::record("order_sn = {$order_sn}",Log::DEBUG);
         $delivery = Logic('delivery');
         $status = $delivery->query_order($order_sn);
-        if($status > 0)
-        {
-            // 1:新订单 2:等待仓库处理 99:已拦截 90:库存不足 7:已发货
-            // -99:发货失败 -2:订单关闭 -3:订单已存在(没有进行拦截的订单不予更新) -1:异常订单 -2:订单关闭
-            if($status == 1) {
-                return '新订单';
-            }
-            elseif ($status == 2) {
-                return '等待仓库处理';
-            }
-            elseif ($status == 99) {
-                return '已拦截';
-            }
-            elseif ($status == 90) {
-                return '库存不足';
-            }
-            elseif ($status == 7) {
-                return '已发货';
-            }
-            elseif ($status == -99) {
-                return '发货失败';
-            }
-            elseif ($status == -1) {
-                return '异常订单';
-            }
-            elseif ($status == -2) {
-                return '订单关闭';
-            }
-            elseif ($status == -3) {
-                return '订单已存在(没有进行拦截的订单不予更新)';
-            }
-            else {
-                return '没有该订单状态,请去OMS系统查询';
-            }
+        if($status === false) {
+            return '请求失败,请刷新';
         }
         else {
-            return '查询失败,请人工到OMS系统查询';
+            $status->cancel_status($staus_text);
+            return $staus_text;
         }
     }
 

+ 9 - 1
test/TestOrder.php

@@ -220,7 +220,15 @@ class TestOrder extends PHPUnit_Framework_TestCase
     public function testQueryOrder()
     {
         $delivery = Logic('delivery');
-        $order_sn = '2000000000717601';
+        $order_sn = '2000000004387103';
         $status = $delivery->query_order($order_sn);
+        $time = $status->send_time();
+    }
+
+    public function testCancelOrder()
+    {
+        $delivery = Logic('delivery');
+        $order_sn = '2000000004385101';
+        $status = $delivery->cancel_order($order_sn);
     }
 }