ayHaru 4 лет назад
Родитель
Сommit
b77b77d3bc

+ 1 - 5
application/common.php

@@ -45,11 +45,7 @@ function json_return($code,$data=[],$msg='')
 
 function json_success($data=[],$msg='ok')
 {
-    json_return(['code'=>0,'data'=>$data,'msg'=>$msg],JSON_UNESCAPED_UNICODE );
-}
-function json_error($code,$data=[],$msg='')
-{
-    json_return(['code'=>$code,'data'=>$data,'msg'=>$msg],JSON_UNESCAPED_UNICODE );
+    json_return(0, $data, $msg);
 }
 
 

+ 42 - 4
application/index/controller/Cabinet.php

@@ -6,8 +6,10 @@ define('BASE_ROOT_PATH',str_replace('/application/index/controller','',dirname(_
 require_once(BASE_ROOT_PATH . '/extend/queue.php');
 require_once(BASE_ROOT_PATH . '/extend/queue.logic.php');
 
+use app\index\model\BoxActionModel;
 use app\index\model\CabinetModel;
 use app\index\model\BoxModel;
+use app\index\model\OrderModel;
 use think\Session;
 use QueueClient;
 use QueueServer;
@@ -20,6 +22,12 @@ class Cabinet extends Base
      */
     public function check_fcode(){
         $code = input('param.code');
+        $OrderModel = new OrderModel();
+        $result = $OrderModel->check_fcode($code);
+        if($result['code'] != 1){
+            return json(json_error_exception('1009'));
+        }
+        json_success($result['data']);
     }
     /**
      * 自提柜向服务器上报
@@ -37,6 +45,12 @@ class Cabinet extends Base
         $trunk      = input('param.trunk');
         $cabinet    = input('param.cabinet');
         $state      = input('param.state');
+
+        $result = $this->change_status($cabinet , $trunk , $state);
+        if($result['code'] != 1){
+            return json(json_error_exception('1006'));
+        }
+        json_success('');
     }
     /**
      * 自提柜批量生产
@@ -79,9 +93,12 @@ class Cabinet extends Base
 
         $content = $this->wait_ret($sid,'lredis',6379);
 
+        if($content['value'] == 'ok'){
+            $this->box_action_record($cabinet_number , $box_number , 1);
+        }
     }
     /**
-     * 开启箱门
+     * 关闭箱门
      */
     public function close_box()
     {
@@ -98,7 +115,9 @@ class Cabinet extends Base
         $this->push_queue('access_wait_close','close_box',$params);
 
         $content = $this->wait_ret($sid,'lredis',6379);
-
+        if($content['value'] == 'ok'){
+            $this->box_action_record($cabinet_number , $box_number , 2);
+        }
     }
 
     private function testSend($queue_name,$value) {
@@ -155,19 +174,38 @@ class Cabinet extends Base
         }
         $where['cabinet_number']    = $cabinet_number;
         $where['box_number']        = $box_number;
-        $update['status']           = $status;
+        $update['box_status']       = $status;
         return $BoxModel->editData($where,$update);
     }
+    public function test(){
+        $cabinet_number     = input('param.cabinet_number');
+        $box_number         = input('param.box_number');
+        $order_sn           = input('param.order_sn');
+        $result = $this->box_bind_order($cabinet_number , $box_number , $order_sn);
+    }
+
     /**
      * 自提柜箱子绑定订单号
      */
     private function box_bind_order($cabinet_number , $box_number , $order_sn){
         $where['cabinet_number']    = $cabinet_number;
         $where['box_number']        = $box_number;
-        $update['enter_time']       = date('Y-m-d H:i:s');
         $update['order_sn']         = $order_sn;
+        $update['box_status']       = 2;
 
         $BoxModel = new BoxModel();
         return  $BoxModel->editData($where,$update);
     }
+
+    /**
+     * 记录箱子开启/关闭
+    */
+    private function box_action_record($cabinet_number , $box_number , $type){
+        $BoxActionModel = new BoxActionModel();
+        $params['cabinet_number']       = $cabinet_number;
+        $params['box_number']           = $box_number;
+        $params['type']                 = $type;
+        $params['datetime']             = date("Y-m-d H:i:s");
+        $BoxActionModel->save($params);
+    }
 }

+ 8 - 4
application/index/controller/Order.php

@@ -2,7 +2,6 @@
 
 namespace app\index\controller;
 
-use app\index\model\BoxModel;
 use app\index\model\OrderModel;
 use think\Controller;
 
@@ -10,7 +9,12 @@ class Order extends Controller
 {
     public function check_rcode(){
         $order_sn = input('param.order_sn');
-        $ret = ['check' => true,'order_sn' => $order_sn];
+        $OrderModel = new OrderModel();
+        $order = $OrderModel->getOne($order_sn);
+        if(empty($order)){
+            return json(json_error_exception(2001));
+        }
+        $ret = ['existed' => true,'order_sn' => $order_sn];
         json_success($ret);
     }
     /**
@@ -29,7 +33,7 @@ class Order extends Controller
         if($result['code'] != 1){
             return json(json_error_exception('1006',$result['msg']));
         }
-        json_return(200,[],'success');
+        json_success('');
     }
     /**
      * 生成校验码
@@ -44,4 +48,4 @@ class Order extends Controller
         return $code;
     }
 
-}
+}

+ 12 - 0
application/index/model/BoxActionModel.php

@@ -0,0 +1,12 @@
+<?php
+
+namespace app\index\model;
+
+use think\Model;
+
+class BoxActionModel extends Model {
+
+    // 确定链接表名
+    protected $name = 'box_action_record';
+
+}

+ 29 - 0
application/index/model/OrderModel.php

@@ -3,6 +3,7 @@
 namespace app\index\model;
 
 use think\Model;
+use app\index\model\BoxModel;
 
 class OrderModel extends Model{
 
@@ -13,6 +14,11 @@ class OrderModel extends Model{
         return $this->where('order_sn' , $order_sn)->find();
     }
 
+    public function Box()
+    {
+        return $this->hasOne('BoxModel', 'order_sn', 'order_sn');
+    }
+
     /**
      * 根据既定条件修改信息
      * @where $param
@@ -33,4 +39,27 @@ class OrderModel extends Model{
             return msg(-2, '', $e->getMessage());
         }
     }
+    /**
+     * 检查取件码
+    */
+    public function check_fcode($code)
+    {
+        $where['sc_order.code'] = $code;
+        $where['BoxModel.box_status'] = 2;
+        try{
+            $order = $this->Box()->hasWhere($where)->find();
+            if(empty($order)){
+                // 验证失败 输出错误信息
+                return msg(-1, '', $this->getError());
+            }else{
+                $data['code'] = $code;
+                $data['existed'] = true;
+                $data['trunk'] = $order['box_number'];
+                $data['cabinet'] = $order['cabinet_number'];
+                return msg(1, $data, 'success');
+            }
+        }catch(\Exception $e){
+            return msg(-2, '', $e->getMessage());
+        }
+    }
 }

+ 3 - 0
config/errorCode.php

@@ -14,4 +14,7 @@ return [
     '1006'  =>  '操作失败',
     '1007'  =>  '信息有误',
     '1008'  =>  '数据不存在',
+    '1009'  =>  'code不存在',
+
+    '2001'  =>  '订单不存在',
 ];

+ 7 - 2
route/route.php

@@ -6,9 +6,14 @@
         'roleAdd'                   => 'index/user/roleAdd',
         'roleDel'                   => 'index/user/roleDel',
 
+        'test'                      => 'index/cabinet/test',
+
         'checkFcode'                => 'index/cabinet/check_fcode',
         'changeCabinetStatus'       => 'index/cabinet/change_cabinet_status',
         'addCabinet'                => 'index/cabinet/add_cabinet',
-        'CloseBox'                     => 'index/cabinet/add_cabinet',
-        'OpenBox'                     => 'index/cabinet/open_box',
+        'CloseBox'                  => 'index/cabinet/add_cabinet',
+        'OpenBox'                   => 'index/cabinet/open_box',
+
+        'checkRcode'                => 'index/order/check_rcode',
+        'orderBindCode'             => 'index/order/order_bind_code',
     ));