框架基本完成

This commit is contained in:
hoteas 2017-08-10 10:14:56 +00:00
parent e02a80fda8
commit b07bc3c9b9
8 changed files with 242 additions and 203 deletions

313
.idea/workspace.xml generated
View File

@ -5,32 +5,14 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" readonly="true" id="03ed5703-81a1-441b-849c-c426276586b7" name="Default" comment=""> <list default="true" readonly="true" id="03ed5703-81a1-441b-849c-c426276586b7" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/app.go" afterPath="$PROJECT_DIR$/app.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/inspectionProfiles" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/context.go" afterPath="$PROJECT_DIR$/context.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/func.go" afterPath="$PROJECT_DIR$/func.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/hotime.iml" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/obj.go" afterPath="$PROJECT_DIR$/obj.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/GOPATH__hotime_.xml" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/session.go" afterPath="$PROJECT_DIR$/session.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/misc.xml" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/type.go" afterPath="$PROJECT_DIR$/type.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/modules.xml" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/var.go" afterPath="$PROJECT_DIR$/var.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/preferred-vcs.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/vcs.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/app.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/cachedb.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/cachememory.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/const.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/context.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/db.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/error.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/func.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/map.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/obj.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/objtoobj.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/session.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/slice.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/type.go" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/var.go" />
</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" />
@ -42,23 +24,11 @@
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" /> <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="db.go" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/db.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="11" column="5" lean-forward="false" selection-start-line="11" selection-start-column="5" selection-end-line="11" selection-end-column="5" />
<folding>
<element signature="e#16#97#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="objtoobj.go" pinned="false" current-in-tab="false"> <file leaf-file-name="objtoobj.go" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/objtoobj.go"> <entry file="file://$PROJECT_DIR$/objtoobj.go">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="442"> <state relative-caret-position="306">
<caret line="26" column="26" lean-forward="false" selection-start-line="26" selection-start-column="26" selection-end-line="26" selection-end-column="26" /> <caret line="22" column="42" lean-forward="false" selection-start-line="22" selection-start-column="42" selection-end-line="22" selection-end-column="42" />
<folding> <folding>
<element signature="e#16#64#0" expanded="true" /> <element signature="e#16#64#0" expanded="true" />
</folding> </folding>
@ -66,11 +36,21 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="context.go" pinned="false" current-in-tab="true"> <file leaf-file-name="session.go" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/session.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="289">
<caret line="17" column="67" lean-forward="false" selection-start-line="17" selection-start-column="67" selection-end-line="17" selection-end-column="67" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="context.go" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/context.go"> <entry file="file://$PROJECT_DIR$/context.go">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="153"> <state relative-caret-position="238">
<caret line="13" column="21" lean-forward="true" selection-start-line="13" selection-start-column="21" selection-end-line="13" selection-end-column="21" /> <caret line="19" column="12" lean-forward="false" selection-start-line="19" selection-start-column="12" selection-end-line="19" selection-end-column="12" />
<folding /> <folding />
</state> </state>
</provider> </provider>
@ -86,23 +66,11 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="slice.go" pinned="false" current-in-tab="false"> <file leaf-file-name="app.go" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/slice.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="816">
<caret line="48" column="0" lean-forward="false" selection-start-line="48" selection-start-column="0" selection-end-line="48" selection-end-column="0" />
<folding>
<element signature="e#16#51#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="app.go" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app.go"> <entry file="file://$PROJECT_DIR$/app.go">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="193"> <state relative-caret-position="288">
<caret line="79" column="43" lean-forward="true" selection-start-line="79" selection-start-column="43" selection-end-line="79" selection-end-column="43" /> <caret line="42" column="40" lean-forward="false" selection-start-line="42" selection-start-column="40" selection-end-line="42" selection-end-column="40" />
<folding> <folding>
<element signature="e#16#138#0" expanded="true" /> <element signature="e#16#138#0" expanded="true" />
</folding> </folding>
@ -110,12 +78,24 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="func.go" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/func.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2992">
<caret line="185" column="0" lean-forward="false" selection-start-line="185" selection-start-column="0" selection-end-line="185" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="var.go" pinned="false" current-in-tab="false"> <file leaf-file-name="var.go" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/var.go"> <entry file="file://$PROJECT_DIR$/var.go">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="442"> <state relative-caret-position="204">
<caret line="26" column="26" lean-forward="false" selection-start-line="26" selection-start-column="26" selection-end-line="26" selection-end-column="26" /> <caret line="12" column="28" lean-forward="false" selection-start-line="12" selection-start-column="28" selection-end-line="12" selection-end-column="28" />
<folding /> <folding>
<marker date="1502249321786" expanded="true" signature="813:821" ph="{...}" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
@ -123,20 +103,30 @@
<file leaf-file-name="obj.go" pinned="false" current-in-tab="false"> <file leaf-file-name="obj.go" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/obj.go"> <entry file="file://$PROJECT_DIR$/obj.go">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="867"> <state relative-caret-position="952">
<caret line="51" column="36" lean-forward="false" selection-start-line="51" selection-start-column="36" selection-end-line="51" selection-end-column="36" /> <caret line="56" column="0" lean-forward="false" selection-start-line="56" selection-start-column="0" selection-end-line="56" selection-end-column="0" />
<folding> <folding>
<marker date="1501670160002" expanded="true" signature="165:179" ph="{...}" /> <marker date="1502075126746" expanded="true" signature="176:190" ph="{...}" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="map.go" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/map.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2244">
<caret line="136" column="1" lean-forward="false" selection-start-line="136" selection-start-column="1" selection-end-line="136" selection-end-column="1" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="type.go" pinned="false" current-in-tab="false"> <file leaf-file-name="type.go" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/type.go"> <entry file="file://$PROJECT_DIR$/type.go">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="289"> <state relative-caret-position="102">
<caret line="17" column="20" lean-forward="false" selection-start-line="17" selection-start-column="20" selection-end-line="17" selection-end-column="20" /> <caret line="6" column="0" lean-forward="false" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
<folding /> <folding />
</state> </state>
</provider> </provider>
@ -164,7 +154,6 @@
<option value="$PROJECT_DIR$/objtoobj.go" /> <option value="$PROJECT_DIR$/objtoobj.go" />
<option value="$PROJECT_DIR$/map.go" /> <option value="$PROJECT_DIR$/map.go" />
<option value="$PROJECT_DIR$/controller.go" /> <option value="$PROJECT_DIR$/controller.go" />
<option value="$PROJECT_DIR$/func.go" />
<option value="$PROJECT_DIR$/Config.go" /> <option value="$PROJECT_DIR$/Config.go" />
<option value="$PROJECT_DIR$/config.go" /> <option value="$PROJECT_DIR$/config.go" />
<option value="$PROJECT_DIR$/error.go" /> <option value="$PROJECT_DIR$/error.go" />
@ -172,13 +161,15 @@
<option value="$PROJECT_DIR$/CacheMemory.go" /> <option value="$PROJECT_DIR$/CacheMemory.go" />
<option value="$PROJECT_DIR$/cachememory.go" /> <option value="$PROJECT_DIR$/cachememory.go" />
<option value="$PROJECT_DIR$/context.go" /> <option value="$PROJECT_DIR$/context.go" />
<option value="$PROJECT_DIR$/var.go" />
<option value="$PROJECT_DIR$/const.go" /> <option value="$PROJECT_DIR$/const.go" />
<option value="$PROJECT_DIR$/obj.go" />
<option value="$PROJECT_DIR$/type.go" />
<option value="$PROJECT_DIR$/memorycache.go" /> <option value="$PROJECT_DIR$/memorycache.go" />
<option value="$PROJECT_DIR$/dbcache.go" /> <option value="$PROJECT_DIR$/dbcache.go" />
<option value="$PROJECT_DIR$/obj.go" />
<option value="$PROJECT_DIR$/session.go" />
<option value="$PROJECT_DIR$/type.go" />
<option value="$PROJECT_DIR$/app.go" /> <option value="$PROJECT_DIR$/app.go" />
<option value="$PROJECT_DIR$/var.go" />
<option value="$PROJECT_DIR$/func.go" />
</list> </list>
</option> </option>
</component> </component>
@ -389,7 +380,10 @@
<workItem from="1501551411691" duration="8609000" /> <workItem from="1501551411691" duration="8609000" />
<workItem from="1501642366611" duration="11543000" /> <workItem from="1501642366611" duration="11543000" />
<workItem from="1501811486138" duration="1020000" /> <workItem from="1501811486138" duration="1020000" />
<workItem from="1501834813088" duration="140000" /> <workItem from="1501834813088" duration="1388000" />
<workItem from="1502074704907" duration="2867000" />
<workItem from="1502246830320" duration="2261000" />
<workItem from="1502360035037" duration="66000" />
</task> </task>
<task id="LOCAL-00001"> <task id="LOCAL-00001">
<created>1500458878821</created> <created>1500458878821</created>
@ -440,11 +434,18 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1501670291054</updated> <updated>1501670291054</updated>
</task> </task>
<option name="localTasksCounter" value="8" /> <task id="LOCAL-00008" summary="框架基本完成">
<created>1501834964768</created>
<option name="number" value="00008" />
<option name="presentableId" value="LOCAL-00008" />
<option name="project" value="LOCAL" />
<updated>1501834964768</updated>
</task>
<option name="localTasksCounter" value="9" />
<servers /> <servers />
</component> </component>
<component name="TimeTrackingManager"> <component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="43740000" /> <option name="totallyTimeSpent" value="50182000" />
</component> </component>
<component name="TodoView"> <component name="TodoView">
<todo-panel id="selected-file"> <todo-panel id="selected-file">
@ -458,12 +459,12 @@
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="55" y="-8" width="1873" height="1096" extended-state="6" /> <frame x="55" y="-8" width="1873" height="1096" extended-state="6" />
<layout> <layout>
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.27799228" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" /> <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.28792056" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32846716" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32846716" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" /> <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3295099" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3295099" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32398754" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Version Control" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.62616825" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24972437" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24972437" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32846716" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32846716" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
@ -498,19 +499,13 @@
<watches-manager /> <watches-manager />
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/func.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="459">
<caret line="38" column="0" lean-forward="false" selection-start-line="38" selection-start-column="0" selection-end-line="38" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/var.go"> <entry file="file://$PROJECT_DIR$/var.go">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170"> <state relative-caret-position="170">
<caret line="10" column="9" lean-forward="false" selection-start-line="10" selection-start-column="9" selection-end-line="10" selection-end-column="9" /> <caret line="10" column="9" lean-forward="false" selection-start-line="10" selection-start-column="9" selection-end-line="10" selection-end-column="9" />
<folding /> <folding>
<marker date="1502249321786" expanded="true" signature="813:821" ph="{...}" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
@ -526,7 +521,7 @@
<state relative-caret-position="17"> <state relative-caret-position="17">
<caret line="1" column="2" lean-forward="false" selection-start-line="1" selection-start-column="2" selection-end-line="1" selection-end-column="2" /> <caret line="1" column="2" lean-forward="false" selection-start-line="1" selection-start-column="2" selection-end-line="1" selection-end-column="2" />
<folding> <folding>
<element signature="e#16#97#0" expanded="true" /> <element signature="e#16#97#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@ -554,7 +549,7 @@
<state relative-caret-position="1156"> <state relative-caret-position="1156">
<caret line="69" column="0" lean-forward="false" selection-start-line="69" selection-start-column="0" selection-end-line="69" selection-end-column="0" /> <caret line="69" column="0" lean-forward="false" selection-start-line="69" selection-start-column="0" selection-end-line="69" selection-end-column="0" />
<folding> <folding>
<element signature="e#16#51#0" expanded="true" /> <element signature="e#16#51#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@ -563,7 +558,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="595"> <state relative-caret-position="595">
<caret line="46" column="12" lean-forward="false" selection-start-line="46" selection-start-column="12" selection-end-line="46" selection-end-column="12" /> <caret line="46" column="12" lean-forward="false" selection-start-line="46" selection-start-column="12" selection-end-line="46" selection-end-column="12" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -571,7 +565,9 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="408"> <state relative-caret-position="408">
<caret line="24" column="2" lean-forward="true" selection-start-line="24" selection-start-column="2" selection-end-line="24" selection-end-column="2" /> <caret line="24" column="2" lean-forward="true" selection-start-line="24" selection-start-column="2" selection-end-line="24" selection-end-column="2" />
<folding /> <folding>
<marker date="1502249321786" expanded="true" signature="813:821" ph="{...}" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
@ -587,7 +583,7 @@
<state relative-caret-position="17"> <state relative-caret-position="17">
<caret line="1" column="2" lean-forward="true" selection-start-line="1" selection-start-column="2" selection-end-line="1" selection-end-column="2" /> <caret line="1" column="2" lean-forward="true" selection-start-line="1" selection-start-column="2" selection-end-line="1" selection-end-column="2" />
<folding> <folding>
<element signature="e#16#97#0" expanded="true" /> <element signature="e#16#97#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@ -615,7 +611,7 @@
<state relative-caret-position="1173"> <state relative-caret-position="1173">
<caret line="69" column="0" lean-forward="false" selection-start-line="69" selection-start-column="0" selection-end-line="69" selection-end-column="0" /> <caret line="69" column="0" lean-forward="false" selection-start-line="69" selection-start-column="0" selection-end-line="69" selection-end-column="0" />
<folding> <folding>
<element signature="e#16#51#0" expanded="true" /> <element signature="e#16#51#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@ -624,7 +620,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="646"> <state relative-caret-position="646">
<caret line="38" column="12" lean-forward="true" selection-start-line="38" selection-start-column="12" selection-end-line="38" selection-end-column="12" /> <caret line="38" column="12" lean-forward="true" selection-start-line="38" selection-start-column="12" selection-end-line="38" selection-end-column="12" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -632,7 +627,9 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="391"> <state relative-caret-position="391">
<caret line="23" column="2" lean-forward="true" selection-start-line="23" selection-start-column="2" selection-end-line="23" selection-end-column="2" /> <caret line="23" column="2" lean-forward="true" selection-start-line="23" selection-start-column="2" selection-end-line="23" selection-end-column="2" />
<folding /> <folding>
<marker date="1502249321786" expanded="true" signature="813:821" ph="{...}" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
@ -648,7 +645,7 @@
<state relative-caret-position="17"> <state relative-caret-position="17">
<caret line="1" column="2" lean-forward="true" selection-start-line="1" selection-start-column="2" selection-end-line="1" selection-end-column="2" /> <caret line="1" column="2" lean-forward="true" selection-start-line="1" selection-start-column="2" selection-end-line="1" selection-end-column="2" />
<folding> <folding>
<element signature="e#16#97#0" expanded="true" /> <element signature="e#16#97#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@ -673,7 +670,7 @@
<state relative-caret-position="1666"> <state relative-caret-position="1666">
<caret line="99" column="0" lean-forward="false" selection-start-line="99" selection-start-column="0" selection-end-line="99" selection-end-column="0" /> <caret line="99" column="0" lean-forward="false" selection-start-line="99" selection-start-column="0" selection-end-line="99" selection-end-column="0" />
<folding> <folding>
<element signature="e#16#51#0" expanded="true" /> <element signature="e#16#51#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@ -682,7 +679,9 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170"> <state relative-caret-position="170">
<caret line="15" column="2" lean-forward="true" selection-start-line="15" selection-start-column="2" selection-end-line="15" selection-end-column="2" /> <caret line="15" column="2" lean-forward="true" selection-start-line="15" selection-start-column="2" selection-end-line="15" selection-end-column="2" />
<folding /> <folding>
<marker date="1502249321786" expanded="true" signature="813:821" ph="{...}" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
@ -701,7 +700,7 @@
<state relative-caret-position="-289"> <state relative-caret-position="-289">
<caret line="1" column="2" lean-forward="true" selection-start-line="1" selection-start-column="2" selection-end-line="1" selection-end-column="2" /> <caret line="1" column="2" lean-forward="true" selection-start-line="1" selection-start-column="2" selection-end-line="1" selection-end-column="2" />
<folding> <folding>
<element signature="e#16#97#0" expanded="true" /> <element signature="e#16#97#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@ -711,7 +710,7 @@
<state relative-caret-position="678"> <state relative-caret-position="678">
<caret line="69" column="0" lean-forward="false" selection-start-line="69" selection-start-column="0" selection-end-line="69" selection-end-column="0" /> <caret line="69" column="0" lean-forward="false" selection-start-line="69" selection-start-column="0" selection-end-line="69" selection-end-column="0" />
<folding> <folding>
<element signature="e#16#51#0" expanded="true" /> <element signature="e#16#51#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@ -738,7 +737,9 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="391"> <state relative-caret-position="391">
<caret line="23" column="46" lean-forward="true" selection-start-line="23" selection-start-column="46" selection-end-line="23" selection-end-column="46" /> <caret line="23" column="46" lean-forward="true" selection-start-line="23" selection-start-column="46" selection-end-line="23" selection-end-column="46" />
<folding /> <folding>
<marker date="1502249321786" expanded="true" signature="813:821" ph="{...}" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
@ -746,7 +747,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="595"> <state relative-caret-position="595">
<caret line="38" column="12" lean-forward="true" selection-start-line="38" selection-start-column="12" selection-end-line="38" selection-end-column="12" /> <caret line="38" column="12" lean-forward="true" selection-start-line="38" selection-start-column="12" selection-end-line="38" selection-end-column="12" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -762,7 +762,7 @@
<state relative-caret-position="17"> <state relative-caret-position="17">
<caret line="1" column="2" lean-forward="true" selection-start-line="1" selection-start-column="2" selection-end-line="1" selection-end-column="2" /> <caret line="1" column="2" lean-forward="true" selection-start-line="1" selection-start-column="2" selection-end-line="1" selection-end-column="2" />
<folding> <folding>
<element signature="e#16#97#0" expanded="true" /> <element signature="e#16#97#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@ -787,7 +787,7 @@
<state relative-caret-position="1666"> <state relative-caret-position="1666">
<caret line="99" column="0" lean-forward="false" selection-start-line="99" selection-start-column="0" selection-end-line="99" selection-end-column="0" /> <caret line="99" column="0" lean-forward="false" selection-start-line="99" selection-start-column="0" selection-end-line="99" selection-end-column="0" />
<folding> <folding>
<element signature="e#16#51#0" expanded="true" /> <element signature="e#16#51#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@ -796,7 +796,9 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170"> <state relative-caret-position="170">
<caret line="15" column="2" lean-forward="true" selection-start-line="15" selection-start-column="2" selection-end-line="15" selection-end-column="2" /> <caret line="15" column="2" lean-forward="true" selection-start-line="15" selection-start-column="2" selection-end-line="15" selection-end-column="2" />
<folding /> <folding>
<marker date="1502249321786" expanded="true" signature="813:821" ph="{...}" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
@ -811,21 +813,6 @@
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/config.go" /> <entry file="file://$PROJECT_DIR$/config.go" />
<entry file="file://$PROJECT_DIR$/func.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="4981">
<caret line="303" column="0" lean-forward="false" selection-start-line="303" selection-start-column="0" selection-end-line="303" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/map.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2244">
<caret line="136" column="1" lean-forward="false" selection-start-line="136" selection-start-column="1" selection-end-line="136" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/const.go"> <entry file="file://$PROJECT_DIR$/const.go">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187"> <state relative-caret-position="187">
@ -835,30 +822,20 @@
</entry> </entry>
<entry file="file://$PROJECT_DIR$/slice.go"> <entry file="file://$PROJECT_DIR$/slice.go">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="816"> <state relative-caret-position="799">
<caret line="48" column="0" lean-forward="false" selection-start-line="48" selection-start-column="0" selection-end-line="48" selection-end-column="0" /> <caret line="48" column="0" lean-forward="false" selection-start-line="48" selection-start-column="0" selection-end-line="48" selection-end-column="0" />
<folding> <folding>
<element signature="e#16#51#0" expanded="true" /> <element signature="e#16#51#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/objtoobj.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="442">
<caret line="26" column="26" lean-forward="false" selection-start-line="26" selection-start-column="26" selection-end-line="26" selection-end-column="26" />
<folding>
<element signature="e#16#64#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/db.go"> <entry file="file://$PROJECT_DIR$/db.go">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187"> <state relative-caret-position="68">
<caret line="11" column="5" lean-forward="false" selection-start-line="11" selection-start-column="5" selection-end-line="11" selection-end-column="5" /> <caret line="11" column="5" lean-forward="false" selection-start-line="11" selection-start-column="5" selection-end-line="11" selection-end-column="5" />
<folding> <folding>
<element signature="e#16#97#0" expanded="true" /> <element signature="e#16#97#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@ -871,51 +848,87 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/memorycache.go" />
<entry file="file://$PROJECT_DIR$/dbcache.go" />
<entry file="file://$PROJECT_DIR$/context.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="238">
<caret line="19" column="12" lean-forward="false" selection-start-line="19" selection-start-column="12" selection-end-line="19" selection-end-column="12" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/obj.go"> <entry file="file://$PROJECT_DIR$/obj.go">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="867"> <state relative-caret-position="952">
<caret line="51" column="36" lean-forward="false" selection-start-line="51" selection-start-column="36" selection-end-line="51" selection-end-column="36" /> <caret line="56" column="0" lean-forward="false" selection-start-line="56" selection-start-column="0" selection-end-line="56" selection-end-column="0" />
<folding> <folding>
<marker date="1501670160002" expanded="true" signature="165:179" ph="{...}" /> <marker date="1502075126746" expanded="true" signature="176:190" ph="{...}" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/map.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2244">
<caret line="136" column="1" lean-forward="false" selection-start-line="136" selection-start-column="1" selection-end-line="136" selection-end-column="1" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/objtoobj.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="22" column="42" lean-forward="false" selection-start-line="22" selection-start-column="42" selection-end-line="22" selection-end-column="42" />
<folding>
<element signature="e#16#64#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/session.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="289">
<caret line="17" column="67" lean-forward="false" selection-start-line="17" selection-start-column="67" selection-end-line="17" selection-end-column="67" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/type.go"> <entry file="file://$PROJECT_DIR$/type.go">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="289"> <state relative-caret-position="102">
<caret line="17" column="20" lean-forward="false" selection-start-line="17" selection-start-column="20" selection-end-line="17" selection-end-column="20" /> <caret line="6" column="0" lean-forward="false" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/var.go"> <entry file="file://$PROJECT_DIR$/var.go">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="442"> <state relative-caret-position="204">
<caret line="26" column="26" lean-forward="false" selection-start-line="26" selection-start-column="26" selection-end-line="26" selection-end-column="26" /> <caret line="12" column="28" lean-forward="false" selection-start-line="12" selection-start-column="28" selection-end-line="12" selection-end-column="28" />
<folding>
<marker date="1502249321786" expanded="true" signature="813:821" ph="{...}" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/func.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2992">
<caret line="185" column="0" lean-forward="false" selection-start-line="185" selection-start-column="0" selection-end-line="185" selection-end-column="0" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/memorycache.go" />
<entry file="file://$PROJECT_DIR$/dbcache.go" />
<entry file="file://$PROJECT_DIR$/app.go"> <entry file="file://$PROJECT_DIR$/app.go">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="193"> <state relative-caret-position="288">
<caret line="79" column="43" lean-forward="true" selection-start-line="79" selection-start-column="43" selection-end-line="79" selection-end-column="43" /> <caret line="42" column="40" lean-forward="false" selection-start-line="42" selection-start-column="40" selection-end-line="42" selection-end-column="40" />
<folding> <folding>
<element signature="e#16#138#0" expanded="true" /> <element signature="e#16#138#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/context.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="153">
<caret line="13" column="21" lean-forward="true" selection-start-line="13" selection-start-column="21" selection-end-line="13" selection-end-column="21" />
<folding />
</state>
</provider>
</entry>
</component> </component>
</project> </project>

11
app.go
View File

@ -15,7 +15,7 @@ import (
type App struct { type App struct {
Router Router
Error Error
Port int //端口号 Port string //端口号
connectListener func(context Context) bool //所有的访问监听,true按原计划继续使用false表示有监听器处理 connectListener func(context Context) bool //所有的访问监听,true按原计划继续使用false表示有监听器处理
connectDbFunc func(err ...*Error) *sql.DB connectDbFunc func(err ...*Error) *sql.DB
configPath string configPath string
@ -27,9 +27,10 @@ type App struct {
} }
//启动实例 //启动实例
func (this *App) Run(router Router, port int) { func (this *App) Run(router Router) {
this.Router = router this.Router = router
this.Port = port //this.Port = port
this.Port=this.Config.GetString("port")
if this.connectDbFunc != nil { if this.connectDbFunc != nil {
this.Db.SetConnect(this.connectDbFunc) this.Db.SetConnect(this.connectDbFunc)
@ -39,9 +40,9 @@ func (this *App) Run(router Router, port int) {
this.CacheIns = CacheIns(&CacheMemory{Map: Map{}, Time: this.Config.GetInt64("cacheShortTime")}) this.CacheIns = CacheIns(&CacheMemory{Map: Map{}, Time: this.Config.GetInt64("cacheShortTime")})
} }
http.HandleFunc("/", this.handler) //http.HandleFunc("/", this.handler)
run(this)
http.ListenAndServe(":"+ObjToStr(port), nil)
} }
//启动实例 //启动实例

View File

@ -4,6 +4,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"time" "time"
"errors"
) )
type Context struct { type Context struct {
@ -43,7 +44,13 @@ func (this *Context) Display(statu int, data interface{}) {
resp := Map{"statu": statu} resp := Map{"statu": statu}
if statu != 0 { if statu != 0 {
temp := Map{} temp := Map{}
temp["type"] = 0
tpe:=this.Config.GetMap("error").GetString(ObjToStr(statu))
if tpe==""{
this.LastErr.SetError(errors.New("找不到对应的错误码"))
}
temp["type"] = tpe
temp["msg"] = data temp["msg"] = data
resp["result"] = temp resp["result"] = temp
} else { } else {

20
func.go
View File

@ -1,13 +1,12 @@
package hotime package hotime
import ( import (
//"reflect"
"crypto/md5" "crypto/md5"
"encoding/hex" "encoding/hex"
"math" "math"
"math/rand" "math/rand"
"strings" "strings"
//"fmt" "net/http"
"sync" "sync"
"time" "time"
) )
@ -184,6 +183,7 @@ func RandX(small int, max int) int {
// GetDb() // GetDb()
//} //}
//复制返回数组 //复制返回数组
func DeepCopyMap(value interface{}) interface{} { func DeepCopyMap(value interface{}) interface{} {
if valueMap, ok := value.(Map); ok { if valueMap, ok := value.(Map); ok {
@ -300,4 +300,20 @@ func Round(f float64, n int) float64 {
// CacheMemIns.Init(Config["cacheConfig"].(Map)["memory"].(CacheConfg).Time) // CacheMemIns.Init(Config["cacheConfig"].(Map)["memory"].(CacheConfg).Time)
// CacheDBIns.Init(Config["cacheConfig"].(Map)["db"].(CacheConfg).Time) // CacheDBIns.Init(Config["cacheConfig"].(Map)["db"].(CacheConfg).Time)
//} //}
func run(a *App) {
if !IsRun {
http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
port := Substr(req.Host, IndexLastStr(req.Host, ":")+1, len(req.Host))
//fmt.Println(port)
if application[port] != nil {
application[port].handler(w, req)
}
})
IsRun = true
}
application[a.Port] = a
http.ListenAndServe(":"+a.Port, nil)
}

1
obj.go
View File

@ -1,5 +1,6 @@
package hotime package hotime
//对象封装方便取用
type Obj struct { type Obj struct {
Data interface{} Data interface{}
Error Error

View File

@ -1,75 +1,71 @@
package hotime package hotime
//session对象
type SessionIns struct { type SessionIns struct {
ShortCache CacheIns ShortCache CacheIns
LongCache CacheIns LongCache CacheIns
SessionId string SessionId string
Map Map
Error Error
} }
func (this *SessionIns)set(){ func (this *SessionIns) set() {
if this.ShortCache!=nil{
this.ShortCache.Cache(SESSION_TYPE+this.SessionId,this.Map)
}
if this.LongCache!=nil{
this.LongCache.Cache(SESSION_TYPE+this.SessionId,this.Map)
}
if this.ShortCache != nil {
this.ShortCache.Cache(SESSION_TYPE+this.SessionId, this.Map)
}
if this.LongCache != nil {
this.LongCache.Cache(SESSION_TYPE+this.SessionId, this.Map)
}
} }
func (this *SessionIns) Session(key string, data ...interface{}) *Obj {
func(this *SessionIns)Session(key string,data ...interface{})*Obj{ if this.Map == nil {
if this.Map==nil{
this.get() this.get()
} }
if len(data)!=0{ if len(data) != 0 {
if data[0]==nil{ if data[0] == nil {
delete(this.Map,key) delete(this.Map, key)
this.set() this.set()
}else{ } else {
this.Map[key]=data[0] this.Map[key] = data[0]
this.set() this.set()
} }
return &Obj{Data:nil} return &Obj{Data: nil}
} }
return &Obj{Data:this.Map.Get(key)} return &Obj{Data: this.Map.Get(key)}
} }
func (this *SessionIns)get(){ func (this *SessionIns) get() {
if this.ShortCache!=nil{ if this.ShortCache != nil {
this.Map=this.ShortCache.Cache(SESSION_TYPE+this.SessionId).ToMap() this.Map = this.ShortCache.Cache(SESSION_TYPE + this.SessionId).ToMap()
if this.Map!=nil{ if this.Map != nil {
return return
} }
} }
if this.LongCache!=nil{ if this.LongCache != nil {
this.Map=this.LongCache.Cache(SESSION_TYPE+this.SessionId).ToMap() this.Map = this.LongCache.Cache(SESSION_TYPE + this.SessionId).ToMap()
if this.Map!=nil{ if this.Map != nil {
if this.ShortCache!=nil{ if this.ShortCache != nil {
this.ShortCache.Cache(SESSION_TYPE+this.SessionId,this.Map) this.ShortCache.Cache(SESSION_TYPE+this.SessionId, this.Map)
} }
return return
} }
} }
this.Map=Map{} this.Map = Map{}
this.ShortCache.Cache(SESSION_TYPE+this.SessionId,this.Map) this.ShortCache.Cache(SESSION_TYPE+this.SessionId, this.Map)
return return
} }
func (this *SessionIns) Init(short CacheIns, long CacheIns) {
this.ShortCache = short
func (this *SessionIns)Init(short CacheIns, long CacheIns){ this.LongCache = long
this.ShortCache=short
this.LongCache=long
} }

View File

@ -4,6 +4,7 @@ package hotime
type Ctr map[string]func(*Context) type Ctr map[string]func(*Context)
type Proj map[string]Ctr type Proj map[string]Ctr
type Router map[string]Proj type Router map[string]Proj
type CacheIns interface { type CacheIns interface {
set(key string, value interface{}, time int64) set(key string, value interface{}, time int64)
get(key string) interface{} get(key string) interface{}

18
var.go
View File

@ -9,6 +9,9 @@ import "sync"
//} //}
var mutex = map[interface{}]*sync.RWMutex{} //安全锁 var mutex = map[interface{}]*sync.RWMutex{} //安全锁
var mutexer = sync.RWMutex{} //读写锁 var mutexer = sync.RWMutex{} //读写锁
var IsRun = false //当前状态
var application = map[string]*App{} //整个项目
//var Db = HoTimeDB{} //数据库实例 //var Db = HoTimeDB{} //数据库实例
var Config = Map{ var Config = Map{
@ -17,12 +20,13 @@ var Config = Map{
"defFile": []string{"index.html", "index.htm"}, "defFile": []string{"index.html", "index.htm"},
"dbHost": "127.0.0.1", "dbHost": "127.0.0.1",
//"dbHost":"localhost", //"dbHost":"localhost",
"dbName": "test", "dbName": "test",
"dbUser": "root", "dbUser": "root",
"dbPwd": "root", "dbPwd": "root",
"dbPort": "3306", "dbPort": "3306",
"port": "80", "port": "80",
"cacheShortTime": 60 * 60 * 2, "cacheShortTime": 60 * 60 * 2,
"cacheLongTime": 60 * 60 * 24*30, "cacheLongTime": 60 * 60 * 24 * 30,
"sessionName":"HOTIME", "sessionName": "HOTIME",
"error": Map{},
} }