Browse Source

add to locla

stanley-king 4 years ago
parent
commit
a722ffa158
2 changed files with 30 additions and 21 deletions
  1. 28 20
      application/index/controller/Order.php
  2. 2 1
      application/index/model/OrderModel.php

+ 28 - 20
application/index/controller/Order.php

@@ -14,6 +14,10 @@ class Order extends Base
 
 
     public function CheckOrder(){
     public function CheckOrder(){
         $order_sn = input('param.order_sn');
         $order_sn = input('param.order_sn');
+        //todo 检查订单是否存在。
+        //1,如果订单已经存在,并且在传入的柜子和箱子中,返回正确,做一下操作记录。
+        //2,如果订单已经存在,但不在传入的柜子和箱子中,返回错误。
+        //3,其余返回正确。
 
 
         //商网接口
         //商网接口
         $result = request_post(self::base_url . '/check' , ['orderCode' => $order_sn]);
         $result = request_post(self::base_url . '/check' , ['orderCode' => $order_sn]);
@@ -38,19 +42,26 @@ class Order extends Base
         $order_sn   = input('param.order_sn');
         $order_sn   = input('param.order_sn');
         $trunk      = input('param.trunk');
         $trunk      = input('param.trunk');
         $cabinet_code    = input('param.cabinet');
         $cabinet_code    = input('param.cabinet');
+
         $cabinet = CabinetModel::where('cabinet_code',$cabinet_code)->find();
         $cabinet = CabinetModel::where('cabinet_code',$cabinet_code)->find();
-        $cabinet = $cabinet['cabinet_number'];
-        $checkNumber = $this->CheckNumber($cabinet , $trunk);
+
+        $cabinet_number = $cabinet['id'];
+        $checkNumber = $this->hasBox($cabinet_number , $trunk);
         if($checkNumber == false){
         if($checkNumber == false){
             json_error(2005);
             json_error(2005);
         }
         }
 
 
         $code = $this->createRandCode();
         $code = $this->createRandCode();
-        $ret = $this->CreateOrderBindBox($order_sn , $trunk , $cabinet);
+        $ret  = $this->CreateOrder($order_sn , $trunk , $cabinet_number,$code);
+
         if($ret['code'] != 1){
         if($ret['code'] != 1){
             json_error(1006);
             json_error(1006);
         }else{
         }else{
-            $this->box_action_record($cabinet , $trunk , 1);
+            $alias = $cabinet['alias'];
+            $this->box_action_record($cabinet_number , $trunk , 1);
+            $msg = "{$alias}柜门{$trunk}箱门,密码信息{$code}";
+            $result = request_post(self::base_url . '/deliver' , ['orderCode' => $order_sn,"boxMsg" => $msg]);
+            //todo 存储到消息记录表里面。
             json_success();
             json_success();
         }
         }
     }
     }
@@ -62,7 +73,6 @@ class Order extends Base
         if(empty($order)){
         if(empty($order)){
             json_error(2003);
             json_error(2003);
         }
         }
-        //发送商网验证结果柜号 order_sn
 
 
         //返回access
         //返回access
         $data['code'] = $code;
         $data['code'] = $code;
@@ -111,27 +121,24 @@ class Order extends Base
         json_success($return);
         json_success($return);
     }
     }
 
 
-    private function CheckNumber($cabinet_number , $box_number){
+    private function hasBox($cabinet_number , $box_number)
+    {
         $BoxModel = new BoxModel();
         $BoxModel = new BoxModel();
         $box = $BoxModel->getOneCabinetBox($cabinet_number , $box_number);
         $box = $BoxModel->getOneCabinetBox($cabinet_number , $box_number);
-        if($box['box_status'] == 1){
-            return true;
-        }else{
-            return false;
-        }
+        return !empty($box);
     }
     }
 
 
-
     /**
     /**
      * 生成订单并绑定箱子
      * 生成订单并绑定箱子
     */
     */
-    private function CreateOrderBindBox($order_sn , $box_number , $cabinet,$code)
+    private function CreateOrder($order_sn , $box_number , $cabinet, $code)
     {
     {
         $data['order_sn'] = $order_sn;
         $data['order_sn'] = $order_sn;
         $data['cabinet_number'] = $cabinet;
         $data['cabinet_number'] = $cabinet;
         $data['box_number'] = $box_number;
         $data['box_number'] = $box_number;
         $data['code'] = $code;
         $data['code'] = $code;
         $data['enter_time'] = date("Y-m-d H:i:s");
         $data['enter_time'] = date("Y-m-d H:i:s");
+
         $OrderModel = new OrderModel();
         $OrderModel = new OrderModel();
         return $OrderModel->CreateOrder($data);
         return $OrderModel->CreateOrder($data);
     }
     }
@@ -153,13 +160,14 @@ class Order extends Base
     */
     */
     private function createRandCode()
     private function createRandCode()
     {
     {
-        $code = rand(100000,999999);
-        $BoxModel = new BoxModel();
-        $box = $BoxModel->where('fetch_code',$code)->find();
-        if(!empty($box)){
-            $this->createRandCode();
+        while (true)
+        {
+            $code = rand(100000,999999);
+            $BoxModel = new BoxModel();
+            $box = $BoxModel->where('fetch_code',$code)->find();
+            if(empty($box)){
+                return $code;
+            }
         }
         }
-        return $code;
     }
     }
-
 }
 }

+ 2 - 1
application/index/model/OrderModel.php

@@ -28,7 +28,8 @@ class OrderModel extends Model{
                 return msg(-1, '', $this->getError());
                 return msg(-1, '', $this->getError());
             }else{
             }else{
                 $BoxModel = new BoxModel();
                 $BoxModel = new BoxModel();
-                $ret = $BoxModel->save(['order_sn' => $params['order_sn'] , 'fetch_code' => $params['code'] , 'box_status' => 1] , ['cabinet_number' => $params['cabinet_number'] , 'box_number' => $params['box_number']]);
+                $ret = $BoxModel->save(['order_sn' => $params['order_sn'] , 'fetch_code' => $params['code'] , 'box_status' => 1] ,
+                    ['cabinet_number' => $params['cabinet_number'] , 'box_number' => $params['box_number']]);
                 if($ret === false){
                 if($ret === false){
                     return msg(-1, '', $this->getError());
                     return msg(-1, '', $this->getError());
                 }else{
                 }else{