Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
cdz_gateway
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杨苏杭
cdz_gateway
Commits
3ff47aa1
Commit
3ff47aa1
authored
Jun 01, 2018
by
BANice
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
0b命令
parent
1733bb7f
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
333 additions
and
76 deletions
+333
-76
.idea/workspace.xml
+0
-0
Application/Controller/AccessController.php
+16
-6
Application/Controller/CapacityController.php
+4
-0
Application/Controller/HeartController.php
+38
-0
Application/Controller/PortController.php
+16
-0
Application/Controller/PowerController.php
+129
-25
Application/Events.php
+42
-27
Application/Model/OrderModel.php
+12
-1
Application/Model/PortModel.php
+1
-1
Lib/Response.php
+1
-1
Lib/port/Port.php
+62
-15
Lib/redis/RedisKey.php
+4
-0
Route/Api.php
+8
-0
No files found.
.idea/workspace.xml
View file @
3ff47aa1
This diff is collapsed.
Click to expand it.
Application/Controller/AccessController.php
View file @
3ff47aa1
...
@@ -42,25 +42,29 @@ class AccessController extends Controller
...
@@ -42,25 +42,29 @@ class AccessController extends Controller
$mac
=
$this
->
get
(
'mac'
);
$mac
=
$this
->
get
(
'mac'
);
$gateway
Id
=
$gatewayModel
->
getColumn
(
'id'
,
" mac_address = '
$mac
' "
);
$gateway
=
$gatewayModel
->
getColumns
([
'id'
,
'station_id'
]
,
" mac_address = '
$mac
' "
);
if
(
$gatewayId
!=
false
)
{
if
(
count
(
$gateway
)
!==
0
)
{
$gatewayId
=
$gateway
[
'id'
];
Gateway
::
bindUid
(
$this
->
clientId
,
$mac
);
Gateway
::
bindUid
(
$this
->
clientId
,
$mac
);
$_SESSION
[
'gateway_id'
]
=
$gatewayId
;
$_SESSION
[
'gateway_id'
]
=
$gatewayId
;
$_SESSION
[
'station_id'
]
=
$gateway
[
'station_id'
];
$portModel
=
new
PortModel
();
$portModel
=
new
PortModel
();
//网关id下所有的口子mac地址和id
//网关id下所有的口子mac地址和id
$portMacId
=
$portModel
->
getAllColumns
([
'
mac_address
'
,
'id'
],
'gateway_id = '
.
$gatewayId
);
$portMacId
=
$portModel
->
getAllColumns
([
'
device_mac
'
,
'id'
],
'gateway_id = '
.
$gatewayId
);
if
(
count
(
$portMacId
)
!==
0
)
{
//网关下的口子mac和id缓存到session中
if
(
count
(
$portMacId
)
!==
0
)
{
//网关下的口子mac和id缓存到session中
//网关下的端口id和mac注入到session当中,静态缓存
//网关下的端口id和mac注入到session当中,静态缓存
foreach
(
$portMacId
as
$item
)
{
foreach
(
$portMacId
as
$item
)
{
$_SESSION
[
'port_mac_id'
][
$item
[
'
mac_address
'
]]
=
$item
[
'id'
];
$_SESSION
[
'port_mac_id'
][
$item
[
'
device_mac
'
]]
=
$item
[
'id'
];
}
}
}
}
...
@@ -68,10 +72,12 @@ class AccessController extends Controller
...
@@ -68,10 +72,12 @@ class AccessController extends Controller
for
(
$i
=
0
;
$i
<
4
;
$i
++
)
{
for
(
$i
=
0
;
$i
<
4
;
$i
++
)
{
$hex
=
dechex
(
rand
(
0
,
255
));
$hex
=
sprintf
(
'%02x'
,
rand
(
0
,
255
));
$sessionId
.=
$hex
;
$sessionId
.=
$hex
;
}
}
$this
->
response
->
send
(
'02'
,
$sessionId
);
$this
->
response
->
send
(
'02'
,
$sessionId
);
}
else
{
}
else
{
...
@@ -115,6 +121,8 @@ class AccessController extends Controller
...
@@ -115,6 +121,8 @@ class AccessController extends Controller
$portMacId
=
isset
(
$_SESSION
[
'port_mac_id'
])
?
$_SESSION
[
'port_mac_id'
]
:
[];
$portMacId
=
isset
(
$_SESSION
[
'port_mac_id'
])
?
$_SESSION
[
'port_mac_id'
]
:
[];
var_dump
(
$portMacId
);
$port
=
new
port
();
$port
=
new
port
();
$portIdState
=
[];
$portIdState
=
[];
...
@@ -126,7 +134,7 @@ class AccessController extends Controller
...
@@ -126,7 +134,7 @@ class AccessController extends Controller
'state'
=>
$stateArray
[
$i
],
'state'
=>
$stateArray
[
$i
],
'logic_num'
=>
$logic
,
'logic_num'
=>
$logic
,
],
'
mac_address
= '
.
"'
$mac
'"
);
],
'
device_mac
= '
.
"'
$mac
'"
);
if
(
isset
(
$portMacId
[
$mac
]))
if
(
isset
(
$portMacId
[
$mac
]))
{
{
...
@@ -136,6 +144,8 @@ class AccessController extends Controller
...
@@ -136,6 +144,8 @@ class AccessController extends Controller
$i
++
;
$i
++
;
}
}
var_dump
(
$portIdState
);
$port
->
setPortState
(
$portIdState
);
//改变口子状态
$port
->
setPortState
(
$portIdState
);
//改变口子状态
...
...
Application/Controller/CapacityController.php
View file @
3ff47aa1
...
@@ -28,6 +28,10 @@ class CapacityController extends Controller
...
@@ -28,6 +28,10 @@ class CapacityController extends Controller
$capacity
=
$this
->
get
(
'capacity'
);
$capacity
=
$this
->
get
(
'capacity'
);
$gatewayId
=
$_SESSION
[
'gateway_id'
];
//todo 记录用电
//todo 记录用电
}
}
...
...
Application/Controller/HeartController.php
0 → 100644
View file @
3ff47aa1
<?php
/**
* Created by PhpStorm.
* User: banice
* Date: 2018/5/30
* Time: 下午2:53
*/
namespace
Application\Controller
;
use
Application\Controller
;
class
HeartController
extends
Controller
{
protected
$parameterMap
=
[
'00'
=>
[
]
];
public
function
heart
()
{
$time
=
sprintf
(
'%08x'
,
time
());
var_dump
(
$time
);
$this
->
response
->
send
(
'00'
,
$time
);
}
}
\ No newline at end of file
Application/Controller/PortController.php
View file @
3ff47aa1
...
@@ -24,6 +24,12 @@ class PortController extends Controller
...
@@ -24,6 +24,12 @@ class PortController extends Controller
'count'
=>
1
,
'count'
=>
1
,
],
],
'0b'
=>
[
'logic'
=>
1
,
'mac'
=>
8
,
'state'
=>
1
,
]
];
];
...
@@ -112,6 +118,16 @@ class PortController extends Controller
...
@@ -112,6 +118,16 @@ class PortController extends Controller
$port
->
offline
(
$offlinePortId
);
$port
->
offline
(
$offlinePortId
);
}
public
function
portState
()
{
$portMac
=
$this
->
get
(
'mac'
);
$state
=
$this
->
get
(
'state'
);
}
}
...
...
Application/Controller/PowerController.php
View file @
3ff47aa1
...
@@ -11,6 +11,7 @@ namespace Application\Controller;
...
@@ -11,6 +11,7 @@ namespace Application\Controller;
use
Application\Controller
;
use
Application\Controller
;
use
Application\Model\OrderModel
;
use
Application\Model\OrderModel
;
use
Lib\port\Port
;
class
PowerController
extends
Controller
class
PowerController
extends
Controller
{
{
...
@@ -19,25 +20,32 @@ class PowerController extends Controller
...
@@ -19,25 +20,32 @@ class PowerController extends Controller
'04'
=>
[
'04'
=>
[
'type'
=>
1
,
'type'
=>
1
,
'logic'
=>
1
,
'logic'
=>
1
,
'orderId'
=>
6
,
'orderId'
=>
6
,
'capacity'
=>
4
,
'capacity'
=>
4
,
'state'
=>
1
,
'state'
=>
1
,
],
],
'05'
=>
[
'05'
=>
[
'orderId'
=>
6
,
'orderId'
=>
6
,
'logic'
=>
1
,
'logic'
=>
1
,
'state'
=>
1
,
'state'
=>
1
,
'capacity'
=>
4
'capacity'
=>
4
,
],
],
'07'
=>
[
'07'
=>
[
'logic'
=>
1
,
'logic'
=>
1
,
'startTime'
=>
4
,
'startTime'
=>
4
,
'intervalTime'
=>
1
,
'intervalTime'
=>
1
,
'count'
=>
1
'count'
=>
1
,
],
'17'
=>
[
'logic'
=>
1
,
'power'
=>
2
,
'capacity'
=>
2
,
'state'
=>
1
,
],
],
];
];
...
@@ -52,29 +60,58 @@ class PowerController extends Controller
...
@@ -52,29 +60,58 @@ class PowerController extends Controller
$orderId
=
$this
->
get
(
'orderId'
);
$orderId
=
$this
->
get
(
'orderId'
);
if
(
$type
==
1
)
if
(
$type
==
1
)
{
{
$logic
=
$this
->
get
(
'logic'
);
$logic
=
$this
->
get
(
'logic'
);
$power
=
$this
->
get
(
'capacity'
);
$power
=
$this
->
get
(
'capacity'
);
$state
=
$this
->
get
(
'state'
);
$state
=
hexdec
(
$this
->
get
(
'state'
)
);
$orderModel
=
new
OrderModel
();
$orderModel
=
new
OrderModel
();
$id
=
hexdec
(
$orderId
);
$id
=
hexdec
(
$orderId
);
$row
=
$orderModel
->
update
([
'is_charger'
=>
$state
,
'start_capacity'
=>
$power
],
'id = '
.
$id
);
$_SESSION
[
'current_order_id'
]
=
$id
;
switch
(
$state
)
{
case
0
:
$state
=
-
1
;
break
;
case
1
:
$state
=
2
;
break
;
case
2
:
$state
=
6
;
break
;
default
:
break
;
}
$_SESSION
[
'current_order_id'
]
=
$id
;
$_SESSION
[
'order_state'
]
=
$state
;
$row
=
$orderModel
->
update
([
'is_charger'
=>
$state
,
'start_capacity'
=>
$power
],
'id = '
.
$id
);
//todo websocket推送给前段开始充电信息,如果未发现当前订单id连接则存入消息队列当中
$portId
=
$orderModel
->
getPortId
(
$id
);
$port
=
new
Port
();
if
(
hexdec
(
$state
)
==
2
)
{
$port
->
setPortState
([
$portId
=>
$state
+
2
]);
//todo websocket推送给前段开始充电信息,如果未发现当前订单id连接则存入消息队列当中
}
}
}
$this
->
response
->
send
(
'14'
,
$orderId
);
$this
->
response
->
send
(
'14'
,
$orderId
);
}
}
...
@@ -99,39 +136,93 @@ class PowerController extends Controller
...
@@ -99,39 +136,93 @@ class PowerController extends Controller
$orderModel
=
new
OrderModel
();
$orderModel
=
new
OrderModel
();
$orderModel
->
update
([
'is_stop'
=>
$state
,
'end_capacity'
=>
$capacity
],
' id = '
.
$id
);
// 存储数据库
$orderModel
->
update
([
'is_stop'
=>
$state
,
'end_capacity'
=>
$capacity
],
' id = '
.
$id
);
//todo 发送微信消息给用户。
//todo 充电结束时删除端口正在使用的hash表中的元素,删除充电用户正在充电订单中的本次订单
//todo 存储数据库
$this
->
response
->
send
(
'15'
,
$orderId
);
$this
->
response
->
send
(
'15'
,
$orderId
);
}
}
/**
/**
*
*
* |0|计时结束|
* |1|远程关闭|
* |2|插头脱落|
* |3|充满自停|
* |4|功率超限|
* |5|关闭失败|
* |6|插头插上,正常充电|
* 上报充电功率
* 上报充电功率
*/
*/
public
function
power
()
public
function
power
()
{
{
//todo 依据状态修改订单中的状态,本地缓存该笔订单的状态,状态不发生改变则不更新数据库
$logic
=
$this
->
get
(
'logic'
);
$logic
=
$this
->
get
(
'logic'
);
$startTime
=
$this
->
get
(
'startTime'
);
$startTime
=
$this
->
get
(
'startTime'
);
$count
=
$this
->
get
(
'count'
);
$count
=
$this
->
get
(
'count'
);
$powerData
=
substr
(
$this
->
message
,
$this
->
plc
,
hexdec
(
$count
)
*
4
);
$powerData
=
substr
(
$this
->
message
,
$this
->
plc
,
hexdec
(
$count
)
*
4
);
$powerData
=
str_split
(
$powerData
,
4
);
$powerData
=
str_split
(
$powerData
,
4
);
$this
->
plc
+=
hexdec
(
$count
)
*
4
;
$this
->
plc
+=
hexdec
(
$count
)
*
4
;
$capacity
=
substr
(
$this
->
message
,
$this
->
plc
);
$capacity
=
substr
(
$this
->
message
,
$this
->
plc
);
$capacity
=
str_split
(
$capacity
,
8
);
$capacity
=
str_split
(
$capacity
,
8
);
var_dump
(
$powerData
);
var_dump
(
$powerData
);
var_dump
(
$capacity
);
var_dump
(
$capacity
);
}
/**
* 上报功率
* command 17
*/
public
function
onePower
()
{
$logicNum
=
$this
->
get
(
'logic'
);
$powerData
=
$this
->
get
(
'power'
);
$capacity
=
$this
->
get
(
'capacity'
);
$state
=
hexdec
(
$this
->
get
(
'state'
));
$orderLastState
=
$_SESSION
[
'order_state'
];
if
(
$orderLastState
!=
$state
)
{
// $orderModel = new OrderModel();
$port
=
new
Port
();
// $port->setPortState([
//
// ])
$orderId
=
$_SESSION
[
'current_order_id'
];
// $row = $orderModel->update(['state' => $state] ,'id = '.$orderId);
}
}
}
...
@@ -172,3 +263,16 @@ class PowerController extends Controller
...
@@ -172,3 +263,16 @@ class PowerController extends Controller
Application/Events.php
View file @
3ff47aa1
...
@@ -15,7 +15,7 @@ use Lib\Route;
...
@@ -15,7 +15,7 @@ use Lib\Route;
use
Lib\Log
;
use
Lib\Log
;
define
(
'APP'
,
'Application\\Controller\\'
);
define
(
'APP'
,
'Application\\Controller\\'
);
class
Events
class
Events
{
{
...
@@ -48,63 +48,58 @@ class Events
...
@@ -48,63 +48,58 @@ class Events
static
::
$redis
->
select
(
4
);
static
::
$redis
->
select
(
4
);
try
{
try
{
static
::
$db
=
new
Connection
(
Env
::
get
(
'DB_HOST'
),
Env
::
get
(
'DB_PORT'
),
Env
::
get
(
'DB_USER'
),
Env
::
get
(
'DB_PASSWORD'
),
Env
::
get
(
'DB_NAME'
));
static
::
$db
=
new
Connection
(
Env
::
get
(
'DB_HOST'
),
Env
::
get
(
'DB_PORT'
),
Env
::
get
(
'DB_USER'
),
Env
::
get
(
'DB_PASSWORD'
),
Env
::
get
(
'DB_NAME'
));
}
catch
(
Exception
$exception
)
}
catch
(
Exception
$exception
)
{
{
var_dump
(
$exception
->
getMessage
());
var_dump
(
$exception
->
getMessage
());
}
}
}
}
public
static
function
onConnect
(
$clientId
)
public
static
function
onConnect
(
$clientId
)
{
{
Log
::
debug
(
'connect'
,[
Log
::
debug
(
'connect'
,
[
'time'
=>
date
(
'H:i:s'
)
'time'
=>
date
(
'H:i:s'
)
,
]);
]);
}
}
public
static
function
onMessage
(
$clientId
,
$message
)
public
static
function
onMessage
(
$clientId
,
$message
)
{
{
var_dump
(
$message
);
var_dump
(
$message
);
$crc
=
substr
(
$message
,
-
2
);
$crc
=
substr
(
$message
,
-
2
);
$makeCrc
=
sprintf
(
'%08x'
,
(
Crc
::
crc
(
substr
(
$message
,
0
,
-
2
))));
$makeCrc
=
sprintf
(
'%08x'
,
(
Crc
::
crc
(
substr
(
$message
,
0
,
-
2
))));
if
(
$crc
!=
substr
(
$makeCrc
,
0
,
2
))
if
(
$crc
!=
substr
(
$makeCrc
,
0
,
2
))
{
{
Gateway
::
closeClient
(
$clientId
);
Gateway
::
closeClient
(
$clientId
);
}
else
{
}
else
{
$command
=
substr
(
$message
,
6
,
2
);
$command
=
substr
(
$message
,
6
,
2
);
$route
=
Api
::
getRoute
(
$command
);
$route
=
Api
::
getRoute
(
$command
);
if
(
$route
instanceof
Route
)
if
(
$route
instanceof
Route
)
{
{
$controllerName
=
$route
->
getController
();
$controllerName
=
$route
->
getController
();
$method
=
$route
->
getMethod
();
$method
=
$route
->
getMethod
();
$controllerName
=
APP
.
$controllerName
;
$controllerName
=
APP
.
$controllerName
;
//去除crc字节
//去除crc字节
$message
=
substr
(
$message
,
0
,
-
2
);
$message
=
substr
(
$message
,
0
,
-
2
);
$message
=
mb_strtoupper
(
$message
);
$message
=
mb_strtoupper
(
$message
);
...
@@ -113,16 +108,19 @@ class Events
...
@@ -113,16 +108,19 @@ class Events
foreach
(
$middleware
as
$item
)
{
foreach
(
$middleware
as
$item
)
{
if
(
$item
instanceof
\Application\Middleware
)
if
(
$item
instanceof
\Application\Middleware
)
{
{
if
(
$item
->
handle
(
$clientId
,
$message
)
===
false
)
{
if
(
$item
->
handle
(
$clientId
,
$message
)
===
false
)
{
Gateway
::
closeCurrentClient
();
try
{
Gateway
::
closeCurrentClient
();
}
catch
(
Exception
$e
)
{
}
}
}
}
}
}
}
$controller
=
new
$controllerName
(
$clientId
,
$message
,
$command
);
$controller
=
new
$controllerName
(
$clientId
,
$message
,
$command
);
$controller
->
$method
();
$controller
->
$method
();
...
@@ -132,13 +130,30 @@ class Events
...
@@ -132,13 +130,30 @@ class Events
}
}
}
}
/**
*
* @param $clientId
*/
public
static
function
onClose
(
$clientId
)
public
static
function
onClose
(
$clientId
)
{
{
//fixme 网关离线将往下所有的口子全部设置为离线
if
(
!
isset
(
$_SESSION
[
'port_mac_id'
]))
return
;
$portMacIdArray
=
$_SESSION
[
'port_mac_id'
];
if
(
isset
(
$portMacIdArray
))
{
$port
=
new
\Lib\port\Port
();
$port
->
offline
(
array_values
(
$portMacIdArray
));
}
}
}
...
...
Application/Model/OrderModel.php
View file @
3ff47aa1
...
@@ -14,9 +14,19 @@ use Application\Model;
...
@@ -14,9 +14,19 @@ use Application\Model;
class
OrderModel
extends
Model
class
OrderModel
extends
Model
{
{
protected
$table
=
'wx_charger_order'
;
protected
$table
=
'wx_charger_order
s
'
;
/**
* @param int $orderId
* @return string
*/
public
function
getPortId
(
int
$orderId
)
{
return
$this
->
getColumn
(
'port_id'
,
'id = '
.
$orderId
);
}
}
}
\ No newline at end of file
Application/Model/PortModel.php
View file @
3ff47aa1
...
@@ -14,7 +14,7 @@ use Application\Model;
...
@@ -14,7 +14,7 @@ use Application\Model;
class
PortModel
extends
Model
class
PortModel
extends
Model
{
{
protected
$table
=
'
port
s'
;
protected
$table
=
'
device
s'
;
...
...
Lib/Response.php
View file @
3ff47aa1
...
@@ -96,7 +96,7 @@ class Response
...
@@ -96,7 +96,7 @@ class Response
$crc
=
substr
(
sprintf
(
'%08x'
,
Crc
::
crc
(
$exceptCrc
)),
0
,
2
);
$crc
=
substr
(
sprintf
(
'%08x'
,
Crc
::
crc
(
$exceptCrc
)),
0
,
2
);
var_dump
(
$exceptCrc
.
$crc
);
var_dump
(
'message:'
.
PHP_EOL
.
$exceptCrc
.
$crc
);
return
$exceptCrc
.
$crc
;
return
$exceptCrc
.
$crc
;
...
...
Lib/port/Port.php
View file @
3ff47aa1
...
@@ -14,6 +14,7 @@ use Lib\redis\RedisKey;
...
@@ -14,6 +14,7 @@ use Lib\redis\RedisKey;
class
Port
class
Port
{
{
private
$mac
;
private
$mac
;
private
$id
;
private
$id
;
...
@@ -38,13 +39,13 @@ class Port
...
@@ -38,13 +39,13 @@ class Port
* @param array $idLogic
* @param array $idLogic
* @param int $gatewayId
* @param int $gatewayId
*/
*/
public
function
register
(
array
$idLogic
,
int
$gatewayId
)
public
function
register
(
array
$idLogic
,
int
$gatewayId
)
{
{
$this
->
redis
->
hMset
(
RedisKey
::
PORT_ID_LOGIC_HASH
,
$idLogic
);
$this
->
redis
->
hMset
(
RedisKey
::
PORT_ID_LOGIC_HASH
,
$idLogic
);
$this
->
redis
->
hMset
(
'gateway_id_'
.
":
$gatewayId
"
.
RedisKey
::
GATEWAY_PORT_LOGIC_ID_HASH
,
array_flip
(
$idLogic
));
$this
->
redis
->
hMset
(
'gateway_id_'
.
":
$gatewayId
"
.
RedisKey
::
GATEWAY_PORT_LOGIC_ID_HASH
,
array_flip
(
$idLogic
));
}
}
...
@@ -61,29 +62,49 @@ class Port
...
@@ -61,29 +62,49 @@ class Port
* @param $gatewayId
* @param $gatewayId
* @return array
* @return array
*/
*/
public
function
getPortId
(
array
$logicId
,
$gatewayId
)
public
function
getPortId
(
array
$logicId
,
$gatewayId
)
{
{
return
$this
->
redis
->
hMGet
(
'gateway_id_'
.
"
$gatewayId
"
.
RedisKey
::
GATEWAY_PORT_LOGIC_ID_HASH
,
$logicId
);
return
$this
->
redis
->
hMGet
(
'gateway_id_'
.
"
$gatewayId
"
.
RedisKey
::
GATEWAY_PORT_LOGIC_ID_HASH
,
$logicId
);
}
}
public
function
setPortState
(
array
$portIdState
)
/**
* 设置端口的状态
* 端口zset中,gateway的端口zset
* @param array $portIdState
*/
public
function
setPortState
(
array
$portIdState
)
{
{
$tmp
=
[
RedisKey
::
PORT_STATE_ZSET
];
$tmp
=
[
RedisKey
::
PORT_STATE_ZSET
];
foreach
(
$portIdState
as
$id
=>
$state
)
{
foreach
(
$portIdState
as
$id
=>
$state
)
{
array_push
(
$tmp
,
$state
);
array_push
(
$tmp
,
$state
);
array_push
(
$tmp
,
$id
);
array_push
(
$tmp
,
$id
);
}
}
call_user_func_array
([
$this
->
redis
,
'zAdd'
],
$tmp
);
$this
->
pipe
();
call_user_func_array
([
$this
->
redis
,
'zAdd'
],
$tmp
);
$tmp
[
0
]
=
RedisKey
::
GATEWAY_PORT_STATE
.
$_SESSION
[
'gateway_id'
];
call_user_func_array
([
$this
->
redis
,
'zAdd'
],
$tmp
);
$tmp
[
0
]
=
RedisKey
::
STATION_PORT_STATE
.
$_SESSION
[
'station_id'
];
call_user_func_array
([
$this
->
redis
,
'zAdd'
],
$tmp
);
$this
->
exec
();
}
}
/**
/**
* 端口id在线
* 端口id在线
* @param array $portId
* @param array $portId
...
@@ -94,13 +115,27 @@ class Port
...
@@ -94,13 +115,27 @@ class Port
foreach
(
$portId
as
$item
)
{
foreach
(
$portId
as
$item
)
{
array_push
(
$tmp
,
1
);
array_push
(
$tmp
,
1
);
array_push
(
$tmp
,
$item
);
array_push
(
$tmp
,
$item
);
}
}
call_user_func_array
([
$this
->
redis
,
'zAdd'
],
$tmp
);
$this
->
pipe
();
call_user_func_array
([
$this
->
redis
,
'zAdd'
],
$tmp
);
$tmp
[
0
]
=
RedisKey
::
GATEWAY_PORT_STATE
.
$_SESSION
[
'gateway_id'
];
call_user_func_array
([
$this
->
redis
,
'zAdd'
],
$tmp
);
$tmp
[
0
]
=
RedisKey
::
STATION_PORT_STATE
.
$_SESSION
[
'station_id'
];
call_user_func_array
([
$this
->
redis
,
'zAdd'
],
$tmp
);
$this
->
exec
();
}
}
...
@@ -112,16 +147,28 @@ class Port
...
@@ -112,16 +147,28 @@ class Port
{
{
$tmp
=
[
RedisKey
::
PORT_STATE_ZSET
];
$tmp
=
[
RedisKey
::
PORT_STATE_ZSET
];
foreach
(
$portId
as
$item
)
{
foreach
(
$portId
as
$item
)
{
array_push
(
$tmp
,
0
);
array_push
(
$tmp
,
0
);
array_push
(
$tmp
,
$item
);
array_push
(
$tmp
,
$item
);
}
}
call_user_func_array
([
$this
->
redis
,
'zAdd'
],
$tmp
);
$this
->
pipe
();
call_user_func_array
([
$this
->
redis
,
'zAdd'
],
$tmp
);
$tmp
[
0
]
=
RedisKey
::
GATEWAY_PORT_STATE
.
$_SESSION
[
'gateway_id'
];
call_user_func_array
([
$this
->
redis
,
'zAdd'
],
$tmp
);
$tmp
[
0
]
=
RedisKey
::
STATION_PORT_STATE
.
$_SESSION
[
'station_id'
];
call_user_func_array
([
$this
->
redis
,
'zAdd'
],
$tmp
);
$this
->
exec
();
}
}
public
function
exec
()
public
function
exec
()
...
...
Lib/redis/RedisKey.php
View file @
3ff47aa1
...
@@ -30,6 +30,9 @@ class RedisKey
...
@@ -30,6 +30,9 @@ class RedisKey
//端口状态有续集合
//端口状态有续集合
const
PORT_STATE_ZSET
=
'port:id_state:zset'
;
const
PORT_STATE_ZSET
=
'port:id_state:zset'
;
const
GATEWAY_PORT_STATE
=
'gateway:port:state:'
;
const
STATION_PORT_STATE
=
'station:port:state:'
;
}
}
\ No newline at end of file
Route/Api.php
View file @
3ff47aa1
...
@@ -21,6 +21,8 @@ class Api
...
@@ -21,6 +21,8 @@ class Api
public
static
function
boot
()
public
static
function
boot
()
{
{
static
::
add
(
'00'
,
'HeartController@heart'
);
static
::
add
(
'01'
,
'CertifyController@certify'
);
static
::
add
(
'01'
,
'CertifyController@certify'
);
static
::
add
(
'02'
,
'AccessController@access'
);
static
::
add
(
'02'
,
'AccessController@access'
);
...
@@ -33,6 +35,12 @@ class Api
...
@@ -33,6 +35,12 @@ class Api
static
::
add
(
'09'
,
'PortController@offline'
,[
new
AuthMiddleware
(),
new
HasMacMiddleware
()]);
static
::
add
(
'09'
,
'PortController@offline'
,[
new
AuthMiddleware
(),
new
HasMacMiddleware
()]);
static
::
add
(
'07'
,
'PowerController@power'
,[
new
AuthMiddleware
(),
new
HasMacMiddleware
()]);
static
::
add
(
'17'
,
'PowerController@onePower'
,[
new
AuthMiddleware
(),
new
HasMacMiddleware
()]);
static
::
add
(
'0b'
,
'PortController@portState'
,[
new
AuthMiddleware
(),
new
HasMacMiddleware
()]);
}
}
public
static
function
add
(
string
$command
,
string
$controllerAction
,
array
$middleware
=
[])
public
static
function
add
(
string
$command
,
string
$controllerAction
,
array
$middleware
=
[])
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment