edb_info.go 38 KB

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