edb_info.go 36 KB

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