Commit 914e138d by BANice

订单同步完成未测试,网关离线记录正在充电的订单的离线时间

parent fa8cd04d
...@@ -5,44 +5,26 @@ ...@@ -5,44 +5,26 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="00edf348-0453-4317-8d2b-bf5eb8ea4b7a" name="Default" comment=""> <list default="true" id="00edf348-0453-4317-8d2b-bf5eb8ea4b7a" name="Default" comment="">
<change afterPath="$PROJECT_DIR$/Application/Model/OrderCapacityModel.php" afterDir="false" /> <change afterPath="$PROJECT_DIR$/Lib/cdz_order/Order.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/api/message/ChargerExceptionMessage.php" afterDir="false" /> <change afterPath="$PROJECT_DIR$/Lib/cdz_order/order/SaveOrder.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/api/message/ChargerExcessMessage.php" afterDir="false" /> <change afterPath="$PROJECT_DIR$/Lib/cdz_order/state/Charger.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/api/message/ChargerFailMessage.php" afterDir="false" /> <change afterPath="$PROJECT_DIR$/Lib/cdz_order/state/Created.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/api/message/ChargerFullMessage.php" afterDir="false" /> <change afterPath="$PROJECT_DIR$/Lib/cdz_order/state/Finish.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/api/message/ChargerReloadMessage.php" afterDir="false" /> <change afterPath="$PROJECT_DIR$/Lib/cdz_order/state/Offline.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/order_exception/Exception.php" afterDir="false" /> <change afterPath="$PROJECT_DIR$/Lib/cdz_order/state/Online.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/order_exception/OrderState.php" afterDir="false" /> <change afterPath="$PROJECT_DIR$/Lib/cdz_order/state/PortShed.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/order_exception/OrderTrace.php" afterDir="false" /> <change afterPath="$PROJECT_DIR$/Lib/cdz_order/state/State.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/rabbitmq/MyRabbitMq.php" afterDir="false" /> <change afterPath="$PROJECT_DIR$/Lib/cdz_order/state/WaitingCharger.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/rabbitmq/PublishPortShed.php" afterDir="false" /> <change afterPath="$PROJECT_DIR$/test/test.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/send/Command.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/send/Send.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/send/command/BalanceChargerCommand.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/send/command/ChargerCommand.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/send/command/ConfirmChargerCommand.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/send/command/SimpleChargerCommand.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/send/command/StopChargerCommand.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/tool/ArrayToXml.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/tool/Crc.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Lib/tool/StringTool.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bug_doc/guide/charger.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Application/Controller/AccessController.php" beforeDir="false" afterPath="$PROJECT_DIR$/Application/Controller/AccessController.php" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Application/Controller/AccessController.php" beforeDir="false" afterPath="$PROJECT_DIR$/Application/Controller/AccessController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Application/Controller/HeartController.php" beforeDir="false" afterPath="$PROJECT_DIR$/Application/Controller/HeartController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Application/Controller/PortController.php" beforeDir="false" afterPath="$PROJECT_DIR$/Application/Controller/PortController.php" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Application/Controller/PortController.php" beforeDir="false" afterPath="$PROJECT_DIR$/Application/Controller/PortController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Application/Controller/PowerController.php" beforeDir="false" afterPath="$PROJECT_DIR$/Application/Controller/PowerController.php" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Application/Controller/PowerController.php" beforeDir="false" afterPath="$PROJECT_DIR$/Application/Controller/PowerController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Application/Controller/SettingController.php" beforeDir="false" afterPath="$PROJECT_DIR$/Application/Controller/SettingController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Application/Events.php" beforeDir="false" afterPath="$PROJECT_DIR$/Application/Events.php" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Application/Events.php" beforeDir="false" afterPath="$PROJECT_DIR$/Application/Events.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Lib/Response.php" beforeDir="false" afterPath="$PROJECT_DIR$/Lib/Response.php" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Lib/Response.php" beforeDir="false" afterPath="$PROJECT_DIR$/Lib/Response.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Lib/api/message/ChargerExceedMessage.php" beforeDir="false" afterPath="$PROJECT_DIR$/Lib/api/message/ChargerExceedMessage.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Lib/api/message/ChargerFinishMessage.php" beforeDir="false" afterPath="$PROJECT_DIR$/Lib/api/message/ChargerFinishMessage.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Lib/api/message/MessageData.php" beforeDir="false" afterPath="$PROJECT_DIR$/Lib/api/message/MessageData.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Lib/api/message/PortShedMessage.php" beforeDir="false" afterPath="$PROJECT_DIR$/Lib/api/message/PortShedMessage.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Lib/api/message/Push.php" beforeDir="false" afterPath="$PROJECT_DIR$/Lib/api/message/Push.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Lib/port/Port.php" beforeDir="false" afterPath="$PROJECT_DIR$/Lib/port/Port.php" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Lib/port/Port.php" beforeDir="false" afterPath="$PROJECT_DIR$/Lib/port/Port.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Lib/redis/RedisKey.php" beforeDir="false" afterPath="$PROJECT_DIR$/Lib/redis/RedisKey.php" afterDir="false" /> <change beforePath="$PROJECT_DIR$/bug_doc/通讯协议v2(应用协议).md" beforeDir="false" afterPath="$PROJECT_DIR$/bug_doc/通讯协议v2(应用协议).md" afterDir="false" />
<change beforePath="$PROJECT_DIR$/vendor/workerman/workerman/Protocols/Bintohex.php" beforeDir="false" afterPath="$PROJECT_DIR$/vendor/workerman/workerman/Protocols/Bintohex.php" afterDir="false" /> <change beforePath="$PROJECT_DIR$/bug_doc/通讯协议v2(应用协议).pdf" beforeDir="false" afterPath="$PROJECT_DIR$/bug_doc/通讯协议v2(应用协议).pdf" afterDir="false" />
</list> </list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" /> <option name="TRACKING_ENABLED" value="true" />
...@@ -59,95 +41,98 @@ ...@@ -59,95 +41,98 @@
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="PowerController.php" pinned="false" current-in-tab="false"> <file leaf-file-name="Order.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Application/Controller/PowerController.php"> <entry file="file://$PROJECT_DIR$/Lib/cdz_order/Order.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="348"> <state relative-caret-position="1395">
<caret line="293" selection-start-line="293" selection-end-line="293" /> <caret line="98" column="20" selection-start-line="98" selection-start-column="20" selection-end-line="98" selection-end-column="20" />
<folding>
<element signature="e#117#147#0#PHP" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="SettingController.php" pinned="false" current-in-tab="false"> <file leaf-file-name="Events.php" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/Application/Controller/SettingController.php"> <entry file="file://$PROJECT_DIR$/Application/Events.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="317"> <state relative-caret-position="162">
<caret line="42" selection-start-line="42" selection-end-line="42" /> <caret line="156" selection-start-line="156" selection-end-line="156" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="PortController.php" pinned="false" current-in-tab="true"> <file leaf-file-name="standard_9.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Application/Controller/PortController.php"> <entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/standard/standard_9.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="602"> <state relative-caret-position="299">
<caret line="219" column="50" selection-start-line="219" selection-start-column="50" selection-end-line="219" selection-end-column="50" /> <caret line="85" column="9" selection-start-line="85" selection-start-column="9" selection-end-line="85" selection-end-column="9" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="OrderTrace.php" pinned="false" current-in-tab="false"> <file leaf-file-name="AccessController.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Lib/order_exception/OrderTrace.php"> <entry file="file://$PROJECT_DIR$/Application/Controller/AccessController.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="510"> <state relative-caret-position="377">
<caret line="39" column="50" selection-start-line="39" selection-start-column="50" selection-end-line="39" selection-end-column="50" /> <caret line="243" column="42" selection-start-line="243" selection-start-column="42" selection-end-line="243" selection-end-column="42" />
<folding>
<element signature="e#124#166#0#PHP" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="_types.php" pinned="false" current-in-tab="false"> <file leaf-file-name="Offline.php" pinned="false" current-in-tab="false">
<entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/standard/_types.php"> <entry file="file://$PROJECT_DIR$/Lib/cdz_order/state/Offline.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="304"> <state relative-caret-position="195">
<caret line="105" column="13" selection-start-line="105" selection-start-column="13" selection-end-line="105" selection-end-column="13" /> <caret line="18" column="23" selection-start-line="18" selection-start-column="23" selection-end-line="18" selection-end-column="23" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="AccessController.php" pinned="false" current-in-tab="false"> <file leaf-file-name="Port.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Application/Controller/AccessController.php"> <entry file="file://$PROJECT_DIR$/Lib/port/Port.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="358"> <state relative-caret-position="643">
<caret line="228" column="20" lean-forward="true" selection-start-line="228" selection-start-column="20" selection-end-line="228" selection-end-column="20" /> <caret line="361" column="29" selection-start-line="361" selection-start-column="29" selection-end-line="361" selection-end-column="29" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="Port.php" pinned="false" current-in-tab="false"> <file leaf-file-name="test.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Lib/port/Port.php"> <entry file="file://$PROJECT_DIR$/test/test.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="471"> <state relative-caret-position="180">
<caret line="347" column="20" selection-start-line="347" selection-start-column="20" selection-end-line="347" selection-end-column="20" /> <caret line="17" lean-forward="true" selection-start-line="17" selection-end-line="17" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="Redis.php" pinned="false" current-in-tab="false"> <file leaf-file-name="RedisKey.php" pinned="false" current-in-tab="false">
<entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/redis/Redis.php"> <entry file="file://$PROJECT_DIR$/Lib/redis/RedisKey.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="304"> <state relative-caret-position="465">
<caret line="2763" column="20" selection-start-line="2763" selection-start-column="20" selection-end-line="2763" selection-end-column="20" /> <caret line="36" column="51" selection-start-line="36" selection-start-column="51" selection-end-line="36" selection-end-column="51" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="HeartController.php" pinned="false" current-in-tab="false"> <file leaf-file-name="Redis.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Application/Controller/HeartController.php"> <entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/redis/Redis.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="345"> <state relative-caret-position="297">
<caret line="29" column="21" selection-start-line="29" selection-start-column="21" selection-end-line="29" selection-end-column="21" /> <caret line="3000" column="20" selection-start-line="3000" selection-start-column="20" selection-end-line="3000" selection-end-column="20" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="OrderState.php" pinned="false" current-in-tab="false"> <file leaf-file-name="State.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Lib/order_exception/OrderState.php"> <entry file="file://$PROJECT_DIR$/Lib/cdz_order/state/State.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="600"> <state relative-caret-position="164">
<caret line="45" column="13" selection-start-line="45" selection-start-column="13" selection-end-line="45" selection-end-column="13" /> <caret line="101" column="20" selection-start-line="101" selection-start-column="20" selection-end-line="101" selection-end-column="20" />
<folding>
<element signature="e#123#148#0#PHP" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
...@@ -189,16 +174,6 @@ ...@@ -189,16 +174,6 @@
<component name="IdeDocumentHistory"> <component name="IdeDocumentHistory">
<option name="CHANGED_PATHS"> <option name="CHANGED_PATHS">
<list> <list>
<option value="$PROJECT_DIR$/Application/Middleware/HasMacMiddleware.php" />
<option value="$PROJECT_DIR$/Application/Model/PortModel.php" />
<option value="$PROJECT_DIR$/Application/Model/OrderModel.php" />
<option value="$PROJECT_DIR$/Application/Controller/CapacityController.php" />
<option value="$PROJECT_DIR$/Application/Controller/CertifyController.php" />
<option value="$PROJECT_DIR$/Application/Model/StationModel.php" />
<option value="$PROJECT_DIR$/start.php" />
<option value="$PROJECT_DIR$/Lib/api/message/PortShetMessage.php" />
<option value="$PROJECT_DIR$/Lib/wx/User.php" />
<option value="$PROJECT_DIR$/Lib/state/StateCode.php" />
<option value="$PROJECT_DIR$/Application/Model/OrderExceptionModel.php" /> <option value="$PROJECT_DIR$/Application/Model/OrderExceptionModel.php" />
<option value="$PROJECT_DIR$/Application/Model.php" /> <option value="$PROJECT_DIR$/Application/Model.php" />
<option value="$PROJECT_DIR$/Lib/Log.php" /> <option value="$PROJECT_DIR$/Lib/Log.php" />
...@@ -218,15 +193,12 @@ ...@@ -218,15 +193,12 @@
<option value="$PROJECT_DIR$/Lib/rabbitmq/Publish.php" /> <option value="$PROJECT_DIR$/Lib/rabbitmq/Publish.php" />
<option value="$PROJECT_DIR$/Lib/rabbitmq/PublishPortShed.php" /> <option value="$PROJECT_DIR$/Lib/rabbitmq/PublishPortShed.php" />
<option value="$PROJECT_DIR$/Lib/api/message/ChargerReloadMessage.php" /> <option value="$PROJECT_DIR$/Lib/api/message/ChargerReloadMessage.php" />
<option value="$PROJECT_DIR$/Lib/Response.php" />
<option value="$PROJECT_DIR$/Lib/api/message/ChargerExcessMessage.php" /> <option value="$PROJECT_DIR$/Lib/api/message/ChargerExcessMessage.php" />
<option value="$PROJECT_DIR$/Lib/api/message/MessageData.php" /> <option value="$PROJECT_DIR$/Lib/api/message/MessageData.php" />
<option value="$PROJECT_DIR$/Lib/api/message/Push.php" /> <option value="$PROJECT_DIR$/Lib/api/message/Push.php" />
<option value="$PROJECT_DIR$/Lib/api/message/ChargerFullMessage.php" /> <option value="$PROJECT_DIR$/Lib/api/message/ChargerFullMessage.php" />
<option value="$PROJECT_DIR$/Lib/api/message/ChargerExceedMessage.php" /> <option value="$PROJECT_DIR$/Lib/api/message/ChargerExceedMessage.php" />
<option value="$PROJECT_DIR$/Application/Controller/SettingController.php" /> <option value="$PROJECT_DIR$/Application/Controller/SettingController.php" />
<option value="$PROJECT_DIR$/Application/Events.php" />
<option value="$PROJECT_DIR$/Lib/port/Port.php" />
<option value="$PROJECT_DIR$/Lib/api/message/ChargerFailMessage.php" /> <option value="$PROJECT_DIR$/Lib/api/message/ChargerFailMessage.php" />
<option value="$PROJECT_DIR$/Lib/api/message/ChargerExceptionMessage.php" /> <option value="$PROJECT_DIR$/Lib/api/message/ChargerExceptionMessage.php" />
<option value="$PROJECT_DIR$/Lib/order_exception/OrderTrace.php" /> <option value="$PROJECT_DIR$/Lib/order_exception/OrderTrace.php" />
...@@ -236,10 +208,23 @@ ...@@ -236,10 +208,23 @@
<option value="$PROJECT_DIR$/Lib/api/message/ChargerFinishMessage.php" /> <option value="$PROJECT_DIR$/Lib/api/message/ChargerFinishMessage.php" />
<option value="$PROJECT_DIR$/Application/Controller/HeartController.php" /> <option value="$PROJECT_DIR$/Application/Controller/HeartController.php" />
<option value="$PROJECT_DIR$/Lib/redis/RedisKey.php" /> <option value="$PROJECT_DIR$/Lib/redis/RedisKey.php" />
<option value="$PROJECT_DIR$/Application/Controller/AccessController.php" />
<option value="$PROJECT_DIR$/Application/Controller/PowerController.php" />
<option value="$PROJECT_DIR$/Lib/order_exception/OrderState.php" /> <option value="$PROJECT_DIR$/Lib/order_exception/OrderState.php" />
<option value="$PROJECT_DIR$/Lib/cdz_order/state/PortShed.php" />
<option value="$PROJECT_DIR$/Lib/cdz_order/state/Online.php" />
<option value="$PROJECT_DIR$/Lib/cdz_order/state/WaitingCharger.php" />
<option value="$PROJECT_DIR$/Lib/cdz_order/order/SaveOrder.php" />
<option value="$PROJECT_DIR$/Lib/cdz_order/state/Created.php" />
<option value="$PROJECT_DIR$/Lib/Response.php" />
<option value="$PROJECT_DIR$/Lib/cdz_order/state/Offline.php" />
<option value="$PROJECT_DIR$/Lib/cdz_order/state/Charger.php" />
<option value="$PROJECT_DIR$/Application/Controller/PowerController.php" />
<option value="$PROJECT_DIR$/Application/Controller/PortController.php" /> <option value="$PROJECT_DIR$/Application/Controller/PortController.php" />
<option value="$PROJECT_DIR$/Application/Controller/AccessController.php" />
<option value="$PROJECT_DIR$/Lib/cdz_order/Order.php" />
<option value="$PROJECT_DIR$/Lib/cdz_order/state/State.php" />
<option value="$PROJECT_DIR$/test/test.php" />
<option value="$PROJECT_DIR$/Lib/port/Port.php" />
<option value="$PROJECT_DIR$/Application/Events.php" />
</list> </list>
</option> </option>
</component> </component>
...@@ -295,19 +280,7 @@ ...@@ -295,19 +280,7 @@
<path> <path>
<item name="cdz_gateway" type="b2602c69:ProjectViewProjectNode" /> <item name="cdz_gateway" type="b2602c69:ProjectViewProjectNode" />
<item name="cdz_gateway" type="462c0819:PsiDirectoryNode" /> <item name="cdz_gateway" type="462c0819:PsiDirectoryNode" />
<item name="Application" type="462c0819:PsiDirectoryNode" /> <item name="test" type="462c0819:PsiDirectoryNode" />
<item name="Controller" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="cdz_gateway" type="b2602c69:ProjectViewProjectNode" />
<item name="cdz_gateway" type="462c0819:PsiDirectoryNode" />
<item name="Lib" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="cdz_gateway" type="b2602c69:ProjectViewProjectNode" />
<item name="cdz_gateway" type="462c0819:PsiDirectoryNode" />
<item name="Lib" type="462c0819:PsiDirectoryNode" />
<item name="order_exception" type="462c0819:PsiDirectoryNode" />
</path> </path>
</expand> </expand>
<select /> <select />
...@@ -375,12 +348,13 @@ ...@@ -375,12 +348,13 @@
<workItem from="1530326477489" duration="4139000" /> <workItem from="1530326477489" duration="4139000" />
<workItem from="1530496499150" duration="45852000" /> <workItem from="1530496499150" duration="45852000" />
<workItem from="1531129252870" duration="18903000" /> <workItem from="1531129252870" duration="18903000" />
<workItem from="1531278957060" duration="17093000" /> <workItem from="1531278957060" duration="18725000" />
<workItem from="1531467678517" duration="23052000" />
</task> </task>
<servers /> <servers />
</component> </component>
<component name="TimeTrackingManager"> <component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="361962000" /> <option name="totallyTimeSpent" value="386646000" />
</component> </component>
<component name="TodoView"> <component name="TodoView">
<todo-panel id="selected-file"> <todo-panel id="selected-file">
...@@ -402,7 +376,7 @@ ...@@ -402,7 +376,7 @@
<window_info anchor="bottom" id="Version Control" order="7" /> <window_info anchor="bottom" id="Version Control" order="7" />
<window_info anchor="bottom" id="Run" order="2" /> <window_info anchor="bottom" id="Run" order="2" />
<window_info anchor="bottom" id="Terminal" order="7" weight="0.31873727" /> <window_info anchor="bottom" id="Terminal" order="7" weight="0.31873727" />
<window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.9242262" visible="true" weight="0.1826411" /> <window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.9242262" visible="true" weight="0.18423855" />
<window_info anchor="bottom" id="Docker" order="8" show_stripe_button="false" /> <window_info anchor="bottom" id="Docker" order="8" show_stripe_button="false" />
<window_info anchor="right" id="Database" order="3" /> <window_info anchor="right" id="Database" order="3" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
...@@ -429,98 +403,6 @@ ...@@ -429,98 +403,6 @@
</breakpoint-manager> </breakpoint-manager>
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/Lib/rabbitmq/MyRabbitMq.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="582">
<caret line="60" column="20" selection-start-line="60" selection-start-column="20" selection-end-line="60" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/api/message/MessageData.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="465">
<caret line="36" column="33" lean-forward="true" selection-start-line="36" selection-start-column="33" selection-end-line="36" selection-end-column="33" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/api/message/Push.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="375">
<caret line="31" lean-forward="true" selection-start-line="31" selection-end-line="31" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/api/message/PortShedMessage.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255">
<caret line="22" column="49" selection-start-line="22" selection-start-column="49" selection-end-line="22" selection-end-column="49" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/composer.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="60">
<caret line="4" column="31" selection-start-line="4" selection-start-column="31" selection-end-line="4" selection-end-column="31" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/start.php">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/Application/Model/StationModel.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="120">
<caret line="13" column="6" selection-start-line="13" selection-start-column="6" selection-end-line="13" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Application/Model/ExceptionModel.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="120">
<caret line="13" column="6" selection-start-line="13" selection-start-column="6" selection-end-line="13" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/log/DeviceLog.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="114">
<caret line="57" column="20" selection-start-line="57" selection-start-column="20" selection-end-line="57" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/order_exception/Ordee.php" />
<entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/standard/standard_5.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="318">
<caret line="76" column="9" selection-start-line="76" selection-start-column="9" selection-end-line="76" selection-end-column="9" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/api/message/ChargerExceedMessage.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="722">
<caret line="70" column="11" selection-start-line="70" selection-start-column="11" selection-end-line="70" selection-end-column="11" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/order_exception/Exception.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="330">
<caret line="27" selection-start-line="27" selection-end-line="27" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/send/send/command/ChargerCommand.php" />
<entry file="file://$PROJECT_DIR$/Lib/send/command/ChargerCommand.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="360">
<caret line="33" lean-forward="true" selection-start-line="33" selection-end-line="33" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/tool/ArrayToXml.php">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/Lib/tool/Crc.php"> <entry file="file://$PROJECT_DIR$/Lib/tool/Crc.php">
<provider selected="true" editor-type-id="text-editor" /> <provider selected="true" editor-type-id="text-editor" />
</entry> </entry>
...@@ -535,9 +417,6 @@ ...@@ -535,9 +417,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1320"> <state relative-caret-position="1320">
<caret line="96" selection-start-line="96" selection-end-line="96" /> <caret line="96" selection-start-line="96" selection-end-line="96" />
<folding>
<element signature="e#115#131#0#PHP" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
...@@ -586,13 +465,6 @@ ...@@ -586,13 +465,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/Application/Events.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1869">
<caret line="224" selection-start-line="224" selection-end-line="224" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/api/message/ChargerExceptionMessage.php"> <entry file="file://$PROJECT_DIR$/Lib/api/message/ChargerExceptionMessage.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="512"> <state relative-caret-position="512">
...@@ -628,13 +500,6 @@ ...@@ -628,13 +500,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/Lib/redis/RedisKey.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="660">
<caret line="49" selection-start-line="49" selection-end-line="49" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/state/StateCode.php"> <entry file="file://$PROJECT_DIR$/Lib/state/StateCode.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="210"> <state relative-caret-position="210">
...@@ -642,13 +507,6 @@ ...@@ -642,13 +507,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/Lib/api/message/ChargerReloadMessage.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="11" column="6" selection-start-line="11" selection-start-column="6" selection-end-line="11" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Application/Controller/CertifyController.php"> <entry file="file://$PROJECT_DIR$/Application/Controller/CertifyController.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="390"> <state relative-caret-position="390">
...@@ -670,17 +528,41 @@ ...@@ -670,17 +528,41 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/redis/Redis.php"> <entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/standard/standard_1.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="304"> <state relative-caret-position="299">
<caret line="2763" column="20" selection-start-line="2763" selection-start-column="20" selection-end-line="2763" selection-end-column="20" /> <caret line="996" column="9" selection-start-line="996" selection-start-column="9" selection-end-line="996" selection-end-column="9" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/standard/standard_1.php"> <entry file="file://$PROJECT_DIR$/bug_doc/guide/charger.png">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/Application/Controller/HeartController.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="299"> <state relative-caret-position="345">
<caret line="996" column="9" selection-start-line="996" selection-start-column="9" selection-end-line="996" selection-end-column="9" /> <caret line="29" column="21" selection-start-line="29" selection-start-column="21" selection-end-line="29" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Application/Controller/SettingController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="495">
<caret line="42" selection-start-line="42" selection-end-line="42" />
</state>
</provider>
</entry>
<entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/standard/_types.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1575">
<caret line="105" column="13" selection-start-line="105" selection-start-column="13" selection-end-line="105" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/composer.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="60">
<caret line="4" column="31" selection-start-line="4" selection-start-column="31" selection-end-line="4" selection-end-column="31" />
</state> </state>
</provider> </provider>
</entry> </entry>
...@@ -691,55 +573,90 @@ ...@@ -691,55 +573,90 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/bug_doc/guide/charger.png"> <entry file="file://$PROJECT_DIR$/Lib/Response.php">
<provider selected="true" editor-type-id="images" /> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="483">
<caret line="83" selection-start-line="83" selection-end-line="83" />
</state>
</provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/Application/Controller/AccessController.php"> <entry file="file://$PROJECT_DIR$/vendor/workerman/gateway-worker/src/Lib/Gateway.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="358"> <state relative-caret-position="369">
<caret line="228" column="20" lean-forward="true" selection-start-line="228" selection-start-column="20" selection-end-line="228" selection-end-column="20" /> <caret line="147" column="27" selection-start-line="147" selection-start-column="27" selection-end-line="147" selection-end-column="27" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/Application/Controller/HeartController.php"> <entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/standard/standard_5.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="345"> <state relative-caret-position="304">
<caret line="29" column="21" selection-start-line="29" selection-start-column="21" selection-end-line="29" selection-end-column="21" /> <caret line="293" column="9" selection-start-line="293" selection-start-column="9" selection-end-line="293" selection-end-column="9" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/Application/Controller/PowerController.php"> <entry file="file://$PROJECT_DIR$/Lib/api/message/ChargerReloadMessage.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="348"> <state relative-caret-position="90">
<caret line="293" selection-start-line="293" selection-end-line="293" /> <caret line="11" column="6" selection-start-line="11" selection-start-column="6" selection-end-line="11" selection-end-column="6" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/Application/Controller/SettingController.php"> <entry file="file://$PROJECT_DIR$/Lib/cdz_order/state/Charger.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="317"> <state relative-caret-position="675">
<caret line="42" selection-start-line="42" selection-end-line="42" /> <caret line="50" column="5" selection-start-line="50" selection-start-column="5" selection-end-line="50" selection-end-column="5" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/Lib/port/Port.php"> <entry file="file://$PROJECT_DIR$/Lib/cdz_order/state/Created.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="471"> <state relative-caret-position="180">
<caret line="347" column="20" selection-start-line="347" selection-start-column="20" selection-end-line="347" selection-end-column="20" /> <caret line="17" selection-start-line="17" selection-end-line="17" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/standard/_types.php"> <entry file="file://$PROJECT_DIR$/Lib/cdz_order/state/Finish.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="304"> <state relative-caret-position="120">
<caret line="105" column="13" selection-start-line="105" selection-start-column="13" selection-end-line="105" selection-end-column="13" /> <caret line="13" lean-forward="true" selection-start-line="13" selection-end-line="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/cdz_order/state/Online.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="11" column="6" selection-start-line="11" selection-start-column="6" selection-end-line="11" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/cdz_order/state/PortShed.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="135">
<caret line="14" selection-start-line="14" selection-end-line="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/cdz_order/order/SaveOrder.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="727">
<caret line="64" column="20" selection-start-line="64" selection-start-column="20" selection-end-line="64" selection-end-column="20" />
<folding>
<element signature="e#123#147#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/cdz_order/state/WaitingCharger.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255">
<caret line="22" column="20" selection-start-line="22" selection-start-column="20" selection-end-line="22" selection-end-column="20" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/Lib/order_exception/OrderTrace.php"> <entry file="file://$PROJECT_DIR$/Lib/order_exception/OrderTrace.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="510"> <state relative-caret-position="465">
<caret line="39" column="50" selection-start-line="39" selection-start-column="50" selection-end-line="39" selection-end-column="50" /> <caret line="36" column="20" selection-start-line="36" selection-start-column="20" selection-end-line="36" selection-end-column="20" />
<folding> <folding>
<element signature="e#124#166#0#PHP" expanded="true" /> <element signature="e#124#166#0#PHP" expanded="true" />
</folding> </folding>
...@@ -748,15 +665,104 @@ ...@@ -748,15 +665,104 @@
</entry> </entry>
<entry file="file://$PROJECT_DIR$/Lib/order_exception/OrderState.php"> <entry file="file://$PROJECT_DIR$/Lib/order_exception/OrderState.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="600"> <state relative-caret-position="660">
<caret line="45" column="13" selection-start-line="45" selection-start-column="13" selection-end-line="45" selection-end-column="13" /> <caret line="49" column="27" selection-start-line="49" selection-start-column="27" selection-end-line="49" selection-end-column="27" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/Application/Controller/PortController.php"> <entry file="file://$PROJECT_DIR$/Application/Controller/PortController.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="602"> <state relative-caret-position="621">
<caret line="219" column="50" selection-start-line="219" selection-start-column="50" selection-end-line="219" selection-end-column="50" /> <caret line="449" selection-start-line="449" selection-end-line="449" />
<folding>
<element signature="e#131#158#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Application/Controller/PowerController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="508">
<caret line="153" column="36" lean-forward="true" selection-start-line="153" selection-start-column="36" selection-end-line="153" selection-end-column="36" />
<folding>
<element signature="e#126#153#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/cdz_order/Order.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1395">
<caret line="98" column="20" selection-start-line="98" selection-start-column="20" selection-end-line="98" selection-end-column="20" />
<folding>
<element signature="e#117#147#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/standard/standard_9.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="299">
<caret line="85" column="9" selection-start-line="85" selection-start-column="9" selection-end-line="85" selection-end-column="9" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Application/Controller/AccessController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="377">
<caret line="243" column="42" selection-start-line="243" selection-start-column="42" selection-end-line="243" selection-end-column="42" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/cdz_order/state/Offline.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="195">
<caret line="18" column="23" selection-start-line="18" selection-start-column="23" selection-end-line="18" selection-end-column="23" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/cdz_order/state/State.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="164">
<caret line="101" column="20" selection-start-line="101" selection-start-column="20" selection-end-line="101" selection-end-column="20" />
<folding>
<element signature="e#123#148#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/redis/RedisKey.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="465">
<caret line="36" column="51" selection-start-line="36" selection-start-column="51" selection-end-line="36" selection-end-column="51" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test/test.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="17" lean-forward="true" selection-start-line="17" selection-end-line="17" />
</state>
</provider>
</entry>
<entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/redis/Redis.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="297">
<caret line="3000" column="20" selection-start-line="3000" selection-start-column="20" selection-end-line="3000" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Lib/port/Port.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="643">
<caret line="361" column="29" selection-start-line="361" selection-start-column="29" selection-end-line="361" selection-end-column="29" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Application/Events.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162">
<caret line="156" selection-start-line="156" selection-end-line="156" />
</state> </state>
</provider> </provider>
</entry> </entry>
......
...@@ -15,7 +15,11 @@ use Application\Model\OrderModel; ...@@ -15,7 +15,11 @@ use Application\Model\OrderModel;
use Application\Model\PortModel; use Application\Model\PortModel;
use Application\Model\StationModel; use Application\Model\StationModel;
use GatewayWorker\Lib\Gateway; use GatewayWorker\Lib\Gateway;
use Lib\cdz_order\Order;
use Lib\cdz_order\state\Offline;
use Lib\cdz_order\state\Online;
use Lib\Log; use Lib\Log;
use Lib\order_exception\OrderState;
use Lib\port\Port; use Lib\port\Port;
use Lib\redis\RedisKey; use Lib\redis\RedisKey;
...@@ -123,6 +127,12 @@ class AccessController extends Controller ...@@ -123,6 +127,12 @@ class AccessController extends Controller
} }
private function syncOrder(array $portId)
{
}
/** /**
* command 03 * command 03
* 端口同步 * 端口同步
...@@ -146,7 +156,13 @@ class AccessController extends Controller ...@@ -146,7 +156,13 @@ class AccessController extends Controller
$this->plc += $countDec * 16; $this->plc += $countDec * 16;
$macsState = substr($this->message, $this->plc); $macsState = substr($this->message, $this->plc, $countDec * 2);
$this->plc += $countDec * 2;
$offlineReason = substr($this->message, $this->plc);
$offlineReason = hexdec($offlineReason);
$stateArray = $this->parseState($macsState); $stateArray = $this->parseState($macsState);
...@@ -192,6 +208,7 @@ class AccessController extends Controller ...@@ -192,6 +208,7 @@ class AccessController extends Controller
if (isset($portMacId[$mac])) { if (isset($portMacId[$mac])) {
$portIdState[$portMacId[$mac]] = $stateArray[$i]; $portIdState[$portMacId[$mac]] = $stateArray[$i];
} }
$i++; $i++;
...@@ -199,87 +216,76 @@ class AccessController extends Controller ...@@ -199,87 +216,76 @@ class AccessController extends Controller
$redis->exec(); $redis->exec();
Log::debug('口子状态', $portIdState
);
$port->setPortState($portIdState); //改变口子状态 $port->setPortState($portIdState); //改变口子状态
if (isset($_SESSION['port_mac_id'])) {
$portMacId = $_SESSION['port_mac_id'];
}
$responseOrder = []; $responseOrder = [];
$time = time();
foreach ($portIdState as $id => $state) { foreach ($portIdState as $id => $state) {
$port->setId($id); $port->setId($id);
$orderId = $port->getPortUsingOrderId($redis, $id); $orderId = $port->getPortUsingOrderId($redis, $id);
var_dump($orderId); Log::debug('order_id->'.$orderId);
if (isset($orderId) === false || $orderId === false || $orderId == 0) { if (isset($orderId) === false || $orderId === false || $orderId == 0) {
continue; continue;
} else { } else {
$orderModel = new OrderModel(); $order = new Order();
$order->setId($orderId);
var_dump($orderId);
$orderInfo = $orderModel->getColumns(['charger_time', 'created_at', 'logic_num'], 'id = ' . $orderId); if ($order->getOrderCache($redis) !== false) {
$createdTime = $orderInfo['created_at']; $orderState = new Offline($order, $redis, $offlineReason);
$chargerTime = $orderInfo['charger_time']; $orderState->toCharger();
$remainChargerTime = $orderState->getRemainChargerTime();
if (($chargerTime + strtotime($createdTime) < $time)) { Log::debug('remainChargerTime'.$remainChargerTime);
continue;
} else {
$chargerTime = ceil($chargerTime - ($time - strtotime($createdTime)));
$chargerTime = (int)$chargerTime;
if ($chargerTime > 0) { if ($remainChargerTime > 0) {
array_push($responseOrder, [ array_push($responseOrder, [
sprintf('%02x', $orderInfo['logic_num']), sprintf('%02x', $order->getPortLogicId()),
sprintf('%012x', $orderId), sprintf('%012x', $order->getId()),
sprintf('%04x', $chargerTime), sprintf('%04x', $remainChargerTime),
]); ]);
} }
} }
}
}
unset($order);
} }
$orderCount = sprintf('%02x',count($responseOrder)); Log::debug('using order',$responseOrder);
$orderCount = sprintf('%02x', count($responseOrder));
$responseOrderMessage = ''; $responseOrderMessage = '';
foreach ($responseOrder as $order) { foreach ($responseOrder as $order) {
$responseOrderMessage.=implode('',$order); $responseOrderMessage .= implode('', $order);
} }
Log::debug($orderCount);
Log::debug('order_using',$responseOrder);
$this->response->send('03', $startLogicNum . $count . $totalCount . $orderCount . $responseOrderMessage);
Log::debug('response_order_message ->'.$responseOrderMessage);
return $this->response->send('03', $startLogicNum . $count . $totalCount.$orderCount.$responseOrderMessage);
} }
...@@ -302,8 +308,6 @@ class AccessController extends Controller ...@@ -302,8 +308,6 @@ class AccessController extends Controller
} }
Log::debug('mac => logic', $macLogic);
return $macLogic; return $macLogic;
} }
...@@ -324,6 +328,22 @@ class AccessController extends Controller ...@@ -324,6 +328,22 @@ class AccessController extends Controller
}, $state); }, $state);
} }
/**
* 解析离线原因
* @param string $reason
* @return array
*/
private function parseOfflineReason(string $reason)
{
$reasonCode = str_split($reason, 2);
return array_map(function ($hex) {
return (int)hexdec($hex);
}, $reasonCode);
}
} }
......
...@@ -20,6 +20,8 @@ use Lib\api\message\ChargerReloadMessage; ...@@ -20,6 +20,8 @@ use Lib\api\message\ChargerReloadMessage;
use Lib\api\message\ChargerStartMessage; use Lib\api\message\ChargerStartMessage;
use Lib\api\message\PortShedMessage; use Lib\api\message\PortShedMessage;
use Lib\api\message\Push; use Lib\api\message\Push;
use Lib\cdz_order\Order;
use Lib\cdz_order\state\WaitingCharger;
use Lib\Gateway; use Lib\Gateway;
use Lib\Log; use Lib\Log;
use Lib\order_exception\OrderState; use Lib\order_exception\OrderState;
...@@ -210,23 +212,25 @@ class PortController extends Controller ...@@ -210,23 +212,25 @@ class PortController extends Controller
$update = ['shed_time' => $nowTime]; $update = ['shed_time' => $nowTime];
$orderLastState = OrderState::getState($orderId); // $orderLastState = OrderState::getState($orderId);
//
if($orderLastState == StateCode::PORT_SHED) { // if ($orderLastState == StateCode::PORT_SHED) {
//
if (isset($lastShedTime)) { // if (isset($lastShedTime)) {
$gapTime = strtotime($nowTime) - strtotime($lastShedTime); // $gapTime = strtotime($nowTime) - strtotime($lastShedTime);
//
if (($gapTime / 60) > 12) { // if (($gapTime / 60) > 12) {
//
//口子距离上一次插口脱落时间超过了十分中,下发结束充电命令 // //fixme debug
//发送结束充电,结束状态为远程超时结束 //
// //口子距离上一次插口脱落时间超过了十分中,下发结束充电命令
Log::debug('todo 插口脱落超时10分钟'); // //发送结束充电,结束状态为远程超时结束
//
} // Log::debug('todo 插口脱落超时10分钟');
} //
} // }
// }
// }
$orderModel->update($update, 'id = ' . $orderId); $orderModel->update($update, 'id = ' . $orderId);
...@@ -292,13 +296,11 @@ class PortController extends Controller ...@@ -292,13 +296,11 @@ class PortController extends Controller
} }
$redis = \Events::getRedis();
switch ($state) { switch ($state) {
case StateCode::PORT_CHARGER: case StateCode::PORT_CHARGER:
$orderState = new OrderState($orderId);
$orderState->setState(12);
$orderModel = new OrderModel(); $orderModel = new OrderModel();
$result = $orderModel->getColumns(['port_name', 'station_name', 'created_at', 'charger_time', 'order_amount'], 'id = ' . $orderId); $result = $orderModel->getColumns(['port_name', 'station_name', 'created_at', 'charger_time', 'order_amount'], 'id = ' . $orderId);
...@@ -330,6 +332,18 @@ class PortController extends Controller ...@@ -330,6 +332,18 @@ class PortController extends Controller
} else if ($lastState == -1) { } else if ($lastState == -1) {
$order = new Order();
$order->setId($orderId);
if($order->getOrderCache($redis) !== false)
{
$waiting = new WaitingCharger($order,$redis);
$waiting->toCharger();
}
$chargerStartMessage = new ChargerStartMessage(); $chargerStartMessage = new ChargerStartMessage();
$chargerStartMessage->setStartTime($result['created_at']); $chargerStartMessage->setStartTime($result['created_at']);
...@@ -420,7 +434,6 @@ class PortController extends Controller ...@@ -420,7 +434,6 @@ class PortController extends Controller
case StateCode::FINISH_REMOTE: case StateCode::FINISH_REMOTE:
break; break;
case StateCode::PORT_OFFLINE: case StateCode::PORT_OFFLINE:
...@@ -433,6 +446,11 @@ class PortController extends Controller ...@@ -433,6 +446,11 @@ class PortController extends Controller
break; break;
case StateCode::FINISH_EXCEED:
break;
default: default:
break; break;
......
...@@ -10,7 +10,6 @@ namespace Application\Controller; ...@@ -10,7 +10,6 @@ namespace Application\Controller;
use Application\Controller; use Application\Controller;
use Application\Model\ExceptionModel;
use Application\Model\OrderCapacityModel; use Application\Model\OrderCapacityModel;
use Application\Model\OrderExceptionModel; use Application\Model\OrderExceptionModel;
use Application\Model\OrderModel; use Application\Model\OrderModel;
...@@ -21,19 +20,16 @@ use Lib\api\message\ChargerFailMessage; ...@@ -21,19 +20,16 @@ use Lib\api\message\ChargerFailMessage;
use Lib\api\message\ChargerFinishMessage; use Lib\api\message\ChargerFinishMessage;
use Lib\api\message\ChargerRefundMessage; use Lib\api\message\ChargerRefundMessage;
use Lib\api\message\ChargerStartMessage; use Lib\api\message\ChargerStartMessage;
use Lib\api\message\MessageData;
use Lib\api\message\PortShedMessage; use Lib\api\message\PortShedMessage;
use Lib\api\message\Push; use Lib\api\message\Push;
use Lib\cdz_order\Order;
use Lib\cdz_order\state\WaitingCharger;
use Lib\Gateway; use Lib\Gateway;
use Lib\Log; use Lib\Log;
use Lib\order_exception\OrderState; use Lib\order_exception\OrderState;
use Lib\order_exception\OrderTrace; use Lib\order_exception\OrderTrace;
use Lib\port\Port; use Lib\port\Port;
use Lib\rabbitmq\MyRabbitMq;
use Lib\send\command\StopChargerCommand;
use Lib\send\Send;
use Lib\state\StateCode; use Lib\state\StateCode;
use Workerman\Events\Event;
class PowerController extends Controller class PowerController extends Controller
{ {
...@@ -131,7 +127,14 @@ class PowerController extends Controller ...@@ -131,7 +127,14 @@ class PowerController extends Controller
$stationName = $_SESSION['station_name']; $stationName = $_SESSION['station_name'];
$orderState = new OrderState($orderId); $order = new Order();
$order->setId($id);
$redis = \Events::getRedis();
if ($state === StateCode::PORT_CHARGER) { if ($state === StateCode::PORT_CHARGER) {
...@@ -147,7 +150,16 @@ class PowerController extends Controller ...@@ -147,7 +150,16 @@ class PowerController extends Controller
$pushMessage->setAddress($stationName . '-' . $portName . '号'); $pushMessage->setAddress($stationName . '-' . $portName . '号');
$orderState->setState($state);
if( $order->getOrderCache($redis) !== false)
{
var_dump($order->getOrderCache($redis));
$waiting = new WaitingCharger($order,$redis);
$waiting->toCharger();
}
...@@ -163,8 +175,6 @@ class PowerController extends Controller ...@@ -163,8 +175,6 @@ class PowerController extends Controller
$pushMessage->setOrderId($orderId); $pushMessage->setOrderId($orderId);
$orderState->setState($state);
} }
...@@ -247,7 +257,6 @@ class PowerController extends Controller ...@@ -247,7 +257,6 @@ class PowerController extends Controller
$time = date('Y-m-d H:i:s'); $time = date('Y-m-d H:i:s');
$port = new Port(); $port = new Port();
$port->setLogic((int)$logic); $port->setLogic((int)$logic);
......
...@@ -149,13 +149,12 @@ class Events ...@@ -149,13 +149,12 @@ class Events
{ {
// 网关离线将往下所有的口子全部设置为离线 // 网关离线将往下所有的口子全部设置为离线
$redis = Events::getRedis();
if (isset($_SESSION['gateway_id']) === true) { if (isset($_SESSION['gateway_id']) === true) {
Log::info('gateway_id(' . $_SESSION['gateway_id'] . ')' . 'disconnect'); Log::info('gateway_id(' . $_SESSION['gateway_id'] . ')' . 'disconnect');
$redis = Events::getRedis();
$redis->zAdd(\Lib\redis\RedisKey::GATEWAY_STATE, 0, $_SESSION['gateway_id']); $redis->zAdd(\Lib\redis\RedisKey::GATEWAY_STATE, 0, $_SESSION['gateway_id']);
...@@ -193,9 +192,8 @@ class Events ...@@ -193,9 +192,8 @@ class Events
$portMacIdArray = $_SESSION['port_mac_id']; $portMacIdArray = $_SESSION['port_mac_id'];
if (isset($portMacIdArray)) { if (isset($portMacIdArray)) {
$port = new \Lib\port\Port();
Log::debug('close 设置离线口子', $portMacIdArray); $port = new \Lib\port\Port();
$port->offline(array_values($portMacIdArray)); $port->offline(array_values($portMacIdArray));
...@@ -203,12 +201,10 @@ class Events ...@@ -203,12 +201,10 @@ class Events
try { try {
$exceptionModel = new \Application\Model\ExceptionModel(); $exceptionModel = new \Application\Model\ExceptionModel();
$gatewayId = $_SESSION['gateway_id']; $gatewayId = $_SESSION['gateway_id'];
$insert = ['message' => '网关离线', 'gateway_id' => $gatewayId, 'type' => 1, 'created_at' => date('Y-m-d H:i:s')]; $insert = ['message' => '网关离线', 'gateway_id' => $gatewayId, 'type' => 1, 'created_at' => date('Y-m-d H:i:s')];
if (isset($_SESSION['station_id'])) { if (isset($_SESSION['station_id'])) {
...@@ -221,7 +217,27 @@ class Events ...@@ -221,7 +217,27 @@ class Events
} }
$portIds = array_values($portMacIdArray);
$time = time();
$port = new \Lib\port\Port();
$usingOrderIds = $port->getPortsUsingId($redis, $portIds);
$redis->multi(2);
foreach ($usingOrderIds as $portId => $usingOrderId) {
if ($usingOrderId !== false) {
$keyName = \Lib\cdz_order\state\State::ORDER_HASH_PREFIX . $usingOrderId;
$redis->hSet($keyName, 'offlineTime', $time);
}
}
$redis->exec();
} }
......
...@@ -82,9 +82,6 @@ class Response ...@@ -82,9 +82,6 @@ class Response
$this->length = sprintf('%04x',(8+strlen($data)/2 )); $this->length = sprintf('%04x',(8+strlen($data)/2 ));
Log::debug('send-length'.$this->length);
Gateway::sendToClient($this->controller->getClientId(),$this->organize()); Gateway::sendToClient($this->controller->getClientId(),$this->organize());
} }
......
<?php
/**
* Created by PhpStorm.
* User: banice
* Date: 2018/7/16
* Time: 上午9:24
*/
namespace Lib\cdz_order;
use Lib\cdz_order\state\State;
use Lib\Log;
class Order
{
/**
* @var int
*/
private $id;
/**
* @var string
*/
private $createdTime = '';
/**
* @var int
*/
private $userId;
/**
* @var int
*/
private $payAmount;
/**
* @var int
*/
private $purchaseTime;
/**
* @var int
*/
private $portId;
/**
* @var int
*/
private $gatewayId;
/**
* @var string
*/
private $gatewayMac;
/**
* @var int
*/
private $portLogicId;
/**
* @var State
*/
private $currentState;
/**
* @var int
*/
private $stateCode;
/**
* @var array
*/
private $orderCache;
/**
* @var string
*/
private $portName;
/**
* @var string
*/
private $stationName;
/**
* @param \Redis $redis
* @return array|bool
*/
public function getOrderCache(\Redis $redis)
{
if(isset($this->orderCache) === false){
$keyName = State::ORDER_HASH_PREFIX . $this->id;
if ($redis->exists($keyName) === false) {
Log::debug('exists false');
return false;
}
$this->orderCache = $redis->hGetAll($keyName);
foreach ($this->orderCache as $key => $value) {
$this->$key = $value;
}
}
return $this->orderCache;
}
/**
* @param \Redis $redis
* @param $orderCache
*/
public function setOrderCache(\Redis $redis, $orderCache): void
{
$this->orderCache = $orderCache;
$redis->hMset(State::ORDER_HASH_PREFIX . $this->id, $orderCache);
}
/**
* @return State
*/
public function getCurrentState(): State
{
return $this->currentState;
}
/**
* @param State $currentState
*/
public function setCurrentState(State $currentState): void
{
$this->currentState = $currentState;
}
/**
* @return int
*/
public function getStateCode(): int
{
return $this->stateCode;
}
/**
* @param int $stateCode
*/
public function setStateCode(int $stateCode): void
{
$this->stateCode = $stateCode;
}
/**
* @return string
*/
public function getCreatedTime(): string
{
return $this->createdTime;
}
/**
* @param string $createdTime
*/
public function setCreatedTime(string $createdTime): void
{
$this->createdTime = $createdTime;
}
/**
* @return int
*/
public function getUserId(): int
{
return $this->userId;
}
/**
* @param int $userId
*/
public function setUserId(int $userId): void
{
$this->userId = $userId;
}
/**
* @return int
*/
public function getPayAmount(): int
{
return $this->payAmount;
}
/**
* @param int $payAmount
*/
public function setPayAmount(int $payAmount): void
{
$this->payAmount = $payAmount;
}
/**
* @return int
*/
public function getPurchaseTime(): int
{
return $this->purchaseTime;
}
/**
* @param int $purchaseTime
*/
public function setPurchaseTime(int $purchaseTime): void
{
$this->purchaseTime = $purchaseTime;
}
/**
* @return int
*/
public function getPortId(): int
{
return $this->portId;
}
/**
* @param int $portId
*/
public function setPortId(int $portId): void
{
$this->portId = $portId;
}
/**
* @return int
*/
public function getGatewayId(): int
{
return $this->gatewayId;
}
/**
* @param int $gatewayId
*/
public function setGatewayId(int $gatewayId): void
{
$this->gatewayId = $gatewayId;
}
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @param int $id
*/
public function setId(int $id): void
{
$this->id = $id;
}
/**
* @return string
*/
public function getGatewayMac(): string
{
return $this->gatewayMac;
}
/**
* @param string $gatewayMac
*/
public function setGatewayMac(string $gatewayMac): void
{
$this->gatewayMac = $gatewayMac;
}
/**
* @return int
*/
public function getPortLogicId(): int
{
return $this->portLogicId;
}
/**
* @param int $portLogicId
*/
public function setPortLogicId(int $portLogicId): void
{
$this->portLogicId = $portLogicId;
}
/**
* @return string
*/
public function getPortName(): string
{
return $this->portName;
}
/**
* @param string $portName
*/
public function setPortName(string $portName): void
{
$this->portName = $portName;
}
/**
* @return string
*/
public function getStationName(): string
{
return $this->stationName;
}
/**
* @param string $stationName
*/
public function setStationName(string $stationName): void
{
$this->stationName = $stationName;
}
}
\ No newline at end of file
<?php
/**
* Created by PhpStorm.
* User: banice
* Date: 2018/7/16
* Time: 上午9:34
*/
namespace Lib\cdz_order\order;
use Lib\cdz_order\Order;
use Lib\cdz_order\state\State;
class SaveOrder
{
protected $state;
protected $redis;
public function __construct(State $state)
{
$this->state = $state;
$this->redis = $state->getRedis();
}
public function saveCreatedTime()
{
$this->redis->hSet($this->state->getKeyName(), State::FIELD[0], $this->state->getOrder()->getCreatedTime());
}
public function saveStartTime()
{
$this->redis->hSet($this->state->getKeyName(), State::FIELD[2], $this->state->getStartTime());
}
public function saveShedTime()
{
$this->redis->hSet($this->state->getKeyName(), State::FIELD[4], $this->state->getShedTime());
}
public function savePortOfflineTime()
{
$this->redis->hSet($this->state->getKeyName(), State::FIELD[5], $this->state->getOfflineTime());
}
public function savePortOnlineTime()
{
$this->redis->hSet($this->state->getKeyName(), State::FIELD[6], $this->state->getOnlineTime());
}
public function saveStateCode()
{
$this->redis->hSet($this->state->getKeyName(), State::FIELD[7], $this->state->getOrder()->getStateCode());
}
public function pipe()
{
$this->state->getRedis()->multi(2);
}
public function exec()
{
$this->state->getRedis()->exec();
}
}
\ No newline at end of file
<?php
/**
* Created by PhpStorm.
* User: banice
* Date: 2018/7/16
* Time: 上午9:36
*/
namespace Lib\cdz_order\state;
use Lib\cdz_order\Order;
class Charger extends State
{
public function __construct(Order $order, \Redis $redis) { parent::__construct($order, $redis); }
public function toCharger()
{
// TODO: Implement toCharger() method.
}
public function toPortShed()
{
// TODO: Implement toPortShed() method.
}
public function toPowerExceed()
{
// TODO: Implement toPowerExceed() method.
}
public function toFull()
{
// TODO: Implement toFull() method.
}
public function toFinish()
{
// TODO: Implement toFinish() method.
}
public function toOffline()
{
// TODO: Implement toOffline() method.
}
public function toOnline()
{
// TODO: Implement toOnline() method.
}
}
\ No newline at end of file
<?php
/**
* Created by PhpStorm.
* User: banice
* Date: 2018/7/16
* Time: 上午10:49
*/
namespace Lib\cdz_order\state;
use Lib\cdz_order\Order;
class Created extends State
{
public function __construct(Order $order, \Redis $redis) { parent::__construct($order, $redis); }
public function toCharger()
{
// TODO: Implement toCharger() method.
}
public function toPortShed()
{
// TODO: Implement toPortShed() method.
}
public function toPowerExceed()
{
// TODO: Implement toPowerExceed() method.
}
public function toFull()
{
// TODO: Implement toFull() method.
}
public function toFinish()
{
// TODO: Implement toFinish() method.
}
public function toOffline()
{
// TODO: Implement toOffline() method.
}
public function toOnline()
{
// TODO: Implement toOnline() method.
}
}
\ No newline at end of file
<?php
/**
* Created by PhpStorm.
* User: banice
* Date: 2018/7/16
* Time: 上午9:39
*/
namespace Lib\cdz_order\state;
class Finish
{
}
\ No newline at end of file
<?php
/**
* Created by PhpStorm.
* User: banice
* Date: 2018/7/16
* Time: 上午10:32
*/
namespace Lib\cdz_order\state;
use Lib\cdz_order\Order;
class Offline extends State
{
public function __construct(Order $order, \Redis $redis, int $offlineReason)
{
parent::__construct($order, $redis);
$this->offlineReason = $offlineReason;
}
/**
*
*/
public function toCharger()
{
$purchaseTime = $this->order->getPurchaseTime();
$startTime = $this->getStartTime();
$offlineTime = $this->getOfflineTime();
$this->onlineTime = time();
if ($this->offlineReason == 1) {
$remainTime = $purchaseTime * 60 - ($offlineTime - $startTime);
$this->remainChargerTime = (int)ceil($remainTime / 60);
} else {
$remainTime = $purchaseTime * 60 - ($this->onlineTime - $startTime);
$this->remainChargerTime = (int) ceil($remainTime/60);
}
$this->saveOrder->savePortOnlineTime();
$this->order->setCurrentState(new Charger($this->order,$this->redis));
}
public function toPortShed()
{
// TODO: Implement toPortShed() method.
}
public function toPowerExceed()
{
// TODO: Implement toPowerExceed() method.
}
public function toFull()
{
// TODO: Implement toFull() method.
}
public function toFinish()
{
// TODO: Implement toFinish() method.
}
public function toOffline()
{
// TODO: Implement toOffline() method.
}
public function toOnline()
{
// TODO: Implement toOnline() method.
}
}
\ No newline at end of file
<?php
/**
* Created by PhpStorm.
* User: banice
* Date: 2018/7/16
* Time: 上午10:32
*/
namespace Lib\cdz_order\state;
class Online extends State
{
public function toCharger()
{
// TODO: Implement toCharger() method.
}
public function toPortShed()
{
// TODO: Implement toPortShed() method.
}
public function toPowerExceed()
{
// TODO: Implement toPowerExceed() method.
}
public function toFull()
{
// TODO: Implement toFull() method.
}
public function toFinish()
{
// TODO: Implement toFinish() method.
}
public function toOffline()
{
// TODO: Implement toOffline() method.
}
public function toOnline()
{
// TODO: Implement toOnline() method.
}
}
\ No newline at end of file
<?php
/**
* Created by PhpStorm.
* User: banice
* Date: 2018/7/16
* Time: 上午9:36
*/
namespace Lib\cdz_order\state;
class PortShed
{
}
\ No newline at end of file
<?php
/**
* Created by PhpStorm.
* User: banice
* Date: 2018/7/16
* Time: 上午9:30
*/
namespace Lib\cdz_order\state;
use Lib\api\message\Push;
use Lib\cdz_order\Order;
use Lib\cdz_order\order\SaveOrder;
abstract class State
{
/**
* 订单状态包含的参数
*/
const FIELD = [
'createdTime',
'purchaseTime',
'startTime',
'finishTime',
'shedTime',
'offlineTime',
'onlineTime',
'stateCode',
];
/**
* 订单状态hash前缀
*/
const ORDER_HASH_PREFIX = 'cdz:order:state:';
/**
* @var Order
*/
protected $order;
/**
* @var SaveOrder
*/
protected $saveOrder;
/**
* @var string
*/
protected $keyName= '';
/**
* @var \Redis
*/
protected $redis;
/**
* @var string
*/
protected $shedTime;
/**
* @var string
*/
protected $startTime;
/**
* @var string
*/
protected $endTime;
/**
* @var string
*/
protected $offlineTime;
/**
* @var string
*/
protected $onlineTime;
/**
* @var int
*/
protected $offlineReason;
/**
* @var int
*/
protected $remainChargerTime;
/**
* State constructor.
* @param Order $order
*/
public function __construct(Order $order,\Redis $redis) {
$this->order = $order;
$this->keyName = self::ORDER_HASH_PREFIX.$order->getId();
$this->redis = $redis;
$this->saveOrder = new SaveOrder($this);
$orderCache = $order->getOrderCache($redis);
if(is_array($orderCache))
{
foreach ($orderCache as $key => $value)
{
if(isset($value) === true)
{
if(property_exists($this,$key) === true)
{
$this->$key =$value;
}
}
}
}
}
abstract public function toCharger();
abstract public function toPortShed();
abstract public function toPowerExceed();
abstract public function toFull();
abstract public function toFinish();
abstract public function toOffline();
abstract public function toOnline();
/**
* @return Order
*/
public function getOrder(): Order
{
return $this->order;
}
/**
* @param Order $order
*/
public function setOrder(Order $order): void
{
$this->order = $order;
}
/**
* @return SaveOrder
*/
public function getSaveOrder(): SaveOrder
{
return $this->saveOrder;
}
/**
* @param SaveOrder $saveOrder
*/
public function setSaveOrder(SaveOrder $saveOrder): void
{
$this->saveOrder = $saveOrder;
}
/**
* @return string
*/
public function getKeyName(): string
{
return $this->keyName;
}
/**
* @param string $keyName
*/
public function setKeyName(string $keyName): void
{
$this->keyName = $keyName;
}
/**
* @return \Redis
*/
public function getRedis(): \Redis
{
return $this->redis;
}
/**
* @param \Redis $redis
*/
public function setRedis(\Redis $redis): void
{
$this->redis = $redis;
}
/**
* @return string
*/
public function getShedTime(): string
{
return $this->shedTime;
}
/**
* @param string $shedTime
*/
public function setShedTime(string $shedTime): void
{
$this->shedTime = $shedTime;
}
/**
* @return string
*/
public function getOfflineTime(): string
{
return $this->offlineTime;
}
/**
* @param string $offlineTime
*/
public function setOfflineTime(string $offlineTime): void
{
$this->offlineTime = $offlineTime;
}
/**
* @return string
*/
public function getOnlineTime(): string
{
return $this->onlineTime;
}
/**
* @param string $onlineTime
*/
public function setOnlineTime(string $onlineTime): void
{
$this->onlineTime = $onlineTime;
}
/**
* @return int
*/
public function getOfflineReason(): int
{
return $this->offlineReason;
}
/**
* @param int $offlineReason
*/
public function setOfflineReason(int $offlineReason): void
{
$this->offlineReason = $offlineReason;
}
/**
* @return int
*/
public function getRemainChargerTime(): int
{
return $this->remainChargerTime;
}
/**
* @param int $remainChargerTime
*/
public function setRemainChargerTime(int $remainChargerTime): void
{
$this->remainChargerTime = $remainChargerTime;
}
/**
* @return string
*/
public function getStartTime(): string
{
return $this->startTime;
}
/**
* @param string $startTime
*/
public function setStartTime(string $startTime): void
{
$this->startTime = $startTime;
}
/**
* @return string
*/
public function getEndTime(): string
{
return $this->endTime;
}
/**
* @param string $endTime
*/
public function setEndTime(string $endTime): void
{
$this->endTime = $endTime;
}
}
\ No newline at end of file
<?php
/**
* Created by PhpStorm.
* User: banice
* Date: 2018/7/16
* Time: 上午9:36
*/
namespace Lib\cdz_order\state;
use Lib\cdz_order\Order;
class WaitingCharger extends State
{
public function __construct(Order $order, \Redis $redis) { parent::__construct($order, $redis); }
/**
* 订单从等待充电转为开始充电状态
*/
public function toCharger():void
{
$this->setStartTime(time());
$this->order->setStateCode(12);
$this->order->setCurrentState(new Charger($this->order,$this->redis));
$this->saveOrder->pipe();
$this->saveOrder->saveStartTime();
$this->saveOrder->saveStateCode();
$this->saveOrder->exec();
$this->order->setCurrentState(new Charger($this->order,$this->redis));
}
/**
* @throws \Exception
*/
public function toPortShed()
{
throw new \Exception(' waiting state can not change to port shed');
// TODO: Implement toPortShed() method.
}
/**
* @throws \Exception
*/
public function toPowerExceed()
{
throw new \Exception('waiting state can not change to power exceed');
// TODO: Implement toPowerExceed() method.
}
/**
* @throws \Exception
*/
public function toFull()
{
throw new \Exception('waiting state can not change to full state');
// TODO: Implement toFull() method.
}
public function toFinish()
{
// TODO: Implement toFinish() method.
}
/**
* 充电中口子发生离线,订单状态变为离线
*/
public function toOffline()
{
$this->offlineTime = time();
$this->saveOrder->savePortOfflineTime();
$this->order->setCurrentState(new Offline($this->order,$this->redis));
}
/**
* @throws \Exception
*/
public function toOnline()
{
throw new \Exception('waiting state can not change to online');
// TODO: Implement toOnline() method.
}
}
\ No newline at end of file
...@@ -202,8 +202,6 @@ class Port ...@@ -202,8 +202,6 @@ class Port
*/ */
public function offline(array $portId) public function offline(array $portId)
{ {
Log::debug('offline');
$tmp = [RedisKey::PORT_STATE_ZSET]; $tmp = [RedisKey::PORT_STATE_ZSET];
foreach ($portId as $item) { foreach ($portId as $item) {
...@@ -350,7 +348,23 @@ class Port ...@@ -350,7 +348,23 @@ class Port
$result = $redis->hGet(RedisKey::PORT_USING_ORDER_ID,$portId); $result = $redis->hGet(RedisKey::PORT_USING_ORDER_ID,$portId);
return isset($result) ? $result : 0; var_dump('using order');
var_dump($result);
return is_string($result) ? $result : 0;
}
public function getPortsUsingId(\Redis $redis, array $portsId):array
{
$result = $redis->hMGet(RedisKey::PORT_USING_ORDER_ID,$portsId);
var_dump($result);
return $result;
} }
/** /**
......
# 通讯协议v2(应用协议) # 通讯协议v2(应用协议)
...@@ -2,11 +2,11 @@ ...@@ -2,11 +2,11 @@
## 同步口子 ## 同步口子
1.下位机->服务器<font color='red'> 同步口子增加了订单的同步</font> 1.下位机->服务器<font color='red'> 同步口子增加了订单的同步和口子离线原因</font>
|preamble|headerFlag|headerCtrl|length|nonce|startNum|count|totalCount|portMac|portState|mic| |preamble|headerFlag|headerCtrl|length|nonce|startNum|count|totalCount|portMac|portState|offline_reason|mic|
|:---:|:---:|:---:|:---:|:---:|:---:|:---|:---|:---:|:---:|:---:|:---:| |:---:|:---:|:---:|:---:|:---:|:---:|:---|:---|:---:|:---:|:---:|:---:|:---:|
|协议头|是否加密|03|包长|随机字符|口子起始逻辑号(1byte)|包中口子数(1byte)|网关下口子总数(1byte)|口子mac地址(8bytes*n)|口子状态(n bytes)|crc| |协议头|是否加密|03|包长|随机字符|口子起始逻辑号(1byte)|包中口子数(1byte)|网关下口子总数(1byte)|口子mac地址(8bytes*n)|口子状态(n bytes)|口子离线原因(1:断电,0:断网) 1byte|crc|
2.服务器->下位机 2.服务器->下位机
...@@ -39,11 +39,12 @@ ...@@ -39,11 +39,12 @@
## 结束充电 ## 结束充电
<font color ='red'>添加结束类型字段,finish_type默认为0,服务器远程结束时下位机原样返回给服务器,下位机自主结束返回00</font> <font color ='red'>添加结束类型字段,finish_type默认为0,服务器远程结束时下位机原样返回给服务器,下位机自主结束返回00</font>
1.服务器->下位机 1.服务器->下位机
|preamble|headerFlag|headerCtrl|length|nonce|port|outTradeNo|finish_type|mic| |preamble|headerFlag|headerCtrl|length|nonce|port|outTradeNo|finish_type|mic|
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:| |:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|协议头|是否加密|05|包长|随机字符|端口逻辑号|订单号(6bytes)|结束类型(1byte)|crc| |协议头|是否加密|05|包长|随机字符|端口逻辑号|订单号(6bytes)|结束类型(1byte)|crc|
2.下位机->服务器修改状态字段位置 2.下位机->服务器修改状态字段位置
...@@ -54,24 +55,24 @@ ...@@ -54,24 +55,24 @@
3.服务器->下位机 3.服务器->下位机
|preamble|headerFlag|headerCtrl|length|nonce|port|outTradeNo|mic| |preamble|headerFlag|headerCtrl|length|nonce|port|outTradeNo|mic|
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:| |:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|协议头|是否加密|15|包长|随机字符|口子逻辑号|订单号(6bytes)|crc| |协议头|是否加密|15|包长|随机字符|口子逻辑号|订单号(6bytes)|crc|
## 上报电表电量 ## 上报电表电量
1.服务器->下位机 1.服务器->下位机
|preamble|headerFlag|headerCtrl|length|nonce|mic| |preamble|headerFlag|headerCtrl|length|nonce|mic|
|:---:|:---:|:---:|:---:|:---:|:---:| |:---:|:---:|:---:|:---:|:---:|:---:|
|协议头|是否加密|06|包长|随机字符|crc| |协议头|是否加密|06|包长|随机字符|crc|
2.下位机->服务器 2.下位机->服务器
|preamble|headerFlag|headerCtrl|length|nonce|powerCapacity|mic| |preamble|headerFlag|headerCtrl|length|nonce|powerCapacity|mic|
|:---:|:---:|:---:|:---:|:---:|:---:|:---:| |:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|协议头|是否加密|06|包长|随机字符|电表用电量(4bytes)|crc| |协议头|是否加密|06|包长|随机字符|电表用电量(4bytes)|crc|
## 上报充电功率 ## 上报充电功率
......
<?php
/**
* Created by PhpStorm.
* User: banice
* Date: 2018/7/16
* Time: 下午5:35
*/
$redis = new \Redis();
$redis->pconnect('redis.test.senthink.com',6379, 1);
$redis->select(4);
var_dump($redis->hGet('','123'));
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