stanley-king 4 yıl önce
ebeveyn
işleme
e54ffb2be8
1 değiştirilmiş dosya ile 47 ekleme ve 12 silme
  1. 47 12
      extend/queue.logic.php

+ 47 - 12
extend/queue.logic.php

@@ -2,24 +2,55 @@
 
 class queue_logic
 {
+    public function login($req_url,$key)
+    {
+        $resp = $this->reqest($req_url,'/login',['key' => $key]);
+        if(!empty($resp) && $resp['code'] == 0) {
+            return $resp['data']['token'];
+        } else {
+            Log::record("Login Error,{$resp['msg']}",Log::ERR);
+            return false;
+        }
+    }
+
+    private function reqest($url,$api,$params,$token='')
+    {
+        if(empty($token)) {
+            $url = "{$url}{$api}";
+        }
+        else {
+            $url = "{$url}{$api}?token={$token}";
+        }
+
+        $resp = http_post_data($url,json_encode($params));
+        $resp = json_decode($resp,true);
+        return $resp;
+    }
+
     public function OpenBox($params) {
-        global $config;
-        Log::record($params);
-        $box_list[] = $params['box_number'];
+        $postData['cabinet_code']       = $params['cabinet_code'];
+        $postData['box_position_list']  = $params['box_position_list'];
+        $postData['delay_time']         = 0;
+
+        $token = $this->login($params['req_url'],$params['key']);
+        $resp = $this->reqest($params['req_url'] ,'/open_box', $postData,$token);
 
+        $this->sync_return($params['ret_queue'],$resp);
+    }
+
+    public function LockCabinet($params) {
+        $box_list[] = $params['box_number'];
         $postData['cabinet_code']       = $params['cabinet_number'];
         $postData['box_position_list']  = $box_list;
         $postData['delay_time']         = 0;
 
-        $return = http_post($params['req_url'] , $postData);
-        $return['code'] = 'ok';
-        if($return['code'] != 0){
-            $return['value'] = 'error';
-        }
+        $token = $this->login($params['req_url'],$params['key']);
+        $resp = $this->reqest($params['req_url'] ,'/open_box', $postData,$token);
 
-        $this->push_queue_return($params['ret_queue'] , $config['net_queue']['host'] , $config['net_queue']['port'] , $return);
+        $this->sync_return($params['ret_queue'],$resp);
     }
 
+
     public function LockBox($params) {
         $box_list[] = $params['box_number'];
         $postData['cabinet_code']       = $params['cabinet_number'];
@@ -32,7 +63,7 @@ class queue_logic
             $return['value'] = 'error';
         }
 
-        $this->push_queue_return($params['ret_queue'] , $config['net_queue']['host'] , $config['net_queue']['port'] , $return);
+        $this->sync_return($params['ret_queue'] ,$return);
     }
 
     public function UnLockBox($params) {
@@ -46,10 +77,14 @@ class queue_logic
         if($return['code'] != 0){
             $return['value'] = 'error';
         }
-        $this->push_queue_return($params['ret_queue'] , $config['net_queue']['host'] , $config['net_queue']['port'] , $return);
+        $this->sync_return($params['ret_queue'] , $return);
     }
 
-    private function push_queue_return($queue_name,$host,$port,$params){
+    private function sync_return($queue_name,$params){
+        global $config;
+        $host = ['net_queue']['host'];
+        $port = $config['net_queue']['port'];
+
         $worker = new QueueDB($queue_name,$host,$port);
         $worker->push($params);
     }