edb_info.go 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197
  1. package data
  2. import (
  3. "context"
  4. "errors"
  5. "eta/eta_task/models/data_manage"
  6. "eta/eta_task/services/alarm_msg"
  7. "eta/eta_task/utils"
  8. "fmt"
  9. "strconv"
  10. "strings"
  11. "sync"
  12. "time"
  13. )
  14. // RefreshDataFromThs 刷新同花顺数据
  15. func RefreshDataFromThs(wg *sync.WaitGroup) (err error) {
  16. errMsgList := make([]string, 0)
  17. defer func() {
  18. if err != nil {
  19. fmt.Println("RefreshDataFromThs Err:" + err.Error())
  20. go alarm_msg.SendAlarmMsg("RefreshDataFromThs ErrMsg:"+err.Error(), 3)
  21. }
  22. if len(errMsgList) > 0 {
  23. errMsg := "RefreshDataFromThs Err:" + strings.Join(errMsgList, "\n")
  24. fmt.Println(errMsg)
  25. go alarm_msg.SendAlarmMsg(errMsg, 3)
  26. }
  27. wg.Done()
  28. }()
  29. var condition string
  30. var pars []interface{}
  31. condition += " AND source=? "
  32. pars = append(pars, utils.DATA_SOURCE_THS)
  33. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  34. if err != nil {
  35. err = errors.New("GetEdbInfoByCondition:" + err.Error())
  36. return
  37. }
  38. for _, v := range items {
  39. startDate := ""
  40. if v.Frequency == "日度" {
  41. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  42. } else if v.Frequency == "周度" {
  43. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  44. } else if v.Frequency == "月度" {
  45. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  46. } else if v.Frequency == "季度" {
  47. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  48. } else if v.Frequency == "年度" {
  49. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  50. } else {
  51. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  52. }
  53. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  54. if err != nil {
  55. errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+err.Error())
  56. continue
  57. }
  58. if resp.Ret != 200 {
  59. errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  60. continue
  61. }
  62. }
  63. return err
  64. }
  65. // RefreshDataFromWind 刷新万得数据
  66. func RefreshDataFromWind(wg *sync.WaitGroup) (err error) {
  67. errMsgList := make([]string, 0)
  68. defer func() {
  69. if err != nil {
  70. fmt.Println("RefreshDataFromWind Err:" + err.Error())
  71. go alarm_msg.SendAlarmMsg("RefreshDataFromWind ErrMsg:"+err.Error(), 3)
  72. }
  73. if len(errMsgList) > 0 {
  74. errMsg := "RefreshDataFromWind Err:" + strings.Join(errMsgList, "\n")
  75. fmt.Println(errMsg)
  76. go alarm_msg.SendAlarmMsg(errMsg, 3)
  77. }
  78. wg.Done()
  79. }()
  80. var condition string
  81. var pars []interface{}
  82. condition += ` AND source=? AND no_update = 0 `
  83. pars = append(pars, utils.DATA_SOURCE_WIND)
  84. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  85. if err != nil {
  86. return err
  87. }
  88. for _, v := range items {
  89. startDate := ""
  90. if v.Frequency == "日度" {
  91. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  92. } else if v.Frequency == "周度" {
  93. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  94. } else if v.Frequency == "月度" {
  95. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  96. } else if v.Frequency == "季度" {
  97. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  98. } else if v.Frequency == "年度" {
  99. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  100. } else {
  101. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  102. }
  103. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  104. if err != nil {
  105. errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+err.Error())
  106. continue
  107. }
  108. if resp.Ret != 200 {
  109. errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  110. continue
  111. }
  112. }
  113. fmt.Println("wind刷新结束")
  114. return err
  115. }
  116. // RefreshDataFromPb 刷新彭博数据
  117. func RefreshDataFromPb(wg *sync.WaitGroup) (err error) {
  118. errMsgList := make([]string, 0)
  119. defer func() {
  120. if err != nil {
  121. fmt.Println("RefreshDataFromPb Err:" + err.Error())
  122. go alarm_msg.SendAlarmMsg("RefreshDataFromPb ErrMsg:"+err.Error(), 3)
  123. }
  124. if len(errMsgList) > 0 {
  125. errMsg := "RefreshDataFromPb Err:" + strings.Join(errMsgList, "\n")
  126. fmt.Println(errMsg)
  127. go alarm_msg.SendAlarmMsg(errMsg, 3)
  128. }
  129. wg.Done()
  130. }()
  131. var condition string
  132. var pars []interface{}
  133. condition += " AND source=? AND frequency in ('日度','周度') "
  134. pars = append(pars, utils.DATA_SOURCE_PB)
  135. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  136. if err != nil {
  137. return errors.New("GetEdbInfoByCondition:" + err.Error())
  138. }
  139. for _, v := range items {
  140. startDate := ""
  141. if v.Frequency == "日度" {
  142. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  143. } else if v.Frequency == "周度" {
  144. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  145. } else if v.Frequency == "月度" {
  146. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  147. } else if v.Frequency == "季度" {
  148. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  149. } else if v.Frequency == "年度" {
  150. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  151. } else {
  152. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  153. }
  154. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  155. if err != nil {
  156. errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+err.Error())
  157. continue
  158. }
  159. if resp.Ret != 200 {
  160. errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  161. continue
  162. }
  163. }
  164. return err
  165. }
  166. // RefreshDataFromPbFinance 刷新彭博财务指标数据
  167. func RefreshDataFromPbFinance(wg *sync.WaitGroup) (err error) {
  168. errMsgList := make([]string, 0)
  169. defer func() {
  170. if err != nil {
  171. fmt.Println("RefreshDataFromPb Err:" + err.Error())
  172. //go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromPb ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  173. go alarm_msg.SendAlarmMsg("RefreshDataFromPb ErrMsg:"+err.Error(), 3)
  174. }
  175. if len(errMsgList) > 0 {
  176. errMsg := "RefreshDataFromPbFinance Err:" + strings.Join(errMsgList, "\n")
  177. fmt.Println(errMsg)
  178. go alarm_msg.SendAlarmMsg(errMsg, 3)
  179. }
  180. wg.Done()
  181. }()
  182. var condition string
  183. var pars []interface{}
  184. condition += " AND source=? "
  185. pars = append(pars, utils.DATA_SOURCE_PB_FINANCE)
  186. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  187. if err != nil {
  188. return errors.New("GetEdbInfoByCondition:" + err.Error())
  189. }
  190. for _, v := range items {
  191. startDate := ""
  192. if v.Frequency == "日度" {
  193. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  194. } else if v.Frequency == "周度" {
  195. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  196. } else if v.Frequency == "月度" {
  197. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  198. } else if v.Frequency == "季度" {
  199. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  200. } else if v.Frequency == "年度" {
  201. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  202. } else {
  203. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  204. }
  205. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  206. if err != nil {
  207. errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+err.Error())
  208. continue
  209. }
  210. if resp.Ret != 200 {
  211. errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  212. continue
  213. }
  214. }
  215. return err
  216. }
  217. // RefreshDataFromCalculateAll 刷新所有计算指标
  218. func RefreshDataFromCalculateAll() (err error) {
  219. var errmsg string
  220. defer func() {
  221. if err != nil {
  222. utils.FileLog.Info("RefreshDataFromCalculateAll Err:" + err.Error())
  223. //go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromCalculateAll ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  224. go alarm_msg.SendAlarmMsg("RefreshDataFromCalculateAll ErrMsg:"+err.Error(), 3)
  225. }
  226. }()
  227. var condition string
  228. var pars []interface{}
  229. // 查询 普通指标的计算指标
  230. condition += " AND edb_type=? AND edb_info_type=? "
  231. pars = append(pars, 2, 0)
  232. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  233. if err != nil {
  234. return err
  235. }
  236. for _, v := range items {
  237. source := v.Source
  238. startDate := v.StartDate.Format(utils.FormatDate)
  239. if startDate == "0001-01-01" {
  240. continue
  241. }
  242. fmt.Println(v.EdbInfoId, v.EdbCode, v.EdbName, v.SourceName, source)
  243. fmt.Println("RefreshEdbCalculateData", v.EdbInfoId, v.EdbCode, startDate)
  244. result, err := RefreshEdbCalculateData(v.EdbInfoId, v.EdbCode, startDate)
  245. if err != nil {
  246. errmsg += v.EdbCode + ","
  247. err = errors.New("RefreshEdbCalculateData Err:" + err.Error())
  248. //return err
  249. continue
  250. }
  251. if result.Ret != 200 {
  252. errmsg += v.EdbCode + ","
  253. err = errors.New("RefreshEdbCalculateData err;msg:" + result.Msg + ";errMsg:" + result.ErrMsg)
  254. //return err
  255. continue
  256. }
  257. }
  258. return err
  259. }
  260. // RefreshPredictDataFromCalculateAll 刷新所有预测计算指标
  261. func RefreshPredictDataFromCalculateAll() (err error) {
  262. defer func() {
  263. if err != nil {
  264. utils.FileLog.Info("RefreshDataFromCalculateAll Err:" + err.Error())
  265. go alarm_msg.SendAlarmMsg("RefreshDataFromCalculateAll ErrMsg:"+err.Error(), 3)
  266. }
  267. }()
  268. var condition string
  269. var pars []interface{}
  270. // 查询 普通指标的计算指标
  271. condition += " AND edb_type=? AND edb_info_type=? "
  272. pars = append(pars, 2, 1)
  273. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  274. if err != nil {
  275. return err
  276. }
  277. for _, v := range items {
  278. source := v.Source
  279. startDate := v.StartDate.Format(utils.FormatDate)
  280. if startDate == "0001-01-01" {
  281. continue
  282. }
  283. fmt.Println(v.EdbInfoId, v.EdbCode, v.EdbName, v.SourceName, source, "======RefreshPredictEdbCalculateData:", startDate)
  284. result, err := RefreshPredictEdbCalculateData(v.EdbInfoId, v.EdbCode, startDate)
  285. if err != nil {
  286. err = errors.New("RefreshPredictEdbCalculateData Err:" + err.Error())
  287. return err
  288. }
  289. if result.Ret != 200 {
  290. err = errors.New("RefreshPredictEdbCalculateData err;msg:" + result.Msg + ";errMsg:" + result.ErrMsg)
  291. return err
  292. }
  293. }
  294. return err
  295. }
  296. // RefreshDataFromManual 刷新手工指标数据
  297. func RefreshDataFromManual(wg *sync.WaitGroup) (err error) {
  298. errMsgList := make([]string, 0)
  299. defer func() {
  300. if err != nil {
  301. fmt.Println("RefreshDataFromManual Err:" + err.Error())
  302. go alarm_msg.SendAlarmMsg("RefreshDataFromManual ErrMsg:"+err.Error(), 3)
  303. }
  304. if len(errMsgList) > 0 {
  305. errMsg := "RefreshDataFromManual Err:" + strings.Join(errMsgList, "\n")
  306. fmt.Println(errMsg)
  307. go alarm_msg.SendAlarmMsg(errMsg, 3)
  308. }
  309. wg.Done()
  310. }()
  311. var condition string
  312. var pars []interface{}
  313. condition += " AND source=? "
  314. pars = append(pars, utils.DATA_SOURCE_MANUAL)
  315. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  316. if err != nil {
  317. return errors.New("GetEdbInfoByCondition:" + err.Error())
  318. }
  319. for _, v := range items {
  320. startDate := v.StartDate.Format(utils.FormatDate)
  321. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  322. if err != nil {
  323. errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+err.Error())
  324. continue
  325. }
  326. if resp.Ret != 200 {
  327. errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  328. continue
  329. }
  330. }
  331. return err
  332. }
  333. func ResetEdbInfoIsUpdate(cont context.Context) (err error) {
  334. go data_manage.ResetEdbInfoIsUpdate()
  335. return nil
  336. }
  337. // RefreshDataFromGoogleTravel RefreshDataFromEic 刷新谷歌出行数据
  338. func RefreshDataFromGoogleTravel(wg *sync.WaitGroup) (err error) {
  339. defer func() {
  340. if err != nil {
  341. fmt.Println("RefreshDataFromGoogleTravel Err:" + err.Error())
  342. go alarm_msg.SendAlarmMsg("RefreshDataFromGoogleTravel ErrMsg:"+err.Error(), 3)
  343. }
  344. wg.Done()
  345. }()
  346. var condition string
  347. var pars []interface{}
  348. condition += " AND source=? "
  349. pars = append(pars, utils.DATA_SOURCE_GOOGLE_TRAVEL)
  350. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  351. if err != nil {
  352. return errors.New("GetEdbInfoByCondition:" + err.Error())
  353. }
  354. for _, v := range items {
  355. startDate := ""
  356. if v.Frequency == "日度" {
  357. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  358. } else if v.Frequency == "周度" {
  359. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  360. } else if v.Frequency == "月度" {
  361. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  362. } else if v.Frequency == "季度" {
  363. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  364. } else if v.Frequency == "年度" {
  365. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  366. } else {
  367. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  368. }
  369. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  370. if err != nil {
  371. return errors.New("RefreshEdbData Err:" + err.Error())
  372. }
  373. if resp.Ret != 200 {
  374. return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
  375. }
  376. }
  377. return err
  378. }
  379. // RefreshDataFromEiaSteo 刷新eia steo 报告数据
  380. func RefreshDataFromEiaSteo(wg *sync.WaitGroup) (err error) {
  381. defer func() {
  382. if err != nil {
  383. fmt.Println("RefreshDataFromEiaSteo Err:" + err.Error())
  384. go alarm_msg.SendAlarmMsg("RefreshDataFromEiaSteo ErrMsg:"+err.Error(), 3)
  385. }
  386. wg.Done()
  387. }()
  388. var condition string
  389. var pars []interface{}
  390. condition += " AND source=? "
  391. pars = append(pars, utils.DATA_SOURCE_EIA_STEO)
  392. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  393. if err != nil {
  394. return errors.New("GetEdbInfoByCondition:" + err.Error())
  395. }
  396. for _, v := range items {
  397. startDate := ""
  398. if v.Frequency == "日度" {
  399. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  400. } else if v.Frequency == "周度" {
  401. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  402. } else if v.Frequency == "月度" {
  403. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  404. } else if v.Frequency == "季度" {
  405. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  406. } else if v.Frequency == "年度" {
  407. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  408. } else {
  409. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  410. }
  411. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  412. if err != nil {
  413. return errors.New("RefreshDataFromEiaSteoData Err:" + err.Error())
  414. }
  415. if resp.Ret != 200 {
  416. return errors.New("RefreshDataFromEiaSteoData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
  417. }
  418. }
  419. return err
  420. }
  421. // RefreshDataFromZz 刷新郑商所数据
  422. func RefreshDataFromZz(wg *sync.WaitGroup) (err error) {
  423. defer func() {
  424. if err != nil {
  425. fmt.Println("RefreshDataFromZz Err:" + err.Error())
  426. go alarm_msg.SendAlarmMsg("RefreshDataFromZz ErrMsg:"+err.Error(), 3)
  427. }
  428. wg.Done()
  429. }()
  430. var condition string
  431. var pars []interface{}
  432. condition += " AND source=? "
  433. pars = append(pars, utils.DATA_SOURCE_ZZ)
  434. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  435. if err != nil {
  436. return errors.New("GetEdbInfoByCondition:" + err.Error())
  437. }
  438. for _, v := range items {
  439. startDate := ""
  440. if v.Frequency == "日度" {
  441. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  442. } else if v.Frequency == "周度" {
  443. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  444. } else if v.Frequency == "月度" {
  445. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  446. } else if v.Frequency == "季度" {
  447. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  448. } else if v.Frequency == "年度" {
  449. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  450. } else {
  451. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  452. }
  453. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  454. if err != nil {
  455. return errors.New("RefreshEdbData Err:" + err.Error())
  456. }
  457. if resp.Ret != 200 {
  458. return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
  459. }
  460. }
  461. return err
  462. }
  463. // RefreshDataFromSh 刷新上期所数据
  464. func RefreshDataFromSh(wg *sync.WaitGroup) (err error) {
  465. defer func() {
  466. if err != nil {
  467. fmt.Println("RefreshDataFromSh Err:" + err.Error())
  468. go alarm_msg.SendAlarmMsg("RefreshDataFromSh ErrMsg:"+err.Error(), 3)
  469. }
  470. wg.Done()
  471. }()
  472. var condition string
  473. var pars []interface{}
  474. condition += " AND source=? "
  475. pars = append(pars, utils.DATA_SOURCE_SH)
  476. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  477. if err != nil {
  478. return errors.New("GetEdbInfoByCondition:" + err.Error())
  479. }
  480. for _, v := range items {
  481. startDate := ""
  482. if v.Frequency == "日度" {
  483. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  484. } else if v.Frequency == "周度" {
  485. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  486. } else if v.Frequency == "月度" {
  487. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  488. } else if v.Frequency == "季度" {
  489. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  490. } else if v.Frequency == "年度" {
  491. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  492. } else {
  493. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  494. }
  495. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  496. if err != nil {
  497. return errors.New("RefreshEdbData Err:" + err.Error())
  498. }
  499. if resp.Ret != 200 {
  500. return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
  501. }
  502. }
  503. return err
  504. }
  505. // RefreshDataFromShfe 刷新上期能源数据
  506. func RefreshDataFromShfe(wg *sync.WaitGroup) (err error) {
  507. defer func() {
  508. if err != nil {
  509. fmt.Println("RefreshDataFromShfe Err:" + err.Error())
  510. go alarm_msg.SendAlarmMsg("RefreshDataFromShfe ErrMsg:"+err.Error(), 3)
  511. }
  512. wg.Done()
  513. }()
  514. var condition string
  515. var pars []interface{}
  516. condition += " AND source=? "
  517. pars = append(pars, utils.DATA_SOURCE_SHFE)
  518. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  519. if err != nil {
  520. return errors.New("GetEdbInfoByCondition:" + err.Error())
  521. }
  522. for _, v := range items {
  523. startDate := ""
  524. if v.Frequency == "日度" {
  525. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  526. } else if v.Frequency == "周度" {
  527. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  528. } else if v.Frequency == "月度" {
  529. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  530. } else if v.Frequency == "季度" {
  531. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  532. } else if v.Frequency == "年度" {
  533. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  534. } else {
  535. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  536. }
  537. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  538. if err != nil {
  539. return errors.New("RefreshEdbData Err:" + err.Error())
  540. }
  541. if resp.Ret != 200 {
  542. return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
  543. }
  544. }
  545. return err
  546. }
  547. // RefreshDataFromCffex 刷新中金所数据
  548. func RefreshDataFromCffex(wg *sync.WaitGroup) (err error) {
  549. defer func() {
  550. if err != nil {
  551. fmt.Println("RefreshDataFromCffex Err:" + err.Error())
  552. go alarm_msg.SendAlarmMsg("RefreshDataFromCffex ErrMsg:"+err.Error(), 3)
  553. }
  554. wg.Done()
  555. }()
  556. var condition string
  557. var pars []interface{}
  558. condition += " AND source=? "
  559. pars = append(pars, utils.DATA_SOURCE_CFFEX)
  560. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  561. if err != nil {
  562. return errors.New("GetEdbInfoByCondition:" + err.Error())
  563. }
  564. for _, v := range items {
  565. startDate := ""
  566. if v.Frequency == "日度" {
  567. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  568. } else if v.Frequency == "周度" {
  569. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  570. } else if v.Frequency == "月度" {
  571. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  572. } else if v.Frequency == "季度" {
  573. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  574. } else if v.Frequency == "年度" {
  575. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  576. } else {
  577. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  578. }
  579. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  580. if err != nil {
  581. return errors.New("RefreshEdbData Err:" + err.Error())
  582. }
  583. if resp.Ret != 200 {
  584. return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
  585. }
  586. }
  587. return err
  588. }
  589. // RefreshDataFromDl 刷新大商所数据
  590. func RefreshDataFromDl(wg *sync.WaitGroup) (err error) {
  591. defer func() {
  592. if err != nil {
  593. fmt.Println("RefreshDataFromDl Err:" + err.Error())
  594. go alarm_msg.SendAlarmMsg("RefreshDataFromDl ErrMsg:"+err.Error(), 3)
  595. }
  596. wg.Done()
  597. }()
  598. var condition string
  599. var pars []interface{}
  600. condition += " AND source=? "
  601. pars = append(pars, utils.DATA_SOURCE_DL)
  602. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  603. if err != nil {
  604. return errors.New("GetEdbInfoByCondition:" + err.Error())
  605. }
  606. for _, v := range items {
  607. startDate := ""
  608. if v.Frequency == "日度" {
  609. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  610. } else if v.Frequency == "周度" {
  611. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  612. } else if v.Frequency == "月度" {
  613. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  614. } else if v.Frequency == "季度" {
  615. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  616. } else if v.Frequency == "年度" {
  617. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  618. } else {
  619. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  620. }
  621. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  622. if err != nil {
  623. return errors.New("RefreshEdbData Err:" + err.Error())
  624. }
  625. if resp.Ret != 200 {
  626. return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
  627. }
  628. }
  629. return err
  630. }
  631. // RefreshDataFromYs 刷新有色数据
  632. func RefreshDataFromYs(wg *sync.WaitGroup) (err error) {
  633. errMsgList := make([]string, 0)
  634. defer func() {
  635. if err != nil {
  636. fmt.Println("RefreshDataFromYs Err:" + err.Error())
  637. //go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromYs ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  638. go alarm_msg.SendAlarmMsg("RefreshDataFromYs ErrMsg:"+err.Error(), 3)
  639. }
  640. if len(errMsgList) > 0 {
  641. errMsg := "RefreshDataFromYs Err:" + strings.Join(errMsgList, "\n")
  642. fmt.Println(errMsg)
  643. go alarm_msg.SendAlarmMsg(errMsg, 3)
  644. }
  645. wg.Done()
  646. }()
  647. var condition string
  648. var pars []interface{}
  649. condition += " AND source=? "
  650. pars = append(pars, utils.DATA_SOURCE_YS)
  651. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  652. if err != nil {
  653. return errors.New("GetEdbInfoByCondition:" + err.Error())
  654. }
  655. for _, v := range items {
  656. startDate := ""
  657. if v.Frequency == "日度" {
  658. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  659. } else if v.Frequency == "周度" {
  660. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  661. } else if v.Frequency == "月度" {
  662. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  663. } else if v.Frequency == "季度" {
  664. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  665. } else if v.Frequency == "年度" {
  666. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  667. } else {
  668. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  669. }
  670. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  671. if err != nil {
  672. errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+err.Error())
  673. continue
  674. }
  675. if resp.Ret != 200 {
  676. errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  677. continue
  678. }
  679. }
  680. return err
  681. }
  682. // 刷新钢联数据
  683. func RefreshDataFromGl(wg *sync.WaitGroup) (err error) {
  684. defer func() {
  685. if err != nil {
  686. fmt.Println("RefreshDataFromGl Err:" + err.Error())
  687. go alarm_msg.SendAlarmMsg("RefreshDataFromGl ErrMsg:"+err.Error(), 3)
  688. }
  689. wg.Done()
  690. }()
  691. var condition string
  692. var pars []interface{}
  693. condition += " AND source=? "
  694. pars = append(pars, utils.DATA_SOURCE_GL)
  695. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  696. if err != nil {
  697. return errors.New("GetEdbInfoByCondition:" + err.Error())
  698. }
  699. for _, v := range items {
  700. startDate := ""
  701. if v.Frequency == "日度" {
  702. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  703. } else if v.Frequency == "周度" {
  704. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  705. } else if v.Frequency == "月度" {
  706. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  707. } else if v.Frequency == "季度" {
  708. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  709. } else if v.Frequency == "年度" {
  710. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  711. } else {
  712. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  713. }
  714. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  715. if err != nil {
  716. return errors.New("RefreshEdbData Err:" + err.Error())
  717. }
  718. if resp.Ret != 200 {
  719. return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
  720. }
  721. }
  722. return err
  723. }
  724. // RefreshDataFromLt 刷新路透数据
  725. func RefreshDataFromLt(wg *sync.WaitGroup) (err error) {
  726. errMsgList := make([]string, 0)
  727. defer func() {
  728. if len(errMsgList) > 0 {
  729. fmt.Println("RefreshDataFromLt Err:", errMsgList)
  730. go alarm_msg.SendAlarmMsg("RefreshDataFromLt ErrMsg:"+strings.Join(errMsgList, `<br/>`), 3)
  731. }
  732. wg.Done()
  733. }()
  734. var condition string
  735. var pars []interface{}
  736. condition += " AND source=? "
  737. pars = append(pars, utils.DATA_SOURCE_LT)
  738. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  739. if err != nil {
  740. errMsgList = append(errMsgList, "GetEdbInfoByCondition:"+err.Error())
  741. return errors.New("GetEdbInfoByCondition:" + err.Error())
  742. }
  743. for _, v := range items {
  744. fmt.Println(v.EdbCode, v.Frequency, v.EndDate)
  745. startDate := v.StartDate.Format(utils.FormatDate)
  746. resp, err := RefreshEdbData(v.EdbInfoId, v.SubSource, v.Source, v.EdbCode, startDate)
  747. if err != nil {
  748. errMsgList = append(errMsgList, "RefreshEdbData Err:"+err.Error())
  749. continue
  750. }
  751. if resp.Ret != 200 {
  752. errMsgList = append(errMsgList, "RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  753. continue
  754. }
  755. }
  756. return err
  757. }
  758. // RefreshDataFromCoal 刷新煤炭网数据
  759. func RefreshDataFromCoal(wg *sync.WaitGroup) (err error) {
  760. defer func() {
  761. if err != nil {
  762. fmt.Println("RefreshDataFromCoal Err:" + err.Error())
  763. go alarm_msg.SendAlarmMsg("RefreshDataFromCoal ErrMsg:"+err.Error(), 3)
  764. }
  765. wg.Done()
  766. }()
  767. var condition string
  768. var pars []interface{}
  769. condition += " AND source=? "
  770. pars = append(pars, utils.DATA_SOURCE_COAL)
  771. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  772. if err != nil {
  773. return errors.New("GetEdbInfoByCondition:" + err.Error())
  774. }
  775. for _, v := range items {
  776. startDate := ""
  777. if v.Frequency == "日度" {
  778. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  779. } else if v.Frequency == "周度" {
  780. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  781. } else if v.Frequency == "月度" {
  782. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  783. } else if v.Frequency == "季度" {
  784. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  785. } else if v.Frequency == "年度" {
  786. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  787. } else {
  788. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  789. }
  790. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  791. if err != nil {
  792. return errors.New("RefreshEdbData Err:" + err.Error())
  793. }
  794. if resp.Ret != 200 {
  795. return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
  796. }
  797. }
  798. return err
  799. }
  800. // RefreshDataFromMysteelChemical 刷新钢联化工数据
  801. func RefreshDataFromMysteelChemical(wg *sync.WaitGroup) (err error) {
  802. defer func() {
  803. if err != nil {
  804. fmt.Println("RefreshDataFromMysteelChemical Err:" + err.Error())
  805. go alarm_msg.SendAlarmMsg("RefreshDataFromMysteelChemical ErrMsg:"+err.Error(), 3)
  806. }
  807. wg.Done()
  808. }()
  809. var condition string
  810. var pars []interface{}
  811. condition += " AND source=? "
  812. pars = append(pars, utils.DATA_SOURCE_MYSTEEL_CHEMICAL)
  813. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  814. if err != nil {
  815. return errors.New("GetEdbInfoByCondition:" + err.Error())
  816. }
  817. for _, v := range items {
  818. startDate := ""
  819. if v.Frequency == "日度" {
  820. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  821. } else if v.Frequency == "周度" {
  822. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  823. } else if v.Frequency == "月度" {
  824. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  825. } else if v.Frequency == "季度" {
  826. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  827. } else if v.Frequency == "年度" {
  828. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  829. } else {
  830. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  831. }
  832. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  833. if err != nil {
  834. return errors.New("RefreshEdbData Err:" + err.Error())
  835. }
  836. if resp.Ret != 200 {
  837. return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
  838. }
  839. }
  840. return err
  841. }
  842. // RefreshDataFromComTrade 刷新 UN 数据
  843. func RefreshDataFromComTrade(wg *sync.WaitGroup) (err error) {
  844. defer func() {
  845. if err != nil {
  846. fmt.Println("RefreshDataFromComTrade Err:" + err.Error())
  847. go alarm_msg.SendAlarmMsg("RefreshDataFromComTrade ErrMsg:"+err.Error(), 3)
  848. }
  849. wg.Done()
  850. }()
  851. var condition string
  852. var pars []interface{}
  853. condition += " AND source=? "
  854. pars = append(pars, utils.DATA_SOURCE_COM_TRADE)
  855. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  856. if err != nil {
  857. return errors.New("GetEdbInfoByCondition:" + err.Error())
  858. }
  859. for _, v := range items {
  860. startDate := ""
  861. if v.Frequency == "日度" {
  862. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  863. } else if v.Frequency == "周度" {
  864. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  865. } else if v.Frequency == "月度" {
  866. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  867. } else if v.Frequency == "季度" {
  868. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  869. } else if v.Frequency == "年度" {
  870. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  871. } else {
  872. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  873. }
  874. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  875. if err != nil {
  876. return errors.New("RefreshDataFromComTrade Err:" + err.Error())
  877. }
  878. if resp.Ret != 200 {
  879. return errors.New("RefreshDataFromComTrade Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
  880. }
  881. }
  882. return err
  883. }
  884. // RefreshDataFromSci 刷新 卓创 数据
  885. func RefreshDataFromSci(wg *sync.WaitGroup) (err error) {
  886. defer func() {
  887. if err != nil {
  888. fmt.Println("RefreshDataFromSci Err:" + err.Error())
  889. go alarm_msg.SendAlarmMsg("RefreshDataFromSci ErrMsg:"+err.Error(), 3)
  890. }
  891. wg.Done()
  892. }()
  893. var condition string
  894. var pars []interface{}
  895. condition += " AND source=? "
  896. pars = append(pars, utils.DATA_SOURCE_SCI)
  897. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  898. if err != nil {
  899. return errors.New("GetEdbInfoByCondition:" + err.Error())
  900. }
  901. for _, v := range items {
  902. startDate := ""
  903. if v.Frequency == "日度" {
  904. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  905. } else if v.Frequency == "周度" {
  906. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  907. } else if v.Frequency == "月度" {
  908. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  909. } else if v.Frequency == "季度" {
  910. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  911. } else if v.Frequency == "年度" {
  912. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  913. } else {
  914. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  915. }
  916. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  917. if err != nil {
  918. return errors.New("RefreshDataFromSci Err:" + err.Error())
  919. }
  920. if resp.Ret != 200 {
  921. return errors.New("RefreshDataFromSci Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
  922. }
  923. }
  924. return err
  925. }
  926. // RefreshDataFromNationalStatistics 刷新统计局数据
  927. func RefreshDataFromNationalStatistics(wg *sync.WaitGroup) (err error) {
  928. defer func() {
  929. if err != nil {
  930. fmt.Println("RefreshDataFromNationalStatistics Err:" + err.Error())
  931. go alarm_msg.SendAlarmMsg("RefreshDataFromNationalStatistics ErrMsg:"+err.Error(), 3)
  932. }
  933. wg.Done()
  934. }()
  935. var condition string
  936. var pars []interface{}
  937. condition += ` AND source = ? `
  938. pars = append(pars, utils.DATA_SOURCE_NATIONAL_STATISTICS)
  939. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  940. if err != nil {
  941. return errors.New("GetEdbInfoByCondition:" + err.Error())
  942. }
  943. for _, v := range items {
  944. startDate := ""
  945. if v.Frequency == "日度" {
  946. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  947. } else if v.Frequency == "周度" {
  948. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  949. } else if v.Frequency == "月度" {
  950. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  951. } else if v.Frequency == "季度" {
  952. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  953. } else if v.Frequency == "年度" {
  954. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  955. } else {
  956. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  957. }
  958. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  959. if err != nil {
  960. return errors.New("RefreshDataFromNationalStatistics Err:" + err.Error())
  961. }
  962. if resp.Ret != 200 {
  963. return errors.New("RefreshDataFromNationalStatistics Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
  964. }
  965. }
  966. return err
  967. }
  968. // RefreshDataFromEic 刷欧洲天然气数据
  969. func RefreshDataFromEic(wg *sync.WaitGroup) (err error) {
  970. defer func() {
  971. if err != nil {
  972. fmt.Println("RefreshDataFromEic Err:" + err.Error())
  973. go alarm_msg.SendAlarmMsg("RefreshDataFromEic ErrMsg:"+err.Error(), 3)
  974. }
  975. wg.Done()
  976. }()
  977. var condition string
  978. var pars []interface{}
  979. condition += " AND source=? "
  980. pars = append(pars, utils.DATA_SOURCE_GIE)
  981. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  982. if err != nil {
  983. return errors.New("GetEdbInfoByCondition:" + err.Error())
  984. }
  985. for _, v := range items {
  986. startDate := ""
  987. if v.Frequency == "日度" {
  988. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  989. } else if v.Frequency == "周度" {
  990. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  991. } else if v.Frequency == "月度" {
  992. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  993. } else if v.Frequency == "季度" {
  994. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  995. } else if v.Frequency == "年度" {
  996. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  997. } else {
  998. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  999. }
  1000. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  1001. if err != nil {
  1002. return errors.New("RefreshEdbData Err:" + err.Error())
  1003. }
  1004. if resp.Ret != 200 {
  1005. return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
  1006. }
  1007. }
  1008. return err
  1009. }
  1010. // RefreshJiaYueDataFromBridge 嘉悦物产-刷新数据宝指标
  1011. func RefreshJiaYueDataFromBridge(cont context.Context) (err error) {
  1012. utils.FileLog.Info(fmt.Sprintf("嘉悦-开始刷新数据宝指标: %s", time.Now().Format(utils.FormatDateTime)))
  1013. defer func() {
  1014. if err != nil {
  1015. tips := fmt.Sprintf("RefreshJiaYueDataFromBridge ErrMsg: %s", err.Error())
  1016. utils.FileLog.Info(tips)
  1017. go alarm_msg.SendAlarmMsg(tips, 3)
  1018. }
  1019. utils.FileLog.Info(fmt.Sprintf("嘉悦-结束刷新数据宝指标: %s", time.Now().Format(utils.FormatDateTime)))
  1020. }()
  1021. // 获取来自桥接服务的指标来源
  1022. cond := ` AND from_bridge = 1`
  1023. pars := make([]interface{}, 0)
  1024. sources, e := data_manage.GetEdbSourceItemsByCondition(cond, pars, []string{}, "")
  1025. if e != nil {
  1026. err = fmt.Errorf("获取来自桥接服务的数据源失败, err: %s", e.Error())
  1027. return
  1028. }
  1029. sourceArr := make([]string, 0)
  1030. for _, v := range sources {
  1031. if v.EdbSourceId <= 0 {
  1032. continue
  1033. }
  1034. sourceArr = append(sourceArr, strconv.Itoa(v.EdbSourceId))
  1035. }
  1036. if len(sourceArr) == 0 {
  1037. utils.FileLog.Info("RefreshJiaYueDataFromBridge 无数据来源")
  1038. return
  1039. }
  1040. // 获取指标
  1041. edbCond := fmt.Sprintf(` AND source IN (%s)`, utils.GetOrmInReplace(len(sourceArr)))
  1042. edbPars := make([]interface{}, 0)
  1043. edbPars = append(edbPars, sourceArr)
  1044. items, e := data_manage.GetEdbInfoByCondition(edbCond, edbPars, 0)
  1045. if e != nil {
  1046. err = fmt.Errorf("GetEdbInfoByCondition err: %s", e.Error())
  1047. return
  1048. }
  1049. for _, v := range items {
  1050. startDate := ""
  1051. if v.Frequency == "日度" {
  1052. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  1053. } else if v.Frequency == "周度" {
  1054. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  1055. } else if v.Frequency == "月度" {
  1056. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  1057. } else if v.Frequency == "季度" {
  1058. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  1059. } else if v.Frequency == "年度" {
  1060. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  1061. } else {
  1062. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  1063. }
  1064. resp, e := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  1065. if e != nil {
  1066. utils.FileLog.Info(fmt.Sprintf("RefreshEdbData err: %s", e.Error()))
  1067. //err = fmt.Errorf("RefreshEdbData err: %s", e.Error())
  1068. continue
  1069. }
  1070. if resp.Ret != 200 {
  1071. utils.FileLog.Info(fmt.Sprintf("RefreshEdbData indexCode: %s, err: %s, errMsg: %s", v.EdbCode, resp.Msg, resp.ErrMsg))
  1072. //err = fmt.Errorf("RefreshEdbData Err: %s; ErrMsg: %s", resp.Msg, resp.ErrMsg)
  1073. continue
  1074. }
  1075. }
  1076. return
  1077. }
  1078. // RefreshDataFromFubao 刷新富宝数据
  1079. func RefreshDataFromFubao(wg *sync.WaitGroup) (err error) {
  1080. errMsgList := make([]string, 0)
  1081. defer func() {
  1082. if err != nil {
  1083. fmt.Println("RefreshDataFromFubao Err:" + err.Error())
  1084. go alarm_msg.SendAlarmMsg("RefreshDataFromFubao ErrMsg:"+err.Error(), 3)
  1085. }
  1086. if len(errMsgList) > 0 {
  1087. errMsg := "RefreshDataFromFubao Err:" + strings.Join(errMsgList, "\n")
  1088. fmt.Println(errMsg)
  1089. go alarm_msg.SendAlarmMsg(errMsg, 3)
  1090. }
  1091. wg.Done()
  1092. }()
  1093. var condition string
  1094. var pars []interface{}
  1095. condition += ` AND source=? AND no_update = 0 `
  1096. pars = append(pars, utils.DATA_SOURCE_FUBAO)
  1097. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  1098. if err != nil {
  1099. return err
  1100. }
  1101. for _, v := range items {
  1102. startDate := ""
  1103. if v.Frequency == "日度" {
  1104. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  1105. } else if v.Frequency == "周度" {
  1106. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  1107. } else if v.Frequency == "月度" {
  1108. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  1109. } else if v.Frequency == "季度" {
  1110. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  1111. } else if v.Frequency == "年度" {
  1112. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  1113. } else {
  1114. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  1115. }
  1116. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  1117. if err != nil {
  1118. errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+err.Error())
  1119. continue
  1120. }
  1121. if resp.Ret != 200 {
  1122. errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  1123. continue
  1124. }
  1125. }
  1126. fmt.Println("Fubao刷新结束")
  1127. return err
  1128. }