Commit 93410bf8 by banice

修复开始充电无开始用电量问题

parent 29a8f66c
...@@ -357,7 +357,7 @@ class AccessController extends Controller ...@@ -357,7 +357,7 @@ class AccessController extends Controller
} }
$order->setOnlineTime(time()); $order->setOnlineTime(time());
if ($offlineReason == 1) { if ($offlineReason == 0) {
$orderState = new OfflineNetState($order); $orderState = new OfflineNetState($order);
} else { } else {
$orderState = new OfflinePowerState($order); $orderState = new OfflinePowerState($order);
......
...@@ -49,9 +49,7 @@ class StartController extends Controller ...@@ -49,9 +49,7 @@ class StartController extends Controller
$this->logRecord->setOrderId($orderId); $this->logRecord->setOrderId($orderId);
$capacity = hexdec($this->getRequest()->get('capacity')); $capacity = hexdec($this->getRequest()->get('capacity'));
Log::debug('order_id-->' . $orderId);
Log::debug($this->getRequest()->get('capacity'));
Log::debug('capacity-->' . $capacity); Log::debug('capacity-->' . $capacity);
if ($type == 1) { if ($type == 1) {
...@@ -87,29 +85,24 @@ class StartController extends Controller ...@@ -87,29 +85,24 @@ class StartController extends Controller
} }
} }
$lastState = $order->getStateCode(); $lastState = $order->getStateCode();
$orderState = new WaitingState($order); $orderState = new WaitingState($order);
// break;
// case StateCode::PORT_CHARGER;
// $orderState = new ChargerState($order);
// break;
//
// }
$portId = $orderState->getOrder()->getPortId(); $portId = $orderState->getOrder()->getPortId();
$this->logRecord->setPortId($portId); $this->logRecord->setPortId($portId);
switch ($state) { switch ($state) {
case StateCode::PORT_CHARGER: case StateCode::PORT_CHARGER:
$orderState->toChargerState(); $orderState->toChargerState();
break; break;
case StateCode::PORT_EXCEPTION: case StateCode::PORT_EXCEPTION:
$orderState->toExceptionState(); $orderState->toExceptionState();
break; break;
case StateCode::PORT_SHED: case StateCode::PORT_SHED:
Log::debug('port_shed');
$orderState->toShedState(); $orderState->toShedState();
break; break;
case StateCode::FINISH_EXCEED: case StateCode::FINISH_EXCEED:
Log::debug('exceed');
$orderState->toPowerExceedState(); $orderState->toPowerExceedState();
break; break;
......
...@@ -111,6 +111,7 @@ class PowerController extends Controller ...@@ -111,6 +111,7 @@ class PowerController extends Controller
public function plural() public function plural()
{ {
//todo 最近的用电量作为结束用电量更新
$logicId = hexdec($this->request->get('logic_id')); $logicId = hexdec($this->request->get('logic_id'));
$startTime = hexdec($this->request->get('start_time')); $startTime = hexdec($this->request->get('start_time'));
$intervalTime = hexdec($this->request->get('interval_time')); $intervalTime = hexdec($this->request->get('interval_time'));
...@@ -170,6 +171,13 @@ class PowerController extends Controller ...@@ -170,6 +171,13 @@ class PowerController extends Controller
]); ]);
$startTime += $intervalTime; $startTime += $intervalTime;
//更新结束充电用电量
if ($i === ($count - 1)) {
$orderModel = new OrderModel();
$orderModel->update([
'end_capacity' => hexdec($capacitys[$i]),
], 'id = ' . $orderId);
}
} }
} else { } else {
......
...@@ -10,6 +10,7 @@ namespace Application\controller\update; ...@@ -10,6 +10,7 @@ namespace Application\controller\update;
use Application\controller\Controller; use Application\controller\Controller;
use Application\model\DeviceModel;
use Application\model\GatewayModel; use Application\model\GatewayModel;
use Application\model\GatewayUpdateModel; use Application\model\GatewayUpdateModel;
use GatewayWorker\Lib\Gateway; use GatewayWorker\Lib\Gateway;
...@@ -23,6 +24,10 @@ class QueryController extends Controller ...@@ -23,6 +24,10 @@ class QueryController extends Controller
'D1' => [ 'D1' => [
'hardware_version' => 4, 'hardware_version' => 4,
'software_version' => 4, 'software_version' => 4,
],
'CD' => [
'hardware_version' => 4,
'software_version' => 4,
] ]
]; ];
...@@ -36,6 +41,19 @@ class QueryController extends Controller ...@@ -36,6 +41,19 @@ class QueryController extends Controller
parent::__destruct(); parent::__destruct();
} }
public function currentVersion()
{
$gatewayModel = new GatewayModel();
$gatewayModel->update([
'hardware_version' => $this->request->get('hardware_version'),
'software_version' => $this->request->get('software_version'),
], 'id = ' . $_SESSION['gateway_id']);
}
/** /**
* @throws \Exception * @throws \Exception
*/ */
...@@ -85,11 +103,20 @@ class QueryController extends Controller ...@@ -85,11 +103,20 @@ class QueryController extends Controller
$urlHex .= $hex; $urlHex .= $hex;
} }
Log::debug($updateSoftwareVersion);
Log::debug($updateHardwareVersion);
Log::debug($sign);
Log::debug($urlHex);
$this->response->send('d1', $returnCode . $updateHardwareVersion . $updateSoftwareVersion . $sign . $urlHex); $this->response->send('d1', $returnCode . $updateHardwareVersion . $updateSoftwareVersion . $sign . $urlHex);
return;
} }
$this->response->send('d1', $returnCode);
return;
} }
$this->response->send('d1', '11');
return;
} }
......
...@@ -45,6 +45,8 @@ class Api ...@@ -45,6 +45,8 @@ class Api
$this->add('0E', 'setting\DeviceMacController@getAll'); $this->add('0E', 'setting\DeviceMacController@getAll');
$this->add('D1', 'update\QueryController@check'); $this->add('D1', 'update\QueryController@check');
$this->add('CD', 'update\QueryController@currentVersion');
} }
......
...@@ -352,6 +352,12 @@ class ChargerState extends State ...@@ -352,6 +352,12 @@ class ChargerState extends State
} }
public function toRefundFinish()
{
Log::error('charger state can not change to refund finish');
}
/** /**
* 关闭失败 * 关闭失败
*/ */
......
...@@ -300,7 +300,7 @@ class ChargerState extends State ...@@ -300,7 +300,7 @@ class ChargerState extends State
Log::error('send port shed message fail'); Log::error('send port shed message fail');
} }
//todo publish 十分钟的延迟任务 // publish 十分钟的延迟任务
try { try {
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
namespace Lib\cdz\order\state; namespace Lib\cdz\order\state;
use GuzzleHttp\Psr7\LazyOpenStream;
use Lib\cdz\order\NoticePortShed; use Lib\cdz\order\NoticePortShed;
use Lib\cdz\order\Order; use Lib\cdz\order\Order;
use Lib\log\Log; use Lib\log\Log;
...@@ -35,14 +36,20 @@ class OfflineNetState extends State ...@@ -35,14 +36,20 @@ class OfflineNetState extends State
} }
$startTime = $this->order->getStartTime(); $startTime = $this->order->getStartTime();
$stateCode = $this->order->getStateCode();
if ($startTime === '' || $this->order->getOfflineTime() == '0') { if ($startTime === '') {
Log::debug('time equal purchase time');
$this->remainChargerTime = (int)($this->order->getPurchaseTime()); $this->remainChargerTime = (int)($this->order->getPurchaseTime());
} else { } else {
$purchaseTime = $this->order->getPurchaseTime(); $purchaseTime = $this->order->getPurchaseTime();
$this->remainChargerTime = $purchaseTime * 60 - ((int)$this->order->getOnlineTime() - $startTime); $this->remainChargerTime = $purchaseTime * 60 - ((int)$this->order->getOnlineTime() - $startTime);
Log::debug('off net');
Log::debug($this->order->getOnlineTime());
Log::debug($startTime . 'start_time');
Log::debug('remain charger time' . $this->remainChargerTime); Log::debug('remain charger time' . $this->remainChargerTime);
Log::debug('remain time' . ceil($this->remainChargerTime / 60));
$this->remainChargerTime = ceil($this->remainChargerTime / 60); $this->remainChargerTime = ceil($this->remainChargerTime / 60);
......
...@@ -40,6 +40,8 @@ class OfflinePowerState extends State ...@@ -40,6 +40,8 @@ class OfflinePowerState extends State
$purchaseTime = $this->order->getPurchaseTime(); $purchaseTime = $this->order->getPurchaseTime();
$this->remainChargerTime = $purchaseTime * 60 - ($offlineTime - $startTime); $this->remainChargerTime = $purchaseTime * 60 - ($offlineTime - $startTime);
Log::debug($offlineTime . '---' . $startTime . '-----' . $this->remainChargerTime);
$this->order->setStartTime(strval((int)$startTime + ((int)time() - (int)$offlineTime))); $this->order->setStartTime(strval((int)$startTime + ((int)time() - (int)$offlineTime)));
$this->remainChargerTime = ceil($this->remainChargerTime / 60); $this->remainChargerTime = ceil($this->remainChargerTime / 60);
$saveOrder = new OrderSaveRedis($this->order); $saveOrder = new OrderSaveRedis($this->order);
......
...@@ -84,6 +84,8 @@ class WaitingState extends State ...@@ -84,6 +84,8 @@ class WaitingState extends State
*/ */
public function toChargerState(): void public function toChargerState(): void
{ {
//订单已经退款则直接结束 //订单已经退款则直接结束
if ($this->order->getIsRefund() == 1) { if ($this->order->getIsRefund() == 1) {
// 下发结束充电命令 // 下发结束充电命令
...@@ -130,13 +132,15 @@ class WaitingState extends State ...@@ -130,13 +132,15 @@ class WaitingState extends State
} }
//更新订单状态
$update = [ $update = [
'is_charger' => StateCode::PORT_CHARGER, 'is_charger' => StateCode::PORT_CHARGER,
'start_time' => date('Y-m-d H:i:s', $this->order->getStartTime()), 'start_time' => date('Y-m-d H:i:s', $this->order->getStartTime()),
'start_capacity' => $this->order->getStartCapacity(),
]; ];
//更新订单状态
if ($this->order->getStartCapacity() !== -2) {
$update['start_capacity'] = (int)$this->order->getStartCapacity();
}
$orderModel = new OrderModel(); $orderModel = new OrderModel();
$orderModel->update($update, 'id = ' . $this->order->getId()); $orderModel->update($update, 'id = ' . $this->order->getId());
......
...@@ -69,6 +69,11 @@ class Bintohex ...@@ -69,6 +69,11 @@ class Bintohex
Log::error('encode error'); Log::error('encode error');
return; return;
} }
if (ctype_xdigit($buffer) === false) {
Log::error('not hex fomat', ['buffer' => $buffer]);
return;
}
return pack('H*', bin2hex(hex2bin($buffer))); return pack('H*', bin2hex(hex2bin($buffer)));
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment