edb_info.go 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639
  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. return errors.New("GetEdbInfoByCondition:" + err.Error())
  29. }
  30. var endDate string
  31. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
  32. for _, v := range items {
  33. startDate := ""
  34. if v.Frequency == "日度" {
  35. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  36. } else if v.Frequency == "周度" {
  37. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  38. } else if v.Frequency == "月度" {
  39. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  40. } else if v.Frequency == "季度" {
  41. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  42. } else if v.Frequency == "年度" {
  43. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  44. } else {
  45. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  46. }
  47. err = SyncEdbDataByThs(int64(v.EdbInfoId), v.EdbCode, startDate, endDate)
  48. if err != nil {
  49. return errors.New("SyncEdbDataByThs:" + err.Error())
  50. }
  51. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  52. if err != nil {
  53. return err
  54. }
  55. if item != nil {
  56. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  57. if err != nil {
  58. return err
  59. }
  60. }
  61. //minDate, maxDate, err := data.GetEdbDataThsMaxOrMinDate(v.EdbInfoId)
  62. //if err != nil {
  63. // return errors.New("GetEdbDataThsMaxOrMinDate:" + err.Error())
  64. //}
  65. //fmt.Println("minDate:" + minDate + ";maxDate:" + maxDate)
  66. //err = data.ModifyEdbDataInfoDate(v.EdbInfoId, maxDate)
  67. //if err != nil {
  68. // return errors.New("ModifyEdbDataInfoDate:" + err.Error())
  69. //}
  70. }
  71. return err
  72. }
  73. //刷新万得数据
  74. func RefreshDataFromWind(wg *sync.WaitGroup) (err error) {
  75. defer func() {
  76. if err != nil {
  77. fmt.Println("RefreshDataFromWind Err:" + err.Error())
  78. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromWind ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  79. }
  80. wg.Done()
  81. }()
  82. var condition string
  83. var pars []interface{}
  84. condition += " AND source=? "
  85. pars = append(pars, utils.DATA_SOURCE_WIND)
  86. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  87. if err != nil {
  88. return err
  89. }
  90. var endDate string
  91. endDate = time.Now().Format(utils.FormatDate)
  92. for _, v := range items {
  93. startDate := ""
  94. if v.Frequency == "日度" {
  95. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  96. } else if v.Frequency == "周度" {
  97. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  98. } else if v.Frequency == "月度" {
  99. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  100. } else if v.Frequency == "季度" {
  101. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  102. } else if v.Frequency == "年度" {
  103. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  104. } else {
  105. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  106. }
  107. err = SyncEdbDataByWind(int64(v.EdbInfoId), v.EdbCode, startDate, endDate)
  108. if err != nil {
  109. return err
  110. }
  111. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  112. if err != nil {
  113. return err
  114. }
  115. if item != nil {
  116. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  117. if err != nil {
  118. return err
  119. }
  120. }
  121. }
  122. return err
  123. }
  124. //刷新彭博数据
  125. func RefreshDataFromPb(wg *sync.WaitGroup) (err error) {
  126. defer func() {
  127. if err != nil {
  128. fmt.Println("RefreshDataFromPb Err:" + err.Error())
  129. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromPb ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  130. }
  131. wg.Done()
  132. }()
  133. var condition string
  134. var pars []interface{}
  135. condition += " AND source=? "
  136. pars = append(pars, utils.DATA_SOURCE_PB)
  137. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  138. if err != nil {
  139. return errors.New("GetEdbInfoByCondition:" + err.Error())
  140. }
  141. var endDate string
  142. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  143. for _, v := range items {
  144. startDate := ""
  145. if v.Frequency == "日度" {
  146. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDateUnSpace)
  147. } else if v.Frequency == "周度" {
  148. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDateUnSpace)
  149. } else if v.Frequency == "月度" {
  150. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDateUnSpace)
  151. } else if v.Frequency == "季度" {
  152. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDateUnSpace)
  153. } else if v.Frequency == "年度" {
  154. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDateUnSpace)
  155. } else {
  156. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDateUnSpace)
  157. }
  158. err = SyncEdbDataByPb(int64(v.EdbInfoId), v.EdbCode, startDate, endDate)
  159. if err != nil {
  160. return errors.New("SyncEdbDataByPb:" + err.Error())
  161. }
  162. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  163. if err != nil {
  164. return err
  165. }
  166. if item != nil {
  167. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  168. if err != nil {
  169. return err
  170. }
  171. }
  172. //minDate, maxDate, err := data.GetEdbDataPbMaxOrMinDate(v.EdbInfoId)
  173. //if err != nil {
  174. // return errors.New("GetEdbDataThsMaxOrMinDate:" + err.Error())
  175. //}
  176. //fmt.Println("minDate:" + minDate + ";maxDate:" + maxDate)
  177. //err = data.ModifyEdbDataInfoDate(v.EdbInfoId, maxDate)
  178. //if err != nil {
  179. // return errors.New("ModifyEdbDataInfoDate:" + err.Error())
  180. //}
  181. }
  182. return err
  183. }
  184. func CheckDataInterface(cont context.Context) (err error) {
  185. go func() {
  186. checkUrl := utils.Hz_Data_Url + `hz_server`
  187. body, err := http.Get(checkUrl)
  188. if err != nil {
  189. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"检测数据接口:失败提醒", "CheckDataInterface ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  190. }
  191. result := string(body)
  192. if result != "1" {
  193. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"检测数据接口:失败提醒", "CheckDataInterface ErrMsg:"+string(body), utils.EmailSendToUsers)
  194. }
  195. //阿里服务器监听
  196. checkUrl2 := utils.Hz_Server_Data_Url + `hz_server`
  197. body, err = http.Get(checkUrl2)
  198. if err != nil {
  199. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"检测服务器数据接口:失败提醒", "CheckDataInterface ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  200. }
  201. result = string(body)
  202. if result != "1" {
  203. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"检测服务器数据接口:失败提醒", "CheckDataInterface ErrMsg:"+string(body), utils.EmailSendToUsers)
  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. //刷新所有计算指标
  223. func RefreshDataFromCalculateAll() (err error) {
  224. defer func() {
  225. if err != nil {
  226. utils.FileLog.Info("RefreshDataFromCalculateAll Err:" + err.Error())
  227. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromCalculateAll ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  228. }
  229. }()
  230. var condition string
  231. var pars []interface{}
  232. condition += " AND edb_type=? "
  233. pars = append(pars, 2)
  234. //condition += " AND source=? "
  235. //pars = append(pars, utils.DATA_SOURCE_CALCULATE_BP)
  236. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  237. if err != nil {
  238. return err
  239. }
  240. for _, v := range items {
  241. edbInfoId := v.EdbInfoId
  242. edbCode := v.EdbCode
  243. source := v.Source
  244. fmt.Println(v.EdbInfoId, v.EdbCode, v.EdbName, v.SourceName)
  245. if source == utils.DATA_SOURCE_CALCULATE {
  246. startDate := ""
  247. if v.Frequency == "日度" {
  248. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  249. } else if v.Frequency == "周度" {
  250. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  251. } else if v.Frequency == "月度" {
  252. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  253. } else if v.Frequency == "季度" {
  254. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  255. } else if v.Frequency == "年度" {
  256. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  257. } else {
  258. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  259. }
  260. endDate := time.Now().Format(utils.FormatDate)
  261. var edbInfoIdBytes []string
  262. calculateMap, err := data_manage.GetEdbInfoCalculateDetail(int(v.EdbInfoId))
  263. if err != nil {
  264. return errors.New("GetEdbInfoCalculateDetail Err:" + err.Error())
  265. }
  266. var formulaStr string
  267. edbInfoList := make([]*data_manage.EdbInfo, 0)
  268. for _, v := range calculateMap {
  269. formulaStr += v.FromTag + ","
  270. edbInfoIdBytes = append(edbInfoIdBytes, v.FromTag)
  271. edbInfo, _ := data_manage.GetEdbInfoById(v.FromEdbInfoId)
  272. edbInfoList = append(edbInfoList, edbInfo)
  273. }
  274. endDate = ""
  275. err = RefreshCalculate(edbInfoList, edbInfoId, edbCode, v.CalculateFormula, startDate, endDate, edbInfoIdBytes)
  276. if err != nil {
  277. return errors.New("RefreshCalculate Err:" + err.Error())
  278. }
  279. } else if source == utils.DATA_SOURCE_CALCULATE_LJZZY {
  280. calculateLjzzy, err := data_manage.GetEdbInfoCalculateLjzzyDetail(edbInfoId)
  281. if err != nil {
  282. return errors.New("GetEdbInfoCalculateLjzzyDetail Err:" + err.Error())
  283. }
  284. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateLjzzy.FromEdbInfoId)
  285. if err != nil {
  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. return errors.New("GetEdbInfoById Err:" + err.Error())
  303. }
  304. startDate := time.Now().AddDate(-2, -2, 0).Format(utils.FormatDate)
  305. endDate := ""//time.Now().Format(utils.FormatDate)
  306. err = data_manage.RefreshCalculateTbz(edbInfoId, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
  307. if err != nil {
  308. return errors.New("RefreshCalculateTbz Err:" + err.Error())
  309. }
  310. } else if source == utils.DATA_SOURCE_CALCULATE_TCZ {
  311. calculateTcz, err := data_manage.GetEdbInfoCalculateTczDetail(edbInfoId)
  312. if err != nil {
  313. return errors.New("GetEdbInfoCalculateTczDetail Err:" + err.Error())
  314. }
  315. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTcz.FromEdbInfoId)
  316. if err != nil {
  317. return errors.New("GetEdbInfoById Err:" + err.Error())
  318. }
  319. startDate := time.Now().AddDate(-2, -2, 0).Format(utils.FormatDate)
  320. endDate := ""//time.Now().Format(utils.FormatDate)
  321. err = data_manage.RefreshCalculateTcz(edbInfoId, fromEdbInfo, calculateTcz.EdbCode, startDate, endDate)
  322. if err != nil {
  323. return errors.New("RefreshCalculateTcz Err:" + err.Error())
  324. }
  325. } else if source == utils.DATA_SOURCE_CALCULATE_NSZYDPJJS {
  326. calculateNszydpjjs, err := data_manage.GetEdbInfoCalculateNszydpjjsDetail(edbInfoId)
  327. if err != nil {
  328. return errors.New("GetEdbInfoCalculateNszydpjjsDetail Err:" + err.Error())
  329. }
  330. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateNszydpjjs.FromEdbInfoId)
  331. if err != nil {
  332. return errors.New("GetEdbInfoById Err:" + err.Error())
  333. }
  334. formulaInt, _ := strconv.Atoi(v.CalculateFormula)
  335. err = data_manage.RefreshCalculateNszydpjjs(edbInfoId, v.Source, formulaInt, fromEdbInfo, calculateNszydpjjs.EdbCode)
  336. if err != nil {
  337. return errors.New("RefreshCalculateNszydpjjs Err:" + err.Error())
  338. }
  339. } else if source == utils.DATA_SOURCE_CALCULATE_HBZ {
  340. calculateHbz, err := data_manage.GetEdbInfoCalculateHbzDetail(edbInfoId)
  341. if err != nil {
  342. return errors.New("GetEdbInfoCalculateHbzDetail Err:" + err.Error())
  343. }
  344. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateHbz.FromEdbInfoId)
  345. if err != nil {
  346. return errors.New("GetEdbInfoById Err:" + err.Error())
  347. }
  348. startDate := time.Now().AddDate(-2, -2, 0).Format(utils.FormatDate)
  349. endDate := ""//time.Now().Format(utils.FormatDate)
  350. err = data_manage.RefreshCalculateHbz(edbInfoId, source, fromEdbInfo, calculateHbz.EdbCode, startDate, endDate)
  351. if err != nil {
  352. return errors.New("RefreshCalculateTbz Err:" + err.Error())
  353. }
  354. } else if source == utils.DATA_SOURCE_CALCULATE_HCZ {
  355. calculateHcz, err := data_manage.GetEdbInfoCalculateHczDetail(edbInfoId)
  356. if err != nil {
  357. return errors.New("GetEdbInfoCalculateHczDetail Err:" + err.Error())
  358. }
  359. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateHcz.FromEdbInfoId)
  360. if err != nil {
  361. return errors.New("GetEdbInfoById Err:" + err.Error())
  362. }
  363. startDate := time.Now().AddDate(-2, -2, 0).Format(utils.FormatDate)
  364. endDate := ""//time.Now().Format(utils.FormatDate)
  365. err = data_manage.RefreshCalculateHcz(edbInfoId, source, fromEdbInfo, calculateHcz.EdbCode, startDate, endDate)
  366. if err != nil {
  367. return errors.New("RefreshCalculateTbz Err:" + err.Error())
  368. }
  369. } else if source == utils.DATA_SOURCE_CALCULATE_BP {
  370. calculateBp, err := data_manage.GetEdbInfoCalculateBpDetail(edbInfoId)
  371. if err != nil && err.Error() != utils.ErrNoRow() {
  372. return errors.New("GetEdbInfoCalculateBpDetail Err:" + err.Error())
  373. }
  374. if calculateBp != nil {
  375. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateBp.FromEdbInfoId)
  376. if err != nil {
  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.RefreshCalculateBp(edbInfoId, fromEdbInfo, calculateBp.EdbCode, startDate, endDate)
  382. if err != nil {
  383. return errors.New("RefreshCalculateTbz Err:" + err.Error())
  384. }
  385. }
  386. } else {
  387. msg := "刷新失败,无效的指标渠道:source:" + strconv.Itoa(source) + " EdbCode:" + v.EdbCode
  388. err = errors.New(msg)
  389. return err
  390. }
  391. maxAndMinItem, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
  392. if err != nil {
  393. return err
  394. }
  395. if maxAndMinItem != nil {
  396. err = data_manage.ModifyEdbInfoMaxAndMinInfo(edbInfoId, maxAndMinItem)
  397. if err != nil {
  398. return err
  399. }
  400. }
  401. }
  402. return err
  403. }
  404. //刷新手工指标数据
  405. func RefreshDataFromManual(wg *sync.WaitGroup) (err error) {
  406. defer func() {
  407. if err != nil {
  408. fmt.Println("RefreshDataFromManual Err:" + err.Error())
  409. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromManual ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  410. }
  411. wg.Done()
  412. }()
  413. var condition string
  414. var pars []interface{}
  415. condition += " AND source=? "
  416. pars = append(pars, utils.DATA_SOURCE_MANUAL)
  417. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  418. if err != nil {
  419. return errors.New("GetEdbInfoByCondition:" + err.Error())
  420. }
  421. var endDate string
  422. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
  423. for _, v := range items {
  424. startDate := ""
  425. if v.Frequency == "日度" {
  426. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  427. } else if v.Frequency == "周度" {
  428. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  429. } else if v.Frequency == "月度" {
  430. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  431. } else if v.Frequency == "季度" {
  432. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  433. } else if v.Frequency == "年度" {
  434. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  435. } else {
  436. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  437. }
  438. err = data_manage.RefreshManual(v.EdbInfoId, v.EdbCode, startDate, endDate)
  439. if err != nil {
  440. return errors.New("SyncEdbDataByThs:" + err.Error())
  441. }
  442. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  443. if err != nil {
  444. return err
  445. }
  446. if item != nil {
  447. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  448. if err != nil {
  449. return err
  450. }
  451. }
  452. }
  453. return err
  454. }
  455. //刷新隆众数据
  456. func RefreshDataFromLz(wg *sync.WaitGroup) (err error) {
  457. defer func() {
  458. if err != nil {
  459. fmt.Println("RefreshDataFromLz Err:" + err.Error())
  460. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromLz ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  461. }
  462. wg.Done()
  463. }()
  464. var condition string
  465. var pars []interface{}
  466. condition += " AND source=? "
  467. pars = append(pars, utils.DATA_SOURCE_LZ)
  468. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  469. if err != nil {
  470. return errors.New("GetEdbInfoByCondition:" + err.Error())
  471. }
  472. var endDate string
  473. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  474. for _, v := range items {
  475. startDate := ""
  476. if v.Frequency == "日度" {
  477. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  478. } else if v.Frequency == "周度" {
  479. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  480. } else if v.Frequency == "月度" {
  481. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  482. } else if v.Frequency == "季度" {
  483. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  484. } else if v.Frequency == "年度" {
  485. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  486. } else {
  487. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  488. }
  489. fmt.Println(startDate, endDate)
  490. err = data_manage.RefreshEdbDataByLz(v.EdbInfoId, v.EdbCode, startDate, endDate)
  491. if err != nil {
  492. return errors.New("RefreshEdbDataByLz:" + err.Error())
  493. }
  494. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  495. if err != nil {
  496. return err
  497. }
  498. if item != nil {
  499. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  500. if err != nil {
  501. return err
  502. }
  503. }
  504. }
  505. return err
  506. }
  507. //刷新有色数据
  508. func RefreshDataFromYs(wg *sync.WaitGroup) (err error) {
  509. defer func() {
  510. if err != nil {
  511. fmt.Println("RefreshDataFromYs Err:" + err.Error())
  512. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromYs ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  513. }
  514. wg.Done()
  515. }()
  516. var condition string
  517. var pars []interface{}
  518. condition += " AND source=? "
  519. pars = append(pars, utils.DATA_SOURCE_YS)
  520. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  521. if err != nil {
  522. return errors.New("GetEdbInfoByCondition:" + err.Error())
  523. }
  524. var endDate string
  525. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  526. for _, v := range items {
  527. startDate := ""
  528. if v.Frequency == "日度" {
  529. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  530. } else if v.Frequency == "周度" {
  531. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  532. } else if v.Frequency == "月度" {
  533. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  534. } else if v.Frequency == "季度" {
  535. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  536. } else if v.Frequency == "年度" {
  537. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  538. } else {
  539. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  540. }
  541. fmt.Println(startDate, endDate)
  542. err = data_manage.RefreshEdbDataByYs(v.EdbInfoId, v.EdbCode, startDate, endDate)
  543. if err != nil {
  544. return errors.New("RefreshEdbDataByYs:" + err.Error())
  545. }
  546. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  547. if err != nil {
  548. return err
  549. }
  550. if item != nil {
  551. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  552. if err != nil {
  553. return err
  554. }
  555. }
  556. }
  557. return err
  558. }
  559. //刷新钢联数据
  560. func RefreshDataFromGl(wg *sync.WaitGroup) (err error) {
  561. defer func() {
  562. if err != nil {
  563. fmt.Println("RefreshDataFromGl Err:" + err.Error())
  564. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromYs ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  565. }
  566. wg.Done()
  567. }()
  568. var condition string
  569. var pars []interface{}
  570. condition += " AND source=? "
  571. pars = append(pars, utils.DATA_SOURCE_GL)
  572. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  573. if err != nil {
  574. return errors.New("GetEdbInfoByCondition:" + err.Error())
  575. }
  576. var endDate string
  577. endDate = time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
  578. for _, v := range items {
  579. startDate := ""
  580. if v.Frequency == "日度" {
  581. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  582. } else if v.Frequency == "周度" {
  583. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  584. } else if v.Frequency == "月度" {
  585. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  586. } else if v.Frequency == "季度" {
  587. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  588. } else if v.Frequency == "年度" {
  589. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  590. } else {
  591. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  592. }
  593. fmt.Println(startDate, endDate)
  594. err = data_manage.RefreshEdbDataByGl(v.EdbInfoId, v.EdbCode, startDate, endDate)
  595. if err != nil {
  596. return errors.New("RefreshEdbDataByGl:" + err.Error())
  597. }
  598. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  599. if err != nil {
  600. return err
  601. }
  602. if item != nil {
  603. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  604. if err != nil {
  605. return err
  606. }
  607. }
  608. }
  609. return err
  610. }
  611. func ResetEdbInfoIsUpdate(cont context.Context) (err error) {
  612. go data_manage.ResetEdbInfoIsUpdate()
  613. return nil
  614. }