edb_info.go 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008
  1. package data
  2. import (
  3. "context"
  4. "errors"
  5. "fmt"
  6. "github.com/rdlucklib/rdluck_tools/http"
  7. "hongze/hongze_task/models/data_manage"
  8. "hongze/hongze_task/utils"
  9. "strconv"
  10. "sync"
  11. "time"
  12. )
  13. //刷新同花顺数据
  14. func RefreshDataFromThs(wg *sync.WaitGroup) (err error) {
  15. defer func() {
  16. if err != nil {
  17. fmt.Println("RefreshDataFromThs Err:" + err.Error())
  18. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromThs ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  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. var endDate string
  32. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
  33. for _, v := range items {
  34. startDate := ""
  35. if v.Frequency == "日度" {
  36. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  37. } else if v.Frequency == "周度" {
  38. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  39. } else if v.Frequency == "月度" {
  40. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  41. } else if v.Frequency == "季度" {
  42. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  43. } else if v.Frequency == "年度" {
  44. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  45. } else {
  46. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  47. }
  48. err = SyncEdbDataByThs(int64(v.EdbInfoId), v.EdbCode, startDate, endDate)
  49. if err != nil {
  50. err = errors.New("SyncEdbDataByThs Err:" + err.Error())
  51. return err
  52. }
  53. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  54. if err != nil {
  55. err = errors.New("GetEdbInfoMaxAndMinInfo Err:" + err.Error())
  56. return err
  57. }
  58. if item != nil {
  59. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  60. if err != nil {
  61. err = errors.New("ModifyEdbInfoMaxAndMinInfo Err:" + err.Error())
  62. return err
  63. }
  64. }
  65. }
  66. return err
  67. }
  68. //刷新万得数据
  69. func RefreshDataFromWind(wg *sync.WaitGroup) (err error) {
  70. defer func() {
  71. if err != nil {
  72. fmt.Println("RefreshDataFromWind Err:" + err.Error())
  73. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromWind ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  74. }
  75. wg.Done()
  76. }()
  77. var condition string
  78. var pars []interface{}
  79. condition += " AND source=? "
  80. pars = append(pars, utils.DATA_SOURCE_WIND)
  81. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  82. if err != nil {
  83. return err
  84. }
  85. var endDate string
  86. endDate = time.Now().Format(utils.FormatDate)
  87. for _, v := range items {
  88. startDate := ""
  89. if v.Frequency == "日度" {
  90. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  91. } else if v.Frequency == "周度" {
  92. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  93. } else if v.Frequency == "月度" {
  94. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  95. } else if v.Frequency == "季度" {
  96. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  97. } else if v.Frequency == "年度" {
  98. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  99. } else {
  100. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  101. }
  102. err = SyncEdbDataByWind(int64(v.EdbInfoId), v.EdbCode, startDate, endDate)
  103. if err != nil {
  104. return err
  105. }
  106. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  107. if err != nil {
  108. return err
  109. }
  110. if item != nil {
  111. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  112. if err != nil {
  113. return err
  114. }
  115. }
  116. }
  117. return err
  118. }
  119. //刷新彭博数据
  120. func RefreshDataFromPb(wg *sync.WaitGroup) (err error) {
  121. defer func() {
  122. if err != nil {
  123. fmt.Println("RefreshDataFromPb Err:" + err.Error())
  124. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromPb ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  125. }
  126. wg.Done()
  127. }()
  128. var condition string
  129. var pars []interface{}
  130. condition += " AND source=? "
  131. pars = append(pars, utils.DATA_SOURCE_PB)
  132. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  133. if err != nil {
  134. return errors.New("GetEdbInfoByCondition:" + err.Error())
  135. }
  136. var endDate string
  137. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  138. for _, v := range items {
  139. startDate := ""
  140. if v.Frequency == "日度" {
  141. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDateUnSpace)
  142. } else if v.Frequency == "周度" {
  143. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDateUnSpace)
  144. } else if v.Frequency == "月度" {
  145. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDateUnSpace)
  146. } else if v.Frequency == "季度" {
  147. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDateUnSpace)
  148. } else if v.Frequency == "年度" {
  149. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDateUnSpace)
  150. } else {
  151. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDateUnSpace)
  152. }
  153. err = SyncEdbDataByPb(int64(v.EdbInfoId), v.EdbCode, startDate, endDate)
  154. if err != nil {
  155. return errors.New("SyncEdbDataByPb:" + err.Error())
  156. }
  157. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  158. if err != nil {
  159. return err
  160. }
  161. if item != nil {
  162. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  163. if err != nil {
  164. return err
  165. }
  166. }
  167. //minDate, maxDate, err := data.GetEdbDataPbMaxOrMinDate(v.EdbInfoId)
  168. //if err != nil {
  169. // return errors.New("GetEdbDataThsMaxOrMinDate:" + err.Error())
  170. //}
  171. //fmt.Println("minDate:" + minDate + ";maxDate:" + maxDate)
  172. //err = data.ModifyEdbDataInfoDate(v.EdbInfoId, maxDate)
  173. //if err != nil {
  174. // return errors.New("ModifyEdbDataInfoDate:" + err.Error())
  175. //}
  176. }
  177. return err
  178. }
  179. func CheckDataInterface(cont context.Context) (err error) {
  180. go func() {
  181. checkUrl := utils.Hz_Data_Url + `hz_server`
  182. body, err := http.Get(checkUrl)
  183. if err != nil {
  184. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"检测数据接口:失败提醒", "CheckDataInterface ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  185. }
  186. result := string(body)
  187. if result != "1" {
  188. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"检测数据接口:失败提醒", "CheckDataInterface ErrMsg:"+string(body), utils.EmailSendToUsers)
  189. }
  190. //阿里服务器监听
  191. checkUrl2 := utils.Hz_Server_Data_Url + `hz_server`
  192. body, err = http.Get(checkUrl2)
  193. if err != nil {
  194. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"检测服务器数据接口:失败提醒", "CheckDataInterface ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  195. }
  196. result = string(body)
  197. if result != "1" {
  198. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"检测服务器数据接口:失败提醒", "CheckDataInterface ErrMsg:"+string(body), utils.EmailSendToUsers)
  199. }
  200. }()
  201. return
  202. }
  203. func CheckPbDataInterface(cont context.Context) (err error) {
  204. go func() {
  205. checkUrl := utils.Hz_Data_PB_Url + `hz_server`
  206. body, err := http.Get(checkUrl)
  207. if err != nil {
  208. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"检测数据接口:失败提醒", "CheckPbDataInterface ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  209. }
  210. result := string(body)
  211. if result != "1" {
  212. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"检测数据接口:失败提醒", "CheckPbDataInterface ErrMsg:"+string(body), utils.EmailSendToUsers)
  213. }
  214. }()
  215. return
  216. }
  217. //刷新所有计算指标
  218. func RefreshDataFromCalculateAll() (err error) {
  219. defer func() {
  220. if err != nil {
  221. utils.FileLog.Info("RefreshDataFromCalculateAll Err:" + err.Error())
  222. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromCalculateAll ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  223. }
  224. }()
  225. var condition string
  226. var pars []interface{}
  227. condition += " AND edb_type=? "
  228. pars = append(pars, 2)
  229. //condition += " AND is_update=1 "
  230. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  231. if err != nil {
  232. return err
  233. }
  234. for _, v := range items {
  235. edbInfoId := v.EdbInfoId
  236. edbCode := v.EdbCode
  237. source := v.Source
  238. fmt.Println(v.EdbInfoId, v.EdbCode, v.EdbName, v.SourceName, source)
  239. if source == utils.DATA_SOURCE_CALCULATE {
  240. startDate := ""
  241. if v.Frequency == "日度" {
  242. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  243. } else if v.Frequency == "周度" {
  244. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  245. } else if v.Frequency == "月度" {
  246. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  247. } else if v.Frequency == "季度" {
  248. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  249. } else if v.Frequency == "年度" {
  250. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  251. } else {
  252. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  253. }
  254. endDate := time.Now().Format(utils.FormatDate)
  255. var edbInfoIdBytes []string
  256. calculateMap, err := data_manage.GetEdbInfoCalculateDetail(int(v.EdbInfoId))
  257. if err != nil {
  258. return errors.New("GetEdbInfoCalculateDetail Err:" + err.Error())
  259. }
  260. var formulaStr string
  261. edbInfoList := make([]*data_manage.EdbInfo, 0)
  262. for _, v := range calculateMap {
  263. formulaStr += v.FromTag + ","
  264. edbInfoIdBytes = append(edbInfoIdBytes, v.FromTag)
  265. edbInfo, _ := data_manage.GetEdbInfoById(v.FromEdbInfoId)
  266. edbInfoList = append(edbInfoList, edbInfo)
  267. }
  268. //endDate = ""
  269. err = RefreshCalculate(edbInfoList, edbInfoId, edbCode, v.CalculateFormula, startDate, endDate, edbInfoIdBytes)
  270. if err != nil {
  271. return errors.New("RefreshCalculate Err:" + err.Error())
  272. }
  273. } else if source == utils.DATA_SOURCE_CALCULATE_LJZZY {
  274. calculateLjzzy, err := data_manage.GetEdbInfoCalculateLjzzyDetail(edbInfoId)
  275. if err != nil {
  276. if err.Error() == utils.ErrNoRow() {
  277. continue
  278. }
  279. return errors.New("GetEdbInfoCalculateLjzzyDetail Err:" + err.Error())
  280. }
  281. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateLjzzy.FromEdbInfoId)
  282. if err != nil {
  283. if err.Error() == utils.ErrNoRow() {
  284. continue
  285. }
  286. return errors.New("GetEdbInfoById Err:" + err.Error())
  287. }
  288. year := time.Now().Year() - 1
  289. startDate := strconv.Itoa(year) + "-01" + "-01"
  290. endDate := "" //time.Now().Format(utils.FormatDate)
  291. err = data_manage.RefreshCalculateLjzzy(edbInfoId, fromEdbInfo, edbCode, startDate, endDate)
  292. if err != nil {
  293. return errors.New("RefreshCalculateLjzzy Err:" + err.Error())
  294. }
  295. } else if source == utils.DATA_SOURCE_CALCULATE_TBZ {
  296. calculateTbz, err := data_manage.GetEdbInfoCalculateTbzDetail(edbInfoId)
  297. if err != nil {
  298. return errors.New("GetEdbInfoCalculateTbzDetail Err:" + err.Error())
  299. }
  300. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
  301. if err != nil {
  302. if err.Error() == utils.ErrNoRow() {
  303. continue
  304. }
  305. return errors.New("GetEdbInfoById Err:" + err.Error())
  306. }
  307. startDate := time.Now().AddDate(-2, -2, 0).Format(utils.FormatDate)
  308. endDate := "" //time.Now().Format(utils.FormatDate)
  309. err = data_manage.RefreshCalculateTbz(edbInfoId, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
  310. if err != nil {
  311. return errors.New("RefreshCalculateTbz Err:" + err.Error())
  312. }
  313. } else if source == utils.DATA_SOURCE_CALCULATE_TCZ {
  314. calculateTcz, err := data_manage.GetEdbInfoCalculateTczDetail(edbInfoId)
  315. if err != nil {
  316. return errors.New("GetEdbInfoCalculateTczDetail Err:" + err.Error())
  317. }
  318. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTcz.FromEdbInfoId)
  319. if err != nil {
  320. if err.Error() == utils.ErrNoRow() {
  321. continue
  322. }
  323. return errors.New("GetEdbInfoById Err:" + err.Error())
  324. }
  325. startDate := time.Now().AddDate(-2, -2, 0).Format(utils.FormatDate)
  326. endDate := "" //time.Now().Format(utils.FormatDate)
  327. err = data_manage.RefreshCalculateTcz(edbInfoId, fromEdbInfo, calculateTcz.EdbCode, startDate, endDate)
  328. if err != nil {
  329. return errors.New("RefreshCalculateTcz Err:" + err.Error())
  330. }
  331. } else if source == utils.DATA_SOURCE_CALCULATE_NSZYDPJJS {
  332. calculateNszydpjjs, err := data_manage.GetEdbInfoCalculateNszydpjjsDetail(edbInfoId)
  333. if err != nil {
  334. return errors.New("GetEdbInfoCalculateNszydpjjsDetail Err:" + err.Error())
  335. }
  336. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateNszydpjjs.FromEdbInfoId)
  337. if err != nil {
  338. if err.Error() == utils.ErrNoRow() {
  339. continue
  340. }
  341. return errors.New("GetEdbInfoById Err:" + err.Error())
  342. }
  343. formulaInt, _ := strconv.Atoi(v.CalculateFormula)
  344. err = data_manage.RefreshCalculateNszydpjjs(edbInfoId, v.Source, formulaInt, fromEdbInfo, calculateNszydpjjs.EdbCode)
  345. if err != nil {
  346. return errors.New("RefreshCalculateNszydpjjs Err:" + err.Error())
  347. }
  348. } else if source == utils.DATA_SOURCE_CALCULATE_HBZ {
  349. calculateHbz, err := data_manage.GetEdbInfoCalculateHbzDetail(edbInfoId)
  350. if err != nil {
  351. return errors.New("GetEdbInfoCalculateHbzDetail Err:" + err.Error())
  352. }
  353. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateHbz.FromEdbInfoId)
  354. if err != nil {
  355. if err.Error() == utils.ErrNoRow() {
  356. continue
  357. }
  358. return errors.New("GetEdbInfoById Err:" + err.Error())
  359. }
  360. startDate := time.Now().AddDate(-2, -2, 0).Format(utils.FormatDate)
  361. endDate := "" //time.Now().Format(utils.FormatDate)
  362. formulaInt, _ := strconv.Atoi(v.CalculateFormula)
  363. err = data_manage.RefreshCalculateHbz(edbInfoId, source, fromEdbInfo, calculateHbz.EdbCode, startDate, endDate, formulaInt)
  364. if err != nil {
  365. return errors.New("RefreshCalculateTbz Err:" + err.Error())
  366. }
  367. } else if source == utils.DATA_SOURCE_CALCULATE_HCZ {
  368. calculateHcz, err := data_manage.GetEdbInfoCalculateHczDetail(edbInfoId)
  369. if err != nil {
  370. return errors.New("GetEdbInfoCalculateHczDetail Err:" + err.Error())
  371. }
  372. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateHcz.FromEdbInfoId)
  373. if err != nil {
  374. if err.Error() == utils.ErrNoRow() {
  375. continue
  376. }
  377. return errors.New("GetEdbInfoById Err:" + err.Error())
  378. }
  379. startDate := time.Now().AddDate(-2, -2, 0).Format(utils.FormatDate)
  380. endDate := "" //time.Now().Format(utils.FormatDate)
  381. err = data_manage.RefreshCalculateHcz(edbInfoId, source, fromEdbInfo, calculateHcz.EdbCode, startDate, endDate)
  382. if err != nil {
  383. return errors.New("RefreshCalculateTbz Err:" + err.Error())
  384. }
  385. } else if source == utils.DATA_SOURCE_CALCULATE_BP {
  386. calculateBp, err := data_manage.GetEdbInfoCalculateBpDetail(edbInfoId)
  387. if err != nil && err.Error() != utils.ErrNoRow() {
  388. return errors.New("GetEdbInfoCalculateBpDetail Err:" + err.Error())
  389. }
  390. if calculateBp != nil {
  391. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateBp.FromEdbInfoId)
  392. if err != nil {
  393. if err.Error() == utils.ErrNoRow() {
  394. continue
  395. }
  396. return errors.New("GetEdbInfoById Err:" + err.Error())
  397. }
  398. startDate := time.Now().AddDate(-2, -2, 0).Format(utils.FormatDate)
  399. endDate := "" //time.Now().Format(utils.FormatDate)
  400. err = data_manage.RefreshCalculateBp(edbInfoId, fromEdbInfo, calculateBp.EdbCode, startDate, endDate)
  401. if err != nil {
  402. return errors.New("RefreshCalculateTbz Err:" + err.Error())
  403. }
  404. }
  405. } else if source == utils.DATA_SOURCE_CALCULATE_TIME_SHIFT {
  406. calculate, err := data_manage.GetEdbInfoCalculateMappingDetail(edbInfoId)
  407. if err != nil {
  408. return fmt.Errorf("GetEdbInfoCalculateTbzDetail Err:" + err.Error())
  409. }
  410. fromEdbInfo, err := data_manage.GetEdbInfoById(calculate.FromEdbInfoId)
  411. if err != nil {
  412. if err.Error() == utils.ErrNoRow() {
  413. continue
  414. }
  415. return fmt.Errorf("GetEdbInfoById Err:" + err.Error())
  416. }
  417. //startDate := v.StartDate.Format(utils.FormatDate)
  418. //endDate := time.Now().Format(utils.FormatDate)
  419. formulaInt, _ := strconv.Atoi(calculate.CalculateFormula)
  420. err = data_manage.RefreshAllCalculateTimeShift(edbInfoId, source, formulaInt, calculate.MoveType, fromEdbInfo, calculate.EdbCode, calculate.MoveFrequency)
  421. if err != nil {
  422. return fmt.Errorf("RefreshAllCalculateTimeShift Err:" + err.Error())
  423. }
  424. } else if source == utils.DATA_SOURCE_CALCULATE_ZJPJ { //刷新直接拼接
  425. tmpEdbInfo, err := data_manage.GetEdbInfoById(v.EdbInfoId)
  426. if err != nil {
  427. if err.Error() == utils.ErrNoRow() {
  428. continue
  429. }
  430. return fmt.Errorf("GetEdbInfoById Err:" + err.Error())
  431. }
  432. err = data_manage.RefreshAllCalculateZjpj(tmpEdbInfo)
  433. if err != nil {
  434. return fmt.Errorf("RefreshAllCalculateZjpj Err:" + err.Error())
  435. }
  436. } else if source == utils.DATA_SOURCE_CALCULATE_LJZTBPJ { //刷新累计值同比拼接
  437. tmpEdbInfo, err := data_manage.GetEdbInfoById(v.EdbInfoId)
  438. if err != nil {
  439. if err.Error() == utils.ErrNoRow() {
  440. continue
  441. }
  442. return fmt.Errorf("GetEdbInfoById Err:" + err.Error())
  443. }
  444. err = data_manage.RefreshAllCalculateLjztbpj(tmpEdbInfo)
  445. if err != nil {
  446. return fmt.Errorf("RefreshAllCalculateLjztbpj Err:" + err.Error())
  447. }
  448. } else {
  449. msg := "刷新失败,无效的指标渠道:source:" + strconv.Itoa(source) + " EdbCode:" + v.EdbCode
  450. err = errors.New(msg)
  451. return err
  452. }
  453. maxAndMinItem, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
  454. if err != nil {
  455. fmt.Println("GetEdbInfoMaxAndMinInfo Err:" + err.Error() + ";source:" + strconv.Itoa(source) + ";edbCode:" + edbCode)
  456. err = errors.New("GetEdbInfoMaxAndMinInfo Err:" + err.Error() + ";source:" + strconv.Itoa(source) + ";edbCode:" + edbCode)
  457. return err
  458. }
  459. if maxAndMinItem != nil {
  460. err = data_manage.ModifyEdbInfoMaxAndMinInfo(edbInfoId, maxAndMinItem)
  461. if err != nil {
  462. return err
  463. }
  464. }
  465. }
  466. return err
  467. }
  468. //刷新手工指标数据
  469. func RefreshDataFromManual(wg *sync.WaitGroup) (err error) {
  470. defer func() {
  471. if err != nil {
  472. fmt.Println("RefreshDataFromManual Err:" + err.Error())
  473. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromManual ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  474. }
  475. wg.Done()
  476. }()
  477. var condition string
  478. var pars []interface{}
  479. condition += " AND source=? "
  480. pars = append(pars, utils.DATA_SOURCE_MANUAL)
  481. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  482. if err != nil {
  483. return errors.New("GetEdbInfoByCondition:" + err.Error())
  484. }
  485. for _, v := range items {
  486. err = data_manage.RefreshManual(v)
  487. if err != nil {
  488. return errors.New("RefreshManual:edbCode:" + v.EdbCode + ":" + err.Error())
  489. }
  490. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  491. if err != nil {
  492. if err.Error() != utils.ErrNoRow() {
  493. return err
  494. } else {
  495. err = nil
  496. }
  497. } else {
  498. if item != nil {
  499. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  500. if err != nil {
  501. return err
  502. }
  503. }
  504. }
  505. }
  506. return err
  507. }
  508. //刷新隆众数据
  509. func RefreshDataFromLz(wg *sync.WaitGroup) (err error) {
  510. defer func() {
  511. if err != nil {
  512. fmt.Println("RefreshDataFromLz Err:" + err.Error())
  513. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromLz ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  514. }
  515. wg.Done()
  516. }()
  517. var condition string
  518. var pars []interface{}
  519. condition += " AND source=? "
  520. pars = append(pars, utils.DATA_SOURCE_LZ)
  521. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  522. if err != nil {
  523. return errors.New("GetEdbInfoByCondition:" + err.Error())
  524. }
  525. var endDate string
  526. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  527. for _, v := range items {
  528. startDate := ""
  529. if v.Frequency == "日度" {
  530. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  531. } else if v.Frequency == "周度" {
  532. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  533. } else if v.Frequency == "月度" {
  534. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  535. } else if v.Frequency == "季度" {
  536. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  537. } else if v.Frequency == "年度" {
  538. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  539. } else {
  540. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  541. }
  542. fmt.Println(startDate, endDate)
  543. err = data_manage.RefreshEdbDataByLz(v.EdbInfoId, v.EdbCode, startDate, endDate)
  544. if err != nil {
  545. return errors.New("RefreshEdbDataByLz:" + err.Error())
  546. }
  547. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  548. if err != nil {
  549. return err
  550. }
  551. if item != nil {
  552. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  553. if err != nil {
  554. return err
  555. }
  556. }
  557. }
  558. return err
  559. }
  560. //刷新有色数据
  561. func RefreshDataFromYs(wg *sync.WaitGroup) (err error) {
  562. defer func() {
  563. if err != nil {
  564. fmt.Println("RefreshDataFromYs Err:" + err.Error())
  565. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromYs ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  566. }
  567. wg.Done()
  568. }()
  569. var condition string
  570. var pars []interface{}
  571. condition += " AND source=? "
  572. pars = append(pars, utils.DATA_SOURCE_YS)
  573. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  574. if err != nil {
  575. return errors.New("GetEdbInfoByCondition:" + err.Error())
  576. }
  577. var endDate string
  578. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  579. for _, v := range items {
  580. startDate := ""
  581. if v.Frequency == "日度" {
  582. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  583. } else if v.Frequency == "周度" {
  584. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  585. } else if v.Frequency == "月度" {
  586. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  587. } else if v.Frequency == "季度" {
  588. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  589. } else if v.Frequency == "年度" {
  590. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  591. } else {
  592. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  593. }
  594. fmt.Println(startDate, endDate)
  595. err = data_manage.RefreshEdbDataByYs(v.EdbInfoId, v.EdbCode, startDate, endDate)
  596. if err != nil {
  597. return errors.New("RefreshEdbDataByYs:" + err.Error())
  598. }
  599. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  600. if err != nil {
  601. return err
  602. }
  603. if item != nil {
  604. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  605. if err != nil {
  606. return err
  607. }
  608. }
  609. }
  610. return err
  611. }
  612. //刷新钢联数据
  613. func RefreshDataFromGl(wg *sync.WaitGroup) (err error) {
  614. defer func() {
  615. if err != nil {
  616. fmt.Println("RefreshDataFromGl Err:" + err.Error())
  617. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromYs ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  618. }
  619. wg.Done()
  620. }()
  621. var condition string
  622. var pars []interface{}
  623. condition += " AND source=? "
  624. pars = append(pars, utils.DATA_SOURCE_GL)
  625. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  626. if err != nil {
  627. return errors.New("GetEdbInfoByCondition:" + err.Error())
  628. }
  629. var endDate string
  630. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  631. for _, v := range items {
  632. startDate := ""
  633. if v.Frequency == "日度" {
  634. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  635. } else if v.Frequency == "周度" {
  636. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  637. } else if v.Frequency == "月度" {
  638. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  639. } else if v.Frequency == "季度" {
  640. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  641. } else if v.Frequency == "年度" {
  642. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  643. } else {
  644. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  645. }
  646. fmt.Println(startDate, endDate)
  647. err = data_manage.RefreshEdbDataByGl(v.EdbInfoId, v.EdbCode, startDate, endDate)
  648. if err != nil {
  649. return errors.New("RefreshEdbDataByGl:" + err.Error())
  650. }
  651. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  652. if err != nil {
  653. return err
  654. }
  655. if item != nil {
  656. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  657. if err != nil {
  658. return err
  659. }
  660. }
  661. }
  662. return err
  663. }
  664. // RefreshDataFromSh 刷新上期所数据
  665. func RefreshDataFromSh(wg *sync.WaitGroup) (err error) {
  666. defer func() {
  667. if err != nil {
  668. fmt.Println("RefreshDataFromSh Err:" + err.Error())
  669. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromSh ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  670. }
  671. wg.Done()
  672. }()
  673. var condition string
  674. var pars []interface{}
  675. condition += " AND source=? "
  676. pars = append(pars, utils.DATA_SOURCE_SH)
  677. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  678. if err != nil {
  679. return errors.New("GetEdbInfoByCondition:" + err.Error())
  680. }
  681. var endDate string
  682. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  683. for _, v := range items {
  684. startDate := ""
  685. if v.Frequency == "日度" {
  686. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  687. } else if v.Frequency == "周度" {
  688. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  689. } else if v.Frequency == "月度" {
  690. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  691. } else if v.Frequency == "季度" {
  692. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  693. } else if v.Frequency == "年度" {
  694. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  695. } else {
  696. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  697. }
  698. fmt.Println(startDate, endDate)
  699. err = data_manage.RefreshEdbDataBySh(v.EdbInfoId, v.EdbCode, startDate, endDate)
  700. if err != nil {
  701. return errors.New("RefreshEdbDataBySh:" + err.Error())
  702. }
  703. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  704. if err != nil {
  705. return err
  706. }
  707. if item != nil {
  708. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  709. if err != nil {
  710. return err
  711. }
  712. }
  713. }
  714. return err
  715. }
  716. // RefreshDataFromDl 刷新大商所数据
  717. func RefreshDataFromDl(wg *sync.WaitGroup) (err error) {
  718. defer func() {
  719. if err != nil {
  720. fmt.Println("RefreshDataFromDl Err:" + err.Error())
  721. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromDl ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  722. }
  723. wg.Done()
  724. }()
  725. var condition string
  726. var pars []interface{}
  727. condition += " AND source=? "
  728. pars = append(pars, utils.DATA_SOURCE_DL)
  729. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  730. if err != nil {
  731. return errors.New("GetEdbInfoByCondition:" + err.Error())
  732. }
  733. var endDate string
  734. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  735. for _, v := range items {
  736. startDate := ""
  737. if v.Frequency == "日度" {
  738. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  739. } else if v.Frequency == "周度" {
  740. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  741. } else if v.Frequency == "月度" {
  742. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  743. } else if v.Frequency == "季度" {
  744. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  745. } else if v.Frequency == "年度" {
  746. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  747. } else {
  748. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  749. }
  750. fmt.Println(startDate, endDate)
  751. err = data_manage.RefreshEdbDataByDl(v.EdbInfoId, v.EdbCode, startDate, endDate)
  752. if err != nil {
  753. return errors.New("RefreshEdbDataByDl:" + err.Error())
  754. }
  755. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  756. if err != nil {
  757. return err
  758. }
  759. if item != nil {
  760. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  761. if err != nil {
  762. return err
  763. }
  764. }
  765. }
  766. return err
  767. }
  768. // RefreshDataFromShfe 刷新上期能源数据
  769. func RefreshDataFromShfe(wg *sync.WaitGroup) (err error) {
  770. defer func() {
  771. if err != nil {
  772. fmt.Println("RefreshDataFromShfe Err:" + err.Error())
  773. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromShfe ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  774. }
  775. wg.Done()
  776. }()
  777. var condition string
  778. var pars []interface{}
  779. condition += " AND source=? "
  780. pars = append(pars, utils.DATA_SOURCE_SHFE)
  781. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  782. if err != nil {
  783. return errors.New("GetEdbInfoByCondition:" + err.Error())
  784. }
  785. var endDate string
  786. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  787. for _, v := range items {
  788. startDate := ""
  789. if v.Frequency == "日度" {
  790. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  791. } else if v.Frequency == "周度" {
  792. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  793. } else if v.Frequency == "月度" {
  794. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  795. } else if v.Frequency == "季度" {
  796. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  797. } else if v.Frequency == "年度" {
  798. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  799. } else {
  800. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  801. }
  802. fmt.Println(startDate, endDate)
  803. err = data_manage.RefreshEdbDataByShfe(v.EdbInfoId, v.EdbCode, startDate, endDate)
  804. if err != nil {
  805. return errors.New("RefreshEdbDataByShfe:" + err.Error())
  806. }
  807. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  808. if err != nil {
  809. return err
  810. }
  811. if item != nil {
  812. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  813. if err != nil {
  814. return err
  815. }
  816. }
  817. }
  818. return err
  819. }
  820. // RefreshDataFromCffex 刷新中金所数据
  821. func RefreshDataFromCffex(wg *sync.WaitGroup) (err error) {
  822. defer func() {
  823. if err != nil {
  824. fmt.Println("RefreshDataFromCffex Err:" + err.Error())
  825. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromCffex ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  826. }
  827. wg.Done()
  828. }()
  829. var condition string
  830. var pars []interface{}
  831. condition += " AND source=? "
  832. pars = append(pars, utils.DATA_SOURCE_CFFEX)
  833. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  834. if err != nil {
  835. return errors.New("GetEdbInfoByCondition:" + err.Error())
  836. }
  837. var endDate string
  838. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  839. for _, v := range items {
  840. startDate := ""
  841. if v.Frequency == "日度" {
  842. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  843. } else if v.Frequency == "周度" {
  844. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  845. } else if v.Frequency == "月度" {
  846. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  847. } else if v.Frequency == "季度" {
  848. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  849. } else if v.Frequency == "年度" {
  850. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  851. } else {
  852. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  853. }
  854. fmt.Println(startDate, endDate)
  855. err = data_manage.RefreshEdbDataByCffex(v.EdbInfoId, v.EdbCode, startDate, endDate)
  856. if err != nil {
  857. return errors.New("RefreshEdbDataByCffex:" + err.Error())
  858. }
  859. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  860. if err != nil {
  861. return err
  862. }
  863. if item != nil {
  864. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  865. if err != nil {
  866. return err
  867. }
  868. }
  869. }
  870. return err
  871. }
  872. // RefreshDataFromZz 刷新郑商所数据
  873. func RefreshDataFromZz(wg *sync.WaitGroup) (err error) {
  874. defer func() {
  875. if err != nil {
  876. fmt.Println("RefreshDataFromZz Err:" + err.Error())
  877. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromZz ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  878. }
  879. wg.Done()
  880. }()
  881. var condition string
  882. var pars []interface{}
  883. condition += " AND source=? "
  884. pars = append(pars, utils.DATA_SOURCE_ZZ)
  885. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  886. if err != nil {
  887. return errors.New("GetEdbInfoByCondition:" + err.Error())
  888. }
  889. var endDate string
  890. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  891. for _, v := range items {
  892. startDate := ""
  893. if v.Frequency == "日度" {
  894. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  895. } else if v.Frequency == "周度" {
  896. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  897. } else if v.Frequency == "月度" {
  898. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  899. } else if v.Frequency == "季度" {
  900. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  901. } else if v.Frequency == "年度" {
  902. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  903. } else {
  904. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  905. }
  906. fmt.Println(startDate, endDate)
  907. err = data_manage.RefreshEdbDataByZz(v.EdbInfoId, v.EdbCode, startDate, endDate)
  908. if err != nil {
  909. return errors.New("RefreshEdbDataByZz:" + err.Error())
  910. }
  911. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  912. if err != nil {
  913. return err
  914. }
  915. if item != nil {
  916. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  917. if err != nil {
  918. return err
  919. }
  920. }
  921. }
  922. return err
  923. }
  924. // RefreshDataFromLt 刷新路透数据
  925. func RefreshDataFromLt(wg *sync.WaitGroup) (err error) {
  926. defer func() {
  927. if err != nil {
  928. fmt.Println("RefreshDataFromLt Err:" + err.Error())
  929. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromLt ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  930. }
  931. wg.Done()
  932. }()
  933. var condition string
  934. var pars []interface{}
  935. condition += " AND source=? "
  936. pars = append(pars, utils.DATA_SOURCE_LT)
  937. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  938. if err != nil {
  939. return errors.New("GetEdbInfoByCondition:" + err.Error())
  940. }
  941. endDate := time.Now().Format(utils.FormatDate)
  942. for _, v := range items {
  943. startDate := v.StartDate.Format(utils.FormatDate)
  944. err = data_manage.RefreshAllEdbDataByLt(v.EdbInfoId, utils.DATA_SOURCE_LT, v.EdbCode, startDate, endDate)
  945. if err != nil {
  946. return errors.New("RefreshEdbDataByLt:" + err.Error())
  947. }
  948. //更新指标的最新数据
  949. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  950. if err != nil {
  951. return err
  952. }
  953. if item != nil {
  954. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  955. if err != nil {
  956. return err
  957. }
  958. }
  959. }
  960. return err
  961. }
  962. func ResetEdbInfoIsUpdate(cont context.Context) (err error) {
  963. go data_manage.ResetEdbInfoIsUpdate()
  964. return nil
  965. }