Browse Source

add local

stanley-king 4 years ago
parent
commit
f740fc29e4
1 changed files with 55 additions and 40 deletions
  1. 55 40
      application/index/controller/Order.php

+ 55 - 40
application/index/controller/Order.php

@@ -43,43 +43,70 @@ class Order extends Base
     /**
      * 自提柜向服务器上报
      */
-    public function RecordStore(){
-        $order_sn   = input('param.order_sn');
-        $trunk      = input('param.trunk');
-        $cabinet_code    = input('param.cabinet');
+    public function RecordStore()
+    {
+        $order_sn = input('param.order_sn');
+        $trunk = input('param.trunk');
+        $cabinet_code = input('param.cabinet');
 
-        $cabinet = CabinetModel::where('cabinet_code',$cabinet_code)->find();
-        if(empty($cabinet)){
-            json_error(1008,'找不到柜子');
+        $cabinet = CabinetModel::where('cabinet_code', $cabinet_code)->find();
+        if (empty($cabinet)) {
+            json_error(1008, '找不到柜子');
         }
         $cabinet_number = $cabinet['id'];
 
         $code = $this->createRandCode();
-        $ret  = $this->CreateOrder($order_sn , $trunk , $cabinet_number,$code);
+        $ret = $this->CreateOrder($order_sn, $trunk, $cabinet_number, $code);
 
-        if($ret['code'] != 1) {
+        if ($ret['code'] != 1) {
             json_error(1006);
         }
-        $alias = $cabinet['alias'];
-        $this->box_action_record($cabinet_number , $trunk , 1 , $order_sn , $alias);
 
-        $msg = "{$alias}柜门{$trunk}箱门,密码信息{$code}";
+        return $this->report($order_sn, $cabinet_number,$cabinet['alias'], $trunk, $code);
+    }
+
+    private function report($order_sn,$cabinet_number,$alias,$trunk, $code)
+    {
+        $url = self::base_url . '/deliver';
+
+        $msg = "{$alias}柜门{$trunk}箱门,取件码{$code}";
         $postData['orderCode'] = $order_sn;
         $postData['boxMsg'] = $msg;
         $postData = json_encode($postData);
-        $result = http_post_json(self::base_url . '/deliver' , $postData);
-        if($result == false){
-            Log::record('RecordStore Error:'.$result);
+        Log::record("report msg:{$msg}");
+
+        $max_times = 5;
+        for ($i=0; $i < $max_times ; $i++) {
+            $result = http_post_json($url, $postData);
+            if($result != false) {
+                break;
+            }
+            else {
+                Log::record("repost Error:{$i} : {$result}");
+            }
+        }
+
+        if ($result == false) {
+            Log::record('RecordStore Error:' . $result);
+            $msg = "商网连接错误,错误信息:{$result}";
+            $this->CreateMsg($cabinet_number, $trunk, $msg, $order_sn, 4);
             json_error(3000);
         }
-        Log::record('RecordStore Success:');
-        Log::record($result);
-        $result = json_decode($result,true);
-        if($result['code'] != 0){
-            json_return($result['code'] , [] , $result['message']);
+        else
+        {
+            Log::record("RecordStore Success result:{$result}");
+            $result = json_decode($result,true);
+            if($result['code'] != 0){
+                $msg = "错误码:{$result['code']},错误信息:{$result['message']}";
+                $this->CreateMsg($cabinet_number,$trunk,$msg,$order_sn,4);
+                json_return($result['code'] , [] , $result['message']);
+            }
+            else {
+                $this->box_action_record($cabinet_number , $trunk , 1 , $order_sn , $alias);
+                $this->CreateMsg($cabinet_number,$trunk,$msg,$order_sn,1);
+                json_success([]);
+            }
         }
-        $this->CreateMsg($cabinet_number,$trunk,$msg,$order_sn,1);
-        json_success([]);
     }
 
     public function CheckFcode(){
@@ -193,8 +220,8 @@ class Order extends Base
                 json_error(1007,'日期有误');
             }
             $start_time = $param['start_time'];
-
-
+            
+            
             $end_time = $param['end_time'];
             $TimeWhere[] = ['enter_time','between',"$start_time,$end_time"];
         }
@@ -231,20 +258,8 @@ class Order extends Base
         $cabinet = CabinetModel::find($cabinet_number);
         $alias = $cabinet['alias'];
         $code = $box['fetch_code'];
-        $msg = "{$alias}柜门{$box_number}箱门,密码信息{$code}";
-        $postData['orderCode'] = $order_sn;
-        $postData['boxMsg'] = $msg;
-        $postData = json_encode($postData);
-        $result = http_post_json(self::base_url . '/deliver' , $postData);
-        if($result == false){
-            json_error(3000);
-        }
-        $result = json_decode($result,true);
-        if($result['code'] != 0){
-            json_return($result['code'] , [] , $result['message']);
-        }
-        $this->CreateMsg($cabinet_number,$box_number,$msg,$order_sn,3);
-        json_success([]);
+
+        return $this->report($order_sn,$cabinet_number,$alias,$box_number,$code);
     }
 
     private function hasBox($cabinet_number , $box_number)
@@ -265,7 +280,7 @@ class Order extends Base
     }
     /**
      * 生成订单并绑定箱子
-     */
+    */
     private function CreateOrder($order_sn , $box_number , $cabinet, $code)
     {
         $data['order_sn'] = $order_sn;
@@ -294,7 +309,7 @@ class Order extends Base
 
     /**
      * 生成校验码
-     */
+    */
     private function createRandCode()
     {
         while (true)