Commit 9e68fb65 by manxiaoqiang

二版

parent 7b8954a4
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="e2e217e2-2dd6-4c6f-ad19-b1cba46bc7ad" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/common/model/PressMoney.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/common/repository/PressMoneyRepository.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/dic/ContractTypeEnum.java" />
<list default="true" id="e2e217e2-2dd6-4c6f-ad19-b1cba46bc7ad" name="Default" comment="二版&#10;&#10;&#10;">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/common/model/ContractIncrement.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/common/model/IOAccount4Web.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/common/repository/ContractIncrementRepository.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/common/repository/IOAccount4WebRepository.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/dic/ContractStatusEnum.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/tkio/model/Crowd.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/tkio/model/IncrementFlow.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/tkio/repository/CrowdRepository.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/tkio/repository/IncrementFlowRepository.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/controller/IoAccountController.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/model/Account.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/model/App.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/model/Auth.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/model/DataAuth.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/model/PackageType.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/model/RoleAuth.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/model/RoleAuthDetail.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/model/SalesManLeader.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/repository/IOAccountRepository.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/repository/IOAppRepository.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/repository/IODataAuthRepository.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/repository/IOPackageTypeRepository.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/repository/IORoleAuthDetailRepository.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/repository/IORoleAuthRepository.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/repository/IOSalesManLeaderRepository.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/service/AccountIOService.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/service/IOAccountService.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/service/IOSalesManService.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/service/impl/AccountIOServiceImpl.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/service/impl/IOAccountServiceImpl.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/service/impl/IOSaleManServiceImpl.java" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/userio/task/IOAccountTask.java" />
<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/ContractController.java" afterPath="$PROJECT_DIR$/src/main/java/common/controller/ContractController.java" />
<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$/src/main/java/common/model/Contract.java" afterPath="$PROJECT_DIR$/src/main/java/common/model/Contract.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/common/repository/ContractRepository.java" afterPath="$PROJECT_DIR$/src/main/java/common/repository/ContractRepository.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/common/repository/PressMoneyRepository.java" afterPath="$PROJECT_DIR$/src/main/java/common/repository/PressMoneyRepository.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/common/repository/UserRepository.java" afterPath="$PROJECT_DIR$/src/main/java/common/repository/UserRepository.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/common/service/ContractService.java" afterPath="$PROJECT_DIR$/src/main/java/common/service/ContractService.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/common/service/impl/ContractServiceImpl.java" afterPath="$PROJECT_DIR$/src/main/java/common/service/impl/ContractServiceImpl.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/common/service/impl/UserServiceImpl.java" afterPath="$PROJECT_DIR$/src/main/java/common/service/impl/UserServiceImpl.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/dic/RoleEnum.java" afterPath="$PROJECT_DIR$/src/main/java/dic/RoleEnum.java" />
<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$/src/main/java/tkio/controller/TkioAccountController.java" afterPath="$PROJECT_DIR$/src/main/java/tkio/controller/TkioAccountController.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/tkio/model/PackageType.java" afterPath="$PROJECT_DIR$/src/main/java/tkio/model/PackageType.java" />
<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/service/TkioAccountService.java" afterPath="$PROJECT_DIR$/src/main/java/tkio/service/TkioAccountService.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/tkio/service/impl/AccountFlowRestrictServiceImpl.java" afterPath="$PROJECT_DIR$/src/main/java/tkio/service/impl/AccountFlowRestrictServiceImpl.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/tkio/service/impl/TkioAccountServiceImpl.java" afterPath="$PROJECT_DIR$/src/main/java/tkio/service/impl/TkioAccountServiceImpl.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/track/controller/TrackAccountController.java" afterPath="$PROJECT_DIR$/src/main/java/track/controller/TrackAccountController.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/track/service/TrackAccountService.java" afterPath="$PROJECT_DIR$/src/main/java/track/service/TrackAccountService.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/track/service/impl/TrackAccountServiceImpl.java" afterPath="$PROJECT_DIR$/src/main/java/track/service/impl/TrackAccountServiceImpl.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/resources/persistence.properties" afterPath="$PROJECT_DIR$/src/main/resources/persistence.properties" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/resources/spring/applicationContext.xml" afterPath="$PROJECT_DIR$/src/main/resources/spring/applicationContext.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/resources/rest-servlet.xml" afterPath="$PROJECT_DIR$/src/main/resources/rest-servlet.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/resources/spring/applicationContext-schedule.xml" afterPath="$PROJECT_DIR$/src/main/resources/spring/applicationContext-schedule.xml" />
</list>
<ignored path="$PROJECT_DIR$/target/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
......@@ -37,71 +76,91 @@
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="AuthorizationInterceptor.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/security/interceptor/AuthorizationInterceptor.java">
<file leaf-file-name="ContractService.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/common/service/ContractService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="713">
<caret line="56" column="57" lean-forward="false" selection-start-line="56" selection-start-column="57" selection-end-line="56" selection-end-column="57" />
<state relative-caret-position="183">
<caret line="27" column="13" lean-forward="false" selection-start-line="27" selection-start-column="13" selection-end-line="27" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ContractController.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/common/controller/ContractController.java">
<file leaf-file-name="ContractServiceImpl.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/common/service/impl/ContractServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2507">
<caret line="144" column="5" lean-forward="true" selection-start-line="144" selection-start-column="5" selection-end-line="144" selection-end-column="5" />
<state relative-caret-position="183">
<caret line="342" column="23" lean-forward="false" selection-start-line="342" selection-start-column="20" selection-end-line="342" selection-end-column="23" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="TkioAccountServiceImpl.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/impl/TkioAccountServiceImpl.java">
<file leaf-file-name="IncrementFlowRepository.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/repository/IncrementFlowRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="125">
<caret line="311" column="0" lean-forward="true" selection-start-line="311" selection-start-column="0" selection-end-line="311" selection-end-column="0" />
<state relative-caret-position="253">
<caret line="17" column="25" lean-forward="false" selection-start-line="17" selection-start-column="18" selection-end-line="17" selection-end-column="25" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="IoAccountController.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/userio/contraller/IoAccountController.java">
<file leaf-file-name="TkioAccountService.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/TkioAccountService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="421">
<caret line="115" column="52" lean-forward="true" selection-start-line="115" selection-start-column="52" selection-end-line="115" selection-end-column="52" />
<state relative-caret-position="573">
<caret line="50" column="14" lean-forward="false" selection-start-line="50" selection-start-column="14" selection-end-line="50" selection-end-column="14" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ContractService.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/common/service/ContractService.java">
<file leaf-file-name="IOAccountService.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/userio/service/IOAccountService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1081">
<caret line="50" column="9" lean-forward="false" selection-start-line="50" selection-start-column="9" selection-end-line="50" selection-end-column="9" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ContractRepository.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/common/repository/ContractRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="183">
<caret line="25" column="13" lean-forward="false" selection-start-line="25" selection-start-column="13" selection-end-line="25" selection-end-column="13" />
<caret line="36" column="27" lean-forward="false" selection-start-line="36" selection-start-column="27" selection-end-line="36" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ContractServiceImpl.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/common/service/impl/ContractServiceImpl.java">
<file leaf-file-name="IOAccountServiceImpl.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/userio/service/impl/IOAccountServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="5980">
<caret line="282" column="35" lean-forward="true" selection-start-line="282" selection-start-column="35" selection-end-line="282" selection-end-column="35" />
<state relative-caret-position="620">
<caret line="137" column="67" lean-forward="true" selection-start-line="137" selection-start-column="67" selection-end-line="137" selection-end-column="67" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="TkioAccountService.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/TkioAccountService.java">
<file leaf-file-name="TkioAccountServiceImpl.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/impl/TkioAccountServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="7779">
<caret line="514" column="59" lean-forward="true" selection-start-line="514" selection-start-column="59" selection-end-line="514" selection-end-column="59" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ContractController.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/common/controller/ContractController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="194">
<caret line="38" column="31" lean-forward="false" selection-start-line="38" selection-start-column="31" selection-end-line="38" selection-end-column="31" />
<state relative-caret-position="161">
<caret line="187" column="40" lean-forward="true" selection-start-line="187" selection-start-column="40" selection-end-line="187" selection-end-column="40" />
<folding />
</state>
</provider>
......@@ -119,9 +178,6 @@
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>`</find>
<find>URI_REPORT_BY_SQL</find>
<find>show_sql</find>
<find>testreyun.cjxbwnaf9ore.rds.cn-northwest-1.amazonaws.com.cn</find>
<find>log</find>
<find>officeEntityManagerFactory</find>
......@@ -142,6 +198,16 @@
<find>rootParent</find>
<find>, request</find>
<find>reminderlevel</find>
<find>tkio</find>
<find>Account4Web</find>
<find>level</find>
<find>type</find>
<find>lastThreeDaysClickNum1</find>
<find>clickNum</find>
<find>salesManLeaderRepository</find>
<find>find</find>
<find>findByPlatformAndEmailLimit1</find>
<find>ale</find>
</findStrings>
<replaceStrings>
<replace />
......@@ -163,57 +229,57 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/main/java/common/model/TrackAccount4Web.java" />
<option value="$PROJECT_DIR$/src/main/java/common/repository/TrackAccount4WebRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/common/repository/BackVisitRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/util/DateUtil.java" />
<option value="$PROJECT_DIR$/src/main/java/tkio/service/AccountService.java" />
<option value="$PROJECT_DIR$/src/main/java/tkio/repository/SalesManLeaderRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/common/model/Reminder.java" />
<option value="$PROJECT_DIR$/src/main/java/common/repository/ReminderLevelRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/common/model/ReminderLevel.java" />
<option value="$PROJECT_DIR$/src/main/java/track/model/MeasuresTrackNew.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/repository/AccountRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/repository/AppRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/repository/DataAuthRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/repository/PackageTypeRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/repository/RoleAuthRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/repository/SalesManLeaderRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/repository/IOSalesManLeaderRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/model/Account.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/repository/IOAppRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/common/repository/IOAccount4WebRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/repository/IOPackageTypeRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/repository/IOAccountRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/contraller/IoAccountController.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/model/App.java" />
<option value="$PROJECT_DIR$/src/main/resources/rest-servlet.xml" />
<option value="$PROJECT_DIR$/src/main/java/security/interceptor/AuthorizationInterceptor.java" />
<option value="$PROJECT_DIR$/src/main/java/track/task/AccountTask.java" />
<option value="$PROJECT_DIR$/src/main/java/track/service/TrackAccountFlowRestrictService.java" />
<option value="$PROJECT_DIR$/src/main/java/track/repository/MeasureRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/track/service/impl/TrackAccountFlowRestrictServiceImpl.java" />
<option value="$PROJECT_DIR$/src/main/java/tkio/repository/AccountRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/common/task/ReportCallable.java" />
<option value="$PROJECT_DIR$/src/main/java/common/model/ContractChange.java" />
<option value="$PROJECT_DIR$/src/main/java/util/UserLogThread.java" />
<option value="$PROJECT_DIR$/src/main/java/common/model/UserLog.java" />
<option value="$PROJECT_DIR$/src/main/java/common/controller/UserController.java" />
<option value="$PROJECT_DIR$/src/main/java/common/task/ContractTask.java" />
<option value="$PROJECT_DIR$/src/main/java/common/repository/ContractRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/common/task/ContractSendEmailThread.java" />
<option value="$PROJECT_DIR$/src/main/java/common/service/ContractService.java" />
<option value="$PROJECT_DIR$/src/main/java/common/repository/ContractMoneyRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/common/controller/UserLogController.java" />
<option value="$PROJECT_DIR$/src/main/java/common/service/UserLogService.java" />
<option value="$PROJECT_DIR$/src/main/java/common/repository/UserLogRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/common/service/impl/UserLogServiceImpl.java" />
<option value="$PROJECT_DIR$/src/main/java/tkio/service/impl/AccountServiceImpl.java" />
<option value="$PROJECT_DIR$/src/main/java/util/ResultStatus.java" />
<option value="$PROJECT_DIR$/src/main/java/common/controller/ContractController.java" />
<option value="$PROJECT_DIR$/src/main/java/dic/ContractStatusEnum.java" />
<option value="$PROJECT_DIR$/src/main/java/tkio/model/PackageType.java" />
<option value="$PROJECT_DIR$/src/main/java/common/repository/UserRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/util/NewUserLogThread.java" />
<option value="$PROJECT_DIR$/src/main/java/common/task/SyncAppDataTask.java" />
<option value="$PROJECT_DIR$/src/main/java/tkio/task/AccountTask.java" />
<option value="$PROJECT_DIR$/src/main/java/common/model/ContractIncrement.java" />
<option value="$PROJECT_DIR$/src/main/java/common/model/Contract.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/service/SalesManService.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/service/impl/SaleManServiceImpl.java" />
<option value="$PROJECT_DIR$/src/main/java/common/service/impl/UserServiceImpl.java" />
<option value="$PROJECT_DIR$/src/main/java/common/model/Account4Web.java" />
<option value="$PROJECT_DIR$/src/main/java/common/model/IOAccount4Web.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/task/IOAccountTask.java" />
<option value="$PROJECT_DIR$/src/main/resources/spring/applicationContext-schedule.xml" />
<option value="$PROJECT_DIR$/src/main/resources/persistence.properties" />
<option value="$PROJECT_DIR$/pom.xml" />
<option value="$PROJECT_DIR$/src/main/java/tkio/service/TkioAccountService.java" />
<option value="$PROJECT_DIR$/src/main/java/common/model/PressMoney.java" />
<option value="$PROJECT_DIR$/src/main/java/tkio/service/impl/TkioAccountServiceImpl.java" />
<option value="$PROJECT_DIR$/src/main/java/common/repository/PressMoneyRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/tkio/controller/TkioAccountController.java" />
<option value="$PROJECT_DIR$/src/main/java/track/controller/TrackAccountController.java" />
<option value="$PROJECT_DIR$/src/main/java/track/service/TrackAccountService.java" />
<option value="$PROJECT_DIR$/src/main/java/common/repository/ContractIncrementRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/tkio/service/TkioAccountService.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/service/IOAccountService.java" />
<option value="$PROJECT_DIR$/src/main/java/common/service/ContractService.java" />
<option value="$PROJECT_DIR$/src/main/java/common/controller/ContractController.java" />
<option value="$PROJECT_DIR$/src/main/java/dic/RoleEnum.java" />
<option value="$PROJECT_DIR$/src/main/java/tkio/model/Crowd.java" />
<option value="$PROJECT_DIR$/src/main/java/tkio/repository/CrowdRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/tkio/repository/AccountRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/tkio/task/AccountTask.java" />
<option value="$PROJECT_DIR$/src/main/java/track/service/impl/TrackAccountServiceImpl.java" />
<option value="$PROJECT_DIR$/src/main/java/tkio/service/impl/AccountFlowRestrictServiceImpl.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/service/AccountIOService.java" />
<option value="$PROJECT_DIR$/src/main/java/tkio/service/AccountService.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/service/impl/AccountIOServiceImpl.java" />
<option value="$PROJECT_DIR$/src/main/java/common/repository/ContractRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/tkio/service/impl/TkioAccountServiceImpl.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/service/impl/IOAccountServiceImpl.java" />
<option value="$PROJECT_DIR$/src/main/java/tkio/model/IncrementFlow.java" />
<option value="$PROJECT_DIR$/src/main/java/tkio/repository/IncrementFlowRepository.java" />
<option value="$PROJECT_DIR$/src/main/java/common/service/impl/ContractServiceImpl.java" />
<option value="$PROJECT_DIR$/src/main/java/dic/ContractTypeEnum.java" />
<option value="$PROJECT_DIR$/src/main/java/common/model/Contract.java" />
<option value="$PROJECT_DIR$/src/main/java/userio/contraller/IoAccountController.java" />
</list>
</option>
</component>
......@@ -308,8 +374,7 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scratches" />
<pane id="PackagesPane" />
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<PATH>
......@@ -357,6 +422,10 @@
<option name="myItemId" value="main" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="webapp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
......@@ -376,7 +445,11 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="resources" />
<option name="myItemId" value="webapp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="WEB-INF" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
......@@ -401,10 +474,6 @@
<option name="myItemId" value="resources" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="spring" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
......@@ -428,7 +497,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="logback" />
<option name="myItemId" value="spring" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
......@@ -450,7 +519,11 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="java" />
<option name="myItemId" value="resources" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="logback" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
......@@ -475,10 +548,6 @@
<option name="myItemId" value="java" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="userio" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
......@@ -506,7 +575,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="contraller" />
<option name="myItemId" value="task" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
......@@ -532,7 +601,11 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="tkio" />
<option name="myItemId" value="userio" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="service" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
......@@ -558,11 +631,15 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="tkio" />
<option name="myItemId" value="userio" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="model" />
<option name="myItemId" value="service" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="impl" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
......@@ -588,11 +665,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="tkio" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="controller" />
<option name="myItemId" value="userio" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
......@@ -624,7 +697,8 @@
</PATH>
</subPane>
</pane>
<pane id="Scope" />
<pane id="Scratches" />
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
......@@ -642,19 +716,22 @@
<property name="settings.editor.selected.configurable" value="preferences.lookFeel" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/src/main/resources/spring" />
<key name="CopyFile.RECENT_KEYS">
<recent name="E:\newgit\manager\src\main\java\tkio\model" />
<recent name="E:\newgit\manager\src\main\java\userio\repository" />
<recent name="E:\newgit\manager\src\main\java\userio\model" />
<recent name="E:\newgit\manager\src\main\resources\spring" />
<recent name="E:\newgit\manager\src\main\resources" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="userio.contraller" />
<recent name="userio.service.impl" />
<recent name="userio.service" />
<recent name="tkio.repository" />
<recent name="dic" />
<recent name="common.task" />
<recent name="util" />
<recent name="track.repository" />
<recent name="tkio.model" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="E:\newgit\manager\src\main\resources\spring" />
<recent name="E:\newgit\manager\src\main\resources" />
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/src/main/resources/spring" />
</key>
</component>
<component name="RunManager" selected="Maven.manager">
......@@ -1124,13 +1201,8 @@
<workItem from="1517533917524" duration="7763000" />
<workItem from="1517902340876" duration="6159000" />
<workItem from="1522052551509" duration="4324000" />
</task>
<task id="LOCAL-00047" summary="合同">
<created>1516187770796</created>
<option name="number" value="00047" />
<option name="presentableId" value="LOCAL-00047" />
<option name="project" value="LOCAL" />
<updated>1516187770796</updated>
<workItem from="1523843445576" duration="7238000" />
<workItem from="1523876594256" duration="57397000" />
</task>
<task id="LOCAL-00048" summary="合同">
<created>1516244162355</created>
......@@ -1468,15 +1540,22 @@
<option name="project" value="LOCAL" />
<updated>1522060257129</updated>
</task>
<option name="localTasksCounter" value="96" />
<task id="LOCAL-00096" summary="二版&#10;&#10;&#10;">
<created>1523523896705</created>
<option name="number" value="00096" />
<option name="presentableId" value="LOCAL-00096" />
<option name="project" value="LOCAL" />
<updated>1523523896705</updated>
</task>
<option name="localTasksCounter" value="97" />
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="363594000" />
<option name="totallyTimeSpent" value="444744000" />
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
<editor active="true" />
<editor active="false" />
<layout>
<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="8" 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="7" side_tool="false" content_ui="tabs" />
......@@ -1491,16 +1570,15 @@
<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.4942717" 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.3289689" sideWeight="0.5" order="18" 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="5" 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.42553192" sideWeight="0.49016643" order="9" 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.5155483" sideWeight="0.49546143" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.5155483" sideWeight="0.49546143" 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.33387887" sideWeight="0.49016643" 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.3289689" sideWeight="0.5" order="3" 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.5581015" 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.25189108" sideWeight="0.5" order="8" 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.2927383" sideWeight="0.5" order="8" 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.32980332" sideWeight="0.5" order="6" 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="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="7" side_tool="false" content_ui="tabs" />
......@@ -1514,6 +1592,7 @@
<window_info id="Memory View" 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="Get Gist" 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="15" side_tool="false" content_ui="tabs" />
<window_info id="SonarQube" 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="16" 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="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="14" 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="Gradle View" 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="17" side_tool="false" content_ui="tabs" />
......@@ -1549,12 +1628,12 @@
<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="5" 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="14" 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.42553192" sideWeight="0.49016643" order="9" 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.5155483" sideWeight="0.49546143" 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.33387887" sideWeight="0.49016643" 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.3289689" sideWeight="0.5" order="3" 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.5581015" sideWeight="0.5" order="5" 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="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25189108" sideWeight="0.5" order="8" 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.2927383" sideWeight="0.5" order="8" 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.32980332" sideWeight="0.5" order="6" 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="Gradle View" 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="17" side_tool="false" content_ui="tabs" />
......@@ -1605,7 +1684,8 @@
<MESSAGE value="显示" />
<MESSAGE value="Merge remote-tracking branch 'remotes/origin/feature_20180116_new'&#10;&#10;* remotes/origin/feature_20180116_new:&#10; 客户表-1&#10; app排序&#10;&#10;# Conflicts:&#10;#&#9;.idea/workspace.xml&#10;" />
<MESSAGE value="客户表&#10;&#10;&#10;" />
<option name="LAST_COMMIT_MESSAGE" value="客户表&#10;&#10;&#10;" />
<MESSAGE value="二版&#10;&#10;&#10;" />
<option name="LAST_COMMIT_MESSAGE" value="二版&#10;&#10;&#10;" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
......@@ -1616,7 +1696,7 @@
<option name="timeStamp" value="1" />
</line-breakpoint>
</breakpoints>
<option name="time" value="34" />
<option name="time" value="37" />
</breakpoint-manager>
<watches-manager />
</component>
......@@ -1625,414 +1705,437 @@
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/impl/SendEmailServiceImpl.java">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/model/SalesManLeader.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="148">
<caret line="22" column="0" lean-forward="false" selection-start-line="22" selection-start-column="0" selection-end-line="35" selection-end-column="9" />
<state relative-caret-position="-163">
<caret line="7" column="13" lean-forward="false" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/task/SendEmailTask.java">
<entry file="file://$PROJECT_DIR$/src/main/java/util/NewUserLogThread.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="46">
<caret line="116" column="39" lean-forward="false" selection-start-line="116" selection-start-column="39" selection-end-line="116" selection-end-column="39" />
<state relative-caret-position="254">
<caret line="31" column="32" lean-forward="false" selection-start-line="31" selection-start-column="19" selection-end-line="31" selection-end-column="32" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/SendEmailService.java">
<entry file="file://$PROJECT_DIR$/src/main/java/userio/service/impl/IOSaleManServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="184">
<caret line="8" column="9" lean-forward="false" selection-start-line="8" selection-start-column="9" selection-end-line="8" selection-end-column="9" />
<state relative-caret-position="366">
<caret line="22" column="30" lean-forward="true" selection-start-line="22" selection-start-column="30" selection-end-line="22" selection-end-column="30" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/repository/ContractRepository.java">
<entry file="file://$PROJECT_DIR$/src/main/java/userio/service/IOSalesManService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="642">
<caret line="36" column="49" lean-forward="true" selection-start-line="36" selection-start-column="49" selection-end-line="36" selection-end-column="49" />
<state relative-caret-position="138">
<caret line="6" column="10" lean-forward="false" selection-start-line="6" selection-start-column="10" selection-end-line="6" selection-end-column="10" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/task/ContractTask.java">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/impl/SaleManServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="206">
<caret line="41" column="67" lean-forward="true" selection-start-line="41" selection-start-column="67" selection-end-line="41" selection-end-column="67" />
<state relative-caret-position="253">
<caret line="22" column="85" lean-forward="false" selection-start-line="22" selection-start-column="75" selection-end-line="22" selection-end-column="85" />
<folding />
</state>
</provider>
</entry>
<entry file="jar://E:/Java/jdk1.8.0_65/src.zip!/java/lang/Thread.java">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/SalesManService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="194">
<caret line="695" column="29" lean-forward="false" selection-start-line="695" selection-start-column="29" selection-end-line="695" selection-end-column="29" />
<state relative-caret-position="138">
<caret line="6" column="9" lean-forward="false" selection-start-line="6" selection-start-column="9" selection-end-line="6" selection-end-column="9" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/office/service/BussinussManService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="161">
<caret line="7" column="9" lean-forward="false" selection-start-line="7" selection-start-column="9" selection-end-line="7" selection-end-column="9" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/repository/ContractMoneyRepository.java">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/impl/SendEmailServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="253">
<caret line="18" column="35" lean-forward="false" selection-start-line="18" selection-start-column="24" selection-end-line="18" selection-end-column="35" />
<caret line="21" column="16" lean-forward="false" selection-start-line="21" selection-start-column="16" selection-end-line="21" selection-end-column="16" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/model/UserLog.java">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/impl/AccountServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="276">
<caret line="16" column="31" lean-forward="false" selection-start-line="16" selection-start-column="19" selection-end-line="16" selection-end-column="31" />
<state relative-caret-position="391">
<caret line="29" column="0" lean-forward="true" selection-start-line="29" selection-start-column="0" selection-end-line="29" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/service/impl/UserServiceImpl.java">
<entry file="file://$PROJECT_DIR$/src/main/java/common/controller/UserController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1275">
<caret line="319" column="22" lean-forward="true" selection-start-line="319" selection-start-column="22" selection-end-line="319" selection-end-column="22" />
<state relative-caret-position="56">
<caret line="54" column="26" lean-forward="true" selection-start-line="54" selection-start-column="26" selection-end-line="54" selection-end-column="26" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/service/UserService.java">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/SendEmailService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="398">
<caret line="40" column="15" lean-forward="false" selection-start-line="40" selection-start-column="15" selection-end-line="40" selection-end-column="15" />
<state relative-caret-position="161">
<caret line="7" column="17" lean-forward="false" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/AccountService.java">
<entry file="file://$PROJECT_DIR$/src/main/java/common/model/IOAccount4Web.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="207">
<caret line="10" column="12" lean-forward="false" selection-start-line="10" selection-start-column="12" selection-end-line="10" selection-end-column="12" />
<state relative-caret-position="504">
<caret line="52" column="5" lean-forward="false" selection-start-line="52" selection-start-column="5" selection-end-line="52" selection-end-column="5" />
<folding>
<element signature="e#1036#1037#0" expanded="true" />
<element signature="e#1068#1069#0" expanded="true" />
<element signature="e#1118#1119#0" expanded="true" />
<element signature="e#1160#1161#0" expanded="true" />
<element signature="e#1189#1190#0" expanded="true" />
<element signature="e#1216#1217#0" expanded="true" />
<element signature="e#1254#1255#0" expanded="true" />
<element signature="e#1286#1287#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/impl/AccountServiceImpl.java">
<entry file="file://$PROJECT_DIR$/src/main/java/userio/task/IOAccountTask.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-46">
<caret line="31" column="36" lean-forward="false" selection-start-line="31" selection-start-column="36" selection-end-line="31" selection-end-column="36" />
<state relative-caret-position="1286">
<caret line="70" column="9" lean-forward="false" selection-start-line="70" selection-start-column="9" selection-end-line="70" selection-end-column="9" />
<folding>
<element signature="imports" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/dic/OperateObjectTypeEnum.java">
<entry file="file://$PROJECT_DIR$/src/main/resources/spring/applicationContext-schedule.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="194">
<caret line="9" column="4" lean-forward="false" selection-start-line="9" selection-start-column="4" selection-end-line="9" selection-end-column="4" />
<state relative-caret-position="361">
<caret line="50" column="67" lean-forward="false" selection-start-line="50" selection-start-column="67" selection-end-line="50" selection-end-column="67" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/util/ResultStatus.java">
<entry file="file://$PROJECT_DIR$/src/main/java/common/repository/PressMoneyRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="621">
<caret line="27" column="25" lean-forward="false" selection-start-line="27" selection-start-column="25" selection-end-line="27" selection-end-column="30" />
<state relative-caret-position="322">
<caret line="20" column="19" lean-forward="false" selection-start-line="20" selection-start-column="19" selection-end-line="20" selection-end-column="19" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/controller/UserLogController.java">
<entry file="file://$PROJECT_DIR$/src/main/java/common/repository/IOAccount4WebRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="343">
<caret line="29" column="50" lean-forward="true" selection-start-line="29" selection-start-column="50" selection-end-line="29" selection-end-column="50" />
<state relative-caret-position="161">
<caret line="13" column="0" lean-forward="false" selection-start-line="13" selection-start-column="0" selection-end-line="14" selection-end-column="58" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/service/UserLogService.java">
<entry file="file://$PROJECT_DIR$/src/main/java/common/repository/ContractIncrementRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="207">
<caret line="14" column="18" lean-forward="false" selection-start-line="14" selection-start-column="18" selection-end-line="14" selection-end-column="18" />
<state relative-caret-position="184">
<caret line="12" column="32" lean-forward="false" selection-start-line="12" selection-start-column="22" selection-end-line="12" selection-end-column="32" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/service/impl/UserLogServiceImpl.java">
<entry file="file://$PROJECT_DIR$/src/main/java/common/model/ContractMoney.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="447">
<caret line="45" column="41" lean-forward="true" selection-start-line="45" selection-start-column="41" selection-end-line="45" selection-end-column="41" />
<state relative-caret-position="115">
<caret line="11" column="28" lean-forward="true" selection-start-line="11" selection-start-column="28" selection-end-line="11" selection-end-column="28" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/track/task/AccountTask.java">
<entry file="file://$PROJECT_DIR$/src/main/java/common/model/PressMoney.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-161">
<caret line="20" column="13" lean-forward="false" selection-start-line="20" selection-start-column="13" selection-end-line="20" selection-end-column="13" />
<state relative-caret-position="322">
<caret line="17" column="27" lean-forward="false" selection-start-line="17" selection-start-column="19" selection-end-line="17" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/repository/UserLogRepository.java">
<entry file="file://$PROJECT_DIR$/src/main/java/common/model/Contract.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="276">
<caret line="16" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="16" selection-end-column="0" />
<state relative-caret-position="252">
<caret line="235" column="21" lean-forward="false" selection-start-line="235" selection-start-column="21" selection-end-line="235" selection-end-column="21" />
<folding>
<element signature="e#4694#4695#0" expanded="true" />
<element signature="e#4721#4722#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/util/NewUserLogThread.java">
<entry file="file://$PROJECT_DIR$/src/main/java/util/ValidateUtil.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="184">
<caret line="74" column="0" lean-forward="false" selection-start-line="74" selection-start-column="0" selection-end-line="74" selection-end-column="0" />
<state relative-caret-position="194">
<caret line="33" column="26" lean-forward="false" selection-start-line="33" selection-start-column="26" selection-end-line="33" selection-end-column="26" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/repository/UserRepository.java">
<entry file="file://$PROJECT_DIR$/src/main/java/dic/RoleEnum.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="274">
<caret line="26" column="20" lean-forward="false" selection-start-line="26" selection-start-column="9" selection-end-line="26" selection-end-column="20" />
<state relative-caret-position="253">
<caret line="11" column="0" lean-forward="true" selection-start-line="11" selection-start-column="0" selection-end-line="11" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/util/UserLogThread.java">
<entry file="file://$PROJECT_DIR$/src/main/java/common/service/UserService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="345">
<caret line="65" column="12" lean-forward="false" selection-start-line="65" selection-start-column="12" selection-end-line="65" selection-end-column="37" />
<state relative-caret-position="366">
<caret line="40" column="15" lean-forward="false" selection-start-line="40" selection-start-column="15" selection-end-line="40" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/task/ContractSendEmailThread.java">
<entry file="file://$PROJECT_DIR$/src/main/java/common/service/impl/UserServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="504">
<caret line="63" column="0" lean-forward="false" selection-start-line="63" selection-start-column="0" selection-end-line="63" selection-end-column="0" />
<folding>
<element signature="imports" expanded="false" />
<element signature="e#1316#1317#0" expanded="false" />
<element signature="e#1356#1357#0" expanded="false" />
</folding>
<state relative-caret-position="183">
<caret line="328" column="27" lean-forward="true" selection-start-line="328" selection-start-column="27" selection-end-line="328" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/task/SyncAppDataTask.java">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/repository/CrowdRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="276">
<caret line="174" column="13" lean-forward="false" selection-start-line="174" selection-start-column="13" selection-end-line="174" selection-end-column="13" />
<state relative-caret-position="184">
<caret line="14" column="31" lean-forward="false" selection-start-line="14" selection-start-column="31" selection-end-line="14" selection-end-column="31" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/model/Account4Web.java">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/model/Crowd.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="194">
<caret line="111" column="16" lean-forward="false" selection-start-line="111" selection-start-column="16" selection-end-line="111" selection-end-column="16" />
<folding>
<element signature="e#2336#2337#0" expanded="false" />
<element signature="e#2364#2365#0" expanded="false" />
</folding>
<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/tkio/service/AccountFlowRestrictService.java">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/controller/TkioAccountController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="230">
<caret line="12" column="24" lean-forward="false" selection-start-line="12" selection-start-column="24" selection-end-line="12" selection-end-column="24" />
<state relative-caret-position="-1863">
<caret line="21" column="36" lean-forward="true" selection-start-line="21" selection-start-column="36" selection-end-line="21" selection-end-column="36" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/impl/AccountFlowRestrictServiceImpl.java">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/repository/AccountRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="102">
<caret line="32" column="0" lean-forward="false" selection-start-line="32" selection-start-column="0" selection-end-line="33" selection-end-column="56" />
<state relative-caret-position="252">
<caret line="25" column="41" lean-forward="false" selection-start-line="25" selection-start-column="18" selection-end-line="25" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/logback/product/logback.xml">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/model/PackageType.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-646">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<state relative-caret-position="194">
<caret line="126" column="22" lean-forward="false" selection-start-line="126" selection-start-column="22" selection-end-line="126" selection-end-column="22" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#3121#3122#0" expanded="true" />
<element signature="e#3153#3154#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/task/AccountTask.java">
<entry file="file://$PROJECT_DIR$/src/main/java/track/service/impl/TrackAccountServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="183">
<caret line="46" column="16" lean-forward="true" selection-start-line="46" selection-start-column="16" selection-end-line="46" selection-end-column="16" />
<caret line="309" column="71" lean-forward="true" selection-start-line="309" selection-start-column="71" selection-end-line="309" selection-end-column="71" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/spring/applicationContext-schedule.xml">
<entry file="file://$PROJECT_DIR$/src/main/java/dic/ContractTypeEnum.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="184">
<caret line="14" column="72" lean-forward="false" selection-start-line="14" selection-start-column="72" selection-end-line="14" selection-end-column="72" />
<state relative-caret-position="138">
<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/resources/spring/applicationContext.xml">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/AccountFlowRestrictService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-2185">
<caret line="10" column="0" lean-forward="false" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
<state relative-caret-position="230">
<caret line="12" column="24" lean-forward="false" selection-start-line="12" selection-start-column="24" selection-end-line="12" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/persistence.properties">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/impl/AccountFlowRestrictServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="575">
<caret line="25" column="37" lean-forward="false" selection-start-line="25" selection-start-column="37" selection-end-line="25" selection-end-column="37" />
<state relative-caret-position="815">
<caret line="153" column="72" lean-forward="true" selection-start-line="153" selection-start-column="72" selection-end-line="153" selection-end-column="72" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pom.xml">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/task/AccountTask.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2951">
<caret line="756" column="24" lean-forward="true" selection-start-line="756" selection-start-column="24" selection-end-line="756" selection-end-column="24" />
<state relative-caret-position="160">
<caret line="79" column="97" lean-forward="false" selection-start-line="79" selection-start-column="97" selection-end-line="79" selection-end-column="97" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/repository/PressMoneyRepository.java">
<entry file="file://$PROJECT_DIR$/src/main/java/common/model/Account4Web.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="184">
<caret line="14" column="33" lean-forward="false" selection-start-line="14" selection-start-column="21" selection-end-line="14" selection-end-column="33" />
<state relative-caret-position="161">
<caret line="20" column="33" lean-forward="true" selection-start-line="20" selection-start-column="33" selection-end-line="20" selection-end-column="33" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/model/PressMoney.java">
<entry file="file://$PROJECT_DIR$/src/main/java/dic/ContractStatusEnum.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="148">
<caret line="48" column="33" lean-forward="false" selection-start-line="48" selection-start-column="33" selection-end-line="48" selection-end-column="33" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#983#984#0" expanded="true" />
<element signature="e#1033#1034#0" expanded="true" />
<element signature="e#1077#1078#0" expanded="true" />
</folding>
<state relative-caret-position="276">
<caret line="12" column="0" lean-forward="true" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/model/Payment.java">
<entry file="file://$PROJECT_DIR$/src/main/java/userio/service/AccountIOService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="276">
<caret line="21" column="4" lean-forward="false" selection-start-line="21" selection-start-column="4" selection-end-line="21" selection-end-column="28" />
<folding />
<state relative-caret-position="230">
<caret line="10" column="8" lean-forward="false" selection-start-line="10" selection-start-column="8" selection-end-line="10" selection-end-column="8" />
<folding>
<element signature="imports" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/controller/TkioAccountController.java">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/AccountService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="136">
<caret line="66" column="0" lean-forward="false" selection-start-line="66" selection-start-column="0" selection-end-line="82" selection-end-column="5" />
<state relative-caret-position="69">
<caret line="3" column="0" lean-forward="false" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="26" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/track/service/TrackAccountService.java">
<entry file="file://$PROJECT_DIR$/src/main/java/userio/service/impl/AccountIOServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-24">
<caret line="11" column="27" lean-forward="false" selection-start-line="11" selection-start-column="27" selection-end-line="11" selection-end-column="27" />
<folding />
<state relative-caret-position="274">
<caret line="60" column="22" lean-forward="false" selection-start-line="60" selection-start-column="22" selection-end-line="60" selection-end-column="22" />
<folding>
<element signature="imports" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/track/controller/TrackAccountController.java">
<entry file="jar://E:/Java/jdk1.8.0_65/src.zip!/java/util/Map.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="67">
<caret line="57" column="53" lean-forward="true" selection-start-line="57" selection-start-column="53" selection-end-line="57" selection-end-column="53" />
<state relative-caret-position="194">
<caret line="211" column="6" lean-forward="false" selection-start-line="211" selection-start-column="6" selection-end-line="211" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/track/service/impl/TrackAccountServiceImpl.java">
<entry file="file://$PROJECT_DIR$/src/main/java/common/task/ContractTask.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1726">
<caret line="63" column="46" lean-forward="true" selection-start-line="63" selection-start-column="46" selection-end-line="63" selection-end-column="46" />
<state relative-caret-position="183">
<caret line="51" column="63" lean-forward="true" selection-start-line="51" selection-start-column="63" selection-end-line="51" selection-end-column="63" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/security/interceptor/AuthorizationInterceptor.java">
<entry file="file://$PROJECT_DIR$/src/main/java/userio/service/IOAccountService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="713">
<caret line="56" column="57" lean-forward="false" selection-start-line="56" selection-start-column="57" selection-end-line="56" selection-end-column="57" />
<state relative-caret-position="1081">
<caret line="50" column="9" lean-forward="false" selection-start-line="50" selection-start-column="9" selection-end-line="50" selection-end-column="9" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/service/ContractService.java">
<entry file="file://$PROJECT_DIR$/src/main/java/common/repository/ContractRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="183">
<caret line="25" column="13" lean-forward="false" selection-start-line="25" selection-start-column="13" selection-end-line="25" selection-end-column="13" />
<caret line="36" column="27" lean-forward="false" selection-start-line="36" selection-start-column="27" selection-end-line="36" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/service/impl/ContractServiceImpl.java">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/TkioAccountService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="5980">
<caret line="282" column="35" lean-forward="true" selection-start-line="282" selection-start-column="35" selection-end-line="282" selection-end-column="35" />
<state relative-caret-position="573">
<caret line="50" column="14" lean-forward="false" selection-start-line="50" selection-start-column="14" selection-end-line="50" selection-end-column="14" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/dic/ContractTypeEnum.java">
<entry file="file://$PROJECT_DIR$/src/main/java/userio/service/impl/IOAccountServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="184">
<caret line="8" column="26" lean-forward="true" selection-start-line="8" selection-start-column="26" selection-end-line="8" selection-end-column="26" />
<state relative-caret-position="620">
<caret line="137" column="67" lean-forward="true" selection-start-line="137" selection-start-column="67" selection-end-line="137" selection-end-column="67" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/model/Contract.java">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/impl/TkioAccountServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1150">
<caret line="101" column="35" lean-forward="true" selection-start-line="101" selection-start-column="35" selection-end-line="101" selection-end-column="35" />
<folding>
<element signature="e#2207#2208#0" expanded="true" />
<element signature="e#2242#2243#0" expanded="true" />
<element signature="e#4637#4638#0" expanded="true" />
<element signature="e#4664#4665#0" expanded="true" />
<element signature="e#4702#4703#0" expanded="true" />
<element signature="e#4734#4735#0" expanded="true" />
<element signature="e#4783#4784#0" expanded="true" />
<element signature="e#4815#4816#0" expanded="true" />
<element signature="e#4863#4864#0" expanded="true" />
<element signature="e#4905#4906#0" expanded="true" />
</folding>
<state relative-caret-position="7779">
<caret line="514" column="59" lean-forward="true" selection-start-line="514" selection-start-column="59" selection-end-line="514" selection-end-column="59" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/common/controller/ContractController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2507">
<caret line="144" column="5" lean-forward="true" selection-start-line="144" selection-start-column="5" selection-end-line="144" selection-end-column="5" />
<state relative-caret-position="161">
<caret line="187" column="40" lean-forward="true" selection-start-line="187" selection-start-column="40" selection-end-line="187" selection-end-column="40" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/model/Account.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="4334">
<caret line="424" column="16" lean-forward="false" selection-start-line="424" selection-start-column="16" selection-end-line="424" selection-end-column="16" />
<folding>
<element signature="e#8799#8800#0" expanded="false" />
<element signature="e#8830#8831#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/model/Auth.java">
<entry file="file://$PROJECT_DIR$/src/main/java/common/service/ContractService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="115">
<caret line="10" column="14" lean-forward="false" selection-start-line="10" selection-start-column="14" selection-end-line="10" selection-end-column="14" />
<state relative-caret-position="183">
<caret line="27" column="13" lean-forward="false" selection-start-line="27" selection-start-column="13" selection-end-line="27" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/userio/contraller/IoAccountController.java">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/model/IncrementFlow.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="421">
<caret line="115" column="52" lean-forward="true" selection-start-line="115" selection-start-column="52" selection-end-line="115" selection-end-column="52" />
<folding />
<state relative-caret-position="734">
<caret line="62" column="37" lean-forward="false" selection-start-line="62" selection-start-column="37" selection-end-line="62" selection-end-column="37" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#1199#1200#0" expanded="true" />
<element signature="e#1255#1256#0" expanded="true" />
<element signature="e#1303#1304#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/TkioAccountService.java">
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/repository/IncrementFlowRepository.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="194">
<caret line="38" column="31" lean-forward="false" selection-start-line="38" selection-start-column="31" selection-end-line="38" selection-end-column="31" />
<state relative-caret-position="253">
<caret line="17" column="25" lean-forward="false" selection-start-line="17" selection-start-column="18" selection-end-line="17" selection-end-column="25" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/tkio/service/impl/TkioAccountServiceImpl.java">
<entry file="file://$PROJECT_DIR$/src/main/java/common/service/impl/ContractServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="125">
<caret line="311" column="0" lean-forward="true" selection-start-line="311" selection-start-column="0" selection-end-line="311" selection-end-column="0" />
<state relative-caret-position="183">
<caret line="342" column="23" lean-forward="false" selection-start-line="342" selection-start-column="20" selection-end-line="342" selection-end-column="23" />
<folding />
</state>
</provider>
......
......@@ -53,14 +53,14 @@ public class ContractController {
@ResponseBody
public ResultModel findAll(@CurrentAccount User loginAccount, @PathVariable String platform,
@RequestParam String startDate, @RequestParam String endDate) {
return ResultModel.OK(service.findAll(startDate, endDate, platform));
return ResultModel.OK(service.findAll(loginAccount,startDate, endDate, platform));
}
@RequestMapping(value = "export", method = RequestMethod.GET,produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
@ResponseBody
public ResponseEntity<byte[]> export(@CurrentAccount User loginAccount, @PathVariable String platform, @RequestParam String startDate
, @RequestParam String endDate, HttpServletRequest request, HttpServletResponse response) {
List<Contract> contractList = service.findAll(startDate, endDate, platform);
List<Contract> contractList = service.findAll(loginAccount, startDate, endDate, platform);
Map<String, String> map = new HashMap<>();
map.put("wait", "未执行");
map.put("executing", "执行中");
......@@ -162,6 +162,12 @@ public class ContractController {
return ResultModel.OK(service.findSetmeal());
}
@RequestMapping(value = "find/increment", method = RequestMethod.GET)
@ResponseBody
public ResultModel findIncrement(@CurrentAccount User loginAccount) {
return ResultModel.OK(service.findIncrement());
}
@RequestMapping(value = "find/rebat", method = RequestMethod.GET)
@ResponseBody
public ResultModel rebat(@CurrentAccount User loginAccount, @RequestParam String product,
......@@ -245,5 +251,13 @@ public class ContractController {
return ResultModel.OK(service.findPayAll(startDate, endDate, platform));
}
@RequestMapping(value = "build", method = RequestMethod.POST)
@ResponseBody
public ResultModel build(@RequestBody Contract contract, HttpServletRequest request) {
// ContractSendEmailThread email = new ContractSendEmailThread(contract);
// email.start();
return ResultModel.OK(service.build(contract));
}
}
......@@ -30,6 +30,26 @@ public class Account4Web {
private Long bussinessMan;
private String contractStatus;
private Integer contractTime;
private String saleName;
private Boolean pressStatus;
private String saleEamil;
private Long sale;
public String getSaleEamil() {
return saleEamil;
}
public void setSaleEamil(String saleEamil) {
this.saleEamil = saleEamil;
}
public Long getSale() {
return sale;
}
public void setSale(Long sale) {
this.sale = sale;
}
@Id
@GeneratedValue
......@@ -216,4 +236,20 @@ public class Account4Web {
public void setContractTime(Integer contractTime) {
this.contractTime = contractTime;
}
public String getSaleName() {
return saleName;
}
public void setSaleName(String saleName) {
this.saleName = saleName;
}
public Boolean getPressStatus() {
return pressStatus;
}
public void setPressStatus(Boolean pressStatus) {
this.pressStatus = pressStatus;
}
}
......@@ -32,8 +32,10 @@ public class Contract {
private Long payMoney;
private Long invoice;
private String createName;
private Long type;
private String type;
private Long priceName;
private Boolean old;
private Long extraFlow;
private Long modifyAccount;
private Long createAccount;
......@@ -227,14 +229,30 @@ public class Contract {
this.invoice = invoice;
}
public Long getType() {
public String getType() {
return type;
}
public void setType(Long type) {
public void setType(String type) {
this.type = type;
}
public Boolean getOld() {
return old;
}
public Long getExtraFlow() {
return extraFlow;
}
public void setExtraFlow(Long extraFlow) {
this.extraFlow = extraFlow;
}
public void setOld(Boolean old) {
this.old = old;
}
@Transient
public Long getPriceName() {
return priceName;
......
package common.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
/**
* Created by mxq on 2018/1/17.
*/
@Entity
public class ContractIncrement {
private Long id;
private String packageName;
private String code;
private String type;
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getPackageName() {
return packageName;
}
public void setPackageName(String packageName) {
this.packageName = packageName;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
package common.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.math.BigInteger;
import java.util.Date;
@Entity
public class IOAccount4Web {
private Long id;
private Long accountId;
private String email;
private String company;
private Date createDate;
private String createDs;
private String status;
private String packageType;
private String pastDate;
private BigInteger track;
private BigInteger io;
private BigInteger trackLimit;
private BigInteger ioLimit;
private Integer backTime;
private String user;
private String tell;
private Long money;
private Boolean ioStatus;
private Boolean trackStatus;
private Boolean remStatus;
private Long bussinessMan;
private String contractStatus;
private Integer contractTime;
private String saleName;
private Boolean pressStatus;
private String saleEamil;
private Long sale;
public String getSaleEamil() {
return saleEamil;
}
public void setSaleEamil(String saleEamil) {
this.saleEamil = saleEamil;
}
public Long getSale() {
return sale;
}
public void setSale(Long sale) {
this.sale = sale;
}
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getAccountId() {
return accountId;
}
public void setAccountId(Long accountId) {
this.accountId = accountId;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getPackageType() {
return packageType;
}
public void setPackageType(String packageType) {
this.packageType = packageType;
}
public String getPastDate() {
return pastDate;
}
public void setPastDate(String pastDate) {
this.pastDate = pastDate;
}
public BigInteger getTrack() {
return track;
}
public void setTrack(BigInteger track) {
this.track = track;
}
public BigInteger getIo() {
return io;
}
public void setIo(BigInteger io) {
this.io = io;
}
public BigInteger getTrackLimit() {
return trackLimit;
}
public void setTrackLimit(BigInteger trackLimit) {
this.trackLimit = trackLimit;
}
public BigInteger getIoLimit() {
return ioLimit;
}
public void setIoLimit(BigInteger ioLimit) {
this.ioLimit = ioLimit;
}
public Integer getBackTime() {
return backTime;
}
public void setBackTime(Integer backTime) {
this.backTime = backTime;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getTell() {
return tell;
}
public void setTell(String tell) {
this.tell = tell;
}
public Long getMoney() {
return money;
}
public void setMoney(Long money) {
this.money = money;
}
public Boolean getIoStatus() {
return ioStatus;
}
public void setIoStatus(Boolean ioStatus) {
this.ioStatus = ioStatus;
}
public Boolean getTrackStatus() {
return trackStatus;
}
public void setTrackStatus(Boolean trackStatus) {
this.trackStatus = trackStatus;
}
public Boolean getRemStatus() {
return remStatus;
}
public void setRemStatus(Boolean remStatus) {
this.remStatus = remStatus;
}
public Long getBussinessMan() {
return bussinessMan;
}
public void setBussinessMan(Long bussinessMan) {
this.bussinessMan = bussinessMan;
}
public String getCreateDs() {
return createDs;
}
public void setCreateDs(String createDs) {
this.createDs = createDs;
}
public String getContractStatus() {
return contractStatus;
}
public void setContractStatus(String contractStatus) {
this.contractStatus = contractStatus;
}
public Integer getContractTime() {
return contractTime;
}
public void setContractTime(Integer contractTime) {
this.contractTime = contractTime;
}
public String getSaleName() {
return saleName;
}
public void setSaleName(String saleName) {
this.saleName = saleName;
}
public Boolean getPressStatus() {
return pressStatus;
}
public void setPressStatus(Boolean pressStatus) {
this.pressStatus = pressStatus;
}
}
package common.repository;
import common.model.ContractBody;
import common.model.ContractIncrement;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;
@Transactional
public interface ContractIncrementRepository extends JpaRepository<ContractIncrement, Long> {
@Query(value = "SELECT * from contract_increment where code = ?1", nativeQuery = true)
ContractIncrement findByCode(String code);
}
......@@ -18,17 +18,26 @@ public interface ContractRepository extends JpaRepository<Contract, Long> {
@Query(value="select count(*) from contract where email = ?1 and platform = ?2",nativeQuery=true)
BigInteger countNumByEmail(String email, String platfrom);
@Query(value="select * from contract where ds >= ?1 and ds <= ?2 and platform = ?3 order by ds desc",nativeQuery=true)
@Query(value="select * from contract where start_date >= ?1 and start_date <= ?2 and platform = ?3 order by ds desc",nativeQuery=true)
List<Contract> findByDs(String startDate, String endDate, String platfrom);
@Query(value="select * from contract where start_date >= ?1 and start_date <= ?2 and platform = ?3 and sale in ?4 order by ds desc",nativeQuery=true)
List<Contract> findByDsAndRoile(String startDate, String endDate, String platfrom, List<Long> userids);
@Query(value="select * from contract where contract_code = ?1",nativeQuery=true)
Contract findByCode(String contract_code);
@Query(value="SELECT * from contract where platform = ?1",nativeQuery=true)
List<Contract> findByPlatform(String platform);
@Query(value="SELECT * from contract where platform = ?1 and email = ?2",nativeQuery=true)
List<Contract> findByPlatformAndEmail(String platform, String email);
@Query(value="SELECT * from contract where platform = ?1 and email = ?2 and type = ?3",nativeQuery=true)
List<Contract> findByPlatformAndEmail(String platform, String email, String type);
@Query(value="SELECT * from contract where platform = ?1 and email = ?2 and type = ?3 order by ds desc limit 1",nativeQuery=true)
Contract findByPlatformAndEmailLimit1(String platform, String email,String type);
@Query(value="SELECT * from contract where platform = ?1 and email = ?2 and (status = 'wait' or status = 'executing') and type = 'main' order by ds desc limit 1",nativeQuery=true)
Contract findByPlatformAndEmailLimitVaild(String platform, String email);
@Query(value="SELECT * from contract where start_date = ?1 and status <> 'cancel'",nativeQuery=true)
List<Contract> findByStartDate(String startDate);
......
package common.repository;
import common.model.Account4Web;
import common.model.IOAccount4Web;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Transactional
public interface IOAccount4WebRepository extends JpaRepository<IOAccount4Web, Long> {
@Query(value = "SELECT * from account4web where email in ?1", nativeQuery = true)
List<IOAccount4Web> findByEmails(List<String> emails);
@Query(value = "SELECT * from account4web where past_date = ?1", nativeQuery = true)
List<IOAccount4Web> findByPast(String yesterday);
@Query(value = "SELECT * from account4web where status = '已过期' or status = '流量用尽'", nativeQuery = true)
List<IOAccount4Web> findPast();
@Query(value = "SELECT * from account4web where email = ?1", nativeQuery = true)
IOAccount4Web findByEmail(String email);
}
......@@ -14,4 +14,9 @@ public interface PressMoneyRepository extends JpaRepository<PressMoney, Long> {
@Query(value = "SELECT * from press_money where platform = ?1 and press_status is true", nativeQuery = true)
List<PressMoney> findAllPress(String platform);
@Query(value = "SELECT * from press_money where platform = ?1 and account_id = ?2 and press_status is true", nativeQuery = true)
PressMoney findOnePress(String platform, Long account);
@Query(value = "SELECT * from press_money where platform = ?1 and account_id = ?2", nativeQuery = true)
PressMoney findOne(String platform, Long account);
}
......@@ -36,6 +36,9 @@ public interface UserRepository extends JpaRepository<User, Long> {
@Query(value="SELECT * from `user` where role = ?1 ORDER BY role_type",nativeQuery=true)
List<User> findAllUserByRole(Long role);
@Query(value="SELECT * from `user` where role in ?1 ORDER BY role_type",nativeQuery=true)
List<User> findAllUserByRoles(List<Long> roles);
@Query(value="SELECT * from `user` where del_flag is not true and parent = ?1",nativeQuery=true)
List<User> findAllByParent(Long id);
......
......@@ -17,7 +17,9 @@ public interface ContractService {
String getContractCode(String code);
List<PackageType> findSetmeal();
List findSetmeal();
//增值服务
List<ContractIncrement> findIncrement();
Double getRebat(String product, Integer level, Long money);
......@@ -27,7 +29,7 @@ public interface ContractService {
Contract update(User loginUser, Contract resource);
List<Contract> findAll(String startDate, String endDate, String platfrom);
List<Contract> findAll(User loginAccount,String startDate, String endDate, String platfrom);
Contract findOne(String code);
......@@ -42,4 +44,6 @@ public interface ContractService {
Contract updatePay(User loginUser, ContractMoney resource);
List<ContractMoney> findPayAll(String startDate, String endDate, String platform);
}
Contract build(Contract contract);
}
\ No newline at end of file
......@@ -4,11 +4,23 @@ import com.google.api.ads.adwords.lib.AdWordsProductFrameworkModule;
import common.model.*;
import common.repository.*;
import common.service.ContractService;
import common.service.UserService;
import dic.ContractStatusEnum;
import dic.ContractTypeEnum;
import dic.RoleEnum;
import dic.RoleTypeEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tkio.model.Account;
import tkio.model.IncrementFlow;
import tkio.model.PackageType;
import tkio.repository.AccountRepository;
import tkio.repository.IncrementFlowRepository;
import tkio.repository.PackageTypeRepository;
import tkio.service.AccountService;
import tkio.service.TkioAccountService;
import userio.service.AccountIOService;
import userio.service.IOAccountService;
import util.DateUtil;
import util.ResultModel;
import util.ResultStatus;
......@@ -42,19 +54,48 @@ public class ContractServiceImpl implements ContractService{
ContractMoneyRepository contractMoneyRepository;
@Autowired
AccountService accountService;
@Autowired
AccountIOService accountIOService;
@Autowired
IOAccount4WebRepository ioAccount4WebRepository;
@Autowired
ContractIncrementRepository contractIncrementRepository;
@Autowired
TkioAccountService tkioAccountService;
@Autowired
IOAccountService ioAccountService;
@Autowired
AccountRepository accountRepository;
@Autowired
UserService userService;
@Autowired
IncrementFlowRepository incrementFlowRepository;
@Override
public Map<String, Object> checkAccount(String email, String platfrom) {
Map<String, Object> map = new HashMap<>();
Account4Web account4Web = account4WebRepository.findByEmail(email);
if(null == account4Web){
Account4Web account4Web = null;
IOAccount4Web ioAccount4Web = null;
if("tkio".equals(platfrom)){
account4Web = account4WebRepository.findByEmail(email);
}else if("io".equals(platfrom)){
ioAccount4Web = ioAccount4WebRepository.findByEmail(email);
}
if(null == account4Web && null == ioAccount4Web){
map.put("result", 0);
}else{
BigInteger integer = contractRepository.countNumByEmail(email,platfrom);
map.put("result", 1);
map.put("company", account4Web.getCompany());
map.put("company", null == account4Web ? ioAccount4Web.getCompany() : account4Web.getCompany());
map.put("num", integer.intValue());
Contract contract = contractRepository.findByPlatformAndEmailLimitVaild(platfrom, email);
if(null == contract){
map.put("status", false);
}else{
map.put("status", true);
}
}
return map;
}
......@@ -77,8 +118,22 @@ public class ContractServiceImpl implements ContractService{
}
@Override
public List<PackageType> findSetmeal() {
return packageTypeRepository.findAll();
public List findSetmeal() {
List list = new ArrayList();
List<PackageType> packageTypeList = packageTypeRepository.findAll();
for(PackageType p : packageTypeList){
p.setType("main");
list.add(p);
}
List<ContractIncrement> increments = contractIncrementRepository.findAll();
list.addAll(increments);
return list;
}
@Override
public List<ContractIncrement> findIncrement() {
return null;
}
@Override
......@@ -97,7 +152,21 @@ public class ContractServiceImpl implements ContractService{
public List<User> getSales() {
return userRepository.findSales();
}
@Override
public Contract build(Contract contract) {
User user = userRepository.findByEmail(contract.getSaleName());
if(null != user){
contract.setSale(user.getId());
}
Account account = accountRepository.findByEmail(contract.getEmail());
contract.setCustomerBody(account.getCompany());
contract.setType("increment");
contract.setPlatform("tkio");
ContractIncrement contractIncrement = contractIncrementRepository.findByCode(contract.getPriceLevelName());
contract.setPriceLevel(contractIncrement.getId());
Contract contract1 = create(null, contract);
return contract1;
}
@Override
public Contract create(User loginUser, Contract resource) {
String contractCode = getContractCode(resource.getMyBodyCode());
......@@ -108,26 +177,70 @@ public class ContractServiceImpl implements ContractService{
resource.setPayMoney(0L);
resource.setInvoice(0L);
if(DateUtil.getBeforeDays(0).compareTo(resource.getStartDate()) < 0){
resource.setDs(DateUtil.getBeforeDays(0));
resource.setStatus("wait");
Long extraFlow = resource.getExtraFlow();
if(!(extraFlow.longValue() == 0)){
if(resource.getPlatform().equals("tkio")){
IncrementFlow flow = new IncrementFlow();
Account account = accountRepository.findByEmail(resource.getEmail());
flow.setAccount(account.getId());
flow.setFlow(extraFlow);
flow.setEndDate(resource.getEndDate());
flow.setStartDate(resource.getStartDate());
flow.setContractCode(resource.getContractCode());
incrementFlowRepository.save(flow);
}
}
if(resource.getType().equals("main")) {
if (DateUtil.getBeforeDays(0).compareTo(resource.getStartDate()) < 0) {
resource.setDs(DateUtil.getBeforeDays(0));
resource.setStatus("wait");
} else {
resource.setDs(DateUtil.getBeforeDays(0));
resource.setStatus("executing");
}
}else{
resource.setDs(DateUtil.getBeforeDays(0));
resource.setStatus("executing");
resource.setStatus("wait");
}
Double rebat = getRebat(resource.getProduct(), resource.getPriceLevel().intValue(), resource.getMoney());
BigDecimal bg = new BigDecimal(rebat);
double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
resource.setRebate(f1);
resource.setCreateAccount(loginUser.getId());
if(null != loginUser) {
resource.setCreateAccount(loginUser.getId());
}
resource.setCreateTime(new Date());
//同步修改trackingio的数据
if(resource.getPlatform().equals("tkio")){
if(resource.getPlatform().equals("tkio") && resource.getType().equals("main")){
accountService.update(resource);
}
if(resource.getPlatform().equals("io") && resource.getType().equals("main")){
accountIOService.update(resource);
}
if(resource.getType().equals(ContractTypeEnum.MAIN.getKey())
|| (resource.getType().equals(ContractTypeEnum.INCREMENT.getKey()) && resource.getPriceLevel().equals(1L))){
List<Contract> contractList = contractRepository.findByPlatformAndEmail(resource.getPlatform(), resource.getEmail(),resource.getType());
if(ValidateUtil.isValid(contractList)){
List<Contract> list = new ArrayList<>();
for(Contract contract : contractList){
if(contract.getType().equals(ContractTypeEnum.MAIN.getKey())
|| (contract.getType().equals(ContractTypeEnum.INCREMENT.getKey()) && contract.getPriceLevel().equals(1L))){
if(contract.getStatus().equals(ContractStatusEnum.EXECUTING.getKey())
|| contract.getStatus().equals(ContractStatusEnum.WAIT.getKey())){
contract.setStatus(ContractStatusEnum.CANCEL.getKey());
}
list.add(contract);
}
}
contractRepository.save(contractList);
}
}
return contractRepository.save(resource);
}
......@@ -146,6 +259,7 @@ public class ContractServiceImpl implements ContractService{
cc.setCompany(contract.getCustomerBody());
cc.setContractCode(contract.getContractCode());
if(!resource.getStartDate().equals(contract.getStartDate())){
cc.setContent(cc.getContent() + "开始时间变更 : " + contract.getStartDate() + "-->" + resource.getStartDate());
contract.setStartDate(resource.getStartDate());
......@@ -161,10 +275,12 @@ public class ContractServiceImpl implements ContractService{
}
boolean newRebat = false;
if(!resource.getPriceLevel().equals(contract.getPriceLevel())){
cc.setContent(cc.getContent() + " 套餐变更:" + packageMap.get(contract.getPriceLevel()) + "-->" + packageMap.get(resource.getPriceLevel()));
newRebat = true;
contract.setPriceLevel(resource.getPriceLevel());
if(contract.getType().equals(ContractTypeEnum.MAIN.getKey())){
if(!resource.getPriceLevel().equals(contract.getPriceLevel())){
cc.setContent(cc.getContent() + " 套餐变更:" + packageMap.get(contract.getPriceLevel()) + "-->" + packageMap.get(resource.getPriceLevel()));
newRebat = true;
contract.setPriceLevel(resource.getPriceLevel());
}
}
if(!resource.getMoney().equals(contract.getMoney())){
......@@ -188,14 +304,41 @@ public class ContractServiceImpl implements ContractService{
contractChangeRepository.save(cc);
//同步修改trackingio的数据
if(contract.getPlatform().equals("tkio")){
if(contract.getPlatform().equals("tkio") && resource.getType().equals("main")){
accountService.update(contract);
}
if(resource.getPlatform().equals("io") && resource.getType().equals("main")){
accountIOService.update(resource);
}
if(resource.getPlatform().equals("tkio")){
IncrementFlow flow = incrementFlowRepository.findOne(resource.getContractCode());
if(null != flow){
flow.setEndDate(resource.getEndDate());
flow.setStartDate(resource.getStartDate());
if(contract.getExtraFlow() != resource.getExtraFlow() ){
flow.setFlow(resource.getExtraFlow());
incrementFlowRepository.save(flow);
}
} else if(resource.getExtraFlow().longValue() > 0){
IncrementFlow flow1 = new IncrementFlow();
Account account = accountRepository.findByEmail(resource.getEmail());
flow1.setAccount(account.getId());
flow1.setFlow(resource.getExtraFlow());
flow1.setEndDate(resource.getEndDate());
flow1.setStartDate(resource.getStartDate());
flow1.setContractCode(resource.getContractCode());
incrementFlowRepository.save(flow1);
}
}
contract.setExtraFlow(resource.getExtraFlow());
return contractRepository.save(contract);
}
@Override
public List<Contract> findAll(String startDate, String endDate, String platfrom) {
public List<Contract> findAll(User loginAccount, String startDate, String endDate, String platfrom) {
List<Contract> result = new ArrayList<>();
List<User> sales = userRepository.findAll();
Map<Long, String> saleMap = new HashMap<>();
......@@ -211,11 +354,36 @@ public class ContractServiceImpl implements ContractService{
typeMap.put(s.getId(), s.getPackageName());
}
}
List<Contract> contractList = contractRepository.findByDs(startDate, endDate, platfrom);
List<ContractIncrement> incrementList = contractIncrementRepository.findAll();
Map<Long, String> incremenMap = new HashMap<>();
if(ValidateUtil.isValid(incrementList)){
for(ContractIncrement s: incrementList){
incremenMap.put(s.getId(), s.getPackageName());
}
}
List<Contract> contractList = null;
if(loginAccount.getRole().equals(RoleEnum.SOUTH_BUSSINUSS.getKey()) || loginAccount.getRole().equals(RoleEnum.NORTH_BUSSINUSS.getKey())){
List<User> userList = userService.findAllSons(loginAccount.getId());
List<Long> idList = new ArrayList<>();
for(User u : userList){
idList.add(u.getId());
}
contractList = contractRepository.findByDsAndRoile(startDate, endDate, platfrom, idList);
}else{
contractList = contractRepository.findByDs(startDate, endDate, platfrom);
}
if(ValidateUtil.isValid(contractList)){
for(Contract c : contractList){
c.setSaleName(saleMap.containsKey(c.getSale()) ? saleMap.get(c.getSale()) : "");
c.setPriceLevelName(typeMap.containsKey(c.getPriceLevel()) ? typeMap.get(c.getPriceLevel()) : "");
if(c.getType().equals(ContractTypeEnum.MAIN.getKey())){
c.setPriceLevelName(typeMap.containsKey(c.getPriceLevel()) ? typeMap.get(c.getPriceLevel()) : "");
} else{
c.setPriceLevelName(incremenMap.containsKey(c.getPriceLevel()) ? incremenMap.get(c.getPriceLevel()) : "");
}
c.setCreateName(saleMap.containsKey(c.getCreateAccount()) ? saleMap.get(c.getCreateAccount()) : "");
result.add(c);
}
......@@ -259,6 +427,13 @@ public class ContractServiceImpl implements ContractService{
}
contractRepository.save(contract);
if(resource.getType().equals("pay") && resource.getPlatform().equals("tkio")){
tkioAccountService.contractPay(loginUser, resource);
}else if(resource.getType().equals("pay") && resource.getPlatform().equals("io")){
ioAccountService.contractPay(loginUser, resource);
}
resource.setPlatform(contract.getPlatform());
resource.setCreateAccount(loginUser.getId());
resource.setCreateTime(new Date());
......@@ -405,6 +580,8 @@ public class ContractServiceImpl implements ContractService{
return result;
}
public Map<Long, String> getPackageMap(){
List<PackageType> typeList = packageTypeRepository.findAll();
Map<Long, String> typeMap = new HashMap<>();
......
......@@ -15,6 +15,7 @@ import office.service.BussinussManService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tkio.service.SalesManService;
import userio.service.IOSalesManService;
import util.CharacterUtils;
import util.CipherUtil;
import util.MailUtils;
......@@ -39,6 +40,8 @@ public class UserServiceImpl implements UserService {
BussinussManService bussinussManService;
@Autowired
private SalesManService salesManService;
@Autowired
private IOSalesManService ioSalesManService;
@Override
public Boolean validEmail(String email) {
......@@ -65,9 +68,11 @@ public class UserServiceImpl implements UserService {
if(resource.getRole().equals(RoleEnum.SOUTH_BUSSINUSS.getKey())){
bussinussManService.create(login.getEmail(), save.getEmail(), save.getName(),"华北");
salesManService.create(login.getEmail(), save.getEmail(), save.getName());
ioSalesManService.create(login.getEmail(), save.getEmail(), save.getName());
} else if(resource.getRole().equals(RoleEnum.NORTH_BUSSINUSS.getKey())){
bussinussManService.create(login.getEmail(), save.getEmail(), save.getName(),"华南");
salesManService.create(login.getEmail(), save.getEmail(), save.getName());
ioSalesManService.create(login.getEmail(), save.getEmail(), save.getName());
}
......
package dic;
/**
* Created by mxq on 18/4/12.
* desc:合同状态
*/
public enum ContractStatusEnum {
WAIT("wait","未执行"),
EXECUTING("executing", "执行中"),
CANCEL("cancel", "作废"),
END("end", "已结束");
private String key;
private String value;
ContractStatusEnum(String key, String value) {
this.key = key;
this.value = value;
}
public String getKey() {
return key;
}
public String getValue() {
return value;
}
}
......@@ -10,6 +10,7 @@ public enum RoleEnum {
NORTH_BUSSINUSS(2L,"北区商务"),
SOUTH_BUSSINUSS(3L,"南区商务");
private Long key;
private String value;
......
......@@ -50,7 +50,8 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter {
if (request.getRequestURL().indexOf("login/login") != -1
|| request.getRequestURL().indexOf("update/pwd") != -1
|| request.getRequestURL().indexOf("user/forget") != -1
|| request.getRequestURL().indexOf("user/code") != -1){
|| request.getRequestURL().indexOf("user/code") != -1
|| request.getRequestURL().indexOf("contract/build") != -1){
return true;
}
//从header中得到token
......
......@@ -70,7 +70,8 @@ public class TkioAccountController {
public ResultModel forbidenPress(@CurrentAccount User loginAccount, @RequestBody PressMoney resource, HttpServletRequest request) {
UserLogThread userlog = new UserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.CUSTOMER.getKey(), resource.getEmail(), "关闭异常状态跟进", request,loginAccount.getRole());
userlog.start();
return ResultModel.OK(tkioAccountService.forbidenPress(loginAccount, resource));
tkioAccountService.forbidenPress(loginAccount, resource);
return ResultModel.OK();
}
//开启缴费提醒
......
package tkio.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Transient;
import java.util.Date;
import java.util.HashMap;
@Entity
public class Crowd {
private Long id;
private Boolean hobbyLabel;
private Boolean payLabel;
private Boolean weights;
private String dataRange;
private String iosAppkey;
private String androidAppKey;
private Long rootAccount;
private Integer status;
private Date createTime;
private String iosAppName;
private String androidAppName;
private Integer payment;
private Long applyAccount;
private HashMap<String, Object> map;
private Long deviceid_cnt;
private Double price;
private Double total;
private String contractCode;
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Boolean getHobbyLabel() {
return hobbyLabel;
}
public void setHobbyLabel(Boolean hobbyLabel) {
this.hobbyLabel = hobbyLabel;
}
public Boolean getPayLabel() {
return payLabel;
}
public void setPayLabel(Boolean payLabel) {
this.payLabel = payLabel;
}
public Boolean getWeights() {
return weights;
}
public void setWeights(Boolean weights) {
this.weights = weights;
}
public String getDataRange() {
return dataRange;
}
public void setDataRange(String dataRange) {
this.dataRange = dataRange;
}
public String getIosAppkey() {
return iosAppkey;
}
public void setIosAppkey(String iosAppkey) {
this.iosAppkey = iosAppkey;
}
public String getAndroidAppKey() {
return androidAppKey;
}
public void setAndroidAppKey(String androidAppKey) {
this.androidAppKey = androidAppKey;
}
public Long getRootAccount() {
return rootAccount;
}
public void setRootAccount(Long rootAccount) {
this.rootAccount = rootAccount;
}
public Long getApplyAccount() {
return applyAccount;
}
public void setApplyAccount(Long applyAccount) {
this.applyAccount = applyAccount;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getIosAppName() {
return iosAppName;
}
public void setIosAppName(String iosAppName) {
this.iosAppName = iosAppName;
}
public String getAndroidAppName() {
return androidAppName;
}
public void setAndroidAppName(String androidAppName) {
this.androidAppName = androidAppName;
}
public Integer getPayment() {
return payment;
}
public void setPayment(Integer payment) {
this.payment = payment;
}
@Transient
public HashMap<String, Object> getMap() {
return map;
}
public void setMap(HashMap<String, Object> map) {
this.map = map;
}
@Transient
public Long getDeviceid_cnt() {
return deviceid_cnt;
}
public void setDeviceid_cnt(Long deviceid_cnt) {
this.deviceid_cnt = deviceid_cnt;
}
@Transient
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
@Transient
public Double getTotal() {
return total;
}
public void setTotal(Double total) {
this.total = total;
}
public String getContractCode() {
return contractCode;
}
public void setContractCode(String contractCode) {
this.contractCode = contractCode;
}
}
package tkio.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Transient;
import java.util.Date;
import java.util.List;
@Entity
public class IncrementFlow {
private Long id;
private Long account;
private String contractCode;
private Long flow;
private String startDate;
private String endDate;
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getAccount() {
return account;
}
public void setAccount(Long account) {
this.account = account;
}
public Long getFlow() {
return flow;
}
public void setFlow(Long flow) {
this.flow = flow;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
public String getContractCode() {
return contractCode;
}
public void setContractCode(String contractCode) {
this.contractCode = contractCode;
}
}
......@@ -3,6 +3,7 @@ package tkio.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Transient;
import java.math.BigDecimal;
import java.math.BigInteger;
......@@ -77,6 +78,18 @@ public class PackageType {
private Boolean platformServiceSupport; //7*24小时客户服务
private Boolean platformCustomDataAnalysis; //专属数据分析师
private String type;
@Transient
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@Id
@GeneratedValue
public Long getId() {
......
......@@ -22,6 +22,9 @@ public interface AccountRepository extends JpaRepository<Account, Long> {
@Query(value = "SELECT * from account where is_super_user is true and `status` = 1 and past_date < ?1", nativeQuery = true)
List<Account> findRootParentsPast(String today);
@Query(value = "SELECT * from account where is_super_user is true and `status` = 0", nativeQuery = true)
List<Account> findRootParentsForbiden();
@Query(value = "SELECT * from account where is_super_user is true and bussinessman in ?1", nativeQuery = true)
List<Account> findBussnissMan(List<Integer> bussinussIds);
......
package tkio.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import tkio.model.App;
import tkio.model.Crowd;
import java.math.BigInteger;
import java.util.List;
public interface CrowdRepository extends JpaRepository<Crowd, Long> {
@Query(value = "select * from crowd where contract_code = ?1", nativeQuery = true)
Crowd findOne(String code);
}
package tkio.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import tkio.model.App;
import tkio.model.IncrementFlow;
import java.math.BigInteger;
import java.util.List;
public interface IncrementFlowRepository extends JpaRepository<IncrementFlow, Long> {
@Query(value = "select count(flow) from increment_flow where account = ?1 and end_date > ?2", nativeQuery = true)
BigInteger listByRootAccount(Long account, String ds);
@Query(value = "select * from increment_flow where contract_code = ?1", nativeQuery = true)
IncrementFlow findOne(String code);
@Query(value = "select appkey from app where account in ?1", nativeQuery = true)
List<String> findAppkeys(List<Long> accountId);
}
......@@ -21,7 +21,7 @@ public interface TkioAccountService {
Reminder enable(User user, Reminder resource);
//催款提醒关闭
PressMoney forbidenPress(User user, PressMoney resource);
void forbidenPress(User user, PressMoney resource);
//催款提醒开启
PressMoney enablePress(User user, PressMoney resource);
......@@ -47,4 +47,6 @@ public interface TkioAccountService {
List<Contract> findContract(String email);
List<ContractChange> findContractChange(String email, String startDate, String endDate);
void contractPay(User loginUser, ContractMoney resource);
}
......@@ -38,6 +38,9 @@ public class AccountFlowRestrictServiceImpl implements AccountFlowRestrictServic
@Autowired
private SalesManLeaderRepository salesManLeaderRepository;
@Autowired
private IncrementFlowRepository incrementFlowRepository;
@Override
public AccountRestrict4Web findRestrictByAccount(Long accountId) {
......@@ -127,11 +130,18 @@ public class AccountFlowRestrictServiceImpl implements AccountFlowRestrictServic
}
double ioRemainPercent = thisMonthRemainingFlow.doubleValue() / thisMonthAvailableTotalFlow.doubleValue();
//String ioRemainPercent1 = decimalFormat.format(ioRemainPercent);
BigInteger num = incrementFlowRepository.listByRootAccount(accountId, DateUtil.getBeforeDays(0));
if(null == num){
num = new BigInteger("0");
}
num.add(packageType.getTrackFlow());
accountRestrict4Web.setPastDate(pastDate);
accountRestrict4Web.setPackageName(packageType.getPackageName());
accountRestrict4Web.setOriginalName(packageType.getOriginalName());
accountRestrict4Web.setIOLimit(packageType.getIoFlow());
accountRestrict4Web.setTrackLimit(packageType.getTrackFlow());
accountRestrict4Web.setTrackLimit(num);
accountRestrict4Web.setThisMonthIOFlow(thisMonthEventNum);
accountRestrict4Web.setTrackTotalFlow(clickNum);
accountRestrict4Web.setAccountId(rootParent);
......
......@@ -4,6 +4,7 @@ import com.amazonaws.services.dynamodbv2.xspec.B;
import common.model.*;
import common.repository.*;
import common.service.UserService;
import dic.ContractTypeEnum;
import dic.RoleEnum;
import dic.RoleTypeEnum;
import org.apache.commons.collections.map.AbstractMapDecorator;
......@@ -15,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import tkio.model.Account;
import tkio.model.Crowd;
import tkio.model.PackageType;
import tkio.model.SalesManLeader;
import tkio.repository.*;
......@@ -74,6 +76,8 @@ public class TkioAccountServiceImpl implements TkioAccountService {
ReminderLevelRepository reminderLevelRepository;
@Autowired
PressMoneyRepository pressMoneyRepository;
@Autowired
CrowdRepository crowdRepository;
@Override
public List<Account4Web> findAll(User user) {
......@@ -124,6 +128,16 @@ public class TkioAccountServiceImpl implements TkioAccountService {
}
}
List<SalesManLeader> roles = salesManLeaderRepository.findAll();
Map<Long, String> busMap = new HashMap<>();
for(SalesManLeader u : roles){
busMap.put((long)u.getId(),u.getName());
}
List<User> users = userRepository.findAll();
Map<String, Long> saleMap = new HashMap<>();
for(User u : users){
saleMap.put(u.getEmail(),u.getId());
}
List<Reminder> reminderList = reminderRepository.findAllDistinct("tkio");
Map<Long, Boolean> reMap = new HashMap<>();
......@@ -133,6 +147,13 @@ public class TkioAccountServiceImpl implements TkioAccountService {
}
}
List<PressMoney> allPress = pressMoneyRepository.findAllPress("tkio");
Map<Long, Boolean> pressMap = new HashMap<>();
if(ValidateUtil.isValid(allPress)){
for(PressMoney re : allPress){
pressMap.put(re.getAccountId(), re.getPressStatus());
}
}
if(ValidateUtil.isValid(account4WebList)){
Map<String, Integer> backTimeMap = getBackTime();
......@@ -146,7 +167,7 @@ public class TkioAccountServiceImpl implements TkioAccountService {
if(payMap.containsKey(aw.getEmail())){
List<Contract> contractList = payMap.get(aw.getEmail());
aw.setMoney(contractList.get(contractList.size() - 1 ).getPayMoney());
aw.setContractStatus(contractList.get(contractList.size() - 1 ).getStatus());
aw.setContractStatus(contractRepository.findByPlatformAndEmailLimit1("tkio", aw.getEmail(), ContractTypeEnum.MAIN.getKey()).getStatus());
aw.setContractTime(contractList.size());
} else{
aw.setContractTime(0);
......@@ -158,6 +179,22 @@ public class TkioAccountServiceImpl implements TkioAccountService {
} else{
aw.setRemStatus(true);
}
if(pressMap.containsKey(aw.getAccountId())){
aw.setPressStatus(true);
aw.setContractStatus("stop");
} else{
aw.setRemStatus(false);
}
if(busMap.containsKey(aw.getBussinessMan())){
aw.setSaleName(busMap.get(aw.getBussinessMan()));
}else{
aw.setSaleName("");
}
if(saleMap.containsKey(aw.getSaleEamil())){
aw.setSale(saleMap.get(aw.getSaleEamil()));
}
result.add(aw);
}
}
......@@ -182,7 +219,7 @@ public class TkioAccountServiceImpl implements TkioAccountService {
} else{
aw.setBackTime(0);
}
List<Contract> contractList = contractRepository.findByPlatformAndEmail("tkio", email);
List<Contract> contractList = contractRepository.findByPlatformAndEmail("tkio", email,ContractTypeEnum.MAIN.getKey());
if(ValidateUtil.isValid(contractList)){
aw.setMoney(contractList.get(contractList.size() - 1 ).getPayMoney());
aw.setContractStatus(contractList.get(contractList.size() - 1 ).getStatus());
......@@ -226,23 +263,58 @@ public class TkioAccountServiceImpl implements TkioAccountService {
}
@Override
public PressMoney forbidenPress(User user, PressMoney resource) {
resource.setUser(user.getId());
resource.setModifyTime(new Date());
resource.setPlatform("tkio");
resource.setPressStatus(false);
resource.setDs(DateUtil.getBeforeDays(0));
return pressMoneyRepository.save(resource);
public void forbidenPress(User user, PressMoney resource) {
PressMoney pressMoney = pressMoneyRepository.findOne("tkio", resource.getAccountId());
pressMoney.setUser(user.getId());
pressMoney.setModifyTime(new Date());
pressMoney.setPressStatus(false);
pressMoney.setDs(DateUtil.getBeforeDays(0));
Contract contract = contractRepository.findByPlatformAndEmailLimit1("tkio", resource.getEmail(), ContractTypeEnum.MAIN.getKey());
if(null != contract){
contract.setStatus("executing");
contractRepository.save(contract);
}
Account account = accountRepository.findByEmail(resource.getEmail());
account.setStatus(1);
accountRepository.save(account);
pressMoneyRepository.save(pressMoney);
return ;
}
@Override
public PressMoney enablePress(User user, PressMoney resource) {
resource.setUser(user.getId());
resource.setModifyTime(new Date());
resource.setPlatform("tkio");
resource.setPressStatus(true);
resource.setDs(DateUtil.getBeforeDays(0));
return pressMoneyRepository.save(resource);
PressMoney pressMoney = pressMoneyRepository.findOne("tkio", resource.getAccountId());
if(null == pressMoney){
resource.setUser(user.getId());
resource.setModifyTime(new Date());
resource.setPlatform("tkio");
resource.setPressStatus(true);
resource.setDs(DateUtil.getBeforeDays(0));
pressMoneyRepository.save(resource);
}else{
pressMoney.setUser(user.getId());
pressMoney.setModifyTime(new Date());
pressMoney.setPressStatus(true);
pressMoney.setDs(DateUtil.getBeforeDays(0));
pressMoneyRepository.save(pressMoney);
}
Contract contract = contractRepository.findByPlatformAndEmailLimit1("tkio", resource.getEmail(), ContractTypeEnum.MAIN.getKey());
if(null != contract){
contract.setStatus("stop");
contractRepository.save(contract);
}
Account account = accountRepository.findByEmail(resource.getEmail());
account.setStatus(0);
accountRepository.save(account);
return null;
}
@Override
......@@ -260,6 +332,8 @@ public class TkioAccountServiceImpl implements TkioAccountService {
re.setDs(DateUtil.getBeforeDays(0));
reminderRepository.save(re);
return paymentRepository.save(resource);
}
......@@ -415,7 +489,7 @@ public class TkioAccountServiceImpl implements TkioAccountService {
typeMap.put(s.getId(), s.getPackageName());
}
}
List<Contract> contractList = contractRepository.findByPlatformAndEmail("tkio", email);
List<Contract> contractList = contractRepository.findByPlatformAndEmail("tkio", email,ContractTypeEnum.MAIN.getKey());
if(ValidateUtil.isValid(contractList)){
for(Contract cm : contractList){
cm.setSaleName(userMap.containsKey(cm.getSale()) ? userMap.get(cm.getSale()) : "");
......@@ -454,6 +528,34 @@ public class TkioAccountServiceImpl implements TkioAccountService {
return result;
}
@Override
public void contractPay(User loginUser, ContractMoney resource) {
Contract contract = contractRepository.findByCode(resource.getContractCode());
//增值服务
if(contract.getType().equals(ContractTypeEnum.INCREMENT.getKey())){
if(contract.getPriceLevel().longValue() == 1l){
Crowd crowd = crowdRepository.findOne(resource.getContractCode());
if(null != crowd){
crowd.setPayment(1);
crowdRepository.save(crowd);
}
}
}else{//基础套餐
Account account = accountRepository.findByEmail(resource.getEmail());
PressMoney press = pressMoneyRepository.findOnePress("tkio",account.getId());
//如果被催款了,恢复状态
if(press != null){
account.setStatus(1);
accountRepository.save(account);
contract.setStatus("executing");
contractRepository.save(contract);
}
}
}
public Map<String, Integer> getBackTime(){
Map<String, Integer> map = new HashMap<>();
......
......@@ -46,7 +46,11 @@ public class AccountTask {
public void task(){
logger.info("tkio task start :" + System.currentTimeMillis());
List<SalesManLeader> SalesManLeader = salesManLeaderRepository.findAll();
Map<Long, String> saleMap = new HashMap<>();
for(SalesManLeader pt : SalesManLeader){
saleMap.put((long)pt.getId(), pt.getEmail());
}
List<PackageType> packageTypeList = packageTypeRepository.findAll();
Map<Long, String> map = new HashMap<>();
for(PackageType pt : packageTypeList){
......@@ -69,7 +73,9 @@ public class AccountTask {
account4Web.setUser(ac.getName());
account4Web.setTell(ac.getPhone());
account4Web.setBussinessMan(ac.getBussinessman());
if(saleMap.containsKey(ac.getBussinessman())){
account4Web.setSaleEamil(saleMap.get(ac.getBussinessman()));
}
try{
AccountRestrict4Web restrict4Web = accountFlowRestrictService.findRestrictByAccount(ac.getId());
account4Web.setStatus(null == restrict4Web.getIOFlowNotified() ? "已激活" : (restrict4Web.getIOFlowNotified() ? "已激活" : "流量用尽"));
......@@ -138,6 +144,33 @@ public class AccountTask {
account4Web.setUser(ac.getName());
account4Web.setTell(ac.getPhone());
account4Web.setBussinessMan(ac.getBussinessman());
if(saleMap.containsKey(ac.getBussinessman())){
account4Web.setSaleEamil(saleMap.get(ac.getBussinessman()));
}
list.add(account4Web);
}
}
//禁用账号
List<Account> accountList = accountRepository.findRootParentsForbiden();
if(ValidateUtil.isValid(accountList)){
for(Account ac : accountList){
Account4Web account4Web = new Account4Web();
account4Web.setAccountId(ac.getId());
account4Web.setEmail(ac.getEmail());
account4Web.setCompany(ac.getCompany());
account4Web.setCreateDate(ac.getPubDate());
account4Web.setStatus("已禁用");
account4Web.setPackageType(map.get(ac.getPricelevel()));
account4Web.setPastDate(ac.getPastDate());
account4Web.setIoStatus(false);
account4Web.setTrackStatus(false);
account4Web.setUser(ac.getName());
account4Web.setTell(ac.getPhone());
account4Web.setBussinessMan(ac.getBussinessman());
if(saleMap.containsKey(ac.getBussinessman())){
account4Web.setSaleEamil(saleMap.get(ac.getBussinessman()));
}
list.add(account4Web);
}
}
......
......@@ -2,6 +2,7 @@ package track.service.impl;
import common.model.*;
import common.repository.*;
import dic.ContractTypeEnum;
import dic.RoleEnum;
import dic.RoleTypeEnum;
import org.apache.commons.collections4.list.TreeList;
......@@ -126,7 +127,7 @@ public class TrackAccountServiceImpl implements TrackAccountService{
} else{
aw.setBackTime(0);
}
List<Contract> contractList = contractRepository.findByPlatformAndEmail("track", email);
List<Contract> contractList = contractRepository.findByPlatformAndEmail("track", email, ContractTypeEnum.MAIN.getKey());
if(ValidateUtil.isValid(contractList)){
aw.setMoney(contractList.get(contractList.size() - 1 ).getPayMoney());
aw.setContractStatus(contractList.get(contractList.size() - 1 ).getStatus());
......@@ -306,7 +307,7 @@ public class TrackAccountServiceImpl implements TrackAccountService{
typeMap.put(s.getId(), s.getPackageName());
}
}
List<Contract> contractList = contractRepository.findByPlatformAndEmail("track", email);
List<Contract> contractList = contractRepository.findByPlatformAndEmail("track", email,ContractTypeEnum.MAIN.getKey());
if(ValidateUtil.isValid(contractList)){
for(Contract cm : contractList){
cm.setSaleName(userMap.containsKey(cm.getSale()) ? userMap.get(cm.getSale()) : "");
......
package userio.controller;
import common.model.*;
import dic.OperateObjectTypeEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import security.annotation.CurrentAccount;
import userio.service.IOAccountService;
import util.ResultModel;
import util.ResultStatus;
import util.UserLogThread;
import javax.servlet.http.HttpServletRequest;
/**
* Created by mxq on 2017/12/21.
*/
@Controller
@RequestMapping("io/marketing/accountmng")
public class IoAccountController {
@Autowired
IOAccountService tkioAccountService;
//客户列表
@RequestMapping(value = "/findAll", method = RequestMethod.GET)
@ResponseBody
public ResultModel find(@CurrentAccount User loginAccount) {
return ResultModel.OK(tkioAccountService.findAll(loginAccount));
}
@RequestMapping(value = "/findone", method = RequestMethod.GET)
@ResponseBody
public ResultModel findOne(@CurrentAccount User loginAccount, @RequestParam String email) {
IOAccount4Web account4Web = tkioAccountService.findOne(email);
if(null == account4Web){
return ResultModel.ERROR(ResultStatus.USER_EMPTY);
}
return ResultModel.OK(account4Web);
}
@RequestMapping(value = "/find/reminderlevel", method = RequestMethod.GET)
@ResponseBody
public ResultModel findReminderlevel() {
return ResultModel.OK(tkioAccountService.findReminderlevel());
}
//关闭到期提醒
@RequestMapping(value = "/forbiden", method = RequestMethod.PUT)
@ResponseBody
public ResultModel forbiden(@CurrentAccount User loginAccount, @RequestBody Reminder resource, HttpServletRequest request) {
UserLogThread userlog = new UserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.CUSTOMER.getKey(), resource.getEmail(), "关闭异常状态跟进", request,loginAccount.getRole());
userlog.start();
return ResultModel.OK(tkioAccountService.forbiden(loginAccount, resource));
}
//开启到期提醒
@RequestMapping(value = "/enable", method = RequestMethod.PUT)
@ResponseBody
public ResultModel enable(@CurrentAccount User loginAccount, @RequestBody Reminder resource, HttpServletRequest request) {
UserLogThread userlog = new UserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.CUSTOMER.getKey(), resource.getEmail(), "开启异常状态跟进", request,loginAccount.getRole());
userlog.start();
return ResultModel.OK(tkioAccountService.enable(loginAccount, resource));
}
//关闭缴费提醒
@RequestMapping(value = "/forbidenpress", method = RequestMethod.PUT)
@ResponseBody
public ResultModel forbidenPress(@CurrentAccount User loginAccount, @RequestBody PressMoney resource, HttpServletRequest request) {
UserLogThread userlog = new UserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.CUSTOMER.getKey(), resource.getEmail(), "关闭异常状态跟进", request,loginAccount.getRole());
userlog.start();
return ResultModel.OK(tkioAccountService.forbidenPress(loginAccount, resource));
}
//开启缴费提醒
@RequestMapping(value = "/enablepress", method = RequestMethod.PUT)
@ResponseBody
public ResultModel enablePress(@CurrentAccount User loginAccount, @RequestBody PressMoney resource, HttpServletRequest request) {
UserLogThread userlog = new UserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.CUSTOMER.getKey(), resource.getEmail(), "开启异常状态跟进", request,loginAccount.getRole());
userlog.start();
return ResultModel.OK(tkioAccountService.enablePress(loginAccount, resource));
}
//缴费
@RequestMapping(value = "/pay", method = RequestMethod.PUT)
@ResponseBody
public ResultModel pay(@CurrentAccount User loginAccount, @RequestBody Payment resource, HttpServletRequest request) {
UserLogThread userlog = new UserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.CUSTOMER.getKey(), resource.getEmail(), "缴费", request,loginAccount.getRole());
userlog.start();
return ResultModel.OK(tkioAccountService.pay(loginAccount, resource));
}
//回访
@RequestMapping(value = "/visit", method = RequestMethod.PUT)
@ResponseBody
public ResultModel visit(@CurrentAccount User loginAccount, @RequestBody BackVisit resource, HttpServletRequest request) {
UserLogThread userlog = new UserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.CUSTOMER.getKey(), resource.getEmail(), "回访", request,loginAccount.getRole());
userlog.start();
return ResultModel.OK( tkioAccountService.visit(loginAccount, resource));
}
//功能使用查询
@RequestMapping(value = "/find/function/{accountId}", method = RequestMethod.GET)
@ResponseBody
public ResultModel updateName(@CurrentAccount User loginAccount, @RequestParam String startDate,
@RequestParam String endDate, @PathVariable Long accountId) {
return ResultModel.OK(tkioAccountService.findFunTimes(accountId,startDate,endDate));
}
//功能使用查询
@RequestMapping(value = "/find/pv/{accountId}", method = RequestMethod.GET)
@ResponseBody
public ResultModel pv(@CurrentAccount User loginAccount, @RequestParam String startDate,
@RequestParam String endDate, @PathVariable Long accountId) {
return ResultModel.OK(tkioAccountService.findPv(accountId,startDate,endDate));
}
//到期提醒查询
@RequestMapping(value = "/find/reminder/{accountId}", method = RequestMethod.GET)
@ResponseBody
public ResultModel findRed(@CurrentAccount User loginAccount, @RequestParam String startDate,
@RequestParam String endDate, @PathVariable Long accountId) {
return ResultModel.OK(tkioAccountService.findRed(accountId,startDate,endDate));
}
//回访查询
@RequestMapping(value = "/find/visit/{accountId}", method = RequestMethod.GET)
@ResponseBody
public ResultModel findVisit(@CurrentAccount User loginAccount, @RequestParam String startDate,
@RequestParam String endDate, @PathVariable Long accountId) {
return ResultModel.OK(tkioAccountService.findVisit(accountId,startDate,endDate));
}
//缴费查询
@RequestMapping(value = "/find/pay/{accountId}", method = RequestMethod.GET)
@ResponseBody
public ResultModel findPay(@CurrentAccount User loginAccount, @RequestParam String startDate,
@RequestParam String endDate, @RequestParam String email, @PathVariable Long accountId) {
return ResultModel.OK(tkioAccountService.findPay(email,startDate,endDate));
}
//套餐变更查询
@RequestMapping(value = "/find/contract/{accountId}", method = RequestMethod.GET)
@ResponseBody
public ResultModel findChange(@CurrentAccount User loginAccount, @RequestParam String email, @PathVariable Long accountId) {
return ResultModel.OK(tkioAccountService.findContract(email));
}
//合同查询
@RequestMapping(value = "/find/change/{accountId}", method = RequestMethod.GET)
@ResponseBody
public ResultModel findContract(@CurrentAccount User loginAccount, @RequestParam String startDate,
@RequestParam String endDate, @RequestParam String email, @PathVariable Long accountId) {
return ResultModel.OK(tkioAccountService.findContractChange(email,startDate,endDate));
}
}
package userio.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Transient;
import java.util.Date;
import java.util.List;
@Entity
public class Account {
private Long id;
private String email;
private String password;
private String company;
private String name;
private String phone;
private String qq;
private String wechat;
private boolean isSuperUser;
private Long parent = 0L;
private Long rootParent;
private String isSpecialAccount;
//母账号:-1表示未审核,0表示禁用,1表示已审核;子账号:0表示禁用,1表示启用;总之:1表示用户可用状态;补充:-3表示未激活 -2 表示未开通
private int status;
private String pastDate;
private Date createTime = new Date();
//审核通过的时间
private Date pubDate;
private Long createAccount;
private Date modifyTime = new Date();
private Long modifyAccount;
private Boolean delFlag;
private Boolean isChannelPerson;
private String channelAccount;
//角色ID,对应role_auth表的ID。
private Long roleCategory;
private Long pricelevel;
private Long bussinessman;
private Long activeTime;
private Long forgetPwdTime;
//默认状态为空 false 忘记密码邮件发送后赋值; true 修改完密码之后赋值,表示完成修改密码操作,整个忘记密码流程结束
private Boolean forgetPwdStatus;
//默认状态为空 false 激活邮件发送后赋值; true 激活操作之后赋值,表示完成激活操作,整个激活流程结束,防止重复提交url
private Boolean activeStatus;
private int appSize;
private String remark;
//默认为空 false 非全渠道设置参数 true全渠道设置参数
private Boolean allChannelValidMatch;
private Boolean allChannelFakeMatch;
private Boolean allChannelBlackMatch;
//Transient
private String modifyAccountName;
private String createAccountName;
private String roleName;
private Long parentRole;
private String authStr;
private boolean isMasterLogin;
private List<Auth> authList;
private Boolean valid;
private String regIpAddr;
private String regIpLocation;
private Boolean verifyEmail = false;
private Boolean isFlowRestrict;
private String modifyPricelevelTime;
private Boolean newContract;
public Boolean getFlowRestrict() {
return isFlowRestrict;
}
public void setFlowRestrict(Boolean flowRestrict) {
isFlowRestrict = flowRestrict;
}
public Account() {
super();
}
public Account(Long id, String email, String password, String company,
String name, String phone, String qq, boolean isSuperUser,
Long parent, String isSpecialAccount, int status, String pastDate,
Date createTime, Long createAccount, Date modifyTime,
Long modifyAccount, boolean delFlag) {
super();
this.id = id;
this.email = email;
this.password = password;
this.company = company;
this.name = name;
this.phone = phone;
this.qq = qq;
this.isSuperUser = isSuperUser;
this.parent = parent;
this.isSpecialAccount = isSpecialAccount;
this.status = status;
this.pastDate = pastDate;
this.createTime = createTime;
this.createAccount = createAccount;
this.modifyTime = modifyTime;
this.modifyAccount = modifyAccount;
this.delFlag = delFlag;
}
@Id
@GeneratedValue
public Long getId() {
return id;
}
public boolean getIsSuperUser() {
return isSuperUser;
}
public String getName() {
return name;
}
public String getPassword() {
return password;
}
public String getPhone() {
return phone;
}
public String getQq() {
return qq;
}
public Date getCreateTime() {
return createTime;
}
public void setCompany(String company) {
this.company = company;
}
public void setEmail(String email) {
this.email = email;
}
public String getCompany() {
return company;
}
public String getEmail() {
return email;
}
public void setId(Long id) {
this.id = id;
}
public void setIsSuperUser(boolean isSuperUser) {
this.isSuperUser = isSuperUser;
}
public void setName(String name) {
this.name = name;
}
public void setPassword(String password) {
this.password = password;
}
public void setPhone(String phone) {
this.phone = phone;
}
public void setQq(String qq) {
this.qq = qq;
}
public void setSuperUser(boolean isSuperUser) {
this.isSuperUser = isSuperUser;
}
public Long getParent() {
return parent;
}
public void setParent(Long parent) {
this.parent = parent;
}
public Long getRootParent() {
return rootParent;
}
public void setRootParent(Long rootParent) {
this.rootParent = rootParent;
}
public String getIsSpecialAccount() {
return isSpecialAccount;
}
public void setIsSpecialAccount(String isSpecialAccount) {
this.isSpecialAccount = isSpecialAccount;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getPastDate() {
return pastDate;
}
public void setPastDate(String pastDate) {
this.pastDate = pastDate;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Long getCreateAccount() {
return createAccount;
}
public void setCreateAccount(Long createAccount) {
this.createAccount = createAccount;
}
public Long getModifyAccount() {
return modifyAccount;
}
public void setModifyAccount(Long modifyAccount) {
this.modifyAccount = modifyAccount;
}
public Date getModifyTime() {
return modifyTime;
}
public void setModifyTime(Date modifyTime) {
this.modifyTime = modifyTime;
}
public Boolean getDelFlag() {
return delFlag;
}
public void setDelFlag(Boolean delFlag) {
this.delFlag = delFlag;
}
public Boolean getIsChannelPerson() {
return isChannelPerson;
}
public void setIsChannelPerson(Boolean isChannelPerson) {
this.isChannelPerson = isChannelPerson;
}
public String getChannelAccount() {
return channelAccount;
}
public void setChannelAccount(String channelAccount) {
this.channelAccount = channelAccount;
}
public String getWechat() {
return wechat;
}
public void setWechat(String wechat) {
this.wechat = wechat;
}
public Long getPricelevel() {
return pricelevel;
}
public void setPricelevel(Long pricelevel) {
this.pricelevel = pricelevel;
}
public Long getBussinessman() {
return bussinessman;
}
public void setBussinessman(Long bussinessman) {
this.bussinessman = bussinessman;
}
public Date getPubDate() {
return pubDate;
}
public void setPubDate(Date pubDate) {
this.pubDate = pubDate;
}
public Long getActiveTime() {
return activeTime;
}
public void setActiveTime(Long activeTime) {
this.activeTime = activeTime;
}
public Long getForgetPwdTime() {
return forgetPwdTime;
}
public void setForgetPwdTime(Long forgetPwdTime) {
this.forgetPwdTime = forgetPwdTime;
}
public Boolean getForgetPwdStatus() {
return forgetPwdStatus;
}
public void setForgetPwdStatus(Boolean forgetPwdStatus) {
this.forgetPwdStatus = forgetPwdStatus;
}
public Boolean getActiveStatus() {
return activeStatus;
}
public void setActiveStatus(Boolean activeStatus) {
this.activeStatus = activeStatus;
}
public Long getRoleCategory() {
return roleCategory;
}
public void setRoleCategory(Long roleCategory) {
this.roleCategory = roleCategory;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getModifyPricelevelTime() {
return modifyPricelevelTime;
}
public void setModifyPricelevelTime(String modifyPricelevelTime) {
this.modifyPricelevelTime = modifyPricelevelTime;
}
public Boolean getNewContract() {
return newContract;
}
public void setNewContract(Boolean newContract) {
this.newContract = newContract;
}
@Transient
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
@Transient
public Long getParentRole() {
return parentRole;
}
public void setParentRole(Long parentRole) {
this.parentRole = parentRole;
}
@Transient
public String getAuthStr() {
return authStr;
}
public void setAuthStr(String authStr) {
this.authStr = authStr;
}
@Transient
public boolean getIsMasterLogin() {
return isMasterLogin;
}
public void setIsMasterLogin(boolean isMasterLogin) {
this.isMasterLogin = isMasterLogin;
}
@Transient
public List<Auth> getAuthList() {
return authList;
}
public void setAuthList(List<Auth> authList) {
this.authList = authList;
}
@Transient
public String getCreateAccountName() {
return createAccountName;
}
public void setCreateAccountName(String createAccountName) {
this.createAccountName = createAccountName;
}
@Transient
public String getModifyAccountName() {
return modifyAccountName;
}
public void setModifyAccountName(String modifyAccountName) {
this.modifyAccountName = modifyAccountName;
}
@Transient
public Boolean getValid() {
return valid;
}
public void setValid(Boolean valid) {
this.valid = valid;
}
@Transient
public int getAppSize()
{
return appSize;
}
public void setAppSize(int appSize)
{
this.appSize = appSize;
}
public Boolean getAllChannelValidMatch() {
return allChannelValidMatch;
}
public void setAllChannelValidMatch(Boolean allChannelValidMatch) {
this.allChannelValidMatch = allChannelValidMatch;
}
public Boolean getAllChannelFakeMatch() {
return allChannelFakeMatch;
}
public void setAllChannelFakeMatch(Boolean allChannelFakeMatch) {
this.allChannelFakeMatch = allChannelFakeMatch;
}
public Boolean getAllChannelBlackMatch() {
return allChannelBlackMatch;
}
public void setAllChannelBlackMatch(Boolean allChannelBlackMatch) {
this.allChannelBlackMatch = allChannelBlackMatch;
}
public String getRegIpAddr()
{
return regIpAddr;
}
public void setRegIpAddr(String regIpAddr)
{
this.regIpAddr = regIpAddr;
}
public String getRegIpLocation()
{
return regIpLocation;
}
public void setRegIpLocation(String regIpLocation)
{
this.regIpLocation = regIpLocation;
}
public Boolean getVerifyEmail()
{
return verifyEmail;
}
public void setVerifyEmail(Boolean verifyEmail)
{
this.verifyEmail = verifyEmail;
}
}
package userio.model;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id")
@Entity
public class App {
private Long id;
@NotNull
private String name;
private String platform;
private String appGenre;
private String appGenreName;
private String gameGenre;
//private String gameCategory;
private String appkey;
private String url;
private Long account;
private boolean sync;
// private boolean isActive;
private Long origiApp;
private String bundleid;
private String token;
private String installtoken;
private boolean regedbutton;
private Date createTime = new Date();
private String createAccount;
private Date modifyTime = new Date();
private String modifyAccount;
private Boolean delFlag;
private Long installNum;
private Long registerNum;
private Boolean trackAndIoBothExhaust;
private Boolean mainAccountExpire;
private Boolean distributeTask;
private Date distributeTime;
private String tagType;
public App() {
super();
}
public App(String name, String platform, String appGenre, String gameGenre) {
this.name = name;
this.platform = platform;
this.appGenre = appGenre;
this.gameGenre = gameGenre;
}
public App(String name, String platform, String appGenre, String gameGenre,
Long account) {
this.name = name;
this.platform = platform;
this.appGenre = appGenre;
this.gameGenre = gameGenre;
this.account = account;
}
// public boolean isActive() {
// return isActive;
// }
//
// public void setActive(boolean isActive) {
// this.isActive = isActive;
// }
public Long getAccount() {
return account;
}
public String getAppGenre() {
return appGenre;
}
@Transient
public String getAppGenreName() {
return appGenreName;
}
public void setAppGenreName(String appGenreName) {
this.appGenreName = appGenreName;
}
public String getAppkey() {
return appkey;
}
public String getGameGenre() {
return gameGenre;
}
/* @Transient
public String getGameCategory() {
return gameCategory;
}
public void setGameCategory(String gameCategory) {
this.gameCategory = gameCategory;
}*/
@Id
@GeneratedValue
public Long getId() {
return id;
}
public String getName() {
return name;
}
public String getPlatform() {
return platform;
}
public String getUrl() {
return url;
}
public boolean isSync() {
return sync;
}
public void setAccount(Long account) {
this.account = account;
}
public void setAppGenre(String appGenre) {
this.appGenre = appGenre;
}
public void setAppkey(String appkey) {
this.appkey = appkey;
}
public void setGameGenre(String gameGenre) {
this.gameGenre = gameGenre;
}
public void setId(Long id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setPlatform(String platform) {
this.platform = platform;
}
public void setSync(boolean sync) {
this.sync = sync;
}
public void setUrl(String url) {
this.url = url;
}
public Long getOrigiApp() {
return origiApp;
}
public void setOrigiApp(Long origiApp) {
this.origiApp = origiApp;
}
public String getBundleid() {
return bundleid;
}
public void setBundleid(String bundleid) {
this.bundleid = bundleid;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public boolean isRegedbutton() {
return regedbutton;
}
public void setRegedbutton(boolean regedbutton) {
this.regedbutton = regedbutton;
}
public String getInstalltoken() {
return installtoken;
}
public void setInstalltoken(String installtoken) {
this.installtoken = installtoken;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getCreateAccount() {
return createAccount;
}
public void setCreateAccount(String createAccount) {
this.createAccount = createAccount;
}
public Date getModifyTime() {
return modifyTime;
}
public void setModifyTime(Date modifyTime) {
this.modifyTime = modifyTime;
}
public String getModifyAccount() {
return modifyAccount;
}
public void setModifyAccount(String modifyAccount) {
this.modifyAccount = modifyAccount;
}
public Boolean getDelFlag() {
return delFlag;
}
public void setDelFlag(Boolean delFlag) {
this.delFlag = delFlag;
}
@Transient
public Boolean getTrackAndIoBothExhaust() {
return trackAndIoBothExhaust;
}
public void setTrackAndIoBothExhaust(Boolean trackAndIoBothExhaust) {
this.trackAndIoBothExhaust = trackAndIoBothExhaust;
}
@Transient
public Boolean getMainAccountExpire() {
return mainAccountExpire;
}
public void setMainAccountExpire(Boolean mainAccountExpire) {
this.mainAccountExpire = mainAccountExpire;
}
@Transient
public Long getInstallNum() {
return installNum;
}
public void setInstallNum(Long installNum) {
this.installNum = installNum;
}
@Transient
public Long getRegisterNum() {
return registerNum;
}
public void setRegisterNum(Long registerNum) {
this.registerNum = registerNum;
}
public Boolean getDistributeTask() {
return distributeTask;
}
public void setDistributeTask(Boolean distributeTask) {
this.distributeTask = distributeTask;
}
public Date getDistributeTime() {
return distributeTime;
}
public void setDistributeTime(Date distributeTime) {
this.distributeTime = distributeTime;
}
public String getTagType() {
return tagType;
}
public void setTagType(String tagType) {
this.tagType = tagType;
}
@Override
public String toString() {
return "App [id=" + id + ", name=" + name + ", platform=" + platform
+ ", appGenre=" + appGenre + ", gameGenre=" + gameGenre
+ ", appkey=" + appkey + ", url=" + url + ", account="
+ account + ", sync=" + sync + ", origiApp=" + origiApp
+ ", bundleid=" + bundleid + ", token=" + token
+ ", installtoken=" + installtoken + ", regedbutton="
+ regedbutton + ", createTime=" + createTime
+ ", createAccount=" + createAccount + ", modifyTime="
+ modifyTime + ", modifyAccount=" + modifyAccount
+ ", delFlag=" + delFlag + "]";
}
}
package userio.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Transient;
import java.util.Date;
import java.util.List;
@Entity
public class Auth {
private Long id;
private Long roleCategory;
private String controlAuth;
private Long app;
private Long account;
private boolean retentionAuth;
private boolean payAuth;
private Long createAccount;
private Date createTime;
private Date modifyTime = new Date();
private String modifyAccount;
private Boolean status;
private Boolean isNatureOpen;
private Boolean campaign;
private Boolean topAuth;
public Auth() {
super();
}
public Auth(Long id, Long roleCategory, String controlAuth,
Long app, Long account) {
super();
this.id = id;
this.roleCategory = roleCategory;
this.controlAuth = controlAuth;
this.app = app;
this.account = account;
}
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getRoleCategory() {
return roleCategory;
}
public void setRoleCategory(Long roleCategory) {
this.roleCategory = roleCategory;
}
public String getControlAuth() {
return controlAuth;
}
public void setControlAuth(String controlAuth) {
this.controlAuth = controlAuth;
}
public Long getApp() {
return app;
}
public void setApp(Long app) {
this.app = app;
}
public Long getAccount() {
return account;
}
public void setAccount(Long account) {
this.account = account;
}
public boolean isRetentionAuth() {
return retentionAuth;
}
public void setRetentionAuth(boolean retentionAuth) {
this.retentionAuth = retentionAuth;
}
public boolean isPayAuth() {
return payAuth;
}
public void setPayAuth(boolean payAuth) {
this.payAuth = payAuth;
}
public Date getModifyTime() {
return modifyTime;
}
public void setModifyTime(Date modifyTime) {
this.modifyTime = modifyTime;
}
public String getModifyAccount() {
return modifyAccount;
}
public void setModifyAccount(String modifyAccount) {
this.modifyAccount = modifyAccount;
}
public Boolean getStatus() {
return status;
}
public void setStatus(Boolean status) {
this.status = status;
}
public Boolean getIsNatureOpen() {
return isNatureOpen;
}
public void setIsNatureOpen(Boolean isNatureOpen) {
this.isNatureOpen = isNatureOpen;
}
public Boolean getCampaign() {
return campaign;
}
public void setCampaign(Boolean campaign) {
this.campaign = campaign;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Long getCreateAccount() {
return createAccount;
}
public void setCreateAccount(Long createAccount) {
this.createAccount = createAccount;
}
public Boolean getTopAuth() {
return topAuth;
}
public void setTopAuth(Boolean topAuth) {
this.topAuth = topAuth;
}
@Override
public String toString() {
return "Auth [id=" + id + ", roleCategory=" + roleCategory
+ ", controlAuth=" + controlAuth + ", app=" + app
+ ", account=" + account + ", retentionAuth=" + retentionAuth
+ ", payAuth=" + payAuth + ", modifyTime=" + modifyTime
+ ", modifyAccount=" + modifyAccount + ", status=" + status
+ "]";
}
}
package userio.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Transient;
import java.util.Date;
import java.util.List;
@Entity
public class DataAuth {
private Long id;
private Long account;
private Long app;
private Long campaign;
private String campaignCode;
private Long channel;
private Boolean allCampaign;
private Date modifyTime = new Date();
private String modifyAccount;
private Boolean delFlag;
private Boolean channelPermit;//子账号渠道权限是否放开
//Transient
private List<Long> campaignList;
public DataAuth() {
super();
}
public DataAuth(Long id, Long app, Long campaign, String campaignCode,
Long channel, Boolean allCampaign, Boolean channelPermit) {
super();
this.id = id;
this.app = app;
this.campaign = campaign;
this.campaignCode = campaignCode;
this.channel = channel;
this.allCampaign = allCampaign;
this.channelPermit = channelPermit;
}
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getApp() {
return app;
}
public void setApp(Long app) {
this.app = app;
}
public Long getCampaign() {
return campaign;
}
public void setCampaign(Long campaign) {
this.campaign = campaign;
}
public String getCampaignCode() {
return campaignCode;
}
public void setCampaignCode(String campaignCode) {
this.campaignCode = campaignCode;
}
public Long getChannel() {
return channel;
}
public void setChannel(Long channel) {
this.channel = channel;
}
public Long getAccount() {
return account;
}
public void setAccount(Long account) {
this.account = account;
}
public Date getModifyTime() {
return modifyTime;
}
public void setModifyTime(Date modifyTime) {
this.modifyTime = modifyTime;
}
public String getModifyAccount() {
return modifyAccount;
}
public void setModifyAccount(String modifyAccount) {
this.modifyAccount = modifyAccount;
}
public Boolean getAllCampaign() {
return allCampaign;
}
public void setAllCampaign(Boolean allCampaign) {
this.allCampaign = allCampaign;
}
public Boolean getDelFlag() {
return delFlag;
}
public void setDelFlag(Boolean delFlag) {
this.delFlag = delFlag;
}
public Boolean getChannelPermit() {
return channelPermit;
}
public void setChannelPermit(Boolean channelPermit) {
this.channelPermit = channelPermit;
}
@Transient
public List<Long> getCampaignList() {
return campaignList;
}
public void setCampaignList(List<Long> campaignList) {
this.campaignList = campaignList;
}
}
package userio.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.math.BigDecimal;
import java.math.BigInteger;
/**
* Created by song on 2017/10/19.
*/
@Entity
public class PackageType {
private Long id;
private String packageName;
private String originalName;
private BigInteger trackFlow;
private BigInteger ioFlow;
private Integer appNum;
private Boolean superLevel;
/**
* 价格
*/
private BigDecimal price; //价格
/**
* 数据量
**/
private Integer dataSurlNum; //创建短链数
private Integer dataConversionFunnelNum; // 转化漏斗数
private Integer dataUserGroupNum; //用户分群数
/**
* 核心功能
**/
private String funcQueryElapsed; //查询速度
private String funcRealtime; //数据实时性
private Boolean funcInstallAttibution; //实时激活归因
private Boolean funcCustomRetainAnalysis; //自定义留存分析
private Boolean funcCustomConversionFunnel; //自定义漏斗
private Boolean funcCustomUserGroup; //自定义用户群
private Boolean funcMultiAnalysisAndOLAP; //多维分析和OLAP
/**
* 管理功能
**/
private Boolean funcMngAuth; //权限管理
private Boolean funcMngSubAccount; //子账号管理
private Boolean funcMngDefendCheatSetting; //防作弊参数设置
private Boolean funcMngUserAttibute;//用户属性管理
private Boolean funcMngAppEvent;//APP事件管理
private Boolean funcMngCampaign;//推广活动管理
private Boolean funcMngRealtimeCallback;//推广实时回调
/**
* 数据接入
*
* @return
*/
private Boolean integrateCatFront;//前端埋点
private Boolean integrateCatEnd;//后端埋点
private Boolean integrateRestAPI;//REST API
private Boolean integrateH5Page;//H5网页
private Boolean integratePCPage;//PC 网页
/**
* 平台功能
*
* @return
*/
private Boolean platformExport;//数据导出
private Integer platformUserProfile;//用户画像能力
private Boolean platformDataStore;//数据存储
private Boolean platformHive;//Hive访问数据
private Boolean platformPresto;//Presto访问数据
private Boolean platformCustomReport;//自定义报表设计
private Boolean platformServiceSupport; //7*24小时客户服务
private Boolean platformCustomDataAnalysis; //专属数据分析师
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Integer getAppNum() {
return appNum;
}
public void setAppNum(Integer appNum) {
this.appNum = appNum;
}
public String getPackageName() {
return packageName;
}
public void setPackageName(String packageName) {
this.packageName = packageName;
}
public String getOriginalName() {
return originalName;
}
public void setOriginalName(String originalName) {
this.originalName = originalName;
}
public BigInteger getTrackFlow() {
return trackFlow;
}
public void setTrackFlow(BigInteger trackFlow) {
this.trackFlow = trackFlow;
}
public BigInteger getIoFlow() {
return ioFlow;
}
public void setIoFlow(BigInteger ioFlow) {
this.ioFlow = ioFlow;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public Integer getDataSurlNum() {
return dataSurlNum;
}
public void setDataSurlNum(Integer dataSurlNum) {
this.dataSurlNum = dataSurlNum;
}
public Integer getDataConversionFunnelNum() {
return dataConversionFunnelNum;
}
public void setDataConversionFunnelNum(Integer dataConversionFunnelNum) {
this.dataConversionFunnelNum = dataConversionFunnelNum;
}
public Integer getDataUserGroupNum() {
return dataUserGroupNum;
}
public void setDataUserGroupNum(Integer dataUserGroupNum) {
this.dataUserGroupNum = dataUserGroupNum;
}
public String getFuncQueryElapsed() {
return funcQueryElapsed;
}
public void setFuncQueryElapsed(String funcQueryElapsed) {
this.funcQueryElapsed = funcQueryElapsed;
}
public String getFuncRealtime() {
return funcRealtime;
}
public void setFuncRealtime(String funcRealtime) {
this.funcRealtime = funcRealtime;
}
public Boolean getFuncInstallAttibution() {
return funcInstallAttibution;
}
public void setFuncInstallAttibution(Boolean funcInstallAttibution) {
this.funcInstallAttibution = funcInstallAttibution;
}
public Boolean getFuncCustomRetainAnalysis() {
return funcCustomRetainAnalysis;
}
public void setFuncCustomRetainAnalysis(Boolean funcCustomRetainAnalysis) {
this.funcCustomRetainAnalysis = funcCustomRetainAnalysis;
}
public Boolean getFuncCustomConversionFunnel() {
return funcCustomConversionFunnel;
}
public void setFuncCustomConversionFunnel(Boolean funcCustomConversionFunnel) {
this.funcCustomConversionFunnel = funcCustomConversionFunnel;
}
public Boolean getFuncCustomUserGroup() {
return funcCustomUserGroup;
}
public void setFuncCustomUserGroup(Boolean funcCustomUserGroup) {
this.funcCustomUserGroup = funcCustomUserGroup;
}
public Boolean getFuncMultiAnalysisAndOLAP() {
return funcMultiAnalysisAndOLAP;
}
public void setFuncMultiAnalysisAndOLAP(Boolean funcMultiAnalysisAndOLAP) {
this.funcMultiAnalysisAndOLAP = funcMultiAnalysisAndOLAP;
}
public Boolean getFuncMngAuth() {
return funcMngAuth;
}
public void setFuncMngAuth(Boolean funcMngAuth) {
this.funcMngAuth = funcMngAuth;
}
public Boolean getFuncMngSubAccount() {
return funcMngSubAccount;
}
public void setFuncMngSubAccount(Boolean funcMngSubAccount) {
this.funcMngSubAccount = funcMngSubAccount;
}
public Boolean getFuncMngDefendCheatSetting() {
return funcMngDefendCheatSetting;
}
public void setFuncMngDefendCheatSetting(Boolean funcMngDefendCheatSetting) {
this.funcMngDefendCheatSetting = funcMngDefendCheatSetting;
}
public Boolean getFuncMngUserAttibute() {
return funcMngUserAttibute;
}
public void setFuncMngUserAttibute(Boolean funcMngUserAttibute) {
this.funcMngUserAttibute = funcMngUserAttibute;
}
public Boolean getFuncMngAppEvent() {
return funcMngAppEvent;
}
public void setFuncMngAppEvent(Boolean funcMngAppEvent) {
this.funcMngAppEvent = funcMngAppEvent;
}
public Boolean getFuncMngCampaign() {
return funcMngCampaign;
}
public void setFuncMngCampaign(Boolean funcMngCampaign) {
this.funcMngCampaign = funcMngCampaign;
}
public Boolean getFuncMngRealtimeCallback() {
return funcMngRealtimeCallback;
}
public void setFuncMngRealtimeCallback(Boolean funcMngRealtimeCallback) {
this.funcMngRealtimeCallback = funcMngRealtimeCallback;
}
public Boolean getIntegrateCatFront() {
return integrateCatFront;
}
public void setIntegrateCatFront(Boolean integrateCatFront) {
this.integrateCatFront = integrateCatFront;
}
public Boolean getIntegrateCatEnd() {
return integrateCatEnd;
}
public void setIntegrateCatEnd(Boolean integrateCatEnd) {
this.integrateCatEnd = integrateCatEnd;
}
public Boolean getIntegrateRestAPI() {
return integrateRestAPI;
}
public void setIntegrateRestAPI(Boolean integrateRestAPI) {
this.integrateRestAPI = integrateRestAPI;
}
public Boolean getIntegrateH5Page() {
return integrateH5Page;
}
public void setIntegrateH5Page(Boolean integrateH5Page) {
this.integrateH5Page = integrateH5Page;
}
public Boolean getIntegratePCPage() {
return integratePCPage;
}
public void setIntegratePCPage(Boolean integratePCPage) {
this.integratePCPage = integratePCPage;
}
public Boolean getPlatformExport() {
return platformExport;
}
public void setPlatformExport(Boolean platformExport) {
this.platformExport = platformExport;
}
public Integer getPlatformUserProfile() {
return platformUserProfile;
}
public void setPlatformUserProfile(Integer platformUserProfile) {
this.platformUserProfile = platformUserProfile;
}
public Boolean getPlatformDataStore() {
return platformDataStore;
}
public void setPlatformDataStore(Boolean platformDataStore) {
this.platformDataStore = platformDataStore;
}
public Boolean getPlatformHive() {
return platformHive;
}
public void setPlatformHive(Boolean platformHive) {
this.platformHive = platformHive;
}
public Boolean getPlatformPresto() {
return platformPresto;
}
public void setPlatformPresto(Boolean platformPresto) {
this.platformPresto = platformPresto;
}
public Boolean getPlatformCustomReport() {
return platformCustomReport;
}
public void setPlatformCustomReport(Boolean platformCustomReport) {
this.platformCustomReport = platformCustomReport;
}
public Boolean getPlatformServiceSupport() {
return platformServiceSupport;
}
public void setPlatformServiceSupport(Boolean platformServiceSupport) {
this.platformServiceSupport = platformServiceSupport;
}
public Boolean getPlatformCustomDataAnalysis() {
return platformCustomDataAnalysis;
}
public void setPlatformCustomDataAnalysis(Boolean platformCustomDataAnalysis) {
this.platformCustomDataAnalysis = platformCustomDataAnalysis;
}
public Boolean getSuperLevel() {
return superLevel;
}
public void setSuperLevel(Boolean superLevel) {
this.superLevel = superLevel;
}
}
package userio.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Transient;
import java.util.Date;
import java.util.List;
@Entity
public class RoleAuth {
private Long id;
private Long roleCategory;
private String auth;
private Boolean payAuth;
private Boolean retentionAuth;
private Boolean isNatureOpen;
private Boolean topAuth;
private String roleName;
private Long createAccount;
private Date createTime;
private Long modifyAccount;
private Date modifyTime;
private Boolean delFlag;
//@Transient
private List<RoleAuthDetail> roleAuthDetails;
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getRoleCategory() {
return roleCategory;
}
public void setRoleCategory(Long roleCategory) {
this.roleCategory = roleCategory;
}
public String getAuth() {
return auth;
}
public void setAuth(String auth) {
this.auth = auth;
}
public Boolean getPayAuth() {
return payAuth;
}
public void setPayAuth(Boolean payAuth) {
this.payAuth = payAuth;
}
public Boolean getRetentionAuth() {
return retentionAuth;
}
public void setRetentionAuth(Boolean retentionAuth) {
this.retentionAuth = retentionAuth;
}
public Boolean getIsNatureOpen() {
return isNatureOpen;
}
public void setIsNatureOpen(Boolean isNatureOpen) {
this.isNatureOpen = isNatureOpen;
}
public Boolean getTopAuth() {
return topAuth;
}
public void setTopAuth(Boolean topAuth) {
this.topAuth = topAuth;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public Long getCreateAccount() {
return createAccount;
}
public void setCreateAccount(Long createAccount) {
this.createAccount = createAccount;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Long getModifyAccount() {
return modifyAccount;
}
public void setModifyAccount(Long modifyAccount) {
this.modifyAccount = modifyAccount;
}
public Date getModifyTime() {
return modifyTime;
}
public void setModifyTime(Date modifyTime) {
this.modifyTime = modifyTime;
}
public Boolean getDelFlag() {
return delFlag;
}
public void setDelFlag(Boolean delFlag) {
this.delFlag = delFlag;
}
@Transient
public List<RoleAuthDetail> getRoleAuthDetails() {
return roleAuthDetails;
}
public void setRoleAuthDetails(List<RoleAuthDetail> roleAuthDetails) {
this.roleAuthDetails = roleAuthDetails;
}
@Override
public String toString() {
return "RoleAuth [id=" + id + ", roleCategory=" + roleCategory
+ ", auth=" + auth + "]";
}
}
package userio.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
/**
* Created by sunhao on 17/6/6.
* description:角色权限的详情
*/
@Entity
public class RoleAuthDetail {
private Long id;
private String auth;
private String authName;
private String parentAuth;
private int sort;
private Boolean view;
private Boolean edit;
private Long roleId;
public RoleAuthDetail() {}
public RoleAuthDetail(RoleAuthDetail roleAuthDetail) {
this.auth = roleAuthDetail.getAuth();
this.authName = roleAuthDetail.getAuthName();
this.parentAuth = roleAuthDetail.getParentAuth();
this.sort = roleAuthDetail.getSort();
this.view = roleAuthDetail.getView();
this.edit = roleAuthDetail.getEdit();
this.roleId = roleAuthDetail.getRoleId();
}
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getAuth() {
return auth;
}
public void setAuth(String auth) {
this.auth = auth;
}
public String getAuthName() {
return authName;
}
public void setAuthName(String authName) {
this.authName = authName;
}
public String getParentAuth() {
return parentAuth;
}
public void setParentAuth(String parentAuth) {
this.parentAuth = parentAuth;
}
public int getSort() {
return sort;
}
public void setSort(int sort) {
this.sort = sort;
}
public Boolean getView() {
return view;
}
public void setView(Boolean view) {
this.view = view;
}
public Boolean getEdit() {
return edit;
}
public void setEdit(Boolean edit) {
this.edit = edit;
}
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
}
package userio.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class SalesManLeader {
private int id;
private String area;
private String email;
private String name;
private int leader;
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getLeader() {
return leader;
}
public void setLeader(int leader) {
this.leader = leader;
}
}
package userio.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;
import userio.model.Account;
import java.math.BigInteger;
import java.util.Date;
import java.util.List;
@Transactional
public interface IOAccountRepository extends JpaRepository<Account, Long> {
@Query(value = "select root_parent from account where id=?1", nativeQuery = true)
BigInteger findRootParentByAccountId(Long accountId);
@Query(value = "SELECT * from account where is_super_user is true and `status` = 1 and past_date > ?1", nativeQuery = true)
List<Account> findRootParentsUnPast(String today);
@Query(value = "SELECT * from account where is_super_user is true and `status` = 1 and past_date < ?1", nativeQuery = true)
List<Account> findRootParentsPast(String today);
@Query(value = "SELECT * from account where is_super_user is true and `status` = 0", nativeQuery = true)
List<Account> findRootParentsForidin();
@Query(value = "SELECT * from account where is_super_user is true and bussinessman in ?1", nativeQuery = true)
List<Account> findBussnissMan(List<Integer> bussinussIds);
@Query(value = "select * from account where root_parent = ?1", nativeQuery = true)
List<Account> findByRootParent(Long accountId);
@Query(value = "select count(*) from account where root_parent = ?1 and create_time > ?2 and create_time < ?3", nativeQuery = true)
BigInteger countByRootParent(Long accountId, String startDate, String endDate);
@Query(value = "select * from account where email = ?1", nativeQuery = true)
Account findByEmail(String email);
}
package userio.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import userio.model.App;
import java.math.BigInteger;
import java.util.List;
public interface IOAppRepository extends JpaRepository<App, Long>
{
@Query(value = "select * from app where account in (select id from account where parent = ?1 or id = ?1) and del_flag is not true", nativeQuery = true)
List<App> listAppByRootAccount(Long account);
@Query(value = "select count(*) from app where account in ?1 and create_time >= ?2 and create_time <= ?3", nativeQuery = true)
BigInteger countByAccount(List<Long> accountId, String startDate, String endDate);
@Query(value = "select appkey from app where account in ?1", nativeQuery = true)
List<String> findAppkeys(List<Long> accountId);
}
package userio.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;
import userio.model.DataAuth;
import java.util.List;
@Transactional
public interface IODataAuthRepository extends JpaRepository<DataAuth, Long> {
@Query(value = "select * from data_auth where account in ?1", nativeQuery = true)
List<DataAuth> findDataAuthByAccount(List<Long> account);
@Query(value = "select * from data_auth where account = ?1", nativeQuery = true)
List<DataAuth> findDataAuthByAccount(Long account);
@Query(value = "select * from data_auth where account = ?1 and app=?2", nativeQuery = true)
List<DataAuth> findDataAuthByAccountAndApp(Long account, Long app);
@Query(value = "select * from data_auth where account = ?2 and app in (select app from auth where create_account in ?1 and account = ?2)", nativeQuery = true)
List<DataAuth> findDataAuthByCreateAccount(List<Long> createAccount, Long channelAccount);
@Transactional
@Modifying
@Query(value = "delete from data_auth where account = ?1", nativeQuery = true)
void deleteAuthByAccount(Long account);
@Query(value = "select * from data_auth where app = ?1 and channel =?2 and campaign =?3", nativeQuery = true)
List<DataAuth> listDataAuthByAppChnCam(Long app, Long channel, Long campain);
Iterable<DataAuth> findByApp(Long id);
@Query(value = "select account from data_auth where app = ?1 and channel =?2 and campaign =?3", nativeQuery = true)
List<Long> listAccountByAppChnCam(Long app, Long channel, Long campain);
@Query(value = "select * from data_auth where channel =?1", nativeQuery = true)
List<DataAuth> listDataAuthByChannel(Long channel);
@Query(value = "select * from data_auth where account = ?1 and app = ?2 and all_campaign = 1", nativeQuery = true)
List<DataAuth> listByAllCampaign(Long account, Long app);
}
package userio.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import userio.model.PackageType;
public interface IOPackageTypeRepository extends JpaRepository<PackageType, Long> {
@Query(value = "select * from package_type where id=(select pricelevel from account where id=?1)", nativeQuery = true)
PackageType findPackageTypeByRootParent(Long rootParent);
@Query(value = "select * from package_type where id=?1", nativeQuery = true)
PackageType findPackageTypeByID(Long ID);
}
package userio.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import userio.model.RoleAuthDetail;
import java.util.List;
/**
* Created by sunhao on 17/6/7.
* Desc:权限详情DAO
*/
public interface IORoleAuthDetailRepository extends JpaRepository<RoleAuthDetail,Long> {
@Query(value = "select * from role_auth_detail where role_id = ?1", nativeQuery = true)
List<RoleAuthDetail> findDetailByRole(Long roleId);
@Query(value = "select * from role_auth_detail where role_id = ?1 and (view is true or edit is true)", nativeQuery = true)
List<RoleAuthDetail> findValidDetailByRole(Long roleId);
}
package userio.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;
import userio.model.RoleAuth;
import java.math.BigInteger;
import java.util.Date;
import java.util.List;
public interface IORoleAuthRepository extends JpaRepository<RoleAuth, Long> {
RoleAuth findByRoleCategory(Long id);
@Query(value = "select * from role_auth where id in ?1 ", nativeQuery = true)
List<RoleAuth> findCustomRoleList(List<Long> createAccounts);
@Query(value = "select * from role_auth where create_account in ?1 and del_flag is not true order by create_time desc ", nativeQuery = true)
List<RoleAuth> findAllCustomRoleList(List<Long> createAccounts);
@Query(value = "select count(*) from role_auth where create_account in ?1 and role_name = ?2 and del_flag is not true", nativeQuery = true)
BigInteger findByAccountAndName(List<Long> accountList, String roleName);
@Query(value = "select count(*) from role_auth where create_account in ?1 and role_category = 4 and del_flag is not true", nativeQuery = true)
BigInteger findCustomNumByAccount(List<Long> accountList);
@Transactional
@Modifying
@Query(value = "update role_auth set del_flag = true , modify_account = ?2, modify_time = ?3 where id = ?1 ", nativeQuery = true)
int deleteCustomRole(Long roleId, Long modifyAccount, Date modifyDate);
}
package userio.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;
import userio.model.SalesManLeader;
import java.util.List;
@Transactional
public interface IOSalesManLeaderRepository extends JpaRepository<SalesManLeader, Long> {
@Query(value = "select email from sales_man_leader where id=(select leader from sales_man_leader where id=?1)", nativeQuery = true)
String findLeaderByBussinessMan(Long bussinessMan);
@Query(value = "select * from sales_man_leader where leader = (select id from sales_man_leader where email = ?1)", nativeQuery = true)
List<SalesManLeader> findByEmail(String email);
@Query(value = "select * from sales_man_leader where email = ?1", nativeQuery = true)
SalesManLeader findOneByEmail(String email);
@Query(value = "select * from sales_man_leader where email in ?1", nativeQuery = true)
List<SalesManLeader> findAllByEmails(List<String> emails);
}
package userio.service;
import common.model.Contract;
import userio.model.Account;
/**
* Created by mxq on 2018/1/23.
*/
public interface AccountIOService {
Account update(Contract contract);
Account forbiden(Contract contract);
}
package userio.service;
import common.model.*;
import java.util.List;
import java.util.Map;
/**
* Created by mxq on 2017/12/26.
*/
public interface IOAccountService {
List<IOAccount4Web> findAll(User user);
IOAccount4Web findOne(String email);
List<ReminderLevel> findReminderlevel();
//到期提醒关闭
Reminder forbiden(User user, Reminder resource);
//到期提醒开启
Reminder enable(User user, Reminder resource);
//催款提醒关闭
PressMoney forbidenPress(User user, PressMoney resource);
//催款提醒开启
PressMoney enablePress(User user, PressMoney resource);
//缴费
Payment pay(User user, Payment resource);
//回访
BackVisit visit(User user, BackVisit resource);
//查询功能使用情况
Map<String, Integer> findFunTimes(Long account, String startDate, String endDate);
//查询功能使用情况
List<Map<String, Object>> findPv(Long account, String startDate, String endDate);
List<Reminder> findRed(Long account, String startDate, String endDate);
List<BackVisit> findVisit(Long account, String startDate, String endDate);
List<ContractMoney> findPay(String email, String startDate, String endDate);
List<Contract> findContract(String email);
List<ContractChange> findContractChange(String email, String startDate, String endDate);
void contractPay(User loginUser, ContractMoney resource);
}
package userio.service;
/**
* Created by mxq on 2018/1/2.
*/
public interface IOSalesManService {
void create(String loginEmail, String email, String name);
}
package userio.service.impl;
import common.model.Contract;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tkio.repository.AccountRepository;
import tkio.service.AccountService;
import userio.model.Account;
import userio.repository.IOAccountRepository;
import userio.service.AccountIOService;
import util.DateUtil;
import util.ValidateUtil;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* Created by mxq on 2018/1/23.
*/
@Service
public class AccountIOServiceImpl implements AccountIOService {
@Autowired
IOAccountRepository accountRepository;
@Override
public Account update(Contract contract) {
Account account = accountRepository.findByEmail(contract.getEmail());
String today = DateUtil.getBeforeDays(0);
Date pubDate = DateUtil.getDate(contract.getStartDate());
account.setPastDate(contract.getEndDate());
account.setNewContract(true);
account.setPubDate(pubDate);
account.setModifyPricelevelTime(contract.getStartDate());
account.setModifyTime(new Date());
account.setModifyAccount(0l);
account.setPricelevel(contract.getPriceLevel());
if(!(contract.getEndDate().compareTo(today) < 0)){
account.setStatus(1);
}
Account save = accountRepository.save(account);
//修改子账号
List<Account> accountList = accountRepository.findByRootParent(account.getId());
if (ValidateUtil.isValid(accountList)){
List<Account> list = new ArrayList<>();
for(Account ac : accountList){
ac.setPastDate(contract.getEndDate());
ac.setPubDate(pubDate);
ac.setModifyPricelevelTime(contract.getStartDate());
ac.setPricelevel(contract.getPriceLevel());
list.add(ac);
}
accountRepository.save(list);
}
return save;
}
@Override
public Account forbiden(Contract contract) {
Account account = accountRepository.findByEmail(contract.getEmail());
account.setStatus(0);
return accountRepository.save(account);
}
}
package userio.service.impl;
import common.model.*;
import common.repository.*;
import dic.ContractTypeEnum;
import tkio.model.*;
import userio.model.*;
import common.service.UserService;
import dic.RoleEnum;
import dic.RoleTypeEnum;
import org.apache.commons.collections4.list.TreeList;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import userio.model.Account;
import userio.model.PackageType;
import userio.model.SalesManLeader;
import userio.repository.IOAccountRepository;
import userio.repository.IOAppRepository;
import userio.repository.IOPackageTypeRepository;
import userio.repository.IOSalesManLeaderRepository;
import userio.service.IOAccountService;
import util.Constant;
import util.DateUtil;
import util.HttpClientUtil;
import util.ValidateUtil;
import java.math.BigInteger;
import java.util.*;
/**
* Created by mxq on 2017/12/26.
*/
@Service
public class IOAccountServiceImpl implements IOAccountService {
//查询URI
private final static String URI_REPORT_BY_SQL = "/api/trackingio/bysql";
@Autowired
IOAccount4WebRepository account4WebRepository;
@Autowired
IOSalesManLeaderRepository salesManLeaderRepository;
@Autowired
IOAccountRepository accountRepository;
@Autowired
BackVisitRepository backVisitRepository;
@Autowired
PaymentRepository paymentRepository;
@Autowired
ReminderRepository reminderRepository;
@Autowired
IOAppRepository appRepository;
@Autowired
UserRepository userRepository;
@Autowired
ContractMoneyRepository contractMoneyRepository;
@Autowired
ContractRepository contractRepository;
@Autowired
ContractChangeRepository contractChangeRepository;
@Autowired
IOPackageTypeRepository packageTypeRepository;
@Autowired
UserService userService;
@Autowired
ReminderLevelRepository reminderLevelRepository;
@Autowired
PressMoneyRepository pressMoneyRepository;
@Override
public List<IOAccount4Web> findAll(User user) {
List<IOAccount4Web> result = new ArrayList<>();
List<IOAccount4Web> account4WebList = null;
if(user.getRole().equals(RoleEnum.MANAGER.getKey())){
account4WebList = account4WebRepository.findAll();
} else{
List<Integer> idList = new ArrayList<>();
if(user.getRoleType().equals(RoleTypeEnum.MANAGER.getKey())){
List<User> userList = userRepository.findAllUserByRole(user.getRole());
List<String> emialList = new ArrayList<>();
for(User u : userList){
emialList.add(u.getEmail());
}
List<SalesManLeader> salesManLeaderList = salesManLeaderRepository.findAllByEmails(emialList);
if (ValidateUtil.isValid(salesManLeaderList)){
for(SalesManLeader sml : salesManLeaderList){
idList.add(sml.getId());
}
}
}else{
List<String> emailList = new ArrayList<>();
emailList.add(user.getEmail());
List<User> userList = userService.findAllSons(user.getId());
if(ValidateUtil.isValid(userList)){
for(User u : userList){
emailList.add(u.getEmail());
}
}
List<SalesManLeader> manLeaderList = salesManLeaderRepository.findAllByEmails(emailList);
if(ValidateUtil.isValid(manLeaderList)){
for(SalesManLeader a : manLeaderList){
idList.add(a.getId());
}
}
}
if(ValidateUtil.isValid(idList)){
List<Account> accountList = accountRepository.findBussnissMan(idList);
List<String> emails = new ArrayList<>();
if(ValidateUtil.isValid(accountList)){
for(Account ac : accountList){
emails.add(ac.getEmail());
}
account4WebList = account4WebRepository.findByEmails(emails);
}
}
}
List<SalesManLeader> roles = salesManLeaderRepository.findAll();
Map<Long, String> busMap = new HashMap<>();
for(SalesManLeader u : roles){
busMap.put((long)u.getId(),u.getName());
}
List<User> users = userRepository.findAll();
Map<String, Long> saleMap = new HashMap<>();
for(User u : users){
saleMap.put(u.getEmail(),u.getId());
}
List<Reminder> reminderList = reminderRepository.findAllDistinct("io");
Map<Long, Boolean> reMap = new HashMap<>();
if(ValidateUtil.isValid(reminderList)){
for(Reminder re : reminderList){
reMap.put(re.getAccountId(), re.getRemindStatus());
}
}
List<PressMoney> allPress = pressMoneyRepository.findAllPress("io");
Map<Long, Boolean> pressMap = new HashMap<>();
if(ValidateUtil.isValid(allPress)){
for(PressMoney re : allPress){
pressMap.put(re.getAccountId(), re.getPressStatus());
}
}
if(ValidateUtil.isValid(account4WebList)){
Map<String, Integer> backTimeMap = getBackTime();
Map<String, List<Contract>> payMap = getPay();
for(IOAccount4Web aw : account4WebList){
if(backTimeMap.containsKey(aw.getEmail())){
aw.setBackTime(backTimeMap.get(aw.getEmail()));
} else{
aw.setBackTime(0);
}
if(busMap.containsKey(aw.getBussinessMan())){
aw.setSaleName(busMap.get(aw.getBussinessMan()));
}else{
aw.setSaleName("");
}
if(pressMap.containsKey(aw.getAccountId())){
aw.setPressStatus(true);
aw.setContractStatus("stop");
} else{
aw.setRemStatus(false);
}
if(payMap.containsKey(aw.getEmail())){
List<Contract> contractList = payMap.get(aw.getEmail());
aw.setMoney(contractList.get(contractList.size() - 1 ).getPayMoney());
aw.setContractStatus(contractRepository.findByPlatformAndEmailLimit1("io", aw.getEmail(), ContractTypeEnum.MAIN.getKey()).getStatus());
aw.setContractTime(contractList.size());
} else{
aw.setContractTime(0);
aw.setContractStatus("empty");
aw.setMoney(0L);
}
if(reMap.containsKey(aw.getAccountId())){
aw.setRemStatus(reMap.get(aw.getAccountId()));
} else{
aw.setRemStatus(true);
}
if(saleMap.containsKey(aw.getSaleEamil())){
aw.setSale(saleMap.get(aw.getSaleEamil()));
}
result.add(aw);
}
}
return result;
}
@Override
public IOAccount4Web findOne(String email) {
List<Reminder> reminderList = reminderRepository.findAllDistinct("io");
Map<Long, Boolean> reMap = new HashMap<>();
if(ValidateUtil.isValid(reminderList)){
for(Reminder re : reminderList){
reMap.put(re.getAccountId(), re.getRemindStatus());
}
}
IOAccount4Web aw = account4WebRepository.findByEmail(email);
if(null == aw){
return null;
}
List<BackVisit> backVisitList = backVisitRepository.findAllByPlatformAndEmail("io", email);
if(ValidateUtil.isValid(backVisitList)){
aw.setBackTime(backVisitList.size());
} else{
aw.setBackTime(0);
}
List<Contract> contractList = contractRepository.findByPlatformAndEmail("io", email,ContractTypeEnum.MAIN.getKey());
if(ValidateUtil.isValid(contractList)){
aw.setMoney(contractList.get(contractList.size() - 1 ).getPayMoney());
aw.setContractStatus(contractList.get(contractList.size() - 1 ).getStatus());
aw.setContractTime(contractList.size());
} else{
aw.setContractTime(0);
aw.setContractStatus("empty");
aw.setMoney(0L);
}
if(reMap.containsKey(aw.getAccountId())){
aw.setRemStatus(reMap.get(aw.getAccountId()));
} else{
aw.setRemStatus(true);
}
List<SalesManLeader> roles = salesManLeaderRepository.findAll();
Map<Long, String> busMap = new HashMap<>();
for(SalesManLeader u : roles){
busMap.put((long)u.getId(),u.getName());
}
if(busMap.containsKey(aw.getBussinessMan())){
aw.setSaleName(busMap.get(aw.getBussinessMan()));
}else{
aw.setSaleName("");
}
return aw;
}
@Override
public List<ReminderLevel> findReminderlevel() {
return reminderLevelRepository.findAll();
}
@Override
public Reminder forbiden(User user, Reminder resource) {
resource.setUser(user.getId());
resource.setModifyTime(new Date());
resource.setPlatform("io");
resource.setRemindStatus(false);
resource.setDs(DateUtil.getBeforeDays(0));
return reminderRepository.save(resource);
}
@Override
public Reminder enable(User user, Reminder resource) {
resource.setUser(user.getId());
resource.setModifyTime(new Date());
resource.setPlatform("io");
resource.setRemindStatus(true);
resource.setDs(DateUtil.getBeforeDays(0));
return reminderRepository.save(resource);
}
@Override
public PressMoney forbidenPress(User user, PressMoney resource) {
resource.setUser(user.getId());
resource.setModifyTime(new Date());
resource.setPlatform("io");
resource.setPressStatus(false);
resource.setDs(DateUtil.getBeforeDays(0));
return pressMoneyRepository.save(resource);
}
@Override
public PressMoney enablePress(User user, PressMoney resource) {
resource.setUser(user.getId());
resource.setModifyTime(new Date());
resource.setPlatform("io");
resource.setPressStatus(true);
resource.setDs(DateUtil.getBeforeDays(0));
return pressMoneyRepository.save(resource);
}
@Override
public Payment pay(User user, Payment resource) {
resource.setUser(user.getId());
resource.setPayDate(new Date());
resource.setPlatform("io");
resource.setDs(DateUtil.getBeforeDays(0));
Reminder re = new Reminder();
re.setUser(user.getId());
re.setModifyTime(new Date());
re.setPlatform("io");
re.setRemindStatus(true);
re.setDs(DateUtil.getBeforeDays(0));
reminderRepository.save(re);
return paymentRepository.save(resource);
}
@Override
public BackVisit visit(User user, BackVisit resource) {
resource.setUser(user.getId());
resource.setVisitDate(new Date());
resource.setPlatform("io");
resource.setDs(DateUtil.getBeforeDays(0));
return backVisitRepository.save(resource);
}
@Override
public Map<String, Integer> findFunTimes(Long account, String startDate, String endDate) {
Map<String, Integer> result = new HashMap<>();
List<Account> accountList = accountRepository.findByRootParent(account);
List<Long> idList = new ArrayList<>();
for(Account ac : accountList){
idList.add(ac.getId());
}
List<String> appkeys = appRepository.findAppkeys(idList);
String appkeyStr = String.join("','", appkeys);
BigInteger numAccount = accountRepository.countByRootParent(account, startDate, endDate);
BigInteger numApp = appRepository.countByAccount(idList, startDate, endDate);
result.put("numAccount", numAccount.intValue());
result.put("numApp", numApp.intValue());
return result;
}
@Override
public List<Map<String, Object>> findPv(Long account, String startDate, String endDate) {
List<Map<String, Object>> result = new ArrayList<>();
List<Account> accountList = accountRepository.findByRootParent(account);
List<Long> idList = new ArrayList<>();
for(Account ac : accountList){
idList.add(ac.getId());
}
List<String> appkeys = appRepository.findAppkeys(idList);
String appkeyStr = String.join("','", appkeys);
String querySql = "select menu, count(*) as pv, count(distinct(xwho)) as uv, count(*)/count(distinct(xwho)) as puv " +
"from tkio_bigtable_view.event_f0f251af10e66a0c94d2e923d8863105 where user_appkey in ('" + appkeyStr + "') " +
"AND ds >= '" + startDate + "' AND ds <= '" + endDate + "' group by menu;";
String url = Constant.reportUrl + URI_REPORT_BY_SQL;
Map<String, String> conditions = new HashMap<>();
conditions.put("sql", querySql);
conditions.put("dbtype", "presto");
conditions.put("datatype", "list");
conditions.put("iscache", "0");
String responseJson = HttpClientUtil.doHttpPostRequest(url, "trackingio", conditions);
if(responseJson.contains("val")){
try {
JSONObject jsonObject = new JSONObject(responseJson);
JSONArray valArr = jsonObject.getJSONArray("val");
if(null != valArr && valArr.length() > 0){
for(int i = 0; i < valArr.length(); i++){
JSONObject val = valArr.getJSONObject(i);
Map<String, Object> map = new HashMap<>();
map.put("menu", val.getString("menu"));
map.put("pv", val.getInt("pv"));
map.put("uv", val.getInt("uv"));
map.put("puv", val.getInt("puv"));
result.add(map);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
return result;
}
@Override
public List<Reminder> findRed(Long account, String startDate, String endDate) {
List<Reminder> result = new ArrayList<>();
List<User> userList = userRepository.findAll();
Map<Long, String> userMap = new HashMap<>();
for(User u : userList){
userMap.put(u.getId(), u.getName());
}
List<Reminder> list = reminderRepository.findAll(account, startDate, endDate, "io");
if (ValidateUtil.isValid(list)) {
for(Reminder re : list){
re.setUserName(userMap.get(re.getUser()));
result.add(re);
}
}
return result;
}
@Override
public List<BackVisit> findVisit(Long account, String startDate, String endDate) {
List<BackVisit> result = new ArrayList<>();
List<User> userList = userRepository.findAll();
Map<Long, String> userMap = new HashMap<>();
for(User u : userList){
userMap.put(u.getId(), u.getName());
}
List<BackVisit> list = backVisitRepository.findAll(account, startDate, endDate, "io");
if (ValidateUtil.isValid(list)) {
for(BackVisit re : list){
re.setUserName(userMap.get(re.getUser()));
result.add(re);
}
}
return result;
}
@Override
public List<ContractMoney> findPay(String email, String startDate, String endDate) {
List<ContractMoney> result = new ArrayList<>();
List<User> userList = userRepository.findAll();
Map<Long, String> userMap = new HashMap<>();
for(User u : userList){
userMap.put(u.getId(), u.getName());
}
List<ContractMoney> list = contractMoneyRepository.findByDs(startDate, endDate, email,"io");
if(ValidateUtil.isValid(list)){
for(ContractMoney cm : list){
Long user = null == cm.getModifyAccount() ? cm.getUser() : cm.getModifyAccount();
cm.setCreateName(userMap.containsKey(user) ? userMap.get(user) : "");
result.add(cm);
}
}
return result;
}
@Override
public List<Contract> findContract(String email) {
List<Contract> result = new ArrayList<>();
List<User> userList = userRepository.findAll();
Map<Long, String> userMap = new HashMap<>();
for(User u : userList){
userMap.put(u.getId(), u.getName());
}
List<PackageType> typeList = packageTypeRepository.findAll();
Map<Long, String> typeMap = new HashMap<>();
if(ValidateUtil.isValid(typeList)){
for(PackageType s: typeList){
typeMap.put(s.getId(), s.getPackageName());
}
}
List<Contract> contractList = contractRepository.findByPlatformAndEmail("io", email,ContractTypeEnum.MAIN.getKey());
if(ValidateUtil.isValid(contractList)){
for(Contract cm : contractList){
cm.setSaleName(userMap.containsKey(cm.getSale()) ? userMap.get(cm.getSale()) : "");
cm.setPriceLevelName(typeMap.containsKey(cm.getPriceLevel()) ? typeMap.get(cm.getPriceLevel()) : "");
result.add(cm);
}
}
return result;
}
@Override
public List<ContractChange> findContractChange(String email, String startDate, String endDate) {
List<ContractChange> result = new ArrayList<>();
List<User> userList = userRepository.findAll();
Map<Long, String> userMap = new HashMap<>();
for(User u : userList){
userMap.put(u.getId(), u.getName());
}
List<PackageType> typeList = packageTypeRepository.findAll();
Map<Long, String> typeMap = new HashMap<>();
if(ValidateUtil.isValid(typeList)){
for(PackageType s: typeList){
typeMap.put(s.getId(), s.getPackageName());
}
}
List<ContractChange> contractChangeList = contractChangeRepository.findByPlatformAndEmail("io", email, startDate, endDate);
if(ValidateUtil.isValid(contractChangeList)){
for(ContractChange cm : contractChangeList){
Long user = null == cm.getModifyAccount() ? cm.getUser() : cm.getModifyAccount();
cm.setCreateName(userMap.containsKey(user) ? userMap.get(user) : "");
cm.setLevelName(typeMap.containsKey(cm.getLevel()) ? typeMap.get(cm.getLevel()) : "");
result.add(cm);
}
}
return result;
}
@Override
public void contractPay(User loginUser, ContractMoney resource) {
Contract contract = contractRepository.findByCode(resource.getContractCode());
//增值服务
if(contract.getType().equals(ContractTypeEnum.INCREMENT.getKey())){
if(contract.getPriceLevel().longValue() == 1l){
}
}else{//基础套餐
Account account = accountRepository.findByEmail(resource.getEmail());
PressMoney press = pressMoneyRepository.findOnePress("io",account.getId());
//如果被催款了,恢复状态
if(press != null){
account.setStatus(1);
accountRepository.save(account);
contract.setStatus("executing");
contractRepository.save(contract);
}
}
}
public Map<String, Integer> getBackTime(){
Map<String, Integer> map = new HashMap<>();
List<BackVisit> all = backVisitRepository.findAllByPlatform("io");
if (ValidateUtil.isValid(all)){
for(BackVisit bv : all){
if(map.containsKey(bv.getEmail())){
map.put(bv.getEmail(), map.get(bv.getEmail()) + 1);
} else{
map.put(bv.getEmail(), 1);
}
}
}
return map;
}
public Map<String, List<Contract>> getPay(){
Map<String, List<Contract>> map = new HashMap<>();
List<Contract> contractList = contractRepository.findByPlatform("io");
if (ValidateUtil.isValid(contractList)){
for(Contract pa : contractList){
if(map.containsKey(pa.getEmail())){
List<Contract> list = map.get(pa.getEmail());
list.add(pa);
map.put(pa.getEmail(), list);
} else{
List<Contract> list = new TreeList<>();
list.add(pa);
map.put(pa.getEmail(), list);
}
}
}
return map;
}
}
package userio.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import userio.model.SalesManLeader;
import userio.repository.IOSalesManLeaderRepository;
import userio.service.IOSalesManService;
/**
* Created by mxq on 2018/1/2.
*/
@Service
public class IOSaleManServiceImpl implements IOSalesManService {
@Autowired
IOSalesManLeaderRepository salesManLeaderRepository;
@Override
public void create(String loginEmail, String email, String name) {
SalesManLeader salesManLeader = new SalesManLeader();
salesManLeader.setEmail(email);
salesManLeader.setName(name);
SalesManLeader manLeader = salesManLeaderRepository.findOneByEmail(loginEmail);
if(null != manLeader){
salesManLeader.setLeader(manLeader.getLeader());
salesManLeaderRepository.save(salesManLeader);
}else{
SalesManLeader save = salesManLeaderRepository.save(salesManLeader);
save.setLeader(save.getId());
salesManLeaderRepository.save(save);
}
}
}
package userio.task;
import common.model.IOAccount4Web;
import common.repository.IOAccount4WebRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import userio.model.Account;
import userio.model.PackageType;
import userio.model.SalesManLeader;
import userio.repository.IOAccountRepository;
import userio.repository.IOPackageTypeRepository;
import userio.repository.IOSalesManLeaderRepository;
import util.DateUtil;
import util.ValidateUtil;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created by mxq on 2017/12/25.
*/
public class IOAccountTask {
private static Logger logger = LoggerFactory.getLogger(IOAccountTask.class);
@Autowired
IOAccountRepository accountRepository;
@Autowired
IOAccount4WebRepository account4WebRepository;
@Autowired
private IOPackageTypeRepository packageTypeRepository;
@Autowired
IOSalesManLeaderRepository salesManLeaderRepository;
public void task(){
logger.info("tkio task start :" + System.currentTimeMillis());
//清空前一天数据
account4WebRepository.deleteAll();
List<IOAccount4Web> list = new ArrayList<>();
//已过期的直接设置成过期
List<Account> pastAccountList = accountRepository.findRootParentsPast(DateUtil.getBeforeDays(0));
list.addAll(transform(pastAccountList, "已过期"));
//未过期
List<Account> unpastAccountList = accountRepository.findRootParentsUnPast(DateUtil.getBeforeDays(0));
list.addAll(transform(unpastAccountList, "已激活"));
List<Account> forbidenList = accountRepository.findRootParentsForidin();
list.addAll(transform(forbidenList, "已禁用"));
account4WebRepository.save(list);
logger.info("tkio task end :" + System.currentTimeMillis());
}
List<IOAccount4Web> transform(List<Account> accounts, String status){
List<SalesManLeader> SalesManLeader = salesManLeaderRepository.findAll();
Map<Long, String> saleMap = new HashMap<>();
for(SalesManLeader pt : SalesManLeader){
saleMap.put((long)pt.getId(), pt.getEmail());
}
List<PackageType> packageTypeList = packageTypeRepository.findAll();
Map<Long, String> map = new HashMap<>();
for(PackageType pt : packageTypeList){
map.put(pt.getId(), pt.getPackageName());
}
List<IOAccount4Web> list = new ArrayList<>();
if(ValidateUtil.isValid(accounts)){
for(Account ac : accounts){
IOAccount4Web account4Web = new IOAccount4Web();
account4Web.setStatus(status);
account4Web.setAccountId(ac.getId());
account4Web.setEmail(ac.getEmail());
account4Web.setCompany(ac.getCompany());
account4Web.setCreateDate(ac.getPubDate());
account4Web.setPackageType(map.get(ac.getPricelevel()));
account4Web.setPastDate(ac.getPastDate());
account4Web.setUser(ac.getName());
account4Web.setTell(ac.getPhone());
account4Web.setBussinessMan(ac.getBussinessman());
if(saleMap.containsKey(ac.getBussinessman())){
account4Web.setSaleEamil(saleMap.get(ac.getBussinessman()));
}
list.add(account4Web);
}
}
return list;
}
}
......@@ -10,6 +10,7 @@
<context:component-scan base-package="common.controller" />
<context:component-scan base-package="track.controller" />
<context:component-scan base-package="tkio.controller" />
<context:component-scan base-package="userio.controller" />
<mvc:annotation-driven>
<mvc:argument-resolvers>
......
......@@ -12,7 +12,7 @@
<bean id="tkioAccountTask" class="tkio.task.AccountTask"></bean>
<task:scheduled-tasks>
<!--//定时同步短链数据(每5分钟执行一次)-->
<task:scheduled ref="tkioAccountTask" method="task" cron="0 20 0 * * ?"/>
<task:scheduled ref="tkioAccountTask" method="task" cron="0 10 10 * * ?"/>
</task:scheduled-tasks>
<bean id="tkioNoticeTask" class="tkio.task.NoticeTask"></bean>
......@@ -45,5 +45,10 @@
<task:scheduled ref="SyncAppDataTask" method="syncAppDeviceNum" cron="0 11 0 * * ?"/>
</task:scheduled-tasks>
<bean id="ioAccountTask" class="userio.task.IOAccountTask"></bean>
<task:scheduled-tasks>
<!--//定时同步短链数据(每5分钟执行一次)-->
<task:scheduled ref="ioAccountTask" method="task" cron="0 10 10 * * ?"/>
</task:scheduled-tasks>
</beans>
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