Просмотр исходного кода

快速出場更新

station_14109
QxQ 6 лет назад
Родитель
Сommit
6c6dab387a
3 измененных файлов: 90 добавлений и 5 удалений
  1. +13
    -1
      controllers/Carpayment.php
  2. +19
    -3
      coworker/parktron2server_fuzzy.php
  3. +58
    -1
      models/Carpayment_model.php

+ 13
- 1
controllers/Carpayment.php Просмотреть файл

@@ -101,7 +101,19 @@ class Carpayment extends CI_Controller
}
// http://localhost/carpayment.html/parktron001/ (post method)
// 博辰進場通知
public function parktron001()
{
$parms['devno'] = $this->input->post('devno', true);
$parms['token'] = $this->input->post('token', true);
$parms['lpr'] = trim($this->input->post('lpr', true));
$parms['in_time'] = $this->input->post('in_time', true);
$parms['type'] = $this->input->post('type', true);
trigger_error('博辰進場參數:' . print_r($parms, true));
$this->carpayment_model->parktron001($parms);
}
// http://localhost/carpayment.html/p2payed/ (post method)


+ 19
- 3
coworker/parktron2server_fuzzy.php Просмотреть файл

@@ -45,9 +45,25 @@ $tcp_worker->onMessage = function($connection, $tcp_in)
list($devno, $token, $lpr, $in_time, $last_field) = explode(chr(31), $data); // 0x1F data欄位分隔
$type = substr($last_field, 0, -2);
echo "{$devno}|{$token}|{$lpr}|{$in_time}|{$type}|\n";
$connection->send('OK');
break;
$connection->send('OK');
// 傳送入場資料
$data = array
(
'devno' => $devno, // 設備編號
'token' => $token, // 票卡號碼
'lpr' => $lpr, // 車號
'in_time' => $in_time, // 入場時間
'type' => $type // 票卡種類 (0:臨停票卡進場, 1:臨停無票卡進場, 2:月票, 3:多卡通進場)
);
curl_setopt($ch, CURLOPT_URL, 'http://localhost/carpayment.html/parktron001/');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$results = curl_exec($ch);
//file_put_contents('/tmp/aps.log.txt', date('Y-m-d H:i:s').":{$err_lpr}\n".print_r($data, true)."\n\n", FILE_APPEND);
file_put_contents('/tmp/aps.log.txt', date('Y-m-d H:i:s').":{$lpr}\n".print_r($data, true)."\n\n", FILE_APPEND);
break;
case '002': // APS詢問車牌入場時間
list($token, $lpr, $last_field) = explode(chr(31), $data); // 0x1F data欄位分隔
$lpr = str_replace('%', '', $lpr);


+ 58
- 1
models/Carpayment_model.php Просмотреть файл

@@ -211,7 +211,8 @@ class Carpayment_model extends CI_Model
trigger_error( "..sync_st_pay.." . $sync_result);
return 'ok';
}
// 行動支付, 手機告知已付款
// http://203.75.167.89/carpayment.html/m2payed/ABC1234/120/12112/12345/1f3870be274f6c49b3e31a0c6728957f
@@ -253,7 +254,63 @@ class Carpayment_model extends CI_Model
//
////////////////////////////////////////
// 博辰票卡進場通知 (UPDATED 2016/08/23)
public function parktron001($parms)
{
// 車道與裝置對應關係
$lanes = array
(
11 => array ('in_lane' => '0'), // 入口 1
12 => array ('in_lane' => '1') // 入口 2
);
if(!array_key_exists($parms['devno'], $lanes))
{
trigger_error("[ERROR] 未知的裝置 | {$parms['devno']}");
return false;
}
if($parms['token'] == '000000000')
{
trigger_error("[ERROR] 無卡號 | {$parms['devno']}");
return false;
}
// 由設備編號對應攝影機編號, 再對應進場記錄
$result = $this->db->select("cario_no, in_time, obj_id as lpr")
->from('cario')
->where(array(
'in_out' => 'CI', 'finished' => 0, 'err' => 0, 'obj_type' => 1, 'member_no' => 0,
'in_time > ' => date("Y-m-d H:i:s", strtotime('- 1 minutes')), // 限時
'ticket_no' => '',
'in_lane' => $lanes[$parms['devno']]['in_lane']
))
->order_by('cario_no', 'desc')
->limit(1)
->get()
->row_array();
//trigger_error("[test] 車道 {$lanes[$parms['devno']]['in_lane']} test|".print_r($result, true));
if (empty($result['cario_no']))
{
trigger_error("[ERROR] 車道 {$lanes[$parms['devno']]['in_lane']} 查無進場記錄|".print_r($parms, true));
return false;
}
$data = array
(
'ticket_dev' => $parms['devno'],
'ticket_no' => $parms['token'],
'ticket_type' => $parms['type']
);
$this->db
->where(array('cario_no' => $result['cario_no']))
->update('cario', $data);
trigger_error("博辰票卡進場更新記錄|{$result['lpr']}|{$result['in_time']}|{$result['cario_no']}|{$parms['token']}|rows:{$this->db->affected_rows()}");
}
// 模糊比對
function getLevenshteinSQLStatement($word, $target)


Загрузка…
Отмена
Сохранить