Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gic-cloud
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
data-hook
gic-cloud
Commits
a2ccc65c
Commit
a2ccc65c
authored
Apr 10, 2023
by
fudahua
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 正在处理的
parent
82add547
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
87 additions
and
40 deletions
+87
-40
dubbo.cache
...loud-data-hook-service/dubbo/local/gic-member/dubbo.cache
+9
-9
DownloadTaskDao.java
.../com/gic/cloud/data/hook/service/dao/DownloadTaskDao.java
+5
-0
DownloadTaskServiceImpl.java
...cloud/data/hook/service/impl/DownloadTaskServiceImpl.java
+7
-0
FlatQueryResultServiceImpl.java
...ud/data/hook/service/impl/FlatQueryResultServiceImpl.java
+52
-31
DownloadTaskDao.xml
...ook-service/src/main/resources/mapper/DownloadTaskDao.xml
+14
-0
No files found.
gic-cloud-data-hook-service/dubbo/local/gic-member/dubbo.cache
View file @
a2ccc65c
#Dubbo Registry Cache
#
Thu Apr 06 21:53:29
CST 2023
com.gic.cloud.data.hook.api.service.SearchLogService=empty\://192.168.200.
250\:20338/com.gic.cloud.data.hook.api.service.SearchLogService?anyhost\=true&application\=gic-cloud-data-hook&category\=configurators&check\=false&default.dispatcher\=maintenance&default.queues\=10000&default.retries\=0&default.threads\=30&default.timeout\=10000&dubbo\=2.8.5&generic\=false&interface\=com.gic.cloud.data.hook.api.service.SearchLogService&methods\=saveLog&payload\=41557050&pid\=23960&side\=provider&timeout\=120000×tamp\=168078920911
0
com.gic.cloud.data.hook.api.service.IDownloadTaskService=empty\://192.168.200.
250\:20338/com.gic.cloud.data.hook.api.service.IDownloadTaskService?anyhost\=true&application\=gic-cloud-data-hook&category\=configurators&check\=false&default.dispatcher\=maintenance&default.queues\=10000&default.retries\=0&default.threads\=30&default.timeout\=10000&dubbo\=2.8.5&generic\=false&interface\=com.gic.cloud.data.hook.api.service.IDownloadTaskService&methods\=createRiskModeRecord,checkTaskStatus,getRiskModeRecordPage,listUnDownloadTask,createDownloadRecord,getDownloadRecordPage,getDownloadProcess,deleteDownloadTask,getDownloadTaskPage&payload\=41557050&pid\=23960&side\=provider&timeout\=120000×tamp\=1680789209071
com.gic.cloud.data.hook.api.service.IFlatQueryTableService=empty\://192.168.200.
250\:20338/com.gic.cloud.data.hook.api.service.IFlatQueryTableService?anyhost\=true&application\=gic-cloud-data-hook&category\=configurators&check\=false&default.dispatcher\=maintenance&default.queues\=10000&default.retries\=0&default.threads\=30&default.timeout\=10000&dubbo\=2.8.5&generic\=false&interface\=com.gic.cloud.data.hook.api.service.IFlatQueryTableService&methods\=queryFlatQueryFavo,queryFlatQueryTableById,queryFlatQueryTablePage,createFlatQueryFavo,removeFlatQueryFavo,queryFlatQueryTableDetailByTableId&payload\=41557050&pid\=23960&side\=provider&timeout\=120000×tamp\=1680789209027
com.gic.enterprise.api.service.EnterpriseService=empty\://192.168.200.
250/com.gic.enterprise.api.service.EnterpriseService?application\=gic-cloud-data-hook&category\=configurators&default.check\=false&default.loadbalance\=traceid&default.retries\=0&default.timeout\=10000&dubbo\=2.8.5&interface\=com.gic.enterprise.api.service.EnterpriseService&methods\=queryTelTaskLog,getEnterpriseIdBySmsSignText,isWmAppid,getEnterpriseByFactoryCode,updateHeartbeatTime,getEnterpriseAndUserByName,isExitFactoryCode,reFreshMemberSystemInfo,activityAnnounceClerkByMQ,syncToWeimob,saveAnnounceClerkLogByMQ,queryEnterpriseImplementList,findEnterpriseIdsAndNamesByCliqueId,listAllMemberErpField,getByWxappkey,sendDailyReportToAllStoreClerk,getAllEnterpriseList,listEnterprise,initEnterprise,getByWxappkeyForfwh,dealSingleStoredOldData,listCliqueBrandByEnterpriseId,saveAnnounceAndSendMsg,executeDataUpReport,getEnterpriseMemberAppSetting,listErpField,listCliqueEnterprise,isOpenClique,createTask,getEnterPriseByCorpId,getRelOpenCardList,getEnterpriseIdsByFactoryCode,getAnnounceClerkExtendList,saveEnterpriseInfo,repairTabGicPaidAppConfig,queryEnterpriseAccountStandard,updateAuthTypeByAppkey,getEnterpriseIdByQrcodeParams,deleteWaitTaskAnnounceByEnterpriseId,saveAnnounceClerkExtend,updateEnterpriseClique,getEnterPriseByAppKey,listEnterpriseAndClique,isContainInJNBY,saveEnterpriseMemberAppSetting,getEnterpriseWxaRelationList,queryStorePerformanceInfo,saveOrUpdateEnterWxaRelation,getAccompanyOpenidByEnterprise,activityAnnounceClerk,saveAnnounceClerkLog,queryAppId,getEnterpriseByIdNoStatus,saveRelOpenCardList,getUpRoleName,getDataPermissionType,getOnLiveStoreNumByEnterprise,outageEnterprise,updateEnterPriseBydto,reFreshTemplateAdvice,queryCompetitorList,getEnterpriseByEid,createStorePerformance,jpushByRegistrationIdByMQ,isExists,updateEnterpriseCustomSettingForKey,listSubEnterprise,reFreshEntetrpriseInfo,updateEnabledState,getEnterprise2OrderDTO,saveCliqueInfo,updateEnterpriseSettingInfoByEid,getEnterpriseSettingByEnterpriseId,getEnterpriseByWebankAppid,selectEnterpriseById,getEnterpriseByName,getEnterpriseCustomSettingForKey,getEnterpriseIdList,queryAuthImg,getEnterpriseCustomSetting,getEnterpriseSettingByEid,getEnterprise2OrderDTONoProcess,createStorePerformanceByMQ,getEnterpriseIdBySourceChannel,createTaskLog,listByEnterpriseId,updateTablesCliqueMemberId,updateEnterprise,getEnterpriseById,createStoreYmByStoreIdAndClerkId,getCallingPhoneByEnterpriseId,taskCount,updateTask,updateClerkTaskLog,isSycYz,getEnterPriseByMS,modifyEnterprise,getOpenClique,queryTaskRecordLog,queryAnnounceReadCount,sendWaitingTaskAnnounce,updateCliqueStatus,hasMembershipLevel,getEnterpriseIdsByIntegralFlag,updateEntDataCountFlag,getEnterpriseFromMemCacById,hasStore,queryTemplateAdvice,saveAnnouncement,getEnterprise2ERPDTOBList,getEnterpriseAppkeyList,queryTelTaskRecordLog,updateEnterpriseCustomSetting,isExistSmsSign,pageClique,queryErpType,getTemplateAdvice,enterpriseBusiness,queryEnterpriseListByIds,reFreshEnterpriseSettingInfo,listEnterpriseByIds,hasIntegralSettlement,selectEnterTransacationDTOByEnterpriseId,getMemberSystem,updateEnterpriseExpire,saveErpFieldList,updateEnterpriseSettingWeimobByEid,queryByAuthType,getEnterpriseList,deleteTask,modifyEnterpriseAppkey&pid\=23960&revision\=3.0-20230404.080516-2738&side\=consumer&timeout\=10000×tamp\=1680789200574 empty\://192.168.200.250/com.gic.enterprise.api.service.EnterpriseService?application\=gic-cloud-data-hook&category\=routers&default.check\=false&default.loadbalance\=traceid&default.retries\=0&default.timeout\=10000&dubbo\=2.8.5&interface\=com.gic.enterprise.api.service.EnterpriseService&methods\=queryTelTaskLog,getEnterpriseIdBySmsSignText,isWmAppid,getEnterpriseByFactoryCode,updateHeartbeatTime,getEnterpriseAndUserByName,isExitFactoryCode,reFreshMemberSystemInfo,activityAnnounceClerkByMQ,syncToWeimob,saveAnnounceClerkLogByMQ,queryEnterpriseImplementList,findEnterpriseIdsAndNamesByCliqueId,listAllMemberErpField,getByWxappkey,sendDailyReportToAllStoreClerk,getAllEnterpriseList,listEnterprise,initEnterprise,getByWxappkeyForfwh,dealSingleStoredOldData,listCliqueBrandByEnterpriseId,saveAnnounceAndSendMsg,executeDataUpReport,getEnterpriseMemberAppSetting,listErpField,listCliqueEnterprise,isOpenClique,createTask,getEnterPriseByCorpId,getRelOpenCardList,getEnterpriseIdsByFactoryCode,getAnnounceClerkExtendList,saveEnterpriseInfo,repairTabGicPaidAppConfig,queryEnterpriseAccountStandard,updateAuthTypeByAppkey,getEnterpriseIdByQrcodeParams,deleteWaitTaskAnnounceByEnterpriseId,saveAnnounceClerkExtend,updateEnterpriseClique,getEnterPriseByAppKey,listEnterpriseAndClique,isContainInJNBY,saveEnterpriseMemberAppSetting,getEnterpriseWxaRelationList,queryStorePerformanceInfo,saveOrUpdateEnterWxaRelation,getAccompanyOpenidByEnterprise,activityAnnounceClerk,saveAnnounceClerkLog,queryAppId,getEnterpriseByIdNoStatus,saveRelOpenCardList,getUpRoleName,getDataPermissionType,getOnLiveStoreNumByEnterprise,outageEnterprise,updateEnterPriseBydto,reFreshTemplateAdvice,queryCompetitorList,getEnterpriseByEid,createStorePerformance,jpushByRegistrationIdByMQ,isExists,updateEnterpriseCustomSettingForKey,listSubEnterprise,reFreshEntetrpriseInfo,updateEnabledState,getEnterprise2OrderDTO,saveCliqueInfo,updateEnterpriseSettingInfoByEid,getEnterpriseSettingByEnterpriseId,getEnterpriseByWebankAppid,selectEnterpriseById,getEnterpriseByName,getEnterpriseCustomSettingForKey,getEnterpriseIdList,queryAuthImg,getEnterpriseCustomSetting,getEnterpriseSettingByEid,getEnterprise2OrderDTONoProcess,createStorePerformanceByMQ,getEnterpriseIdBySourceChannel,createTaskLog,listByEnterpriseId,updateTablesCliqueMemberId,updateEnterprise,getEnterpriseById,createStoreYmByStoreIdAndClerkId,getCallingPhoneByEnterpriseId,taskCount,updateTask,updateClerkTaskLog,isSycYz,getEnterPriseByMS,modifyEnterprise,getOpenClique,queryTaskRecordLog,queryAnnounceReadCount,sendWaitingTaskAnnounce,updateCliqueStatus,hasMembershipLevel,getEnterpriseIdsByIntegralFlag,updateEntDataCountFlag,getEnterpriseFromMemCacById,hasStore,queryTemplateAdvice,saveAnnouncement,getEnterprise2ERPDTOBList,getEnterpriseAppkeyList,queryTelTaskRecordLog,updateEnterpriseCustomSetting,isExistSmsSign,pageClique,queryErpType,getTemplateAdvice,enterpriseBusiness,queryEnterpriseListByIds,reFreshEnterpriseSettingInfo,listEnterpriseByIds,hasIntegralSettlement,selectEnterTransacationDTOByEnterpriseId,getMemberSystem,updateEnterpriseExpire,saveErpFieldList,updateEnterpriseSettingWeimobByEid,queryByAuthType,getEnterpriseList,deleteTask,modifyEnterpriseAppkey&pid\=23960&revision\=3.0-20230404.080516-2738&side\=consumer&timeout\=10000×tamp\=1680789200574 empty\://192.168.200.250/com.gic.enterprise.api.service.EnterpriseService?application\=gic-cloud-data-hook&category\=providers&default.check\=false&default.loadbalance\=traceid&default.retries\=0&default.timeout\=10000&dubbo\=2.8.5&interface\=com.gic.enterprise.api.service.EnterpriseService&methods\=queryTelTaskLog,getEnterpriseIdBySmsSignText,isWmAppid,getEnterpriseByFactoryCode,updateHeartbeatTime,getEnterpriseAndUserByName,isExitFactoryCode,reFreshMemberSystemInfo,activityAnnounceClerkByMQ,syncToWeimob,saveAnnounceClerkLogByMQ,queryEnterpriseImplementList,findEnterpriseIdsAndNamesByCliqueId,listAllMemberErpField,getByWxappkey,sendDailyReportToAllStoreClerk,getAllEnterpriseList,listEnterprise,initEnterprise,getByWxappkeyForfwh,dealSingleStoredOldData,listCliqueBrandByEnterpriseId,saveAnnounceAndSendMsg,executeDataUpReport,getEnterpriseMemberAppSetting,listErpField,listCliqueEnterprise,isOpenClique,createTask,getEnterPriseByCorpId,getRelOpenCardList,getEnterpriseIdsByFactoryCode,getAnnounceClerkExtendList,saveEnterpriseInfo,repairTabGicPaidAppConfig,queryEnterpriseAccountStandard,updateAuthTypeByAppkey,getEnterpriseIdByQrcodeParams,deleteWaitTaskAnnounceByEnterpriseId,saveAnnounceClerkExtend,updateEnterpriseClique,getEnterPriseByAppKey,listEnterpriseAndClique,isContainInJNBY,saveEnterpriseMemberAppSetting,getEnterpriseWxaRelationList,queryStorePerformanceInfo,saveOrUpdateEnterWxaRelation,getAccompanyOpenidByEnterprise,activityAnnounceClerk,saveAnnounceClerkLog,queryAppId,getEnterpriseByIdNoStatus,saveRelOpenCardList,getUpRoleName,getDataPermissionType,getOnLiveStoreNumByEnterprise,outageEnterprise,updateEnterPriseBydto,reFreshTemplateAdvice,queryCompetitorList,getEnterpriseByEid,createStorePerformance,jpushByRegistrationIdByMQ,isExists,updateEnterpriseCustomSettingForKey,listSubEnterprise,reFreshEntetrpriseInfo,updateEnabledState,getEnterprise2OrderDTO,saveCliqueInfo,updateEnterpriseSettingInfoByEid,getEnterpriseSettingByEnterpriseId,getEnterpriseByWebankAppid,selectEnterpriseById,getEnterpriseByName,getEnterpriseCustomSettingForKey,getEnterpriseIdList,queryAuthImg,getEnterpriseCustomSetting,getEnterpriseSettingByEid,getEnterprise2OrderDTONoProcess,createStorePerformanceByMQ,getEnterpriseIdBySourceChannel,createTaskLog,listByEnterpriseId,updateTablesCliqueMemberId,updateEnterprise,getEnterpriseById,createStoreYmByStoreIdAndClerkId,getCallingPhoneByEnterpriseId,taskCount,updateTask,updateClerkTaskLog,isSycYz,getEnterPriseByMS,modifyEnterprise,getOpenClique,queryTaskRecordLog,queryAnnounceReadCount,sendWaitingTaskAnnounce,updateCliqueStatus,hasMembershipLevel,getEnterpriseIdsByIntegralFlag,updateEntDataCountFlag,getEnterpriseFromMemCacById,hasStore,queryTemplateAdvice,saveAnnouncement,getEnterprise2ERPDTOBList,getEnterpriseAppkeyList,queryTelTaskRecordLog,updateEnterpriseCustomSetting,isExistSmsSign,pageClique,queryErpType,getTemplateAdvice,enterpriseBusiness,queryEnterpriseListByIds,reFreshEnterpriseSettingInfo,listEnterpriseByIds,hasIntegralSettlement,selectEnterTransacationDTOByEnterpriseId,getMemberSystem,updateEnterpriseExpire,saveErpFieldList,updateEnterpriseSettingWeimobByEid,queryByAuthType,getEnterpriseList,deleteTask,modifyEnterpriseAppkey&pid\=23960&revision\=3.0-20230404.080516-2738&side\=consumer&timeout\=10000×tamp\=1680789200574
com.gic.cloud.data.hook.api.service.TableSyncRecordService=empty\://192.168.200.
250\:20338/com.gic.cloud.data.hook.api.service.TableSyncRecordService?anyhost\=true&application\=gic-cloud-data-hook&category\=configurators&check\=false&default.dispatcher\=maintenance&default.queues\=10000&default.retries\=0&default.threads\=30&default.timeout\=10000&dubbo\=2.8.5&generic\=false&interface\=com.gic.cloud.data.hook.api.service.TableSyncRecordService&methods\=lastSyncDateTime&payload\=41557050&pid\=23960&side\=provider×tamp\=1680789209128
com.gic.cloud.data.hook.api.service.IFlatQueryResultService=empty\://192.168.200.
250\:20338/com.gic.cloud.data.hook.api.service.IFlatQueryResultService?anyhost\=true&application\=gic-cloud-data-hook&category\=configurators&check\=false&default.dispatcher\=maintenance&default.queues\=10000&default.retries\=0&default.threads\=30&default.timeout\=10000&dubbo\=2.8.5&generic\=false&interface\=com.gic.cloud.data.hook.api.service.IFlatQueryResultService&methods\=getFlatQueryFilterData,initTask,estimateFlatQueryDownloadTask,buildFlatQueryDownloadTask,getFlatQueryResult&payload\=41557050&pid\=23960&side\=provider&timeout\=120000×tamp\=1680789209047
com.gic.cloud.data.hook.api.service.IMyFlatQueryService=empty\://192.168.200.
250\:20338/com.gic.cloud.data.hook.api.service.IMyFlatQueryService?anyhost\=true&application\=gic-cloud-data-hook&category\=configurators&check\=false&default.dispatcher\=maintenance&default.queues\=10000&default.retries\=0&default.threads\=30&default.timeout\=10000&dubbo\=2.8.5&generic\=false&interface\=com.gic.cloud.data.hook.api.service.IMyFlatQueryService&methods\=queryMyFlatQueryPage,createMyFlatQuery,delMyFields,deleteMyFlatQuery,updateMyFlatQuery,queryMyFlatQueryById&payload\=41557050&pid\=23960&side\=provider&timeout\=120000×tamp\=1680789209092
com.gic.cloud.data.hook.api.service.IFreeQueryService=empty\://192.168.200.
250\:20338/com.gic.cloud.data.hook.api.service.IFreeQueryService?anyhost\=true&application\=gic-cloud-data-hook&category\=configurators&check\=false&default.dispatcher\=maintenance&default.queues\=10000&default.retries\=0&default.threads\=30&default.timeout\=10000&dubbo\=2.8.5&generic\=false&interface\=com.gic.cloud.data.hook.api.service.IFreeQueryService&methods\=listFilterUserName,getFreeQueryRecordByUserIdAndRecordId,createFreeQueryRecord,deleteFreeQueryRecord,getColumnsByTable,buildFreeQueryDownloadTask,updateFreeQueryRecord,getFreeQueryResult,listFilterPhoneAndCardNoField,getFreeQuerySource,initTask,getFreeQueryCount,listFilterPhoneField,listFilterPhoneAndCardNoCardNumField,getFreeQueryRecordListByUserId,getFreeQueryTableList&payload\=41557050&pid\=23960&side\=provider&timeout\=120000×tamp\=1680789208902
#
Fri Apr 07 16:28:40
CST 2023
com.gic.cloud.data.hook.api.service.SearchLogService=empty\://192.168.200.
53\:20338/com.gic.cloud.data.hook.api.service.SearchLogService?anyhost\=true&application\=gic-cloud-data-hook&category\=configurators&check\=false&default.dispatcher\=maintenance&default.queues\=10000&default.retries\=0&default.threads\=30&default.timeout\=10000&dubbo\=2.8.5&generic\=false&interface\=com.gic.cloud.data.hook.api.service.SearchLogService&methods\=saveLog&payload\=41557050&pid\=37324&side\=provider&timeout\=120000×tamp\=168085612039
0
com.gic.cloud.data.hook.api.service.IDownloadTaskService=empty\://192.168.200.
53\:20338/com.gic.cloud.data.hook.api.service.IDownloadTaskService?anyhost\=true&application\=gic-cloud-data-hook&category\=configurators&check\=false&default.dispatcher\=maintenance&default.queues\=10000&default.retries\=0&default.threads\=30&default.timeout\=10000&dubbo\=2.8.5&generic\=false&interface\=com.gic.cloud.data.hook.api.service.IDownloadTaskService&methods\=createRiskModeRecord,checkTaskStatus,createDownloadRecord,listUnDownloadTask,getRiskModeRecordPage,getDownloadRecordPage,deleteDownloadTask,getDownloadProcess,getDownloadTaskPage&payload\=41557050&pid\=37324&side\=provider&timeout\=120000×tamp\=1680856120340
com.gic.cloud.data.hook.api.service.IFlatQueryTableService=empty\://192.168.200.
53\:20338/com.gic.cloud.data.hook.api.service.IFlatQueryTableService?anyhost\=true&application\=gic-cloud-data-hook&category\=configurators&check\=false&default.dispatcher\=maintenance&default.queues\=10000&default.retries\=0&default.threads\=30&default.timeout\=10000&dubbo\=2.8.5&generic\=false&interface\=com.gic.cloud.data.hook.api.service.IFlatQueryTableService&methods\=queryFlatQueryFavo,queryFlatQueryTableById,queryFlatQueryTablePage,createFlatQueryFavo,queryFlatQueryTableDetailByTableId,removeFlatQueryFavo&payload\=41557050&pid\=37324&side\=provider&timeout\=120000×tamp\=1680856120293
com.gic.enterprise.api.service.EnterpriseService=empty\://192.168.200.
53/com.gic.enterprise.api.service.EnterpriseService?application\=gic-cloud-data-hook&category\=configurators&default.check\=false&default.loadbalance\=traceid&default.retries\=0&default.timeout\=10000&dubbo\=2.8.5&interface\=com.gic.enterprise.api.service.EnterpriseService&methods\=queryTelTaskLog,getEnterpriseIdBySmsSignText,isWmAppid,getEnterpriseByFactoryCode,updateHeartbeatTime,getEnterpriseAndUserByName,isExitFactoryCode,reFreshMemberSystemInfo,activityAnnounceClerkByMQ,syncToWeimob,saveAnnounceClerkLogByMQ,queryEnterpriseImplementList,findEnterpriseIdsAndNamesByCliqueId,listAllMemberErpField,getByWxappkey,sendDailyReportToAllStoreClerk,getAllEnterpriseList,listEnterprise,initEnterprise,dealSingleStoredOldData,getByWxappkeyForfwh,listCliqueBrandByEnterpriseId,saveAnnounceAndSendMsg,executeDataUpReport,getEnterpriseMemberAppSetting,listErpField,listCliqueEnterprise,isOpenClique,createTask,getEnterPriseByCorpId,getRelOpenCardList,getEnterpriseIdsByFactoryCode,repairTabGicPaidAppConfig,saveEnterpriseInfo,getAnnounceClerkExtendList,queryEnterpriseAccountStandard,updateAuthTypeByAppkey,getEnterpriseIdByQrcodeParams,deleteWaitTaskAnnounceByEnterpriseId,saveAnnounceClerkExtend,updateEnterpriseClique,getEnterPriseByAppKey,listEnterpriseAndClique,isContainInJNBY,saveEnterpriseMemberAppSetting,getEnterpriseWxaRelationList,queryStorePerformanceInfo,getAccompanyOpenidByEnterprise,activityAnnounceClerk,saveOrUpdateEnterWxaRelation,saveAnnounceClerkLog,queryAppId,getEnterpriseByIdNoStatus,saveRelOpenCardList,getUpRoleName,getDataPermissionType,getOnLiveStoreNumByEnterprise,outageEnterprise,reFreshTemplateAdvice,updateEnterPriseBydto,queryCompetitorList,getEnterpriseByEid,createStorePerformance,jpushByRegistrationIdByMQ,isExists,updateEnterpriseCustomSettingForKey,listSubEnterprise,reFreshEntetrpriseInfo,updateEnabledState,getEnterprise2OrderDTO,saveCliqueInfo,updateEnterpriseSettingInfoByEid,getEnterpriseSettingByEnterpriseId,getEnterpriseByWebankAppid,selectEnterpriseById,getEnterpriseByName,getEnterpriseCustomSettingForKey,getEnterpriseIdList,queryAuthImg,getEnterpriseCustomSetting,getEnterpriseSettingByEid,getEnterprise2OrderDTONoProcess,createStorePerformanceByMQ,getEnterpriseIdBySourceChannel,createTaskLog,listByEnterpriseId,updateTablesCliqueMemberId,updateEnterprise,getEnterpriseById,createStoreYmByStoreIdAndClerkId,getCallingPhoneByEnterpriseId,taskCount,updateTask,updateClerkTaskLog,isSycYz,getEnterPriseByMS,modifyEnterprise,getOpenClique,queryTaskRecordLog,queryAnnounceReadCount,sendWaitingTaskAnnounce,updateCliqueStatus,hasMembershipLevel,getEnterpriseIdsByIntegralFlag,updateEntDataCountFlag,getEnterpriseFromMemCacById,hasStore,queryTemplateAdvice,saveAnnouncement,getEnterprise2ERPDTOBList,getEnterpriseAppkeyList,queryTelTaskRecordLog,updateEnterpriseCustomSetting,pageClique,isExistSmsSign,queryErpType,getTemplateAdvice,enterpriseBusiness,reFreshEnterpriseSettingInfo,queryEnterpriseListByIds,listEnterpriseByIds,hasIntegralSettlement,selectEnterTransacationDTOByEnterpriseId,getMemberSystem,updateEnterpriseExpire,saveErpFieldList,updateEnterpriseSettingWeimobByEid,queryByAuthType,getEnterpriseList,deleteTask,modifyEnterpriseAppkey&pid\=37324&revision\=3.0-20230406.121146-2739&side\=consumer&timeout\=10000×tamp\=1680856105178 empty\://192.168.200.53/com.gic.enterprise.api.service.EnterpriseService?application\=gic-cloud-data-hook&category\=routers&default.check\=false&default.loadbalance\=traceid&default.retries\=0&default.timeout\=10000&dubbo\=2.8.5&interface\=com.gic.enterprise.api.service.EnterpriseService&methods\=queryTelTaskLog,getEnterpriseIdBySmsSignText,isWmAppid,getEnterpriseByFactoryCode,updateHeartbeatTime,getEnterpriseAndUserByName,isExitFactoryCode,reFreshMemberSystemInfo,activityAnnounceClerkByMQ,syncToWeimob,saveAnnounceClerkLogByMQ,queryEnterpriseImplementList,findEnterpriseIdsAndNamesByCliqueId,listAllMemberErpField,getByWxappkey,sendDailyReportToAllStoreClerk,getAllEnterpriseList,listEnterprise,initEnterprise,dealSingleStoredOldData,getByWxappkeyForfwh,listCliqueBrandByEnterpriseId,saveAnnounceAndSendMsg,executeDataUpReport,getEnterpriseMemberAppSetting,listErpField,listCliqueEnterprise,isOpenClique,createTask,getEnterPriseByCorpId,getRelOpenCardList,getEnterpriseIdsByFactoryCode,repairTabGicPaidAppConfig,saveEnterpriseInfo,getAnnounceClerkExtendList,queryEnterpriseAccountStandard,updateAuthTypeByAppkey,getEnterpriseIdByQrcodeParams,deleteWaitTaskAnnounceByEnterpriseId,saveAnnounceClerkExtend,updateEnterpriseClique,getEnterPriseByAppKey,listEnterpriseAndClique,isContainInJNBY,saveEnterpriseMemberAppSetting,getEnterpriseWxaRelationList,queryStorePerformanceInfo,getAccompanyOpenidByEnterprise,activityAnnounceClerk,saveOrUpdateEnterWxaRelation,saveAnnounceClerkLog,queryAppId,getEnterpriseByIdNoStatus,saveRelOpenCardList,getUpRoleName,getDataPermissionType,getOnLiveStoreNumByEnterprise,outageEnterprise,reFreshTemplateAdvice,updateEnterPriseBydto,queryCompetitorList,getEnterpriseByEid,createStorePerformance,jpushByRegistrationIdByMQ,isExists,updateEnterpriseCustomSettingForKey,listSubEnterprise,reFreshEntetrpriseInfo,updateEnabledState,getEnterprise2OrderDTO,saveCliqueInfo,updateEnterpriseSettingInfoByEid,getEnterpriseSettingByEnterpriseId,getEnterpriseByWebankAppid,selectEnterpriseById,getEnterpriseByName,getEnterpriseCustomSettingForKey,getEnterpriseIdList,queryAuthImg,getEnterpriseCustomSetting,getEnterpriseSettingByEid,getEnterprise2OrderDTONoProcess,createStorePerformanceByMQ,getEnterpriseIdBySourceChannel,createTaskLog,listByEnterpriseId,updateTablesCliqueMemberId,updateEnterprise,getEnterpriseById,createStoreYmByStoreIdAndClerkId,getCallingPhoneByEnterpriseId,taskCount,updateTask,updateClerkTaskLog,isSycYz,getEnterPriseByMS,modifyEnterprise,getOpenClique,queryTaskRecordLog,queryAnnounceReadCount,sendWaitingTaskAnnounce,updateCliqueStatus,hasMembershipLevel,getEnterpriseIdsByIntegralFlag,updateEntDataCountFlag,getEnterpriseFromMemCacById,hasStore,queryTemplateAdvice,saveAnnouncement,getEnterprise2ERPDTOBList,getEnterpriseAppkeyList,queryTelTaskRecordLog,updateEnterpriseCustomSetting,pageClique,isExistSmsSign,queryErpType,getTemplateAdvice,enterpriseBusiness,reFreshEnterpriseSettingInfo,queryEnterpriseListByIds,listEnterpriseByIds,hasIntegralSettlement,selectEnterTransacationDTOByEnterpriseId,getMemberSystem,updateEnterpriseExpire,saveErpFieldList,updateEnterpriseSettingWeimobByEid,queryByAuthType,getEnterpriseList,deleteTask,modifyEnterpriseAppkey&pid\=37324&revision\=3.0-20230406.121146-2739&side\=consumer&timeout\=10000×tamp\=1680856105178 empty\://192.168.200.53/com.gic.enterprise.api.service.EnterpriseService?application\=gic-cloud-data-hook&category\=providers&default.check\=false&default.loadbalance\=traceid&default.retries\=0&default.timeout\=10000&dubbo\=2.8.5&interface\=com.gic.enterprise.api.service.EnterpriseService&methods\=queryTelTaskLog,getEnterpriseIdBySmsSignText,isWmAppid,getEnterpriseByFactoryCode,updateHeartbeatTime,getEnterpriseAndUserByName,isExitFactoryCode,reFreshMemberSystemInfo,activityAnnounceClerkByMQ,syncToWeimob,saveAnnounceClerkLogByMQ,queryEnterpriseImplementList,findEnterpriseIdsAndNamesByCliqueId,listAllMemberErpField,getByWxappkey,sendDailyReportToAllStoreClerk,getAllEnterpriseList,listEnterprise,initEnterprise,dealSingleStoredOldData,getByWxappkeyForfwh,listCliqueBrandByEnterpriseId,saveAnnounceAndSendMsg,executeDataUpReport,getEnterpriseMemberAppSetting,listErpField,listCliqueEnterprise,isOpenClique,createTask,getEnterPriseByCorpId,getRelOpenCardList,getEnterpriseIdsByFactoryCode,repairTabGicPaidAppConfig,saveEnterpriseInfo,getAnnounceClerkExtendList,queryEnterpriseAccountStandard,updateAuthTypeByAppkey,getEnterpriseIdByQrcodeParams,deleteWaitTaskAnnounceByEnterpriseId,saveAnnounceClerkExtend,updateEnterpriseClique,getEnterPriseByAppKey,listEnterpriseAndClique,isContainInJNBY,saveEnterpriseMemberAppSetting,getEnterpriseWxaRelationList,queryStorePerformanceInfo,getAccompanyOpenidByEnterprise,activityAnnounceClerk,saveOrUpdateEnterWxaRelation,saveAnnounceClerkLog,queryAppId,getEnterpriseByIdNoStatus,saveRelOpenCardList,getUpRoleName,getDataPermissionType,getOnLiveStoreNumByEnterprise,outageEnterprise,reFreshTemplateAdvice,updateEnterPriseBydto,queryCompetitorList,getEnterpriseByEid,createStorePerformance,jpushByRegistrationIdByMQ,isExists,updateEnterpriseCustomSettingForKey,listSubEnterprise,reFreshEntetrpriseInfo,updateEnabledState,getEnterprise2OrderDTO,saveCliqueInfo,updateEnterpriseSettingInfoByEid,getEnterpriseSettingByEnterpriseId,getEnterpriseByWebankAppid,selectEnterpriseById,getEnterpriseByName,getEnterpriseCustomSettingForKey,getEnterpriseIdList,queryAuthImg,getEnterpriseCustomSetting,getEnterpriseSettingByEid,getEnterprise2OrderDTONoProcess,createStorePerformanceByMQ,getEnterpriseIdBySourceChannel,createTaskLog,listByEnterpriseId,updateTablesCliqueMemberId,updateEnterprise,getEnterpriseById,createStoreYmByStoreIdAndClerkId,getCallingPhoneByEnterpriseId,taskCount,updateTask,updateClerkTaskLog,isSycYz,getEnterPriseByMS,modifyEnterprise,getOpenClique,queryTaskRecordLog,queryAnnounceReadCount,sendWaitingTaskAnnounce,updateCliqueStatus,hasMembershipLevel,getEnterpriseIdsByIntegralFlag,updateEntDataCountFlag,getEnterpriseFromMemCacById,hasStore,queryTemplateAdvice,saveAnnouncement,getEnterprise2ERPDTOBList,getEnterpriseAppkeyList,queryTelTaskRecordLog,updateEnterpriseCustomSetting,pageClique,isExistSmsSign,queryErpType,getTemplateAdvice,enterpriseBusiness,reFreshEnterpriseSettingInfo,queryEnterpriseListByIds,listEnterpriseByIds,hasIntegralSettlement,selectEnterTransacationDTOByEnterpriseId,getMemberSystem,updateEnterpriseExpire,saveErpFieldList,updateEnterpriseSettingWeimobByEid,queryByAuthType,getEnterpriseList,deleteTask,modifyEnterpriseAppkey&pid\=37324&revision\=3.0-20230406.121146-2739&side\=consumer&timeout\=10000×tamp\=1680856105178
com.gic.cloud.data.hook.api.service.TableSyncRecordService=empty\://192.168.200.
53\:20338/com.gic.cloud.data.hook.api.service.TableSyncRecordService?anyhost\=true&application\=gic-cloud-data-hook&category\=configurators&check\=false&default.dispatcher\=maintenance&default.queues\=10000&default.retries\=0&default.threads\=30&default.timeout\=10000&dubbo\=2.8.5&generic\=false&interface\=com.gic.cloud.data.hook.api.service.TableSyncRecordService&methods\=lastSyncDateTime&payload\=41557050&pid\=37324&side\=provider×tamp\=1680856120415
com.gic.cloud.data.hook.api.service.IFlatQueryResultService=empty\://192.168.200.
53\:20338/com.gic.cloud.data.hook.api.service.IFlatQueryResultService?anyhost\=true&application\=gic-cloud-data-hook&category\=configurators&check\=false&default.dispatcher\=maintenance&default.queues\=10000&default.retries\=0&default.threads\=30&default.timeout\=10000&dubbo\=2.8.5&generic\=false&interface\=com.gic.cloud.data.hook.api.service.IFlatQueryResultService&methods\=getFlatQueryFilterData,initTask,estimateFlatQueryDownloadTask,buildFlatQueryDownloadTask,getFlatQueryResult&payload\=41557050&pid\=37324&side\=provider&timeout\=120000×tamp\=1680856120315
com.gic.cloud.data.hook.api.service.IMyFlatQueryService=empty\://192.168.200.
53\:20338/com.gic.cloud.data.hook.api.service.IMyFlatQueryService?anyhost\=true&application\=gic-cloud-data-hook&category\=configurators&check\=false&default.dispatcher\=maintenance&default.queues\=10000&default.retries\=0&default.threads\=30&default.timeout\=10000&dubbo\=2.8.5&generic\=false&interface\=com.gic.cloud.data.hook.api.service.IMyFlatQueryService&methods\=createMyFlatQuery,queryMyFlatQueryPage,delMyFields,deleteMyFlatQuery,updateMyFlatQuery,queryMyFlatQueryById&payload\=41557050&pid\=37324&side\=provider&timeout\=120000×tamp\=1680856120363
com.gic.cloud.data.hook.api.service.IFreeQueryService=empty\://192.168.200.
53\:20338/com.gic.cloud.data.hook.api.service.IFreeQueryService?anyhost\=true&application\=gic-cloud-data-hook&category\=configurators&check\=false&default.dispatcher\=maintenance&default.queues\=10000&default.retries\=0&default.threads\=30&default.timeout\=10000&dubbo\=2.8.5&generic\=false&interface\=com.gic.cloud.data.hook.api.service.IFreeQueryService&methods\=getFreeQueryRecordByUserIdAndRecordId,listFilterUserName,createFreeQueryRecord,deleteFreeQueryRecord,getColumnsByTable,buildFreeQueryDownloadTask,updateFreeQueryRecord,getFreeQueryResult,initTask,getFreeQuerySource,listFilterPhoneAndCardNoField,getFreeQueryCount,listFilterPhoneAndCardNoCardNumField,listFilterPhoneField,getFreeQueryRecordListByUserId,getFreeQueryTableList&payload\=41557050&pid\=37324&side\=provider&timeout\=120000×tamp\=1680856120144
gic-cloud-data-hook-service/src/main/java/com/gic/cloud/data/hook/service/dao/DownloadTaskDao.java
View file @
a2ccc65c
...
...
@@ -76,4 +76,9 @@ public interface DownloadTaskDao {
*/
public
int
getCountDownloadTaskOfBuilding
(
@Param
(
"queryDataSource"
)
String
queryDataSource
);
/** 获取等待申请通过状态的任务
* @return
*/
public
List
<
DownloadTask
>
getDownloadTaskOfBuilding
(
@Param
(
"queryDataSource"
)
String
queryDataSource
);
}
gic-cloud-data-hook-service/src/main/java/com/gic/cloud/data/hook/service/impl/DownloadTaskServiceImpl.java
View file @
a2ccc65c
...
...
@@ -242,6 +242,13 @@ public class DownloadTaskServiceImpl implements IDownloadTaskService {
return
downloadTaskDao
.
getCountDownloadTaskOfBuilding
(
queryDataSource
);
}
/** 获取在审核申请等待状态中的任务
* @return
*/
public
List
<
DownloadTask
>
getDownloadTaskOfBuilding
(
String
queryDataSource
)
{
return
downloadTaskDao
.
getDownloadTaskOfBuilding
(
queryDataSource
);
}
/** 获取指定申请编号的风险模式记录
* @param applyId
...
...
gic-cloud-data-hook-service/src/main/java/com/gic/cloud/data/hook/service/impl/FlatQueryResultServiceImpl.java
View file @
a2ccc65c
...
...
@@ -75,6 +75,8 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
public
static
final
String
HDFS_URL
=
"/data/hook"
;
public
static
final
String
LOCK_KEY
=
"data:hook:hive"
;
public
static
final
List
<
String
>
PHONE
=
Arrays
.
asList
(
"mobile"
,
"phone"
,
"phone_number"
,
"receive_phone_number"
);
...
...
@@ -111,9 +113,9 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
log
.
debug
(
"construct"
,
"准备初始化 FlatQuery 查询服务"
);
runDealHiveFile
(
3
);
// runDistTask(3);
runDownloadTask
(
3
);
runBalaDownloadTask
(
3
);
runBigDataDownloadTask
(
3
);
//
runDownloadTask(3);
//
runBalaDownloadTask(3);
//
runBigDataDownloadTask(3);
runApplyTask
(
5
);
// 每5秒钟进行任务状态检测
}
...
...
@@ -128,6 +130,8 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
public
void
dealFileMq
(
String
params
)
{
logger
.
info
(
"处理文件:{}"
,
params
);
DownloadTask
downloadTask
=
JSON
.
parseObject
(
params
,
DownloadTask
.
class
);
String
key
=
LOCK_KEY
+
":"
+
downloadTask
.
getId
();
RedisUtil
.
delCache
(
key
);
takeFileNew
(
downloadTask
);
}
...
...
@@ -582,28 +586,48 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
@Override
@PostConstruct
public
void
initTask
(){
RedisUtil
.
lock
(
LOCK_KEY
,
3L
);
try
{
List
<
DownloadRecord
>
list
=
this
.
downloadTaskService
.
listUnDownloadTask
(
QueryDataSource
.
FLAT_QUERY
);
list
=
DataInitUtils
.
listByHost
(
list
);
log
.
debug
(
"flatInitList"
,
JSON
.
toJSONString
(
list
));
if
(
CollectionUtils
.
isNotEmpty
(
list
)){
for
(
DownloadRecord
record
:
list
){
if
(
StringUtils
.
isNotBlank
(
record
.
getDownloadCondition
())){
FlatQueryTaskCondition
condition
=
JSON
.
parseObject
(
record
.
getDownloadCondition
(),
FlatQueryTaskCondition
.
class
);
if
(
record
.
getApplyStatus
().
equals
(
DownloadApplyStatus
.
TIMEOUT
)){
// List<DownloadRecord> list = this.downloadTaskService.listUnDownloadTask(QueryDataSource.FLAT_QUERY);
// list = DataInitUtils.listByHost(list);
// log.debug("flatInitList", JSON.toJSONString(list));
// if(CollectionUtils.isNotEmpty(list)){
// for(DownloadRecord record : list){
// if(StringUtils.isNotBlank(record.getDownloadCondition())){
// FlatQueryTaskCondition condition = JSON.parseObject(record.getDownloadCondition(), FlatQueryTaskCondition.class);
// if(record.getApplyStatus().equals(DownloadApplyStatus.TIMEOUT)){
// continue;
// }
// if(condition.getBuildPermitted().equals(Global.NO)){
// if(record.getApplyPermitted().equals(Global.YES)){
// condition.setBuildPermitted(Global.YES);
// }
// }
// this.taskConditions.add(condition);
//
// }
// }
// }
//之前正在处理的队列需要重新处理
List
<
DownloadTask
>
tasks
=
DownloadTaskServiceImpl
.
getInstance
().
getDownloadTaskOfBuilding
(
QueryDataSource
.
FLAT_QUERY
);
logger
.
info
(
"初始化任务:{}"
,
JSONObject
.
toJSONString
(
tasks
));
for
(
DownloadTask
task
:
tasks
)
{
String
key
=
LOCK_KEY
+
":"
+
task
.
getId
();
Object
cache
=
RedisUtil
.
getCache
(
key
);
if
(
cache
!=
null
)
{
continue
;
}
if
(
condition
.
getBuildPermitted
().
equals
(
Global
.
NO
)){
if
(
record
.
getApplyPermitted
().
equals
(
Global
.
YES
)){
condition
.
setBuildPermitted
(
Global
.
YES
);
}
}
this
.
taskConditions
.
add
(
condition
);
}
}
delFileOrDirByTaskId
(
task
.
getId
());
//重新处理
task
.
setStatus
(
DownloadTaskStatus
.
WAITING
);
task
.
setDownloadTime
(
new
Date
());
DownloadTaskServiceImpl
.
getInstance
().
updateDownloadTask
(
task
);
}
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
finally
{
RedisUtil
.
unlock
(
LOCK_KEY
);
}
}
...
...
@@ -683,17 +707,17 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
logger
.
info
(
"执行hivefile"
);
try
{
String
lockKey
=
"data:hook:hive"
;
RedisUtil
.
lock
(
lockKey
,
3L
);
RedisUtil
.
lock
(
LOCK_KEY
,
3L
);
int
curBuildingCount
=
DownloadTaskServiceImpl
.
getInstance
().
getCountDownloadTaskOfBuilding
(
QueryDataSource
.
FLAT_QUERY
);
Config
appConfig
=
ConfigService
.
getAppConfig
();
Integer
maxBuildingCount
=
appConfig
.
getIntProperty
(
"buildingCount"
,
5
);
if
(
maxBuildingCount
<=
curBuildingCount
)
{
RedisUtil
.
unlock
(
lockKey
);
logger
.
info
(
"超出限制:{}>{}"
,
curBuildingCount
,
maxBuildingCount
);
RedisUtil
.
unlock
(
LOCK_KEY
);
return
;
}
List
<
DownloadTask
>
downloadTasks
=
DownloadTaskServiceImpl
.
getInstance
().
getDownloadTaskOfHasDownload
(
QueryDataSource
.
FLAT_QUERY
,
10
);
List
<
DownloadTask
>
downloadTasks
=
DownloadTaskServiceImpl
.
getInstance
().
getDownloadTaskOfHasDownload
(
QueryDataSource
.
FLAT_QUERY
,
5
);
if
(
CollectionUtils
.
isNotEmpty
(
downloadTasks
))
{
for
(
DownloadTask
downloadTask
:
downloadTasks
)
{
downloadTask
.
setStatus
(
DownloadTaskStatus
.
BUILDING
);
...
...
@@ -701,15 +725,11 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
DownloadTaskServiceImpl
.
getInstance
().
updateDownloadTask
(
downloadTask
);
GicMQClient
clientInstance
=
GICMQClientUtil
.
getClientInstance
();
clientInstance
.
sendMessage
(
"dataHookFileDeal"
,
JSONObject
.
toJSONString
(
downloadTask
));
String
key
=
LOCK_KEY
+
":"
+
downloadTask
.
getId
();
RedisUtil
.
setCache
(
key
,
1
,
12
*
60
*
60L
);
}
}
RedisUtil
.
unlock
(
lockKey
);
// downloadTasks.parallelStream().forEach(mid->{
// ProviderLocalTag localTag = ProviderLocalTag.tag.get();
// localTag.traceId = traceId;
// //下载处理
// takeFileNew(mid);
// });
RedisUtil
.
unlock
(
LOCK_KEY
);
}
catch
(
Exception
e
){
logger
.
info
(
"异常:{}"
,
e
);
logger
.
info
(
"[ 自助指标下载异常 ]: {}"
,
e
.
getMessage
());
...
...
@@ -905,7 +925,7 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
boolean
downloadFlag
=
HDFSUtil
.
getInstance
().
downloadFile
(
path
,
SAVE_FOLDER
);
if
(!
downloadFlag
)
{
logger
.
info
(
"下载失败:{}-{}"
,
path
,
JSONObject
.
toJSONString
(
task
));
return
;
throw
new
RuntimeException
(
"下载失败:"
+
condition
.
getTaskId
())
;
}
stopWatch
.
stop
();
logger
.
info
(
"下载耗时:{}"
,
stopWatch
.
getLastTaskTimeMillis
());
...
...
@@ -1312,6 +1332,7 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
}
}
catch
(
Exception
e
)
{
logger
.
info
(
"异常:{}"
,
e
);
throw
new
RuntimeException
(
e
);
}
}
...
...
gic-cloud-data-hook-service/src/main/resources/mapper/DownloadTaskDao.xml
View file @
a2ccc65c
...
...
@@ -196,6 +196,7 @@
WHERE
q.query_data_source = #{queryDataSource}
AND q.status = "downloading"
AND q.apply_permitted = 1
AND q.del_flag = '0'
order by start_time asc limit ${num}
</select>
...
...
@@ -231,4 +232,16 @@
AND q.del_flag = '0'
</select>
<select
id=
"getDownloadTaskOfBuilding"
resultType=
"DownloadTask"
>
SELECT *
FROM
<include
refid=
"queryTables"
/>
<include
refid=
"queryJoins"
/>
WHERE
q.query_data_source = #{queryDataSource}
AND q.status = "building"
AND q.del_flag = '0'
order by start_time asc
</select>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment