edb_info.go 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978
  1. package data
  2. import (
  3. "context"
  4. "errors"
  5. "fmt"
  6. "hongze/hongze_task/models/data_manage"
  7. "hongze/hongze_task/utils"
  8. "rdluck_tools/http"
  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)
  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)
  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)
  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, 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)
  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)
  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. var endDate string
  486. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
  487. for _, v := range items {
  488. startDate := ""
  489. if v.Frequency == "日度" {
  490. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  491. } else if v.Frequency == "周度" {
  492. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  493. } else if v.Frequency == "月度" {
  494. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  495. } else if v.Frequency == "季度" {
  496. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  497. } else if v.Frequency == "年度" {
  498. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  499. } else {
  500. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  501. }
  502. err = data_manage.RefreshManual(v.EdbInfoId, v.EdbCode, startDate, endDate)
  503. if err != nil {
  504. return errors.New("SyncEdbDataByThs:" + err.Error())
  505. }
  506. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  507. if err != nil {
  508. return err
  509. }
  510. if item != nil {
  511. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  512. if err != nil {
  513. return err
  514. }
  515. }
  516. }
  517. return err
  518. }
  519. //刷新隆众数据
  520. func RefreshDataFromLz(wg *sync.WaitGroup) (err error) {
  521. defer func() {
  522. if err != nil {
  523. fmt.Println("RefreshDataFromLz Err:" + err.Error())
  524. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromLz ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  525. }
  526. wg.Done()
  527. }()
  528. var condition string
  529. var pars []interface{}
  530. condition += " AND source=? "
  531. pars = append(pars, utils.DATA_SOURCE_LZ)
  532. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  533. if err != nil {
  534. return errors.New("GetEdbInfoByCondition:" + err.Error())
  535. }
  536. var endDate string
  537. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  538. for _, v := range items {
  539. startDate := ""
  540. if v.Frequency == "日度" {
  541. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  542. } else if v.Frequency == "周度" {
  543. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  544. } else if v.Frequency == "月度" {
  545. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  546. } else if v.Frequency == "季度" {
  547. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  548. } else if v.Frequency == "年度" {
  549. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  550. } else {
  551. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  552. }
  553. fmt.Println(startDate, endDate)
  554. err = data_manage.RefreshEdbDataByLz(v.EdbInfoId, v.EdbCode, startDate, endDate)
  555. if err != nil {
  556. return errors.New("RefreshEdbDataByLz:" + err.Error())
  557. }
  558. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  559. if err != nil {
  560. return err
  561. }
  562. if item != nil {
  563. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  564. if err != nil {
  565. return err
  566. }
  567. }
  568. }
  569. return err
  570. }
  571. //刷新有色数据
  572. func RefreshDataFromYs(wg *sync.WaitGroup) (err error) {
  573. defer func() {
  574. if err != nil {
  575. fmt.Println("RefreshDataFromYs Err:" + err.Error())
  576. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromYs ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  577. }
  578. wg.Done()
  579. }()
  580. var condition string
  581. var pars []interface{}
  582. condition += " AND source=? "
  583. pars = append(pars, utils.DATA_SOURCE_YS)
  584. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  585. if err != nil {
  586. return errors.New("GetEdbInfoByCondition:" + err.Error())
  587. }
  588. var endDate string
  589. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  590. for _, v := range items {
  591. startDate := ""
  592. if v.Frequency == "日度" {
  593. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  594. } else if v.Frequency == "周度" {
  595. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  596. } else if v.Frequency == "月度" {
  597. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  598. } else if v.Frequency == "季度" {
  599. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  600. } else if v.Frequency == "年度" {
  601. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  602. } else {
  603. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  604. }
  605. fmt.Println(startDate, endDate)
  606. err = data_manage.RefreshEdbDataByYs(v.EdbInfoId, v.EdbCode, startDate, endDate)
  607. if err != nil {
  608. return errors.New("RefreshEdbDataByYs:" + err.Error())
  609. }
  610. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  611. if err != nil {
  612. return err
  613. }
  614. if item != nil {
  615. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  616. if err != nil {
  617. return err
  618. }
  619. }
  620. }
  621. return err
  622. }
  623. //刷新钢联数据
  624. func RefreshDataFromGl(wg *sync.WaitGroup) (err error) {
  625. defer func() {
  626. if err != nil {
  627. fmt.Println("RefreshDataFromGl Err:" + err.Error())
  628. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromYs ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  629. }
  630. wg.Done()
  631. }()
  632. var condition string
  633. var pars []interface{}
  634. condition += " AND source=? "
  635. pars = append(pars, utils.DATA_SOURCE_GL)
  636. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  637. if err != nil {
  638. return errors.New("GetEdbInfoByCondition:" + err.Error())
  639. }
  640. var endDate string
  641. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  642. for _, v := range items {
  643. startDate := ""
  644. if v.Frequency == "日度" {
  645. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  646. } else if v.Frequency == "周度" {
  647. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  648. } else if v.Frequency == "月度" {
  649. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  650. } else if v.Frequency == "季度" {
  651. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  652. } else if v.Frequency == "年度" {
  653. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  654. } else {
  655. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  656. }
  657. fmt.Println(startDate, endDate)
  658. err = data_manage.RefreshEdbDataByGl(v.EdbInfoId, v.EdbCode, startDate, endDate)
  659. if err != nil {
  660. return errors.New("RefreshEdbDataByGl:" + err.Error())
  661. }
  662. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  663. if err != nil {
  664. return err
  665. }
  666. if item != nil {
  667. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  668. if err != nil {
  669. return err
  670. }
  671. }
  672. }
  673. return err
  674. }
  675. // RefreshDataFromSh 刷新上期所数据
  676. func RefreshDataFromSh(wg *sync.WaitGroup) (err error) {
  677. defer func() {
  678. if err != nil {
  679. fmt.Println("RefreshDataFromSh Err:" + err.Error())
  680. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromSh ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  681. }
  682. wg.Done()
  683. }()
  684. var condition string
  685. var pars []interface{}
  686. condition += " AND source=? "
  687. pars = append(pars, utils.DATA_SOURCE_SH)
  688. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  689. if err != nil {
  690. return errors.New("GetEdbInfoByCondition:" + err.Error())
  691. }
  692. var endDate string
  693. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  694. for _, v := range items {
  695. startDate := ""
  696. if v.Frequency == "日度" {
  697. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  698. } else if v.Frequency == "周度" {
  699. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  700. } else if v.Frequency == "月度" {
  701. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  702. } else if v.Frequency == "季度" {
  703. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  704. } else if v.Frequency == "年度" {
  705. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  706. } else {
  707. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  708. }
  709. fmt.Println(startDate, endDate)
  710. err = data_manage.RefreshEdbDataBySh(v.EdbInfoId, v.EdbCode, startDate, endDate)
  711. if err != nil {
  712. return errors.New("RefreshEdbDataBySh:" + err.Error())
  713. }
  714. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  715. if err != nil {
  716. return err
  717. }
  718. if item != nil {
  719. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  720. if err != nil {
  721. return err
  722. }
  723. }
  724. }
  725. return err
  726. }
  727. // RefreshDataFromDl 刷新大商所数据
  728. func RefreshDataFromDl(wg *sync.WaitGroup) (err error) {
  729. defer func() {
  730. if err != nil {
  731. fmt.Println("RefreshDataFromDl Err:" + err.Error())
  732. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromDl ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  733. }
  734. wg.Done()
  735. }()
  736. var condition string
  737. var pars []interface{}
  738. condition += " AND source=? "
  739. pars = append(pars, utils.DATA_SOURCE_DL)
  740. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  741. if err != nil {
  742. return errors.New("GetEdbInfoByCondition:" + err.Error())
  743. }
  744. var endDate string
  745. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  746. for _, v := range items {
  747. startDate := ""
  748. if v.Frequency == "日度" {
  749. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  750. } else if v.Frequency == "周度" {
  751. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  752. } else if v.Frequency == "月度" {
  753. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  754. } else if v.Frequency == "季度" {
  755. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  756. } else if v.Frequency == "年度" {
  757. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  758. } else {
  759. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  760. }
  761. fmt.Println(startDate, endDate)
  762. err = data_manage.RefreshEdbDataByDl(v.EdbInfoId, v.EdbCode, startDate, endDate)
  763. if err != nil {
  764. return errors.New("RefreshEdbDataByDl:" + err.Error())
  765. }
  766. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  767. if err != nil {
  768. return err
  769. }
  770. if item != nil {
  771. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  772. if err != nil {
  773. return err
  774. }
  775. }
  776. }
  777. return err
  778. }
  779. // RefreshDataFromShfe 刷新上期能源数据
  780. func RefreshDataFromShfe(wg *sync.WaitGroup) (err error) {
  781. defer func() {
  782. if err != nil {
  783. fmt.Println("RefreshDataFromShfe Err:" + err.Error())
  784. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromShfe ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  785. }
  786. wg.Done()
  787. }()
  788. var condition string
  789. var pars []interface{}
  790. condition += " AND source=? "
  791. pars = append(pars, utils.DATA_SOURCE_SHFE)
  792. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  793. if err != nil {
  794. return errors.New("GetEdbInfoByCondition:" + err.Error())
  795. }
  796. var endDate string
  797. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  798. for _, v := range items {
  799. startDate := ""
  800. if v.Frequency == "日度" {
  801. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  802. } else if v.Frequency == "周度" {
  803. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  804. } else if v.Frequency == "月度" {
  805. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  806. } else if v.Frequency == "季度" {
  807. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  808. } else if v.Frequency == "年度" {
  809. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  810. } else {
  811. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  812. }
  813. fmt.Println(startDate, endDate)
  814. err = data_manage.RefreshEdbDataByShfe(v.EdbInfoId, v.EdbCode, startDate, endDate)
  815. if err != nil {
  816. return errors.New("RefreshEdbDataByShfe:" + err.Error())
  817. }
  818. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  819. if err != nil {
  820. return err
  821. }
  822. if item != nil {
  823. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  824. if err != nil {
  825. return err
  826. }
  827. }
  828. }
  829. return err
  830. }
  831. // RefreshDataFromCffex 刷新中金所数据
  832. func RefreshDataFromCffex(wg *sync.WaitGroup) (err error) {
  833. defer func() {
  834. if err != nil {
  835. fmt.Println("RefreshDataFromCffex Err:" + err.Error())
  836. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromCffex ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  837. }
  838. wg.Done()
  839. }()
  840. var condition string
  841. var pars []interface{}
  842. condition += " AND source=? "
  843. pars = append(pars, utils.DATA_SOURCE_CFFEX)
  844. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  845. if err != nil {
  846. return errors.New("GetEdbInfoByCondition:" + err.Error())
  847. }
  848. var endDate string
  849. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  850. for _, v := range items {
  851. startDate := ""
  852. if v.Frequency == "日度" {
  853. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  854. } else if v.Frequency == "周度" {
  855. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  856. } else if v.Frequency == "月度" {
  857. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  858. } else if v.Frequency == "季度" {
  859. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  860. } else if v.Frequency == "年度" {
  861. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  862. } else {
  863. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  864. }
  865. fmt.Println(startDate, endDate)
  866. err = data_manage.RefreshEdbDataByCffex(v.EdbInfoId, v.EdbCode, startDate, endDate)
  867. if err != nil {
  868. return errors.New("RefreshEdbDataByCffex:" + err.Error())
  869. }
  870. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  871. if err != nil {
  872. return err
  873. }
  874. if item != nil {
  875. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  876. if err != nil {
  877. return err
  878. }
  879. }
  880. }
  881. return err
  882. }
  883. // RefreshDataFromZz 刷新郑商所数据
  884. func RefreshDataFromZz(wg *sync.WaitGroup) (err error) {
  885. defer func() {
  886. if err != nil {
  887. fmt.Println("RefreshDataFromZz Err:" + err.Error())
  888. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromZz ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  889. }
  890. wg.Done()
  891. }()
  892. var condition string
  893. var pars []interface{}
  894. condition += " AND source=? "
  895. pars = append(pars, utils.DATA_SOURCE_ZZ)
  896. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  897. if err != nil {
  898. return errors.New("GetEdbInfoByCondition:" + err.Error())
  899. }
  900. var endDate string
  901. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  902. for _, v := range items {
  903. startDate := ""
  904. if v.Frequency == "日度" {
  905. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  906. } else if v.Frequency == "周度" {
  907. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  908. } else if v.Frequency == "月度" {
  909. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  910. } else if v.Frequency == "季度" {
  911. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  912. } else if v.Frequency == "年度" {
  913. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  914. } else {
  915. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  916. }
  917. fmt.Println(startDate, endDate)
  918. err = data_manage.RefreshEdbDataByZz(v.EdbInfoId, v.EdbCode, startDate, endDate)
  919. if err != nil {
  920. return errors.New("RefreshEdbDataByZz:" + err.Error())
  921. }
  922. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  923. if err != nil {
  924. return err
  925. }
  926. if item != nil {
  927. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  928. if err != nil {
  929. return err
  930. }
  931. }
  932. }
  933. return err
  934. }
  935. func ResetEdbInfoIsUpdate(cont context.Context) (err error) {
  936. go data_manage.ResetEdbInfoIsUpdate()
  937. return nil
  938. }