Commit 56cb2880 by zhangxiaoyan

add user log thread

parent fe4b325f
...@@ -2,43 +2,22 @@ ...@@ -2,43 +2,22 @@
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="e2e217e2-2dd6-4c6f-ad19-b1cba46bc7ad" name="Default" comment=""> <list default="true" id="e2e217e2-2dd6-4c6f-ad19-b1cba46bc7ad" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/common/model/BackVisit.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/common/controller/AppController.class" afterPath="$PROJECT_DIR$/target/classes/common/controller/AppController.class" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/common/model/KeyValue.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/common/controller/LoginController.class" afterPath="$PROJECT_DIR$/target/classes/common/controller/LoginController.class" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/common/model/Payment.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/common/model/Account4Web.class" afterPath="$PROJECT_DIR$/target/classes/common/model/Account4Web.class" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/common/model/Reminder.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/common/repository/Account4WebRepository.class" afterPath="$PROJECT_DIR$/target/classes/common/repository/Account4WebRepository.class" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/common/repository/BackVisitRepository.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/security/interceptor/AuthorizationInterceptor.class" afterPath="$PROJECT_DIR$/target/classes/security/interceptor/AuthorizationInterceptor.class" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/common/repository/PaymentRepository.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/tkio/repository/AccountRepository.class" afterPath="$PROJECT_DIR$/target/classes/tkio/repository/AccountRepository.class" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/common/repository/ReminderRepository.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/tkio/repository/AppRepository.class" afterPath="$PROJECT_DIR$/target/classes/tkio/repository/AppRepository.class" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/security/AbstractTokenManager.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/tkio/repository/SalesManLeaderRepository.class" afterPath="$PROJECT_DIR$/target/classes/tkio/repository/SalesManLeaderRepository.class" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/security/RedisLoginStatusManager.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/tkio/task/AccountTask.class" afterPath="$PROJECT_DIR$/target/classes/tkio/task/AccountTask.class" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/security/RedisLoginStatusManagerImpl.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/util/Constant.class" afterPath="$PROJECT_DIR$/target/classes/util/Constant.class" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/security/RedisTokenManager.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/security/TokenManager.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/security/cors/CorsFilter.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/security/exception/MethodNotSupportException.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/tkio/controller/TkioAccountController.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/tkio/model/Campaign.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/tkio/model/Channel.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/tkio/repository/CampaignRepository.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/tkio/repository/ChannelRepository.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/tkio/service/TkioAccountService.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/tkio/service/impl/TkioAccountServiceImpl.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/util/RedisUtilNew.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/resources/redis.properties" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pom.xml" afterPath="$PROJECT_DIR$/pom.xml" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/common/controller/AppController.java" afterPath="$PROJECT_DIR$/src/main/java/common/controller/AppController.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/common/controller/LoginController.java" afterPath="$PROJECT_DIR$/src/main/java/common/controller/LoginController.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/applicationContext-schedule.xml" afterPath="$PROJECT_DIR$/target/classes/applicationContext-schedule.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/common/model/Account4Web.java" afterPath="$PROJECT_DIR$/src/main/java/common/model/Account4Web.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/applicationContext.xml" afterPath="$PROJECT_DIR$/target/classes/applicationContext.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/common/repository/Account4WebRepository.java" afterPath="$PROJECT_DIR$/src/main/java/common/repository/Account4WebRepository.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/security/interceptor/AuthorizationInterceptor.java" afterPath="$PROJECT_DIR$/src/main/java/security/interceptor/AuthorizationInterceptor.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/tkio/repository/AccountRepository.java" afterPath="$PROJECT_DIR$/src/main/java/tkio/repository/AccountRepository.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/tkio/repository/AppRepository.java" afterPath="$PROJECT_DIR$/src/main/java/tkio/repository/AppRepository.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/tkio/repository/SalesManLeaderRepository.java" afterPath="$PROJECT_DIR$/src/main/java/tkio/repository/SalesManLeaderRepository.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/tkio/task/AccountTask.java" afterPath="$PROJECT_DIR$/src/main/java/tkio/task/AccountTask.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/util/Constant.java" afterPath="$PROJECT_DIR$/src/main/java/util/Constant.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/resources/applicationContext-schedule.xml" afterPath="$PROJECT_DIR$/src/main/resources/applicationContext-schedule.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/resources/applicationContext.xml" afterPath="$PROJECT_DIR$/src/main/resources/applicationContext.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/web.xml" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/web.xml" />
</list> </list>
<ignored path="$PROJECT_DIR$/target/" /> <ignored path="$PROJECT_DIR$/target/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
...@@ -54,12 +33,14 @@ ...@@ -54,12 +33,14 @@
<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="SyncAppDataTask.java" pinned="false" current-in-tab="false"> <file leaf-file-name="UserLogThread.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/task/SyncAppDataTask.java"> <entry file="file://$PROJECT_DIR$/src/main/java/util/UserLogThread.java">
<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="735">
<caret line="111" column="49" lean-forward="false" selection-start-line="111" selection-start-column="49" selection-end-line="111" selection-end-column="49" /> <caret line="34" column="23" lean-forward="true" selection-start-line="34" selection-start-column="23" selection-end-line="34" selection-end-column="23" />
<folding /> <folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
...@@ -67,106 +48,131 @@ ...@@ -67,106 +48,131 @@
<file leaf-file-name="AppController.java" pinned="false" current-in-tab="false"> <file leaf-file-name="AppController.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/common/controller/AppController.java"> <entry file="file://$PROJECT_DIR$/src/main/java/common/controller/AppController.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162"> <state relative-caret-position="96">
<caret line="38" column="5" lean-forward="false" selection-start-line="38" selection-start-column="5" selection-end-line="38" selection-end-column="5" /> <caret line="37" column="19" lean-forward="false" selection-start-line="37" selection-start-column="19" selection-end-line="37" selection-end-column="19" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
<element signature="e#1543#1544#0" expanded="true" />
<element signature="e#1622#1623#0" expanded="true" />
<element signature="e#1765#1766#0" expanded="true" />
<element signature="e#1825#1826#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="CityRepository.java" pinned="false" current-in-tab="false"> <file leaf-file-name="IPAddrUtil.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/common/repository/CityRepository.java"> <entry file="file://$PROJECT_DIR$/src/main/java/util/IPAddrUtil.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="220"> <state relative-caret-position="286">
<caret line="14" column="29" lean-forward="false" selection-start-line="14" selection-start-column="29" selection-end-line="14" selection-end-column="29" /> <caret line="13" column="23" lean-forward="true" selection-start-line="13" selection-start-column="23" selection-end-line="13" selection-end-column="23" />
<folding /> <folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="AppCategoryRepository.java" pinned="false" current-in-tab="false"> <file leaf-file-name="IP.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/common/repository/AppCategoryRepository.java"> <entry file="file://$PROJECT_DIR$/src/main/java/util/IP.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198"> <state relative-caret-position="0">
<caret line="13" column="5" lean-forward="false" selection-start-line="13" selection-start-column="5" selection-end-line="14" selection-end-column="48" /> <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="Account4WebRepository.java" pinned="false" current-in-tab="false"> <file leaf-file-name="UserLog.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/common/repository/Account4WebRepository.java"> <entry file="file://$PROJECT_DIR$/src/main/java/common/model/UserLog.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198"> <state relative-caret-position="-88">
<caret line="12" column="17" lean-forward="false" selection-start-line="12" selection-start-column="17" selection-end-line="12" selection-end-column="17" /> <caret line="107" column="5" lean-forward="false" selection-start-line="107" selection-start-column="5" selection-end-line="107" selection-end-column="5" />
<folding> <folding>
<marker date="1514361442488" expanded="false" signature="35:176" ph="..." /> <element signature="imports" expanded="true" />
<element signature="e#552#553#0" expanded="true" />
<element signature="e#577#578#0" expanded="true" />
<element signature="e#615#616#0" expanded="true" />
<element signature="e#643#644#0" expanded="true" />
<element signature="e#683#684#0" expanded="true" />
<element signature="e#717#718#0" expanded="true" />
<element signature="e#773#774#0" expanded="true" />
<element signature="e#819#820#0" expanded="true" />
<element signature="e#862#863#0" expanded="true" />
<element signature="e#897#898#0" expanded="true" />
<element signature="e#957#958#0" expanded="true" />
<element signature="e#1005#1006#0" expanded="true" />
<element signature="e#1047#1048#0" expanded="true" />
<element signature="e#1081#1082#0" expanded="true" />
<element signature="e#1139#1140#0" expanded="true" />
<element signature="e#1185#1186#0" expanded="true" />
<element signature="e#1218#1219#0" expanded="true" />
<element signature="e#1243#1244#0" expanded="true" />
<element signature="e#1283#1284#0" expanded="true" />
<element signature="e#1311#1312#0" expanded="true" />
<element signature="e#1359#1360#0" expanded="true" />
<element signature="e#1399#1400#0" expanded="true" />
<element signature="e#1469#1470#0" expanded="true" />
<element signature="e#1527#1528#0" expanded="true" />
<element signature="e#1571#1572#0" expanded="true" />
<element signature="e#1607#1608#0" expanded="true" />
<element signature="e#1669#1670#0" expanded="true" />
<element signature="e#1719#1720#0" expanded="true" />
<element signature="e#1761#1762#0" expanded="true" />
<element signature="e#1795#1796#0" expanded="true" />
<element signature="e#1853#1854#0" expanded="true" />
<element signature="e#1899#1900#0" expanded="true" />
<element signature="e#1969#1970#0" expanded="true" />
<element signature="e#2021#2022#0" expanded="true" />
<element signature="e#2061#2062#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="AppService.java" pinned="false" current-in-tab="false"> <file leaf-file-name="UserRepository.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/common/service/AppService.java"> <entry file="file://$PROJECT_DIR$/src/main/java/common/repository/UserRepository.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="286"> <state relative-caret-position="110">
<caret line="16" column="28" lean-forward="false" selection-start-line="16" selection-start-column="28" selection-end-line="16" selection-end-column="28" /> <caret line="11" column="53" lean-forward="false" selection-start-line="11" selection-start-column="32" selection-end-line="11" selection-end-column="53" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="applicationContext.xml" pinned="false" current-in-tab="false"> <file leaf-file-name="UserLogRepository.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/resources/applicationContext.xml"> <entry file="file://$PROJECT_DIR$/src/main/java/common/repository/UserLogRepository.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="112"> <state relative-caret-position="176">
<caret line="202" column="35" lean-forward="false" selection-start-line="202" selection-start-column="34" selection-end-line="202" selection-end-column="35" /> <caret line="8" column="17" lean-forward="false" selection-start-line="8" selection-start-column="17" selection-end-line="8" selection-end-column="17" />
<folding /> <folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="AuthorizationInterceptor.java" pinned="false" current-in-tab="true"> <file leaf-file-name="RoleEnum.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/security/interceptor/AuthorizationInterceptor.java"> <entry file="file://$PROJECT_DIR$/src/main/java/dic/RoleEnum.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="529"> <state relative-caret-position="132">
<caret line="63" column="23" lean-forward="true" selection-start-line="63" selection-start-column="23" selection-end-line="63" selection-end-column="23" /> <caret line="6" column="12" lean-forward="false" selection-start-line="6" selection-start-column="12" selection-end-line="6" selection-end-column="12" />
<folding> <folding />
<element signature="e#1229#1230#0" expanded="true" />
<element signature="e#1285#1286#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="AppServiceImpl.java" pinned="false" current-in-tab="false"> <file leaf-file-name="RoleTypeEnum.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/common/service/impl/AppServiceImpl.java"> <entry file="file://$PROJECT_DIR$/src/main/java/dic/RoleTypeEnum.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="88"> <state relative-caret-position="132">
<caret line="64" column="49" lean-forward="false" selection-start-line="64" selection-start-column="35" selection-end-line="64" selection-end-column="49" /> <caret line="6" column="12" lean-forward="false" selection-start-line="6" selection-start-column="12" selection-end-line="6" selection-end-column="12" />
<folding> <folding />
<element signature="imports" expanded="true" />
<element signature="e#1323#1335#0" expanded="true" />
<element signature="e#1707#1708#0" expanded="true" />
<element signature="e#1778#1779#0" expanded="true" />
<element signature="e#1834#1835#0" expanded="true" />
<element signature="e#1883#1884#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="applicationContext-schedule.xml" pinned="false" current-in-tab="false"> <file leaf-file-name="OperateObjectTypeEnum.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/resources/applicationContext-schedule.xml"> <entry file="file://$PROJECT_DIR$/src/main/java/dic/OperateObjectTypeEnum.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="236"> <state relative-caret-position="199">
<caret line="24" column="7" lean-forward="false" selection-start-line="24" selection-start-column="7" selection-end-line="24" selection-end-column="7" /> <caret line="28" column="1" lean-forward="true" selection-start-line="28" selection-start-column="1" selection-end-line="28" selection-end-column="1" />
<folding /> <folding />
</state> </state>
</provider> </provider>
...@@ -177,8 +183,8 @@ ...@@ -177,8 +183,8 @@
<component name="FileTemplateManagerImpl"> <component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES"> <option name="RECENT_TEMPLATES">
<list> <list>
<option value="Interface" />
<option value="Class" /> <option value="Class" />
<option value="Interface" />
</list> </list>
</option> </option>
</component> </component>
...@@ -216,10 +222,17 @@ ...@@ -216,10 +222,17 @@
<option value="$PROJECT_DIR$/src/main/java/common/repository/AppCategoryRepository.java" /> <option value="$PROJECT_DIR$/src/main/java/common/repository/AppCategoryRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/common/service/AppService.java" /> <option value="$PROJECT_DIR$/src/main/java/common/service/AppService.java" />
<option value="$PROJECT_DIR$/src/main/java/common/service/impl/AppServiceImpl.java" /> <option value="$PROJECT_DIR$/src/main/java/common/service/impl/AppServiceImpl.java" />
<option value="$PROJECT_DIR$/src/main/java/common/controller/AppController.java" />
<option value="$PROJECT_DIR$/src/main/resources/applicationContext-schedule.xml" /> <option value="$PROJECT_DIR$/src/main/resources/applicationContext-schedule.xml" />
<option value="$PROJECT_DIR$/src/main/resources/applicationContext.xml" /> <option value="$PROJECT_DIR$/src/main/resources/applicationContext.xml" />
<option value="$PROJECT_DIR$/src/main/java/security/interceptor/AuthorizationInterceptor.java" /> <option value="$PROJECT_DIR$/src/main/java/security/interceptor/AuthorizationInterceptor.java" />
<option value="$PROJECT_DIR$/src/main/java/dic/OperateSatusEnum.java" />
<option value="$PROJECT_DIR$/src/main/java/dic/OperateObjectTypeEnum.java" />
<option value="$PROJECT_DIR$/src/main/java/common/repository/UserLogRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/util/IP.java" />
<option value="$PROJECT_DIR$/src/main/java/util/IPAddrUtil.java" />
<option value="$PROJECT_DIR$/src/main/java/common/model/UserLog.java" />
<option value="$PROJECT_DIR$/src/main/java/util/UserLogThread.java" />
<option value="$PROJECT_DIR$/src/main/java/common/controller/AppController.java" />
</list> </list>
</option> </option>
</component> </component>
...@@ -292,129 +305,7 @@ ...@@ -292,129 +305,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewModuleNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewModuleNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="tkio" /> <option name="myItemId" value="dic" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="task" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="manager" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="manage" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewModuleNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="tkio" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="manager" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="manage" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewModuleNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="tkio" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="repository" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="manager" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="manage" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewModuleNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="security" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="manager" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="manage" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewModuleNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="security" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="interceptor" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="manager" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="manage" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewModuleNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="dmp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="repository" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="manager" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="manage" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewModuleNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="dmp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="model" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="manager" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="manage" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewModuleNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="common" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="service" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
</PATH> </PATH>
...@@ -431,46 +322,6 @@ ...@@ -431,46 +322,6 @@
<option name="myItemId" value="common" /> <option name="myItemId" value="common" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="service" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="impl" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="manager" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="manage" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewModuleNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="common" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="manager" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="manage" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewModuleNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="common" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="model" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
</PATH> </PATH>
<PATH> <PATH>
<PATH_ELEMENT> <PATH_ELEMENT>
...@@ -490,24 +341,6 @@ ...@@ -490,24 +341,6 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
</PATH> </PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="manager" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="manage" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewModuleNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="common" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="context" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageElementNode" />
</PATH_ELEMENT>
</PATH>
</subPane> </subPane>
</pane> </pane>
<pane id="ProjectPane"> <pane id="ProjectPane">
...@@ -637,7 +470,7 @@ ...@@ -637,7 +470,7 @@
<component name="PropertiesComponent"> <component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" /> <property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" /> <property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../Anduin-Office" /> <property name="last_opened_file_path" value="$PROJECT_DIR$/../trackingio" />
<property name="nodejs_interpreter_path" value="C:/Program Files/nodejs/node" /> <property name="nodejs_interpreter_path" value="C:/Program Files/nodejs/node" />
<property name="js.eslint.eslintPackage" value="" /> <property name="js.eslint.eslintPackage" value="" />
<property name="js-jscs-nodeInterpreter" value="C:\Program Files\nodejs\node.exe" /> <property name="js-jscs-nodeInterpreter" value="C:\Program Files\nodejs\node.exe" />
...@@ -646,6 +479,7 @@ ...@@ -646,6 +479,7 @@
<component name="RecentsManager"> <component name="RecentsManager">
<key name="CopyClassDialog.RECENTS_KEY"> <key name="CopyClassDialog.RECENTS_KEY">
<recent name="util" /> <recent name="util" />
<recent name="dic" />
<recent name="common.context" /> <recent name="common.context" />
</key> </key>
</component> </component>
...@@ -1121,12 +955,12 @@ ...@@ -1121,12 +955,12 @@
<option name="presentableId" value="Default" /> <option name="presentableId" value="Default" />
<updated>1514260912987</updated> <updated>1514260912987</updated>
<workItem from="1514260914510" duration="14315000" /> <workItem from="1514260914510" duration="14315000" />
<workItem from="1514344618155" duration="12743000" /> <workItem from="1514344618155" duration="15501000" />
</task> </task>
<servers /> <servers />
</component> </component>
<component name="TimeTrackingManager"> <component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="27058000" /> <option name="totallyTimeSpent" value="29816000" />
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="-8" y="-8" width="1382" height="744" extended-state="6" /> <frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
...@@ -1150,11 +984,11 @@ ...@@ -1150,11 +984,11 @@
<window_info id="Java Enterprise" 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="1" side_tool="false" content_ui="tabs" /> <window_info id="Java Enterprise" 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="1" side_tool="false" content_ui="tabs" />
<window_info id="Capture Analysis" 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="4" side_tool="false" content_ui="tabs" /> <window_info id="Capture Analysis" 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="4" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" 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="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="false" show_stripe_button="true" weight="0.33" 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.2536825" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" /> <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32405892" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Spring" 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="3" side_tool="false" content_ui="tabs" /> <window_info id="Spring" 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="3" side_tool="false" content_ui="tabs" />
<window_info id="CheckStyle" 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="4" side_tool="false" content_ui="tabs" /> <window_info id="CheckStyle" 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="4" 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.33" sideWeight="0.5" order="5" 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.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25340393" sideWeight="0.5" order="7" 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.25340393" sideWeight="0.5" order="7" side_tool="false" content_ui="combo" />
<window_info id="Bean Validation" 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="5" side_tool="false" content_ui="tabs" /> <window_info id="Bean Validation" 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="5" side_tool="false" content_ui="tabs" />
<window_info id="Web" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="true" content_ui="tabs" /> <window_info id="Web" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="true" content_ui="tabs" />
<window_info id="Theme Preview" 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="6" side_tool="false" content_ui="tabs" /> <window_info id="Theme Preview" 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="6" side_tool="false" content_ui="tabs" />
...@@ -1167,42 +1001,6 @@ ...@@ -1167,42 +1001,6 @@
<window_info id="Inspection" 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="12" side_tool="false" content_ui="tabs" /> <window_info id="Inspection" 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="12" side_tool="false" content_ui="tabs" />
<window_info id="Find" 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="8" side_tool="false" content_ui="tabs" /> <window_info id="Find" 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="8" side_tool="false" content_ui="tabs" />
</layout> </layout>
<layout-to-restore>
<window_info id="Palette" 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="7" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
<window_info id="Nl-Palette" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Message" 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="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="8" 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="6" side_tool="true" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32980332" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Properties" 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="1" side_tool="false" content_ui="tabs" />
<window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="10" side_tool="false" content_ui="combo" />
<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="2" 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.25" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" 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="10" 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.33" sideWeight="0.5" order="13" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3289689" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Palette&#9;" 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="Image Layers" active="false" anchor="left" 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="Java Enterprise" 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="1" side_tool="false" content_ui="tabs" />
<window_info id="Capture Analysis" 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="4" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" 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="12" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" 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="2" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2536825" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Spring" 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="3" side_tool="false" content_ui="tabs" />
<window_info id="CheckStyle" 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="4" 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.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25340393" sideWeight="0.5" order="7" side_tool="false" content_ui="combo" />
<window_info id="Bean Validation" 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="5" side_tool="false" content_ui="tabs" />
<window_info id="Web" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="true" content_ui="tabs" />
<window_info id="Find" 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="8" side_tool="false" content_ui="tabs" />
<window_info id="Theme Preview" 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="6" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="true" content_ui="tabs" />
</layout-to-restore>
</component> </component>
<component name="TypeScriptGeneratedFilesManager"> <component name="TypeScriptGeneratedFilesManager">
<option name="processedProjectFiles" value="true" /> <option name="processedProjectFiles" value="true" />
...@@ -1219,42 +1017,6 @@ ...@@ -1219,42 +1017,6 @@
<option name="FILTER_TARGETS" value="false" /> <option name="FILTER_TARGETS" value="false" />
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/task/SyncAppDataTask.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="imports" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/util/DateUtil.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="16764">
<caret line="762" column="26" lean-forward="true" selection-start-line="762" selection-start-column="26" selection-end-line="762" selection-end-column="26" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/repository/CityRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="220">
<caret line="14" column="29" lean-forward="true" selection-start-line="14" selection-start-column="29" selection-end-line="14" selection-end-column="29" />
<folding>
<element signature="imports" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/repository/AppInfoRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="154">
<caret line="8" column="35" lean-forward="true" selection-start-line="8" selection-start-column="35" selection-end-line="8" selection-end-column="71" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/repository/AuthRepository.java"> <entry file="file://$PROJECT_DIR$/src/main/java/common/repository/AuthRepository.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="110"> <state relative-caret-position="110">
...@@ -1351,14 +1113,6 @@ ...@@ -1351,14 +1113,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/repository/UserRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="110">
<caret line="11" column="31" lean-forward="false" selection-start-line="11" selection-start-column="17" selection-end-line="11" selection-end-column="31" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/context/AppUtils.java"> <entry file="file://$PROJECT_DIR$/src/main/java/common/context/AppUtils.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-5"> <state relative-caret-position="-5">
...@@ -1573,12 +1327,12 @@ ...@@ -1573,12 +1327,12 @@
<state relative-caret-position="88"> <state relative-caret-position="88">
<caret line="64" column="49" lean-forward="false" selection-start-line="64" selection-start-column="35" selection-end-line="64" selection-end-column="49" /> <caret line="64" column="49" lean-forward="false" selection-start-line="64" selection-start-column="35" selection-end-line="64" selection-end-column="49" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="false" />
<element signature="e#1323#1335#0" expanded="true" /> <element signature="e#1323#1335#0" expanded="false" />
<element signature="e#1707#1708#0" expanded="true" /> <element signature="e#1707#1708#0" expanded="false" />
<element signature="e#1778#1779#0" expanded="true" /> <element signature="e#1778#1779#0" expanded="false" />
<element signature="e#1834#1835#0" expanded="true" /> <element signature="e#1834#1835#0" expanded="false" />
<element signature="e#1883#1884#0" expanded="true" /> <element signature="e#1883#1884#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
...@@ -1591,46 +1345,165 @@ ...@@ -1591,46 +1345,165 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/controller/AppController.java"> <entry file="file://$PROJECT_DIR$/src/main/java/tkio/task/SyncAppDataTask.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1320">
<caret line="111" column="49" lean-forward="false" selection-start-line="111" selection-start-column="49" selection-end-line="111" selection-end-column="49" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/security/interceptor/AuthorizationInterceptor.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162"> <state relative-caret-position="265">
<caret line="38" column="5" lean-forward="false" selection-start-line="38" selection-start-column="5" selection-end-line="38" selection-end-column="5" /> <caret line="51" column="81" lean-forward="true" selection-start-line="51" selection-start-column="81" selection-end-line="51" selection-end-column="81" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="e#1229#1230#0" expanded="false" />
<element signature="e#1543#1544#0" expanded="true" /> <element signature="e#1285#1286#0" expanded="false" />
<element signature="e#1622#1623#0" expanded="true" />
<element signature="e#1765#1766#0" expanded="true" />
<element signature="e#1825#1826#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/task/SyncAppDataTask.java"> <entry file="file://$PROJECT_DIR$/src/main/resources/applicationContext.xml">
<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="46">
<caret line="111" column="49" lean-forward="false" selection-start-line="111" selection-start-column="49" selection-end-line="111" selection-end-column="49" /> <caret line="202" column="35" lean-forward="false" selection-start-line="202" selection-start-column="34" selection-end-line="202" selection-end-column="35" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/applicationContext.xml"> <entry file="file://$PROJECT_DIR$/src/main/java/dic/RoleEnum.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="112"> <state relative-caret-position="132">
<caret line="202" column="35" lean-forward="false" selection-start-line="202" selection-start-column="34" selection-end-line="202" selection-end-column="35" /> <caret line="6" column="12" lean-forward="false" selection-start-line="6" selection-start-column="12" selection-end-line="6" selection-end-column="12" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/security/interceptor/AuthorizationInterceptor.java"> <entry file="file://$PROJECT_DIR$/src/main/java/dic/RoleTypeEnum.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="132">
<caret line="6" column="12" lean-forward="false" selection-start-line="6" selection-start-column="12" selection-end-line="6" selection-end-column="12" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/dic/OperateSatusEnum.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="88">
<caret line="4" column="12" lean-forward="false" selection-start-line="4" selection-start-column="12" selection-end-line="4" selection-end-column="12" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/repository/UserRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="110">
<caret line="11" column="53" lean-forward="false" selection-start-line="11" selection-start-column="32" selection-end-line="11" selection-end-column="53" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/repository/UserLogRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="176">
<caret line="8" column="17" lean-forward="false" selection-start-line="8" selection-start-column="17" selection-end-line="8" selection-end-column="17" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/util/IP.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/util/IPAddrUtil.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="529"> <state relative-caret-position="286">
<caret line="63" column="23" lean-forward="true" selection-start-line="63" selection-start-column="23" selection-end-line="63" selection-end-column="23" /> <caret line="13" column="23" lean-forward="true" selection-start-line="13" selection-start-column="23" selection-end-line="13" selection-end-column="23" />
<folding> <folding>
<element signature="e#1229#1230#0" expanded="true" /> <element signature="imports" expanded="true" />
<element signature="e#1285#1286#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/model/UserLog.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-88">
<caret line="107" column="5" lean-forward="false" selection-start-line="107" selection-start-column="5" selection-end-line="107" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#552#553#0" expanded="true" />
<element signature="e#577#578#0" expanded="true" />
<element signature="e#615#616#0" expanded="true" />
<element signature="e#643#644#0" expanded="true" />
<element signature="e#683#684#0" expanded="true" />
<element signature="e#717#718#0" expanded="true" />
<element signature="e#773#774#0" expanded="true" />
<element signature="e#819#820#0" expanded="true" />
<element signature="e#862#863#0" expanded="true" />
<element signature="e#897#898#0" expanded="true" />
<element signature="e#957#958#0" expanded="true" />
<element signature="e#1005#1006#0" expanded="true" />
<element signature="e#1047#1048#0" expanded="true" />
<element signature="e#1081#1082#0" expanded="true" />
<element signature="e#1139#1140#0" expanded="true" />
<element signature="e#1185#1186#0" expanded="true" />
<element signature="e#1218#1219#0" expanded="true" />
<element signature="e#1243#1244#0" expanded="true" />
<element signature="e#1283#1284#0" expanded="true" />
<element signature="e#1311#1312#0" expanded="true" />
<element signature="e#1359#1360#0" expanded="true" />
<element signature="e#1399#1400#0" expanded="true" />
<element signature="e#1469#1470#0" expanded="true" />
<element signature="e#1527#1528#0" expanded="true" />
<element signature="e#1571#1572#0" expanded="true" />
<element signature="e#1607#1608#0" expanded="true" />
<element signature="e#1669#1670#0" expanded="true" />
<element signature="e#1719#1720#0" expanded="true" />
<element signature="e#1761#1762#0" expanded="true" />
<element signature="e#1795#1796#0" expanded="true" />
<element signature="e#1853#1854#0" expanded="true" />
<element signature="e#1899#1900#0" expanded="true" />
<element signature="e#1969#1970#0" expanded="true" />
<element signature="e#2021#2022#0" expanded="true" />
<element signature="e#2061#2062#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/util/UserLogThread.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="735">
<caret line="34" column="23" lean-forward="true" selection-start-line="34" selection-start-column="23" selection-end-line="34" selection-end-column="23" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/controller/AppController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="96">
<caret line="37" column="19" lean-forward="false" selection-start-line="37" selection-start-column="19" selection-end-line="37" selection-end-column="19" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/dic/OperateObjectTypeEnum.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="199">
<caret line="28" column="1" lean-forward="true" selection-start-line="28" selection-start-column="1" selection-end-line="28" selection-end-column="1" />
<folding />
</state>
</provider>
</entry>
</component> </component>
</project> </project>
\ No newline at end of file
...@@ -2,6 +2,7 @@ package common.controller; ...@@ -2,6 +2,7 @@ package common.controller;
import common.model.AppInfo; import common.model.AppInfo;
import common.service.AppService; import common.service.AppService;
import dic.OperateObjectTypeEnum;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
...@@ -11,6 +12,9 @@ import org.springframework.web.bind.annotation.RequestParam; ...@@ -11,6 +12,9 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import util.ResultModel; import util.ResultModel;
import util.StringUtil; import util.StringUtil;
import util.UserLogThread;
import javax.servlet.http.HttpServletRequest;
/** /**
* Created by zxy on 2017/12/27. * Created by zxy on 2017/12/27.
...@@ -31,7 +35,6 @@ public class AppController ...@@ -31,7 +35,6 @@ public class AppController
app.setFirstCate(firstCate); app.setFirstCate(firstCate);
app.setSecondCate(secondCate); app.setSecondCate(secondCate);
app.setReyun(reyun); app.setReyun(reyun);
return ResultModel.OK(appService.findAppList(app, pageNum, pageSize)); return ResultModel.OK(appService.findAppList(app, pageNum, pageSize));
} }
......
package common.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.util.Date;
/**
* Created by zxy on 2017/12/27.
*/
@Entity
public class UserLog
{
private Long id;
private Date operateTime;
private String operaAccount;
private String accountName;
private String ip;
private String operateObjectType;
private String operateObject;
private String operateType;
private String location;
@Id
@GeneratedValue
public Long getId()
{
return id;
}
public void setId(Long id)
{
this.id = id;
}
public Date getOperateTime()
{
return operateTime;
}
public void setOperateTime(Date operateTime)
{
this.operateTime = operateTime;
}
public String getOperaAccount()
{
return operaAccount;
}
public void setOperaAccount(String operaAccount)
{
this.operaAccount = operaAccount;
}
public String getAccountName()
{
return accountName;
}
public void setAccountName(String accountName)
{
this.accountName = accountName;
}
public String getIp()
{
return ip;
}
public void setIp(String ip)
{
this.ip = ip;
}
public String getOperateObjectType()
{
return operateObjectType;
}
public void setOperateObjectType(String operateObjectType)
{
this.operateObjectType = operateObjectType;
}
public String getOperateObject()
{
return operateObject;
}
public void setOperateObject(String operateObject)
{
this.operateObject = operateObject;
}
public String getOperateType()
{
return operateType;
}
public void setOperateType(String operateType)
{
this.operateType = operateType;
}
public String getLocation()
{
return location;
}
public void setLocation(String location)
{
this.location = location;
}
@Override
public String toString()
{
return "UserLog{" +
"id=" + id +
", operateTime=" + operateTime +
", operaAccount='" + operaAccount + '\'' +
", accountName='" + accountName + '\'' +
", ip='" + ip + '\'' +
", operateObjectType='" + operateObjectType + '\'' +
", operateObject='" + operateObject + '\'' +
", operateType='" + operateType + '\'' +
'}';
}
}
package common.repository;
import common.model.UserLog;
import org.springframework.data.jpa.repository.JpaRepository;
/**
* Created by zxy on 2017/12/27.
*/
public interface UserLogRepository extends JpaRepository<UserLog, Long>
{
}
package dic;
/**
* Created by zxy on 17/12/27.
* desc:操作对象类型
*/
public enum OperateObjectTypeEnum
{
CUSTOMER("customer","客户"),
INNERUSER("inner_user","系统账号");
private String key;
private String value;
OperateObjectTypeEnum(String key, String value) {
this.key = key;
this.value = value;
}
public String getKey() {
return key;
}
public String getValue() {
return value;
}
}
package util;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.charset.Charset;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReentrantLock;
class IP
{
public static boolean enableFileWatch = false;
private static int offset;
private static int[] index = new int[256];
private static ByteBuffer dataBuffer;
private static ByteBuffer indexBuffer;
private static Long lastModifyTime = 0L;
private static File ipFile;
private static ReentrantLock lock = new ReentrantLock();
public static void load(String filename) {
ipFile = new File(filename);
load();
if (enableFileWatch) {
watch();
}
}
public static void load(String filename, boolean strict) throws Exception {
ipFile = new File(filename);
if (strict) {
int contentLength = Long.valueOf(ipFile.length()).intValue();
if (contentLength < 512 * 1024) {
throw new Exception("ip data file error.");
}
}
load();
if (enableFileWatch) {
watch();
}
}
public static String[] find(String ip) {
int ip_prefix_value = new Integer(ip.substring(0, ip.indexOf(".")));
long ip2long_value = ip2long(ip);
int start = index[ip_prefix_value];
int max_comp_len = offset - 1028;
long index_offset = -1;
int index_length = -1;
byte b = 0;
for (start = start * 8 + 1024; start < max_comp_len; start += 8) {
if (int2long(indexBuffer.getInt(start)) >= ip2long_value) {
index_offset = bytesToLong(b, indexBuffer.get(start + 6), indexBuffer.get(start + 5), indexBuffer.get(start + 4));
index_length = 0xFF & indexBuffer.get(start + 7);
break;
}
}
byte[] areaBytes;
lock.lock();
try {
dataBuffer.position(offset + (int) index_offset - 1024);
areaBytes = new byte[index_length];
dataBuffer.get(areaBytes, 0, index_length);
} finally {
lock.unlock();
}
return new String(areaBytes, Charset.forName("UTF-8")).split("\t", -1);
}
private static void watch() {
Executors.newScheduledThreadPool(1).scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
long time = ipFile.lastModified();
if (time > lastModifyTime) {
lastModifyTime = time;
load();
}
}
}, 1000L, 5000L, TimeUnit.MILLISECONDS);
}
private static void load() {
lastModifyTime = ipFile.lastModified();
FileInputStream fin = null;
lock.lock();
try {
dataBuffer = ByteBuffer.allocate(Long.valueOf(ipFile.length()).intValue());
fin = new FileInputStream(ipFile);
int readBytesLength;
byte[] chunk = new byte[4096];
while (fin.available() > 0) {
readBytesLength = fin.read(chunk);
dataBuffer.put(chunk, 0, readBytesLength);
}
dataBuffer.position(0);
int indexLength = dataBuffer.getInt();
byte[] indexBytes = new byte[indexLength];
dataBuffer.get(indexBytes, 0, indexLength - 4);
indexBuffer = ByteBuffer.wrap(indexBytes);
indexBuffer.order(ByteOrder.LITTLE_ENDIAN);
offset = indexLength;
int loop = 0;
while (loop++ < 256) {
index[loop - 1] = indexBuffer.getInt();
}
indexBuffer.order(ByteOrder.BIG_ENDIAN);
} catch (IOException ioe) {
ioe.printStackTrace();
} finally {
try {
if (fin != null) {
fin.close();
}
} catch (IOException e) {
e.printStackTrace();
}
lock.unlock();
}
}
private static long bytesToLong(byte a, byte b, byte c, byte d) {
return int2long((((a & 0xff) << 24) | ((b & 0xff) << 16) | ((c & 0xff) << 8) | (d & 0xff)));
}
private static int str2Ip(String ip) {
String[] ss = ip.split("\\.");
int a, b, c, d;
a = Integer.parseInt(ss[0]);
b = Integer.parseInt(ss[1]);
c = Integer.parseInt(ss[2]);
d = Integer.parseInt(ss[3]);
return (a << 24) | (b << 16) | (c << 8) | d;
}
private static long ip2long(String ip) {
return int2long(str2Ip(ip));
}
private static long int2long(int i) {
long l = i & 0x7fffffffL;
if (i < 0) {
l |= 0x080000000L;
}
return l;
}
}
package util;
import com.google.common.base.Strings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpServletRequest;
/**
* Created by nolan on 16/9/22.
* description: IP相关服务类,支持ip地址的获取、地理位置转换.
*/
public class IPAddrUtil
{
protected static Logger logger = LoggerFactory.getLogger(IPAddrUtil.class);
static {
IP.load(IPAddrUtil.class.getClassLoader().getResource("17monipdb.dat").getFile());
}
/**
* 获取IP地址
*
* @param httpServletRequest 请求实体
* @return
*/
public static String getIpAddr(HttpServletRequest httpServletRequest)
{
final String header = httpServletRequest.getHeader("x-forwarded-for");
if (Strings.isNullOrEmpty(header)) {
return "";
}
String[] ipStr = header.split(",");
String ip = ipStr[ipStr.length - 1].replace(" ", "");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = httpServletRequest.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = httpServletRequest.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = httpServletRequest.getRemoteAddr();
}
return ip;
}
/**
* 获取IP地址
*
* @param httpServletRequest 请求实体
* @return
*/
public static String getIpAddrNew(HttpServletRequest httpServletRequest) {
if (httpServletRequest.getHeader("x-forwarded-for") == null) {
return httpServletRequest.getRemoteAddr();
}
String[] ipStr = httpServletRequest.getHeader("x-forwarded-for").split(",");
String ip=ipStr[ipStr.length-1].replace(" ","");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = httpServletRequest.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = httpServletRequest.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = httpServletRequest.getRemoteAddr();
}
return ip;
}
/**
* 根据ip地址转换成对应省份
*
* @param ipAddr ip地址
* @return
*/
public static String getLocationFromIpAddr(String ipAddr) {
if (ipAddr == null || ipAddr.isEmpty()) {
return "unknown";
}
try {
String[] tmp = IP.find(ipAddr);
return String.format("%s", tmp[1]);
} catch (Exception e) {
logger.error("fail to parse ip:" + ipAddr);
return "unknown";
}
}
/**
* 根据ip地址转换成对应地理位置
*
* @param ipAddr ip地址
* @return
*/
public static String getAllLocationFromIpAddr(String ipAddr) {
if (ipAddr == null || ipAddr.isEmpty()) {
return "unknown-unknown-unknown";
}
try {
String[] tmp = IP.find(ipAddr);
return String.format("%s-%s-%s", tmp[0],tmp[1],tmp[2]);
} catch (Exception e) {
logger.error("fail to parse ip:" + ipAddr);
return "unknown-unknown-unknown";
}
}
}
package util;
import common.context.AppUtils;
import common.model.UserLog;
import common.repository.UserLogRepository;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
/**
* Created by zxy on 2017/12/15.
*/
public class UserLogThread
extends Thread
{
protected Logger logger = LoggerFactory.getLogger(UserLogThread.class);
private UserLogRepository userLogRepository = AppUtils.getApplicationContext().getBean(UserLogRepository.class);
private String operaAccount;
private String accountName;
private String operateObjectType;
private String operateObject;
private String operateType;
private HttpServletRequest request;
/**
* 传入内容为对象
* UserLogThread userlog = new UserLogThread("zxy@reyun.com", "zxy", OperateObjectTypeEnum.CUSTOMER.getKey(), "app", "查看app", request);
* userlog.start();
*/
public UserLogThread(String operaAccount, String accountName, String operateObjectType, String operateObject, String operateType, HttpServletRequest request)
{
this.operaAccount = operaAccount;
this.accountName = accountName;
this.operateObjectType = operateObjectType;
this.operateObject = operateObject;
this.operateType = operateType;
this.request = request;
}
@Override
public void run()
{
try
{
UserLog audit = new UserLog();
audit.setOperaAccount(this.operaAccount);
audit.setAccountName(this.accountName);
audit.setOperateObjectType(this.operateObjectType);
audit.setOperateObject(this.operateObject);
audit.setOperateTime(new Date());
audit.setOperateType(this.operateType);
if (this.request != null) {
String ipAddr = IPAddrUtil.getIpAddrNew(request);
audit.setIp(ipAddr);
if(ValidateUtil.isValid(ipAddr)){
String locationFromIpAddr = IPAddrUtil.getLocationFromIpAddr(ipAddr);
audit.setLocation(locationFromIpAddr);
}
}
userLogRepository.save(audit);
} catch (Exception e) {
e.printStackTrace();
}
}
}
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<task:scheduled-tasks> <task:scheduled-tasks>
<!--//定时同步短链数据(每5分钟执行一次)--> <!--//定时同步短链数据(每5分钟执行一次)-->
<task:scheduled ref="tkioAccountTask" method="task" cron="0 32 19 * * ?"/> <task:scheduled ref="tkioAccountTask" method="task" cron="0 26 10 * * ?"/>
</task:scheduled-tasks> </task:scheduled-tasks>
<bean id="SyncAppDataTask" class="tkio.task.SyncAppDataTask"></bean> <bean id="SyncAppDataTask" class="tkio.task.SyncAppDataTask"></bean>
...@@ -22,6 +22,6 @@ ...@@ -22,6 +22,6 @@
<task:scheduled-tasks> <task:scheduled-tasks>
<!--//定时同步短链数据(每5分钟执行一次)--> <!--//定时同步短链数据(每5分钟执行一次)-->
<task:scheduled ref="SyncAppDataTask" method="syncAppData" cron="0 03 15 * * ?"/> <task:scheduled ref="SyncAppDataTask" method="syncAppData" cron="0 0 08 * * ?"/>
</task:scheduled-tasks> </task:scheduled-tasks>
</beans> </beans>
...@@ -22,8 +22,25 @@ ...@@ -22,8 +22,25 @@
<context:component-scan base-package="track" /> <context:component-scan base-package="track" />
<context:component-scan base-package="common" /> <context:component-scan base-package="common" />
<context:component-scan base-package="dmp" /> <context:component-scan base-package="dmp" />
<context:component-scan base-package="security" />
<context:property-placeholder location="classpath:persistence.properties"/> <context:property-placeholder location="classpath:persistence.properties"/>
<context:property-placeholder location="classpath:redis.properties" />
<!--Redis配置-->
<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxIdle" value="300" />
<property name="maxTotal" value="600" />
<property name="maxWaitMillis" value="1000"></property>
<property name="testOnBorrow" value="true" />
</bean>
<bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" p:hostName="192.168.2.57" p:port="6379" p:poolConfig-ref="poolConfig"/>
<bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
<property name="connectionFactory" ref="connectionFactory" />
</bean>
<!--//Redis配置 -->
<bean id="parentDataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <bean id="parentDataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
<property name="driverClassName" value="${dataSource.driverClassName}"/> <property name="driverClassName" value="${dataSource.driverClassName}"/>
......
# Redis common settings
redis.key.validtime=120
redis.ip.requesttimes=5
redis.ip.unknown.requesttimes=5
redis.maxIdle=300
redis.testOnBorrow=true
# token
redis.surl.host=192.168.2.57
redis.surl.port=6379
# event
redis.event.host=192.168.2.57
redis.event.port=6379
redis.event.database=0
common\model\BackVisit.class
security\TokenManager.class
tkio\controller\TkioAccountController.class
tkio\model\UserLog.class
dmp\model\TagCrawlerAppsWandoujia.class
util\ValidateUtil.class
tkio\repository\CampaignRepository.class
util\HttpClientUtil.class
common\model\Auth.class
tkio\repository\AccountRepository.class
common\model\Menu.class
exception\GlobalExceptionAdvice.class
tkio\model\Campaign.class
security\RedisTokenManager.class
tkio\model\Account.class
security\AbstractTokenManager.class
common\model\UserLog.class
security\exception\MethodNotSupportException.class
tkio\repository\SalesManLeaderRepository.class
tkio\model\RoleAuth.class
common\service\impl\AppServiceImpl$1.class
common\controller\UserController.class
exception\TipException.class
common\context\AppUtils.class
util\RedisUtilNew.class
tkio\task\SyncAppDataTask.class
common\model\User.class
tkio\repository\IsNotifiedRepository.class
tkio\service\impl\TkioAccountServiceImpl.class
util\DateUtil.class
common\model\AppCategory.class
tkio\repository\ChannelRepository.class
security\RedisLoginStatusManager.class
dic\RoleTypeEnum.class
common\repository\AppInfoRepository.class
tkio\model\Channel.class
common\service\impl\MenuServiceImpl.class
common\repository\UserLogRepository.class
common\model\Account4Web.class
util\IPAddrUtil.class
common\model\Reminder.class
common\repository\AuthRepository.class
common\controller\MenuController.class
util\MailUtils.class
exception\TransferCurrentAccountException.class
common\repository\Account4WebRepository.class
common\repository\MenuRepository.class
common\model\City.class
common\service\impl\AppServiceImpl.class
common\repository\ReminderRepository.class
util\StringUtil.class
security\interceptor\AuthorizationInterceptor.class security\interceptor\AuthorizationInterceptor.class
security\annotation\CurrentAccount.class security\annotation\CurrentAccount.class
tkio\model\UserLog.class
common\model\AppInfo.class common\model\AppInfo.class
common\service\impl\UserServiceImpl.class common\service\impl\UserServiceImpl.class
util\IP.class
exception\NotFoundException.class exception\NotFoundException.class
tkio\model\RoleAuthDetail.class tkio\model\RoleAuthDetail.class
util\CharacterUtils.class util\CharacterUtils.class
tkio\repository\PackageTypeRepository.class tkio\repository\PackageTypeRepository.class
util\Constant.class util\Constant.class
dmp\model\TagCrawlerAppsWandoujia.class common\repository\BackVisitRepository.class
util\ValidateUtil.class
util\HttpClientUtil.class
common\repository\RoleTypeRepository.class common\repository\RoleTypeRepository.class
common\model\Auth.class
tkio\repository\AccountRepository.class
tkio\service\AccountFlowRestrictService.class tkio\service\AccountFlowRestrictService.class
util\UserLogThread.class
tkio\model\DataAuth.class tkio\model\DataAuth.class
common\model\Menu.class common\model\KeyValue.class
exception\GlobalExceptionAdvice.class
tkio\model\Account.class
common\repository\UserRepository.class common\repository\UserRepository.class
util\ResultModel.class util\ResultModel.class
dic\RoleEnum.class dic\RoleEnum.class
util\CipherUtil.class util\CipherUtil.class
tkio\model\App.class tkio\model\App.class
security\resolvers\LoginUserMethodArgumentsResolver.class security\resolvers\LoginUserMethodArgumentsResolver.class
tkio\repository\SalesManLeaderRepository.class tkio\service\TkioAccountService.class
tkio\model\RoleAuth.class
common\service\impl\AppServiceImpl$1.class
common\controller\UserController.class
exception\TipException.class
common\context\AppUtils.class
tkio\task\SyncAppDataTask.class
common\model\RoleType.class common\model\RoleType.class
common\model\User.class
tkio\task\AccountTask.class tkio\task\AccountTask.class
security\annotation\Authorization.class security\annotation\Authorization.class
tkio\repository\IsNotifiedRepository.class util\IP$1.class
util\DateUtil.class
common\repository\CodeRepository.class common\repository\CodeRepository.class
tkio\model\SalesManLeader.class tkio\model\SalesManLeader.class
common\controller\AppController.class common\controller\AppController.class
common\model\AppCategory.class
common\service\MenuService.class common\service\MenuService.class
common\repository\AppCategoryRepository.class common\repository\AppCategoryRepository.class
tkio\repository\AppRepository.class tkio\repository\AppRepository.class
dic\RoleTypeEnum.class
common\repository\AppInfoRepository.class
dmp\repository\TagCrawlerAppsWandoujiaRepository.class dmp\repository\TagCrawlerAppsWandoujiaRepository.class
common\service\impl\MenuServiceImpl.class security\RedisLoginStatusManagerImpl.class
tkio\model\AccountRestrict4Web.class tkio\model\AccountRestrict4Web.class
common\model\Account4Web.class dic\OperateObjectTypeEnum.class
common\service\UserService.class common\service\UserService.class
common\repository\AuthRepository.class
common\service\AppService.class common\service\AppService.class
common\controller\MenuController.class
tkio\service\impl\AccountFlowRestrictServiceImpl.class tkio\service\impl\AccountFlowRestrictServiceImpl.class
common\repository\CityRepository.class common\repository\CityRepository.class
common\model\Code.class common\model\Code.class
util\MailUtils.class
exception\TransferCurrentAccountException.class
common\repository\Account4WebRepository.class
common\repository\MenuRepository.class
common\model\City.class
common\service\impl\AppServiceImpl.class
common\controller\LoginController.class common\controller\LoginController.class
common\repository\PaymentRepository.class
tkio\model\PackageType.class tkio\model\PackageType.class
common\model\Payment.class
common\model\Email.class common\model\Email.class
security\cors\CorsFilter.class
util\ResultStatus.class util\ResultStatus.class
util\StringUtil.class
tkio\model\IsNotified.class tkio\model\IsNotified.class
tkio\model\Auth.class tkio\model\Auth.class
E:\IDEA_workspace\manager\src\main\java\tkio\repository\SalesManLeaderRepository.java E:\IDEA_workspace\manager\src\main\java\tkio\repository\SalesManLeaderRepository.java
E:\IDEA_workspace\manager\src\main\java\tkio\service\TkioAccountService.java
E:\IDEA_workspace\manager\src\main\java\security\interceptor\AuthorizationInterceptor.java E:\IDEA_workspace\manager\src\main\java\security\interceptor\AuthorizationInterceptor.java
E:\IDEA_workspace\manager\src\main\java\common\repository\CodeRepository.java E:\IDEA_workspace\manager\src\main\java\common\repository\CodeRepository.java
E:\IDEA_workspace\manager\src\main\java\util\CipherUtil.java
E:\IDEA_workspace\manager\src\main\java\util\Constant.java E:\IDEA_workspace\manager\src\main\java\util\Constant.java
E:\IDEA_workspace\manager\src\main\java\common\controller\UserController.java E:\IDEA_workspace\manager\src\main\java\common\controller\UserController.java
E:\IDEA_workspace\manager\src\main\java\tkio\model\Account.java
E:\IDEA_workspace\manager\src\main\java\tkio\model\RoleAuth.java
E:\IDEA_workspace\manager\src\main\java\util\ResultStatus.java E:\IDEA_workspace\manager\src\main\java\util\ResultStatus.java
E:\IDEA_workspace\manager\src\main\java\common\service\MenuService.java E:\IDEA_workspace\manager\src\main\java\security\RedisLoginStatusManagerImpl.java
E:\IDEA_workspace\manager\src\main\java\util\StringUtil.java
E:\IDEA_workspace\manager\src\main\java\tkio\service\AccountFlowRestrictService.java E:\IDEA_workspace\manager\src\main\java\tkio\service\AccountFlowRestrictService.java
E:\IDEA_workspace\manager\src\main\java\common\service\impl\UserServiceImpl.java E:\IDEA_workspace\manager\src\main\java\common\service\impl\UserServiceImpl.java
E:\IDEA_workspace\manager\src\main\java\security\RedisTokenManager.java
E:\IDEA_workspace\manager\src\main\java\common\repository\UserRepository.java E:\IDEA_workspace\manager\src\main\java\common\repository\UserRepository.java
E:\IDEA_workspace\manager\src\main\java\common\model\Email.java E:\IDEA_workspace\manager\src\main\java\common\model\Email.java
E:\IDEA_workspace\manager\src\main\java\tkio\task\AccountTask.java E:\IDEA_workspace\manager\src\main\java\tkio\task\AccountTask.java
E:\IDEA_workspace\manager\src\main\java\util\DateUtil.java E:\IDEA_workspace\manager\src\main\java\tkio\model\Campaign.java
E:\IDEA_workspace\manager\src\main\java\common\controller\AppController.java
E:\IDEA_workspace\manager\src\main\java\common\service\AppService.java E:\IDEA_workspace\manager\src\main\java\common\service\AppService.java
E:\IDEA_workspace\manager\src\main\java\util\ValidateUtil.java E:\IDEA_workspace\manager\src\main\java\util\ValidateUtil.java
E:\IDEA_workspace\manager\src\main\java\common\model\Auth.java
E:\IDEA_workspace\manager\src\main\java\security\resolvers\LoginUserMethodArgumentsResolver.java
E:\IDEA_workspace\manager\src\main\java\common\model\Menu.java
E:\IDEA_workspace\manager\src\main\java\common\repository\RoleTypeRepository.java
E:\IDEA_workspace\manager\src\main\java\common\repository\MenuRepository.java
E:\IDEA_workspace\manager\src\main\java\common\repository\AppInfoRepository.java
E:\IDEA_workspace\manager\src\main\java\common\service\impl\MenuServiceImpl.java E:\IDEA_workspace\manager\src\main\java\common\service\impl\MenuServiceImpl.java
E:\IDEA_workspace\manager\src\main\java\common\service\UserService.java
E:\IDEA_workspace\manager\src\main\java\common\controller\LoginController.java E:\IDEA_workspace\manager\src\main\java\common\controller\LoginController.java
E:\IDEA_workspace\manager\src\main\java\tkio\model\AccountRestrict4Web.java
E:\IDEA_workspace\manager\src\main\java\common\model\AppCategory.java E:\IDEA_workspace\manager\src\main\java\common\model\AppCategory.java
E:\IDEA_workspace\manager\src\main\java\common\repository\BackVisitRepository.java
E:\IDEA_workspace\manager\src\main\java\tkio\model\RoleAuthDetail.java E:\IDEA_workspace\manager\src\main\java\tkio\model\RoleAuthDetail.java
E:\IDEA_workspace\manager\src\main\java\tkio\model\SalesManLeader.java E:\IDEA_workspace\manager\src\main\java\tkio\model\SalesManLeader.java
E:\IDEA_workspace\manager\src\main\java\tkio\repository\AccountRepository.java
E:\IDEA_workspace\manager\src\main\java\common\context\AppUtils.java
E:\IDEA_workspace\manager\src\main\java\common\controller\MenuController.java
E:\IDEA_workspace\manager\src\main\java\tkio\model\PackageType.java E:\IDEA_workspace\manager\src\main\java\tkio\model\PackageType.java
E:\IDEA_workspace\manager\src\main\java\exception\NotFoundException.java
E:\IDEA_workspace\manager\src\main\java\tkio\model\DataAuth.java
E:\IDEA_workspace\manager\src\main\java\tkio\task\SyncAppDataTask.java E:\IDEA_workspace\manager\src\main\java\tkio\task\SyncAppDataTask.java
E:\IDEA_workspace\manager\src\main\java\security\exception\MethodNotSupportException.java
E:\IDEA_workspace\manager\src\main\java\util\IPAddrUtil.java
E:\IDEA_workspace\manager\src\main\java\util\HttpClientUtil.java E:\IDEA_workspace\manager\src\main\java\util\HttpClientUtil.java
E:\IDEA_workspace\manager\src\main\java\util\UserLogThread.java
E:\IDEA_workspace\manager\src\main\java\tkio\model\Auth.java E:\IDEA_workspace\manager\src\main\java\tkio\model\Auth.java
E:\IDEA_workspace\manager\src\main\java\util\CharacterUtils.java
E:\IDEA_workspace\manager\src\main\java\dmp\model\TagCrawlerAppsWandoujia.java E:\IDEA_workspace\manager\src\main\java\dmp\model\TagCrawlerAppsWandoujia.java
E:\IDEA_workspace\manager\src\main\java\common\model\Code.java E:\IDEA_workspace\manager\src\main\java\common\model\Code.java
E:\IDEA_workspace\manager\src\main\java\common\model\City.java
E:\IDEA_workspace\manager\src\main\java\exception\GlobalExceptionAdvice.java E:\IDEA_workspace\manager\src\main\java\exception\GlobalExceptionAdvice.java
E:\IDEA_workspace\manager\src\main\java\security\annotation\CurrentAccount.java E:\IDEA_workspace\manager\src\main\java\security\annotation\CurrentAccount.java
E:\IDEA_workspace\manager\src\main\java\tkio\model\UserLog.java E:\IDEA_workspace\manager\src\main\java\tkio\model\UserLog.java
E:\IDEA_workspace\manager\src\main\java\common\model\User.java E:\IDEA_workspace\manager\src\main\java\common\model\User.java
E:\IDEA_workspace\manager\src\main\java\tkio\model\App.java
E:\IDEA_workspace\manager\src\main\java\common\repository\AppCategoryRepository.java
E:\IDEA_workspace\manager\src\main\java\dmp\repository\TagCrawlerAppsWandoujiaRepository.java
E:\IDEA_workspace\manager\src\main\java\common\model\RoleType.java E:\IDEA_workspace\manager\src\main\java\common\model\RoleType.java
E:\IDEA_workspace\manager\src\main\java\exception\TipException.java E:\IDEA_workspace\manager\src\main\java\exception\TipException.java
E:\IDEA_workspace\manager\src\main\java\util\ResultModel.java E:\IDEA_workspace\manager\src\main\java\util\ResultModel.java
E:\IDEA_workspace\manager\src\main\java\dic\RoleEnum.java E:\IDEA_workspace\manager\src\main\java\dic\RoleEnum.java
E:\IDEA_workspace\manager\src\main\java\common\model\Account4Web.java E:\IDEA_workspace\manager\src\main\java\common\model\Account4Web.java
E:\IDEA_workspace\manager\src\main\java\common\repository\CityRepository.java E:\IDEA_workspace\manager\src\main\java\common\repository\CityRepository.java
E:\IDEA_workspace\manager\src\main\java\dic\RoleTypeEnum.java
E:\IDEA_workspace\manager\src\main\java\tkio\repository\AppRepository.java E:\IDEA_workspace\manager\src\main\java\tkio\repository\AppRepository.java
E:\IDEA_workspace\manager\src\main\java\tkio\service\impl\AccountFlowRestrictServiceImpl.java
E:\IDEA_workspace\manager\src\main\java\util\MailUtils.java E:\IDEA_workspace\manager\src\main\java\util\MailUtils.java
E:\IDEA_workspace\manager\src\main\java\common\service\impl\AppServiceImpl.java E:\IDEA_workspace\manager\src\main\java\common\model\Reminder.java
E:\IDEA_workspace\manager\src\main\java\tkio\repository\IsNotifiedRepository.java E:\IDEA_workspace\manager\src\main\java\tkio\repository\IsNotifiedRepository.java
E:\IDEA_workspace\manager\src\main\java\tkio\repository\PackageTypeRepository.java E:\IDEA_workspace\manager\src\main\java\tkio\repository\PackageTypeRepository.java
E:\IDEA_workspace\manager\src\main\java\common\model\AppInfo.java
E:\IDEA_workspace\manager\src\main\java\tkio\model\IsNotified.java E:\IDEA_workspace\manager\src\main\java\tkio\model\IsNotified.java
E:\IDEA_workspace\manager\src\main\java\exception\TransferCurrentAccountException.java
E:\IDEA_workspace\manager\src\main\java\common\repository\AuthRepository.java E:\IDEA_workspace\manager\src\main\java\common\repository\AuthRepository.java
E:\IDEA_workspace\manager\src\main\java\common\repository\PaymentRepository.java
E:\IDEA_workspace\manager\src\main\java\common\model\UserLog.java
E:\IDEA_workspace\manager\src\main\java\tkio\repository\CampaignRepository.java
E:\IDEA_workspace\manager\src\main\java\tkio\repository\ChannelRepository.java
E:\IDEA_workspace\manager\src\main\java\util\CipherUtil.java
E:\IDEA_workspace\manager\src\main\java\security\TokenManager.java
E:\IDEA_workspace\manager\src\main\java\tkio\model\Account.java
E:\IDEA_workspace\manager\src\main\java\tkio\model\RoleAuth.java
E:\IDEA_workspace\manager\src\main\java\common\service\MenuService.java
E:\IDEA_workspace\manager\src\main\java\util\StringUtil.java
E:\IDEA_workspace\manager\src\main\java\security\cors\CorsFilter.java
E:\IDEA_workspace\manager\src\main\java\util\DateUtil.java
E:\IDEA_workspace\manager\src\main\java\common\controller\AppController.java
E:\IDEA_workspace\manager\src\main\java\common\model\Auth.java
E:\IDEA_workspace\manager\src\main\java\common\repository\UserLogRepository.java
E:\IDEA_workspace\manager\src\main\java\security\resolvers\LoginUserMethodArgumentsResolver.java
E:\IDEA_workspace\manager\src\main\java\common\model\Menu.java
E:\IDEA_workspace\manager\src\main\java\common\repository\RoleTypeRepository.java
E:\IDEA_workspace\manager\src\main\java\common\model\Payment.java
E:\IDEA_workspace\manager\src\main\java\common\repository\MenuRepository.java
E:\IDEA_workspace\manager\src\main\java\common\repository\AppInfoRepository.java
E:\IDEA_workspace\manager\src\main\java\common\service\UserService.java
E:\IDEA_workspace\manager\src\main\java\tkio\service\impl\TkioAccountServiceImpl.java
E:\IDEA_workspace\manager\src\main\java\tkio\model\AccountRestrict4Web.java
E:\IDEA_workspace\manager\src\main\java\tkio\repository\AccountRepository.java
E:\IDEA_workspace\manager\src\main\java\util\IP.java
E:\IDEA_workspace\manager\src\main\java\common\context\AppUtils.java
E:\IDEA_workspace\manager\src\main\java\common\controller\MenuController.java
E:\IDEA_workspace\manager\src\main\java\tkio\controller\TkioAccountController.java
E:\IDEA_workspace\manager\src\main\java\common\repository\ReminderRepository.java
E:\IDEA_workspace\manager\src\main\java\exception\NotFoundException.java
E:\IDEA_workspace\manager\src\main\java\tkio\model\DataAuth.java
E:\IDEA_workspace\manager\src\main\java\security\RedisLoginStatusManager.java
E:\IDEA_workspace\manager\src\main\java\util\CharacterUtils.java
E:\IDEA_workspace\manager\src\main\java\common\model\City.java
E:\IDEA_workspace\manager\src\main\java\tkio\model\Channel.java
E:\IDEA_workspace\manager\src\main\java\common\model\KeyValue.java
E:\IDEA_workspace\manager\src\main\java\tkio\model\App.java
E:\IDEA_workspace\manager\src\main\java\common\repository\AppCategoryRepository.java
E:\IDEA_workspace\manager\src\main\java\dmp\repository\TagCrawlerAppsWandoujiaRepository.java
E:\IDEA_workspace\manager\src\main\java\dic\OperateObjectTypeEnum.java
E:\IDEA_workspace\manager\src\main\java\dic\RoleTypeEnum.java
E:\IDEA_workspace\manager\src\main\java\tkio\service\impl\AccountFlowRestrictServiceImpl.java
E:\IDEA_workspace\manager\src\main\java\common\model\BackVisit.java
E:\IDEA_workspace\manager\src\main\java\common\service\impl\AppServiceImpl.java
E:\IDEA_workspace\manager\src\main\java\util\RedisUtilNew.java
E:\IDEA_workspace\manager\src\main\java\common\model\AppInfo.java
E:\IDEA_workspace\manager\src\main\java\exception\TransferCurrentAccountException.java
E:\IDEA_workspace\manager\src\main\java\security\AbstractTokenManager.java
E:\IDEA_workspace\manager\src\main\java\common\repository\Account4WebRepository.java E:\IDEA_workspace\manager\src\main\java\common\repository\Account4WebRepository.java
E:\IDEA_workspace\manager\src\main\java\security\annotation\Authorization.java E:\IDEA_workspace\manager\src\main\java\security\annotation\Authorization.java
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