edb_info.go 46 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369
  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. if utils.PbRefreshOpen == "0" {
  132. return
  133. }
  134. var condition string
  135. var pars []interface{}
  136. var frequencyStr string
  137. if utils.PbRefreshFrequency == "" {
  138. frequencyStr = "'日度','周度'"
  139. } else {
  140. frequencyStr = utils.PbRefreshFrequency
  141. }
  142. condition += " AND source=? AND frequency in (" + frequencyStr + ") "
  143. pars = append(pars, utils.DATA_SOURCE_PB)
  144. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  145. if err != nil {
  146. return errors.New("GetEdbInfoByCondition:" + err.Error())
  147. }
  148. for _, v := range items {
  149. startDate := ""
  150. if v.Frequency == "日度" {
  151. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  152. } else if v.Frequency == "周度" {
  153. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  154. } else if v.Frequency == "月度" {
  155. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  156. } else if v.Frequency == "季度" {
  157. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  158. } else if v.Frequency == "年度" {
  159. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  160. } else {
  161. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  162. }
  163. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  164. if err != nil {
  165. errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+err.Error())
  166. continue
  167. }
  168. if resp.Ret != 200 {
  169. errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  170. continue
  171. }
  172. }
  173. return err
  174. }
  175. // RefreshDataFromPbFinance 刷新彭博财务指标数据
  176. func RefreshDataFromPbFinance(wg *sync.WaitGroup) (err error) {
  177. errMsgList := make([]string, 0)
  178. defer func() {
  179. if err != nil {
  180. fmt.Println("RefreshDataFromPb Err:" + err.Error())
  181. //go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromPb ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  182. go alarm_msg.SendAlarmMsg("RefreshDataFromPb ErrMsg:"+err.Error(), 3)
  183. }
  184. if len(errMsgList) > 0 {
  185. errMsg := "RefreshDataFromPbFinance Err:" + strings.Join(errMsgList, "\n")
  186. fmt.Println(errMsg)
  187. go alarm_msg.SendAlarmMsg(errMsg, 3)
  188. }
  189. wg.Done()
  190. }()
  191. var condition string
  192. var pars []interface{}
  193. condition += " AND source=? "
  194. pars = append(pars, utils.DATA_SOURCE_PB_FINANCE)
  195. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  196. if err != nil {
  197. return errors.New("GetEdbInfoByCondition:" + err.Error())
  198. }
  199. for _, v := range items {
  200. startDate := ""
  201. if v.Frequency == "日度" {
  202. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  203. } else if v.Frequency == "周度" {
  204. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  205. } else if v.Frequency == "月度" {
  206. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  207. } else if v.Frequency == "季度" {
  208. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  209. } else if v.Frequency == "年度" {
  210. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  211. } else {
  212. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  213. }
  214. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  215. if err != nil {
  216. errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+err.Error())
  217. continue
  218. }
  219. if resp.Ret != 200 {
  220. errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  221. continue
  222. }
  223. }
  224. return err
  225. }
  226. // RefreshDataFromCalculateAll 刷新所有计算指标
  227. func RefreshDataFromCalculateAll() (err error) {
  228. errMsgList := make([]string, 0)
  229. defer func() {
  230. if err != nil {
  231. errMsg := "刷新所有计算指标失败 ErrMsg:" + err.Error()
  232. utils.FileLog.Info(errMsg)
  233. go alarm_msg.SendAlarmMsg(errMsg, 3)
  234. }
  235. if len(errMsgList) > 0 {
  236. utils.FileLog.Info("刷新所有计算指标失败 ErrMsg:" + strings.Join(errMsgList, "\n"))
  237. go alarm_msg.SendAlarmMsg("刷新所有计算指标失败 ErrMsg:"+strings.Join(errMsgList, "\n"), 3)
  238. }
  239. }()
  240. var condition string
  241. var pars []interface{}
  242. // 查询 普通指标的计算指标
  243. condition += " AND edb_type=? AND edb_info_type=? AND no_update=0"
  244. pars = append(pars, 2, 0)
  245. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  246. if err != nil {
  247. return err
  248. }
  249. nowStr := time.Now().AddDate(0, 0, -1).Format(utils.FormatDate)
  250. startDateOfWeek := utils.GetNowWeekMonday()
  251. endDateOfWeek := utils.GetNowWeekLastDay()
  252. for _, v := range items {
  253. if v.Frequency == "日度" {
  254. if v.EndDate.Format(utils.FormatDate) == nowStr {
  255. continue
  256. }
  257. } else if v.Frequency == "周度" {
  258. if !v.EndDate.Before(startDateOfWeek) && !v.EndDate.After(endDateOfWeek) {
  259. continue
  260. }
  261. }
  262. source := v.Source
  263. startDate := v.StartDate.Format(utils.FormatDate)
  264. if startDate == "0001-01-01" {
  265. continue
  266. }
  267. fmt.Println(v.EdbInfoId, v.EdbCode, v.EdbName, v.SourceName, source)
  268. fmt.Println("RefreshEdbCalculateData", v.EdbInfoId, v.EdbCode, startDate)
  269. result, tmpErr := RefreshEdbCalculateData(v.EdbInfoId, v.EdbCode, startDate)
  270. if tmpErr != nil {
  271. errMsgList = append(errMsgList, fmt.Sprintf("指标ID:%d;指标编码:%s;err:%s", v.EdbInfoId, v.EdbCode, tmpErr.Error()))
  272. continue
  273. }
  274. if result.Ret != 200 {
  275. errMsgList = append(errMsgList, fmt.Sprintf("指标ID:%d;指标编码:%s;msg:%s;errMsg:%s", v.EdbInfoId, v.EdbCode, result.Msg, result.ErrMsg))
  276. //return err
  277. continue
  278. }
  279. }
  280. return err
  281. }
  282. // RefreshBasePredictDataAll 刷新所有的基础预测指标
  283. func RefreshBasePredictDataAll() (err error) {
  284. errMsgList := make([]string, 0)
  285. defer func() {
  286. if err != nil {
  287. errMsg := "刷新所有计算指标失败 ErrMsg:" + err.Error()
  288. utils.FileLog.Info(errMsg)
  289. go alarm_msg.SendAlarmMsg(errMsg, 3)
  290. }
  291. if len(errMsgList) > 0 {
  292. utils.FileLog.Info("刷新所有基础预测指标失败 ErrMsg:" + strings.Join(errMsgList, "\n"))
  293. go alarm_msg.SendAlarmMsg("刷新所有基础预测指标失败 ErrMsg:"+strings.Join(errMsgList, "\n"), 3)
  294. }
  295. }()
  296. var condition string
  297. var pars []interface{}
  298. // 查询 普通指标的计算指标
  299. condition += " AND edb_type=? AND edb_info_type=? "
  300. pars = append(pars, 1, 1)
  301. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  302. if err != nil {
  303. errMsgList = append(errMsgList, fmt.Sprintf("获取基础预测指标列表失败;err:%s", err.Error()))
  304. return err
  305. }
  306. for _, v := range items {
  307. source := v.Source
  308. startDate := v.StartDate.Format(utils.FormatDate)
  309. if startDate == "0001-01-01" {
  310. continue
  311. }
  312. fmt.Println(v.EdbInfoId, v.EdbCode, v.EdbName, v.SourceName, source, "======RefreshBasePredictDataAll:", startDate)
  313. result, tmpErr := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  314. if tmpErr != nil {
  315. errMsgList = append(errMsgList, fmt.Sprintf("刷新基础预测指标失败1,指标ID:%d;指标编码:%s;err:%s", v.EdbInfoId, v.EdbCode, tmpErr.Error()))
  316. continue
  317. }
  318. if result.Ret != 200 {
  319. errMsgList = append(errMsgList, fmt.Sprintf("刷新基础预测指标失败2,指标ID:%d;指标编码:%s;报错提示信息msg:%s;报错信息err:%s", v.EdbInfoId, v.EdbCode, result.ErrMsg, result.Msg))
  320. continue
  321. }
  322. }
  323. return err
  324. }
  325. // RefreshPredictDataFromCalculateAll 刷新所有预测计算指标
  326. func RefreshPredictDataFromCalculateAll() (err error) {
  327. errMsgList := make([]string, 0)
  328. defer func() {
  329. if err != nil {
  330. errMsg := "刷新所有计算预测指标失败 ErrMsg:" + err.Error()
  331. utils.FileLog.Info(errMsg)
  332. go alarm_msg.SendAlarmMsg(errMsg, 3)
  333. }
  334. if len(errMsgList) > 0 {
  335. utils.FileLog.Info("刷新所有计算预测指标失败 Err:" + strings.Join(errMsgList, "\n"))
  336. go alarm_msg.SendAlarmMsg("刷新所有计算预测指标失败 Err:"+strings.Join(errMsgList, "\n"), 3)
  337. }
  338. }()
  339. var condition string
  340. var pars []interface{}
  341. // 查询 普通指标的计算指标
  342. condition += " AND edb_type=? AND edb_info_type=? "
  343. pars = append(pars, 2, 1)
  344. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  345. if err != nil {
  346. return err
  347. }
  348. for _, v := range items {
  349. source := v.Source
  350. startDate := v.StartDate.Format(utils.FormatDate)
  351. if startDate == "0001-01-01" {
  352. continue
  353. }
  354. fmt.Println(v.EdbInfoId, v.EdbCode, v.EdbName, v.SourceName, source, "======RefreshPredictEdbCalculateData:", startDate)
  355. result, tmpErr := RefreshPredictEdbCalculateData(v.EdbInfoId, v.EdbCode, startDate)
  356. if tmpErr != nil {
  357. errMsgList = append(errMsgList, fmt.Sprintf("指标ID:%d;指标编码:%s;err:%s", v.EdbInfoId, v.EdbCode, tmpErr.Error()))
  358. continue
  359. }
  360. if result.Ret != 200 {
  361. errMsgList = append(errMsgList, fmt.Sprintf("指标ID:%d;指标编码:%s;msg:%s;errMsg:%s", v.EdbInfoId, v.EdbCode, result.Msg, result.ErrMsg))
  362. continue
  363. }
  364. }
  365. return err
  366. }
  367. // RefreshDataFromManual 刷新手工指标数据
  368. func RefreshDataFromManual(wg *sync.WaitGroup) (err error) {
  369. errMsgList := make([]string, 0)
  370. defer func() {
  371. if err != nil {
  372. fmt.Println("RefreshDataFromManual Err:" + err.Error())
  373. go alarm_msg.SendAlarmMsg("RefreshDataFromManual ErrMsg:"+err.Error(), 3)
  374. }
  375. if len(errMsgList) > 0 {
  376. errMsg := "RefreshDataFromManual Err:" + strings.Join(errMsgList, "\n")
  377. fmt.Println(errMsg)
  378. go alarm_msg.SendAlarmMsg(errMsg, 3)
  379. }
  380. wg.Done()
  381. }()
  382. var condition string
  383. var pars []interface{}
  384. condition += " AND source=? "
  385. pars = append(pars, utils.DATA_SOURCE_MANUAL)
  386. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  387. if err != nil {
  388. return errors.New("GetEdbInfoByCondition:" + err.Error())
  389. }
  390. for _, v := range items {
  391. startDate := v.StartDate.Format(utils.FormatDate)
  392. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  393. if err != nil {
  394. errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+err.Error())
  395. continue
  396. }
  397. if resp.Ret != 200 {
  398. errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  399. continue
  400. }
  401. }
  402. return err
  403. }
  404. func ResetEdbInfoIsUpdate(cont context.Context) (err error) {
  405. go data_manage.ResetEdbInfoIsUpdate()
  406. return nil
  407. }
  408. // RefreshDataFromGoogleTravel RefreshDataFromEic 刷新谷歌出行数据
  409. func RefreshDataFromGoogleTravel(wg *sync.WaitGroup) (err error) {
  410. errMsgList := make([]string, 0)
  411. defer func() {
  412. if err != nil {
  413. fmt.Println("RefreshDataFromGoogleTravel Err:" + err.Error())
  414. go alarm_msg.SendAlarmMsg("RefreshDataFromGoogleTravel ErrMsg:"+err.Error(), 3)
  415. }
  416. if len(errMsgList) > 0 {
  417. tips := fmt.Sprintf("RefreshDataFromGoogleTravel ErrMsg: %s", strings.Join(errMsgList, `<br/>`))
  418. fmt.Println(tips)
  419. utils.FileLog.Info(tips)
  420. go alarm_msg.SendAlarmMsg(tips, 3)
  421. }
  422. wg.Done()
  423. }()
  424. var condition string
  425. var pars []interface{}
  426. condition += " AND source=? "
  427. pars = append(pars, utils.DATA_SOURCE_GOOGLE_TRAVEL)
  428. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  429. if err != nil {
  430. return errors.New("GetEdbInfoByCondition:" + err.Error())
  431. }
  432. for _, v := range items {
  433. startDate := ""
  434. if v.Frequency == "日度" {
  435. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  436. } else if v.Frequency == "周度" {
  437. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  438. } else if v.Frequency == "月度" {
  439. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  440. } else if v.Frequency == "季度" {
  441. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  442. } else if v.Frequency == "年度" {
  443. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  444. } else {
  445. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  446. }
  447. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  448. if err != nil {
  449. errMsgList = append(errMsgList, "RefreshEdbData Err:"+err.Error())
  450. continue
  451. }
  452. if resp.Ret != 200 {
  453. errMsgList = append(errMsgList, "RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  454. continue
  455. }
  456. }
  457. return err
  458. }
  459. // RefreshDataFromEiaSteo 刷新eia steo 报告数据
  460. func RefreshDataFromEiaSteo(wg *sync.WaitGroup) (err error) {
  461. errMsgList := make([]string, 0)
  462. defer func() {
  463. if err != nil {
  464. fmt.Println("RefreshDataFromEiaSteo Err:" + err.Error())
  465. go alarm_msg.SendAlarmMsg("RefreshDataFromEiaSteo ErrMsg:"+err.Error(), 3)
  466. }
  467. if len(errMsgList) > 0 {
  468. tips := fmt.Sprintf("RefreshDataFromEiaSteo ErrMsg: %s", strings.Join(errMsgList, `<br/>`))
  469. fmt.Println(tips)
  470. utils.FileLog.Info(tips)
  471. go alarm_msg.SendAlarmMsg(tips, 3)
  472. }
  473. wg.Done()
  474. }()
  475. var condition string
  476. var pars []interface{}
  477. condition += " AND source=? "
  478. pars = append(pars, utils.DATA_SOURCE_EIA_STEO)
  479. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  480. if err != nil {
  481. return errors.New("GetEdbInfoByCondition:" + err.Error())
  482. }
  483. for _, v := range items {
  484. startDate := ""
  485. if v.Frequency == "日度" {
  486. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  487. } else if v.Frequency == "周度" {
  488. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  489. } else if v.Frequency == "月度" {
  490. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  491. } else if v.Frequency == "季度" {
  492. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  493. } else if v.Frequency == "年度" {
  494. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  495. } else {
  496. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  497. }
  498. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  499. if err != nil {
  500. errMsgList = append(errMsgList, "RefreshEdbData Err:"+err.Error())
  501. continue
  502. }
  503. if resp.Ret != 200 {
  504. errMsgList = append(errMsgList, "RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  505. continue
  506. }
  507. }
  508. return err
  509. }
  510. // RefreshDataFromYs 刷新有色数据
  511. func RefreshDataFromYs(wg *sync.WaitGroup) (err error) {
  512. errMsgList := make([]string, 0)
  513. defer func() {
  514. if err != nil {
  515. fmt.Println("RefreshDataFromYs Err:" + err.Error())
  516. //go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromYs ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  517. go alarm_msg.SendAlarmMsg("RefreshDataFromYs ErrMsg:"+err.Error(), 3)
  518. }
  519. if len(errMsgList) > 0 {
  520. errMsg := "RefreshDataFromYs Err:" + strings.Join(errMsgList, "\n")
  521. fmt.Println(errMsg)
  522. go alarm_msg.SendAlarmMsg(errMsg, 3)
  523. }
  524. wg.Done()
  525. }()
  526. var condition string
  527. var pars []interface{}
  528. condition += " AND source=? "
  529. pars = append(pars, utils.DATA_SOURCE_YS)
  530. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  531. if err != nil {
  532. return errors.New("GetEdbInfoByCondition:" + err.Error())
  533. }
  534. for _, v := range items {
  535. startDate := ""
  536. if v.Frequency == "日度" {
  537. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  538. } else if v.Frequency == "周度" {
  539. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  540. } else if v.Frequency == "月度" {
  541. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  542. } else if v.Frequency == "季度" {
  543. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  544. } else if v.Frequency == "年度" {
  545. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  546. } else {
  547. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  548. }
  549. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  550. if err != nil {
  551. errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+err.Error())
  552. continue
  553. }
  554. if resp.Ret != 200 {
  555. errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  556. continue
  557. }
  558. }
  559. return err
  560. }
  561. // 刷新钢联数据
  562. func RefreshDataFromGl(wg *sync.WaitGroup) (err error) {
  563. errMsgList := make([]string, 0)
  564. defer func() {
  565. if err != nil {
  566. fmt.Println("RefreshDataFromGl Err:" + err.Error())
  567. go alarm_msg.SendAlarmMsg("RefreshDataFromGl ErrMsg:"+err.Error(), 3)
  568. }
  569. if len(errMsgList) > 0 {
  570. tips := fmt.Sprintf("RefreshDataFromGl ErrMsg: %s", strings.Join(errMsgList, `<br/>`))
  571. fmt.Println(tips)
  572. utils.FileLog.Info(tips)
  573. go alarm_msg.SendAlarmMsg(tips, 3)
  574. }
  575. wg.Done()
  576. }()
  577. var condition string
  578. var pars []interface{}
  579. condition += " AND source=? "
  580. pars = append(pars, utils.DATA_SOURCE_GL)
  581. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  582. if err != nil {
  583. return errors.New("GetEdbInfoByCondition:" + err.Error())
  584. }
  585. for _, v := range items {
  586. startDate := ""
  587. if v.Frequency == "日度" {
  588. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  589. } else if v.Frequency == "周度" {
  590. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  591. } else if v.Frequency == "月度" {
  592. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  593. } else if v.Frequency == "季度" {
  594. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  595. } else if v.Frequency == "年度" {
  596. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  597. } else {
  598. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  599. }
  600. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  601. if err != nil {
  602. errMsgList = append(errMsgList, "RefreshEdbData Err:"+err.Error())
  603. continue
  604. }
  605. if resp.Ret != 200 {
  606. errMsgList = append(errMsgList, "RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  607. continue
  608. }
  609. }
  610. return err
  611. }
  612. // RefreshDataFromLt 刷新路透数据
  613. func RefreshDataFromLt(wg *sync.WaitGroup) (err error) {
  614. errMsgList := make([]string, 0)
  615. defer func() {
  616. if len(errMsgList) > 0 {
  617. tips := fmt.Sprintf("RefreshDataFromLt ErrMsg: %s", strings.Join(errMsgList, `<br/>`))
  618. fmt.Println(tips)
  619. utils.FileLog.Info(tips)
  620. go alarm_msg.SendAlarmMsg(tips, 3)
  621. }
  622. utils.FileLog.Info("RefreshDataFromLt刷新结束")
  623. wg.Done()
  624. }()
  625. var condition string
  626. var pars []interface{}
  627. condition += " AND source=? "
  628. pars = append(pars, utils.DATA_SOURCE_LT)
  629. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  630. if err != nil {
  631. errMsgList = append(errMsgList, "GetEdbInfoByCondition:"+err.Error())
  632. return errors.New("GetEdbInfoByCondition:" + err.Error())
  633. }
  634. for _, v := range items {
  635. fmt.Println(v.EdbCode, v.Frequency, v.EndDate)
  636. startDate := v.StartDate.Format(utils.FormatDate)
  637. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  638. if err != nil {
  639. errMsgList = append(errMsgList, "RefreshEdbData Err:"+err.Error())
  640. continue
  641. }
  642. if resp.Ret != 200 {
  643. errMsgList = append(errMsgList, "RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  644. continue
  645. }
  646. }
  647. return err
  648. }
  649. // RefreshDataFromCoal 刷新煤炭网数据
  650. func RefreshDataFromCoal(wg *sync.WaitGroup) (err error) {
  651. errMsgList := make([]string, 0)
  652. defer func() {
  653. if err != nil {
  654. fmt.Println("RefreshDataFromCoal Err:" + err.Error())
  655. go alarm_msg.SendAlarmMsg("RefreshDataFromCoal ErrMsg:"+err.Error(), 3)
  656. }
  657. if len(errMsgList) > 0 {
  658. tips := fmt.Sprintf("RefreshDataFromCoal ErrMsg: %s", strings.Join(errMsgList, `<br/>`))
  659. fmt.Println(tips)
  660. utils.FileLog.Info(tips)
  661. go alarm_msg.SendAlarmMsg(tips, 3)
  662. }
  663. wg.Done()
  664. }()
  665. var condition string
  666. var pars []interface{}
  667. condition += " AND source=? "
  668. pars = append(pars, utils.DATA_SOURCE_COAL)
  669. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  670. if err != nil {
  671. return errors.New("GetEdbInfoByCondition:" + err.Error())
  672. }
  673. for _, v := range items {
  674. startDate := ""
  675. if v.Frequency == "日度" {
  676. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  677. } else if v.Frequency == "周度" {
  678. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  679. } else if v.Frequency == "月度" {
  680. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  681. } else if v.Frequency == "季度" {
  682. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  683. } else if v.Frequency == "年度" {
  684. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  685. } else {
  686. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  687. }
  688. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  689. if err != nil {
  690. errMsgList = append(errMsgList, "RefreshEdbData Err:"+err.Error())
  691. continue
  692. }
  693. if resp.Ret != 200 {
  694. errMsgList = append(errMsgList, "RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  695. continue
  696. }
  697. }
  698. return err
  699. }
  700. // RefreshDataFromMysteelChemical 刷新钢联化工数据
  701. func RefreshDataFromMysteelChemical(wg *sync.WaitGroup) (err error) {
  702. errMsgList := make([]string, 0)
  703. defer func() {
  704. if err != nil {
  705. fmt.Println("RefreshDataFromMysteelChemical Err:" + err.Error())
  706. go alarm_msg.SendAlarmMsg("RefreshDataFromMysteelChemical ErrMsg:"+err.Error(), 3)
  707. }
  708. if len(errMsgList) > 0 {
  709. tips := fmt.Sprintf("RefreshDataFromMysteelChemical ErrMsg: %s", strings.Join(errMsgList, `<br/>`))
  710. fmt.Println(tips)
  711. utils.FileLog.Info(tips)
  712. go alarm_msg.SendAlarmMsg(tips, 3)
  713. }
  714. wg.Done()
  715. }()
  716. var condition string
  717. var pars []interface{}
  718. condition += " AND source=? AND no_update = 0 "
  719. pars = append(pars, utils.DATA_SOURCE_MYSTEEL_CHEMICAL)
  720. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  721. if err != nil {
  722. return errors.New("GetEdbInfoByCondition:" + err.Error())
  723. }
  724. for _, v := range items {
  725. startDate := ""
  726. if v.Frequency == "日度" {
  727. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  728. } else if v.Frequency == "周度" {
  729. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  730. } else if v.Frequency == "月度" {
  731. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  732. } else if v.Frequency == "季度" {
  733. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  734. } else if v.Frequency == "年度" {
  735. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  736. } else {
  737. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  738. }
  739. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  740. if err != nil {
  741. errMsgList = append(errMsgList, "RefreshEdbData Err:"+err.Error())
  742. continue
  743. }
  744. if resp.Ret != 200 {
  745. errMsgList = append(errMsgList, "RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  746. continue
  747. }
  748. }
  749. return err
  750. }
  751. // RefreshDataFromComTrade 刷新 UN 数据
  752. func RefreshDataFromComTrade(wg *sync.WaitGroup) (err error) {
  753. errMsgList := make([]string, 0)
  754. defer func() {
  755. if err != nil {
  756. fmt.Println("RefreshDataFromComTrade Err:" + err.Error())
  757. go alarm_msg.SendAlarmMsg("RefreshDataFromComTrade ErrMsg:"+err.Error(), 3)
  758. }
  759. if len(errMsgList) > 0 {
  760. tips := fmt.Sprintf("RefreshDataFromComTrade ErrMsg: %s", strings.Join(errMsgList, `<br/>`))
  761. fmt.Println(tips)
  762. utils.FileLog.Info(tips)
  763. go alarm_msg.SendAlarmMsg(tips, 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_COM_TRADE)
  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. errMsgList = append(errMsgList, "RefreshEdbData Err:"+err.Error())
  793. continue
  794. }
  795. if resp.Ret != 200 {
  796. errMsgList = append(errMsgList, "RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  797. continue
  798. }
  799. }
  800. return err
  801. }
  802. // RefreshDataFromSci 刷新 卓创 数据
  803. func RefreshDataFromSci(wg *sync.WaitGroup) (err error) {
  804. errMsgList := make([]string, 0)
  805. defer func() {
  806. if err != nil {
  807. fmt.Println("RefreshDataFromSci Err:" + err.Error())
  808. go alarm_msg.SendAlarmMsg("RefreshDataFromSci ErrMsg:"+err.Error(), 3)
  809. }
  810. if len(errMsgList) > 0 {
  811. tips := fmt.Sprintf("RefreshDataFromSci ErrMsg: %s", strings.Join(errMsgList, `<br/>`))
  812. fmt.Println(tips)
  813. utils.FileLog.Info(tips)
  814. go alarm_msg.SendAlarmMsg(tips, 3)
  815. }
  816. wg.Done()
  817. }()
  818. var condition string
  819. var pars []interface{}
  820. condition += " AND source=? "
  821. pars = append(pars, utils.DATA_SOURCE_SCI)
  822. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  823. if err != nil {
  824. return errors.New("GetEdbInfoByCondition:" + err.Error())
  825. }
  826. for _, v := range items {
  827. startDate := ""
  828. if v.Frequency == "日度" {
  829. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  830. } else if v.Frequency == "周度" {
  831. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  832. } else if v.Frequency == "月度" {
  833. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  834. } else if v.Frequency == "季度" {
  835. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  836. } else if v.Frequency == "年度" {
  837. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  838. } else {
  839. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  840. }
  841. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  842. if err != nil {
  843. errMsgList = append(errMsgList, "RefreshEdbData Err:"+err.Error())
  844. continue
  845. }
  846. if resp.Ret != 200 {
  847. errMsgList = append(errMsgList, "RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  848. continue
  849. }
  850. }
  851. return err
  852. }
  853. // RefreshDataFromNationalStatistics 刷新统计局数据
  854. func RefreshDataFromNationalStatistics(wg *sync.WaitGroup) (err error) {
  855. errMsgList := make([]string, 0)
  856. defer func() {
  857. if err != nil {
  858. fmt.Println("RefreshDataFromNationalStatistics Err:" + err.Error())
  859. go alarm_msg.SendAlarmMsg("RefreshDataFromNationalStatistics ErrMsg:"+err.Error(), 3)
  860. }
  861. if len(errMsgList) > 0 {
  862. tips := fmt.Sprintf("RefreshDataFromNationalStatistics ErrMsg: %s", strings.Join(errMsgList, `<br/>`))
  863. fmt.Println(tips)
  864. utils.FileLog.Info(tips)
  865. go alarm_msg.SendAlarmMsg(tips, 3)
  866. }
  867. wg.Done()
  868. }()
  869. var condition string
  870. var pars []interface{}
  871. condition += ` AND source = ? `
  872. pars = append(pars, utils.DATA_SOURCE_NATIONAL_STATISTICS)
  873. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  874. if err != nil {
  875. return errors.New("GetEdbInfoByCondition:" + err.Error())
  876. }
  877. for _, v := range items {
  878. startDate := ""
  879. if v.Frequency == "日度" {
  880. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  881. } else if v.Frequency == "周度" {
  882. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  883. } else if v.Frequency == "月度" {
  884. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  885. } else if v.Frequency == "季度" {
  886. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  887. } else if v.Frequency == "年度" {
  888. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  889. } else {
  890. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  891. }
  892. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  893. if err != nil {
  894. errMsgList = append(errMsgList, "RefreshEdbData Err:"+err.Error())
  895. continue
  896. }
  897. if resp.Ret != 200 {
  898. errMsgList = append(errMsgList, "RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  899. continue
  900. }
  901. }
  902. return err
  903. }
  904. // RefreshDataFromEic 刷欧洲天然气数据
  905. func RefreshDataFromEic(wg *sync.WaitGroup) (err error) {
  906. defer func() {
  907. if err != nil {
  908. fmt.Println("RefreshDataFromEic Err:" + err.Error())
  909. go alarm_msg.SendAlarmMsg("RefreshDataFromEic ErrMsg:"+err.Error(), 3)
  910. }
  911. wg.Done()
  912. }()
  913. var condition string
  914. var pars []interface{}
  915. condition += " AND source=? "
  916. pars = append(pars, utils.DATA_SOURCE_GIE)
  917. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  918. if err != nil {
  919. return errors.New("GetEdbInfoByCondition:" + err.Error())
  920. }
  921. for _, v := range items {
  922. startDate := ""
  923. if v.Frequency == "日度" {
  924. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  925. } else if v.Frequency == "周度" {
  926. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  927. } else if v.Frequency == "月度" {
  928. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  929. } else if v.Frequency == "季度" {
  930. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  931. } else if v.Frequency == "年度" {
  932. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  933. } else {
  934. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  935. }
  936. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  937. if err != nil {
  938. return errors.New("RefreshEdbData Err:" + err.Error())
  939. }
  940. if resp.Ret != 200 {
  941. return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
  942. }
  943. }
  944. return err
  945. }
  946. // RefreshJiaYueDataFromBridge 嘉悦物产-刷新数据宝指标
  947. func RefreshJiaYueDataFromBridge(cont context.Context) (err error) {
  948. utils.FileLog.Info(fmt.Sprintf("嘉悦-开始刷新数据宝指标: %s", time.Now().Format(utils.FormatDateTime)))
  949. defer func() {
  950. if err != nil {
  951. tips := fmt.Sprintf("RefreshJiaYueDataFromBridge ErrMsg: %s", err.Error())
  952. utils.FileLog.Info(tips)
  953. go alarm_msg.SendAlarmMsg(tips, 3)
  954. }
  955. utils.FileLog.Info(fmt.Sprintf("嘉悦-结束刷新数据宝指标: %s", time.Now().Format(utils.FormatDateTime)))
  956. }()
  957. // 获取来自桥接服务的指标来源
  958. cond := ` AND from_bridge = 1`
  959. pars := make([]interface{}, 0)
  960. sources, e := data_manage.GetEdbSourceItemsByCondition(cond, pars, []string{}, "")
  961. if e != nil {
  962. err = fmt.Errorf("获取来自桥接服务的数据源失败, err: %s", e.Error())
  963. return
  964. }
  965. sourceArr := make([]string, 0)
  966. for _, v := range sources {
  967. if v.EdbSourceId <= 0 {
  968. continue
  969. }
  970. sourceArr = append(sourceArr, strconv.Itoa(v.EdbSourceId))
  971. }
  972. if len(sourceArr) == 0 {
  973. utils.FileLog.Info("RefreshJiaYueDataFromBridge 无数据来源")
  974. return
  975. }
  976. // 获取指标
  977. edbCond := fmt.Sprintf(` AND source IN (%s)`, utils.GetOrmInReplace(len(sourceArr)))
  978. edbPars := make([]interface{}, 0)
  979. edbPars = append(edbPars, sourceArr)
  980. items, e := data_manage.GetEdbInfoByCondition(edbCond, edbPars, 0)
  981. if e != nil {
  982. err = fmt.Errorf("GetEdbInfoByCondition err: %s", e.Error())
  983. return
  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, e := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  1001. if e != nil {
  1002. utils.FileLog.Info(fmt.Sprintf("RefreshEdbData err: %s", e.Error()))
  1003. //err = fmt.Errorf("RefreshEdbData err: %s", e.Error())
  1004. continue
  1005. }
  1006. if resp.Ret != 200 {
  1007. utils.FileLog.Info(fmt.Sprintf("RefreshEdbData indexCode: %s, err: %s, errMsg: %s", v.EdbCode, resp.Msg, resp.ErrMsg))
  1008. //err = fmt.Errorf("RefreshEdbData Err: %s; ErrMsg: %s", resp.Msg, resp.ErrMsg)
  1009. continue
  1010. }
  1011. }
  1012. return
  1013. }
  1014. // RefreshDataFromFubao 刷新富宝数据
  1015. func RefreshDataFromFubao(wg *sync.WaitGroup) (err error) {
  1016. errMsgList := make([]string, 0)
  1017. defer func() {
  1018. if err != nil {
  1019. fmt.Println("RefreshDataFromFubao Err:" + err.Error())
  1020. go alarm_msg.SendAlarmMsg("RefreshDataFromFubao ErrMsg:"+err.Error(), 3)
  1021. }
  1022. if len(errMsgList) > 0 {
  1023. errMsg := "RefreshDataFromFubao Err:" + strings.Join(errMsgList, "\n")
  1024. fmt.Println(errMsg)
  1025. go alarm_msg.SendAlarmMsg(errMsg, 3)
  1026. }
  1027. wg.Done()
  1028. }()
  1029. var condition string
  1030. var pars []interface{}
  1031. condition += ` AND source=? AND no_update = 0 `
  1032. pars = append(pars, utils.DATA_SOURCE_FUBAO)
  1033. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  1034. if err != nil {
  1035. return err
  1036. }
  1037. for _, v := range items {
  1038. startDate := ""
  1039. if v.Frequency == "日度" {
  1040. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  1041. } else if v.Frequency == "周度" {
  1042. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  1043. } else if v.Frequency == "月度" {
  1044. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  1045. } else if v.Frequency == "季度" {
  1046. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  1047. } else if v.Frequency == "年度" {
  1048. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  1049. } else {
  1050. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  1051. }
  1052. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  1053. if err != nil {
  1054. errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+err.Error())
  1055. continue
  1056. }
  1057. if resp.Ret != 200 {
  1058. errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  1059. continue
  1060. }
  1061. }
  1062. fmt.Println("Fubao刷新结束")
  1063. return err
  1064. }
  1065. // RefreshDataFromBloomberg 刷新Bloomberg
  1066. func RefreshDataFromBloomberg(wg *sync.WaitGroup) (err error) {
  1067. errMsgList := make([]string, 0)
  1068. defer func() {
  1069. if err != nil {
  1070. fmt.Println("RefreshDataFromBloomberg Err:" + err.Error())
  1071. go alarm_msg.SendAlarmMsg("RefreshDataFromBloomberg ErrMsg:"+err.Error(), 3)
  1072. }
  1073. if len(errMsgList) > 0 {
  1074. errMsg := "RefreshDataFromBloomberg Err:" + strings.Join(errMsgList, "\n")
  1075. fmt.Println(errMsg)
  1076. go alarm_msg.SendAlarmMsg(errMsg, 3)
  1077. }
  1078. wg.Done()
  1079. }()
  1080. var condition string
  1081. var pars []interface{}
  1082. condition += ` AND source = ? AND no_update = 0 `
  1083. pars = append(pars, utils.DATA_SOURCE_BLOOMBERG)
  1084. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  1085. if err != nil {
  1086. return err
  1087. }
  1088. for _, v := range items {
  1089. startDate := ""
  1090. if v.Frequency == "日度" {
  1091. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  1092. } else if v.Frequency == "周度" {
  1093. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  1094. } else if v.Frequency == "月度" {
  1095. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  1096. } else if v.Frequency == "季度" {
  1097. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  1098. } else if v.Frequency == "年度" {
  1099. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  1100. } else {
  1101. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  1102. }
  1103. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  1104. if err != nil {
  1105. errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+err.Error())
  1106. continue
  1107. }
  1108. if resp.Ret != 200 {
  1109. errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  1110. continue
  1111. }
  1112. }
  1113. fmt.Println("Bloomberg刷新结束")
  1114. return err
  1115. }
  1116. // RefreshDataFromCCF 刷新CCF化纤信息
  1117. func RefreshDataFromCCF(wg *sync.WaitGroup) (err error) {
  1118. errMsgList := make([]string, 0)
  1119. defer func() {
  1120. if err != nil {
  1121. tips := fmt.Sprintf("RefreshDataFromCCF err: %v", err)
  1122. utils.FileLog.Info(tips)
  1123. go alarm_msg.SendAlarmMsg(tips, 3)
  1124. }
  1125. if len(errMsgList) > 0 {
  1126. tips := fmt.Sprintf("RefreshDataFromCCF ErrMsg: %s", strings.Join(errMsgList, "\n"))
  1127. utils.FileLog.Info(tips)
  1128. go alarm_msg.SendAlarmMsg(tips, 3)
  1129. }
  1130. wg.Done()
  1131. }()
  1132. var condition string
  1133. var pars []interface{}
  1134. condition += ` AND source = ? AND no_update = 0 `
  1135. pars = append(pars, utils.DATA_SOURCE_CCF)
  1136. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  1137. if err != nil {
  1138. return err
  1139. }
  1140. for _, v := range items {
  1141. startDate := ""
  1142. if v.Frequency == "日度" {
  1143. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  1144. } else if v.Frequency == "周度" {
  1145. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  1146. } else if v.Frequency == "月度" {
  1147. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  1148. } else if v.Frequency == "季度" {
  1149. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  1150. } else if v.Frequency == "年度" {
  1151. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  1152. } else {
  1153. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  1154. }
  1155. resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  1156. if err != nil {
  1157. errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+err.Error())
  1158. continue
  1159. }
  1160. if resp.Ret != 200 {
  1161. errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
  1162. continue
  1163. }
  1164. }
  1165. fmt.Println("CCF化纤信息刷新结束")
  1166. return err
  1167. }
  1168. // RefreshBaseDataFromSource
  1169. // @Description: 刷新基础数据
  1170. // @author: Roc
  1171. // @datetime 2024-08-01 18:10:03
  1172. // @param wg *sync.WaitGroup
  1173. // @param source int
  1174. // @return err error
  1175. func RefreshBaseDataFromSource(wg *sync.WaitGroup, source int) (err error) {
  1176. errMsgList := make([]string, 0)
  1177. defer func() {
  1178. if err != nil {
  1179. errMsg := fmt.Sprintf("刷新基础数据失败,来源:%d,ErrMsg:%s", source, err.Error())
  1180. utils.FileLog.Info(errMsg)
  1181. go alarm_msg.SendAlarmMsg(errMsg, 3)
  1182. }
  1183. if len(errMsgList) > 0 {
  1184. errMsg := fmt.Sprintf("刷新基础数据失败,来源:%d,ErrMsg:%s", source, strings.Join(errMsgList, "\n"))
  1185. utils.FileLog.Info(errMsg)
  1186. go alarm_msg.SendAlarmMsg(errMsg, 3)
  1187. }
  1188. wg.Done()
  1189. }()
  1190. var condition string
  1191. var pars []interface{}
  1192. condition += " AND source=? "
  1193. pars = append(pars, source)
  1194. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  1195. if err != nil {
  1196. return errors.New("GetEdbInfoByCondition:" + err.Error())
  1197. }
  1198. for _, v := range items {
  1199. startDate := ""
  1200. if v.Frequency == "日度" {
  1201. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  1202. } else if v.Frequency == "周度" {
  1203. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  1204. } else if v.Frequency == "月度" {
  1205. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  1206. } else if v.Frequency == "季度" {
  1207. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  1208. } else if v.Frequency == "年度" {
  1209. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  1210. } else {
  1211. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  1212. }
  1213. resp, tmpErr := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  1214. if err != nil {
  1215. errMsgList = append(errMsgList, fmt.Sprintf("指标ID:%d;指标编码:%s;err:%s", v.EdbInfoId, v.EdbCode, tmpErr.Error()))
  1216. continue
  1217. }
  1218. if resp.Ret != 200 {
  1219. errMsgList = append(errMsgList, fmt.Sprintf("指标ID:%d;指标编码:%s;msg:%s;errMsg:%s", v.EdbInfoId, v.EdbCode, resp.Msg, resp.ErrMsg))
  1220. continue
  1221. }
  1222. }
  1223. return err
  1224. }
  1225. // RefreshDataFromTradeAnalysis 刷新持仓分析指标
  1226. func RefreshDataFromTradeAnalysis(wg *sync.WaitGroup) (err error) {
  1227. utils.FileLog.Info(fmt.Sprintf("持仓分析指标刷新开始: %s", time.Now().Format(utils.FormatDateTime)))
  1228. errMsgList := make([]string, 0)
  1229. defer func() {
  1230. if err != nil {
  1231. tips := fmt.Sprintf("RefreshDataFromTradeAnalysis err: %v", err)
  1232. utils.FileLog.Info(tips)
  1233. go alarm_msg.SendAlarmMsg(tips, 3)
  1234. }
  1235. if len(errMsgList) > 0 {
  1236. tips := fmt.Sprintf("RefreshDataFromTradeAnalysis ErrMsg: %s", strings.Join(errMsgList, "\n"))
  1237. utils.FileLog.Info(tips)
  1238. go alarm_msg.SendAlarmMsg(tips, 3)
  1239. }
  1240. wg.Done()
  1241. }()
  1242. var condition string
  1243. var pars []interface{}
  1244. condition += ` AND source = ? AND no_update = 0 `
  1245. pars = append(pars, utils.DATA_SOURCE_TRADE_ANALYSIS)
  1246. items, e := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  1247. if e != nil {
  1248. err = fmt.Errorf("获取持仓分析指标失败, %v", e)
  1249. return
  1250. }
  1251. for _, v := range items {
  1252. // 持仓分析指标只有日度
  1253. startDate := v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  1254. resp, e := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
  1255. if e != nil {
  1256. errMsgList = append(errMsgList, fmt.Sprintf("EdbCode: %s, RefreshEdbData err: %v", v.EdbCode, e))
  1257. continue
  1258. }
  1259. if resp.Ret != 200 {
  1260. errMsgList = append(errMsgList, fmt.Sprintf("EdbCode: %s, RefreshEdbData err: %v, errMsg: %s", v.EdbCode, e, resp.ErrMsg))
  1261. continue
  1262. }
  1263. }
  1264. utils.FileLog.Info(fmt.Sprintf("持仓分析指标刷新结束: %s", time.Now().Format(utils.FormatDateTime)))
  1265. return err
  1266. }