edb_info.go 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508
  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. }()
  21. var condition string
  22. var pars []interface{}
  23. condition += " AND source=? "
  24. pars = append(pars, utils.DATA_SOURCE_THS)
  25. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  26. if err != nil {
  27. return errors.New("GetEdbInfoByCondition:" + err.Error())
  28. }
  29. var endDate string
  30. endDate = time.Now().Format(utils.FormatDate)
  31. for _, v := range items {
  32. startDate := ""
  33. if v.Frequency == "日度" {
  34. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  35. } else if v.Frequency == "周度" {
  36. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  37. } else if v.Frequency == "月度" {
  38. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  39. } else if v.Frequency == "季度" {
  40. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  41. } else if v.Frequency == "年度" {
  42. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  43. } else {
  44. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  45. }
  46. err = SyncEdbDataByThs(int64(v.EdbInfoId), v.EdbCode, startDate, endDate)
  47. if err != nil {
  48. return errors.New("SyncEdbDataByThs:" + err.Error())
  49. }
  50. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  51. if err != nil {
  52. return err
  53. }
  54. if item != nil {
  55. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  56. if err != nil {
  57. return err
  58. }
  59. }
  60. //minDate, maxDate, err := data.GetEdbDataThsMaxOrMinDate(v.EdbInfoId)
  61. //if err != nil {
  62. // return errors.New("GetEdbDataThsMaxOrMinDate:" + err.Error())
  63. //}
  64. //fmt.Println("minDate:" + minDate + ";maxDate:" + maxDate)
  65. //err = data.ModifyEdbDataInfoDate(v.EdbInfoId, maxDate)
  66. //if err != nil {
  67. // return errors.New("ModifyEdbDataInfoDate:" + err.Error())
  68. //}
  69. }
  70. wg.Done()
  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. }()
  81. var condition string
  82. var pars []interface{}
  83. condition += " AND source=? "
  84. pars = append(pars, utils.DATA_SOURCE_WIND)
  85. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  86. if err != nil {
  87. return err
  88. }
  89. var endDate string
  90. endDate = time.Now().Format(utils.FormatDate)
  91. for _, v := range items {
  92. startDate := ""
  93. if v.Frequency == "日度" {
  94. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  95. } else if v.Frequency == "周度" {
  96. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  97. } else if v.Frequency == "月度" {
  98. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  99. } else if v.Frequency == "季度" {
  100. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  101. } else if v.Frequency == "年度" {
  102. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  103. } else {
  104. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  105. }
  106. err = SyncEdbDataByWind(int64(v.EdbInfoId), v.EdbCode, startDate, endDate)
  107. if err != nil {
  108. return err
  109. }
  110. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  111. if err != nil {
  112. return err
  113. }
  114. if item != nil {
  115. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  116. if err != nil {
  117. return err
  118. }
  119. }
  120. }
  121. wg.Done()
  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. }()
  132. var condition string
  133. var pars []interface{}
  134. condition += " AND source=? "
  135. pars = append(pars, utils.DATA_SOURCE_PB)
  136. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  137. if err != nil {
  138. return errors.New("GetEdbInfoByCondition:" + err.Error())
  139. }
  140. var endDate string
  141. endDate = time.Now().Format(utils.FormatDateUnSpace)
  142. for _, v := range items {
  143. startDate := ""
  144. if v.Frequency == "日度" {
  145. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDateUnSpace)
  146. } else if v.Frequency == "周度" {
  147. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDateUnSpace)
  148. } else if v.Frequency == "月度" {
  149. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDateUnSpace)
  150. } else if v.Frequency == "季度" {
  151. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDateUnSpace)
  152. } else if v.Frequency == "年度" {
  153. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDateUnSpace)
  154. } else {
  155. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDateUnSpace)
  156. }
  157. err = SyncEdbDataByPb(int64(v.EdbInfoId), v.EdbCode, startDate, endDate)
  158. if err != nil {
  159. return errors.New("SyncEdbDataByPb:" + err.Error())
  160. }
  161. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  162. if err != nil {
  163. return err
  164. }
  165. if item != nil {
  166. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  167. if err != nil {
  168. return err
  169. }
  170. }
  171. //minDate, maxDate, err := data.GetEdbDataPbMaxOrMinDate(v.EdbInfoId)
  172. //if err != nil {
  173. // return errors.New("GetEdbDataThsMaxOrMinDate:" + err.Error())
  174. //}
  175. //fmt.Println("minDate:" + minDate + ";maxDate:" + maxDate)
  176. //err = data.ModifyEdbDataInfoDate(v.EdbInfoId, maxDate)
  177. //if err != nil {
  178. // return errors.New("ModifyEdbDataInfoDate:" + err.Error())
  179. //}
  180. }
  181. wg.Done()
  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. return
  197. }
  198. func CheckPbDataInterface(cont context.Context) (err error) {
  199. go func() {
  200. checkUrl := utils.Hz_Data_PB_Url + `hz_server`
  201. body, err := http.Get(checkUrl)
  202. if err != nil {
  203. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"检测数据接口:失败提醒", "CheckPbDataInterface ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  204. }
  205. result := string(body)
  206. if result != "1" {
  207. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"检测数据接口:失败提醒", "CheckPbDataInterface ErrMsg:"+string(body), utils.EmailSendToUsers)
  208. }
  209. }()
  210. return
  211. }
  212. //刷新所有计算指标
  213. func RefreshDataFromCalculateAll() (err error) {
  214. defer func() {
  215. if err != nil {
  216. utils.FileLog.Info("RefreshDataFromCalculateAll Err:" + err.Error())
  217. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromCalculateAll ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  218. }
  219. }()
  220. var condition string
  221. var pars []interface{}
  222. condition += " AND edb_type=? "
  223. pars = append(pars, 2)
  224. //condition += " AND edb_info_id=? "
  225. //pars = append(pars, 100341)
  226. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  227. if err != nil {
  228. return err
  229. }
  230. for _, v := range items {
  231. edbInfoId := v.EdbInfoId
  232. edbCode := v.EdbCode
  233. fmt.Println(v.EdbInfoId, v.EdbCode, v.EdbName, v.SourceName)
  234. if v.Source == utils.DATA_SOURCE_CALCULATE {
  235. startDate := ""
  236. if v.Frequency == "日度" {
  237. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  238. } else if v.Frequency == "周度" {
  239. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  240. } else if v.Frequency == "月度" {
  241. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  242. } else if v.Frequency == "季度" {
  243. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  244. } else if v.Frequency == "年度" {
  245. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  246. } else {
  247. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  248. }
  249. endDate := time.Now().Format(utils.FormatDate)
  250. var edbInfoIdBytes []string
  251. calculateMap, err := data_manage.GetEdbInfoCalculateDetail(int(v.EdbInfoId))
  252. if err != nil {
  253. return errors.New("GetEdbInfoCalculateDetail Err:" + err.Error())
  254. }
  255. var formulaStr string
  256. edbInfoList := make([]*data_manage.EdbInfo, 0)
  257. for _, v := range calculateMap {
  258. formulaStr += v.FromTag + ","
  259. edbInfoIdBytes = append(edbInfoIdBytes, v.FromTag)
  260. edbInfo, _ := data_manage.GetEdbInfoById(v.FromEdbInfoId)
  261. edbInfoList = append(edbInfoList, edbInfo)
  262. }
  263. fmt.Println("RefreshCalculate:", edbInfoList, edbInfoId, edbCode, v.CalculateFormula, startDate, endDate, edbInfoIdBytes)
  264. err = RefreshCalculate(edbInfoList, edbInfoId, edbCode, v.CalculateFormula, startDate, endDate, edbInfoIdBytes)
  265. if err != nil {
  266. return errors.New("RefreshCalculate Err:" + err.Error())
  267. }
  268. } else if v.Source == utils.DATA_SOURCE_CALCULATE_LJZZY {
  269. calculateLjzzy, err := data_manage.GetEdbInfoCalculateLjzzyDetail(edbInfoId)
  270. if err != nil {
  271. return errors.New("GetEdbInfoCalculateLjzzyDetail Err:" + err.Error())
  272. }
  273. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateLjzzy.FromEdbInfoId)
  274. if err != nil {
  275. return errors.New("GetEdbInfoById Err:" + err.Error())
  276. }
  277. year := time.Now().Year() - 1
  278. startDate := strconv.Itoa(year) + "-01" + "-01"
  279. endDate := time.Now().Format(utils.FormatDate)
  280. err = data_manage.RefreshCalculateLjzzy(edbInfoId, fromEdbInfo, edbCode, startDate, endDate)
  281. if err != nil {
  282. return errors.New("RefreshCalculateLjzzy Err:" + err.Error())
  283. }
  284. } else if v.Source == utils.DATA_SOURCE_CALCULATE_TBZ {
  285. calculateTbz, err := data_manage.GetEdbInfoCalculateTbzDetail(edbInfoId)
  286. if err != nil {
  287. return errors.New("GetEdbInfoCalculateTbzDetail Err:" + err.Error())
  288. }
  289. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
  290. if err != nil {
  291. return errors.New("GetEdbInfoById Err:" + err.Error())
  292. }
  293. startDate := time.Now().AddDate(-2, -2, 0).Format(utils.FormatDate)
  294. endDate := time.Now().Format(utils.FormatDate)
  295. err = data_manage.RefreshCalculateTbz(edbInfoId, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
  296. if err != nil {
  297. return errors.New("RefreshCalculateTbz Err:" + err.Error())
  298. }
  299. } else if v.Source == utils.DATA_SOURCE_CALCULATE_TCZ {
  300. calculateTcz, err := data_manage.GetEdbInfoCalculateTczDetail(edbInfoId)
  301. if err != nil {
  302. return errors.New("GetEdbInfoCalculateTczDetail Err:" + err.Error())
  303. }
  304. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTcz.FromEdbInfoId)
  305. if err != nil {
  306. return errors.New("GetEdbInfoById Err:" + err.Error())
  307. }
  308. startDate := time.Now().AddDate(-2, -2, 0).Format(utils.FormatDate)
  309. endDate := time.Now().Format(utils.FormatDate)
  310. err = data_manage.RefreshCalculateTcz(edbInfoId, fromEdbInfo, calculateTcz.EdbCode, startDate, endDate)
  311. if err != nil {
  312. return errors.New("RefreshCalculateTcz Err:" + err.Error())
  313. }
  314. } else if v.Source == utils.DATA_SOURCE_CALCULATE_NSZYDPJJS {
  315. calculateNszydpjjs, err := data_manage.GetEdbInfoCalculateNszydpjjsDetail(edbInfoId)
  316. if err != nil {
  317. return errors.New("GetEdbInfoCalculateNszydpjjsDetail Err:" + err.Error())
  318. }
  319. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateNszydpjjs.FromEdbInfoId)
  320. if err != nil {
  321. return errors.New("GetEdbInfoById Err:" + err.Error())
  322. }
  323. formulaInt, _ := strconv.Atoi(v.CalculateFormula)
  324. err = data_manage.RefreshCalculateNszydpjjs(edbInfoId, v.Source, formulaInt, fromEdbInfo, calculateNszydpjjs.EdbCode)
  325. if err != nil {
  326. return errors.New("RefreshCalculateNszydpjjs Err:" + err.Error())
  327. }
  328. } else {
  329. msg := "刷新失败,无效的指标渠道"
  330. err = errors.New(msg)
  331. return err
  332. }
  333. }
  334. return err
  335. }
  336. //刷新手工指标数据
  337. func RefreshDataFromManual(wg *sync.WaitGroup) (err error) {
  338. defer func() {
  339. if err != nil {
  340. fmt.Println("RefreshDataFromManual Err:" + err.Error())
  341. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromManual ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  342. }
  343. }()
  344. var condition string
  345. var pars []interface{}
  346. condition += " AND source=? "
  347. pars = append(pars, utils.DATA_SOURCE_MANUAL)
  348. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  349. if err != nil {
  350. return errors.New("GetEdbInfoByCondition:" + err.Error())
  351. }
  352. var endDate string
  353. endDate = time.Now().Format(utils.FormatDate)
  354. for _, v := range items {
  355. startDate := ""
  356. if v.Frequency == "日度" {
  357. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  358. } else if v.Frequency == "周度" {
  359. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  360. } else if v.Frequency == "月度" {
  361. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  362. } else if v.Frequency == "季度" {
  363. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  364. } else if v.Frequency == "年度" {
  365. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  366. } else {
  367. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  368. }
  369. err = data_manage.RefreshManual(v.EdbInfoId, v.EdbCode, startDate, endDate)
  370. if err != nil {
  371. return errors.New("SyncEdbDataByThs:" + err.Error())
  372. }
  373. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  374. if err != nil {
  375. return err
  376. }
  377. if item != nil {
  378. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  379. if err != nil {
  380. return err
  381. }
  382. }
  383. }
  384. wg.Done()
  385. return err
  386. }
  387. //刷新隆众数据
  388. func RefreshDataFromLz(wg *sync.WaitGroup) (err error) {
  389. defer func() {
  390. if err != nil {
  391. fmt.Println("RefreshDataFromLz Err:" + err.Error())
  392. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromLz ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  393. }
  394. }()
  395. var condition string
  396. var pars []interface{}
  397. condition += " AND source=? "
  398. pars = append(pars, utils.DATA_SOURCE_LZ)
  399. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  400. if err != nil {
  401. return errors.New("GetEdbInfoByCondition:" + err.Error())
  402. }
  403. var endDate string
  404. endDate = time.Now().Format(utils.FormatDateUnSpace)
  405. for _, v := range items {
  406. startDate := ""
  407. if v.Frequency == "日度" {
  408. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  409. } else if v.Frequency == "周度" {
  410. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  411. } else if v.Frequency == "月度" {
  412. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  413. } else if v.Frequency == "季度" {
  414. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  415. } else if v.Frequency == "年度" {
  416. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  417. } else {
  418. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  419. }
  420. fmt.Println(startDate, endDate)
  421. err = data_manage.RefreshEdbDataByLz(v.EdbInfoId, v.EdbCode, startDate, endDate)
  422. if err != nil {
  423. return errors.New("RefreshEdbDataByLz:" + err.Error())
  424. }
  425. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  426. if err != nil {
  427. return err
  428. }
  429. if item != nil {
  430. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  431. if err != nil {
  432. return err
  433. }
  434. }
  435. }
  436. wg.Done()
  437. return err
  438. }
  439. //刷新有色数据
  440. func RefreshDataFromYs(wg *sync.WaitGroup) (err error) {
  441. defer func() {
  442. if err != nil {
  443. fmt.Println("RefreshDataFromYs Err:" + err.Error())
  444. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromYs ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  445. }
  446. }()
  447. var condition string
  448. var pars []interface{}
  449. condition += " AND source=? "
  450. pars = append(pars, utils.DATA_SOURCE_YS)
  451. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  452. if err != nil {
  453. return errors.New("GetEdbInfoByCondition:" + err.Error())
  454. }
  455. var endDate string
  456. endDate = time.Now().Format(utils.FormatDateUnSpace)
  457. for _, v := range items {
  458. startDate := ""
  459. if v.Frequency == "日度" {
  460. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  461. } else if v.Frequency == "周度" {
  462. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  463. } else if v.Frequency == "月度" {
  464. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  465. } else if v.Frequency == "季度" {
  466. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  467. } else if v.Frequency == "年度" {
  468. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  469. } else {
  470. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  471. }
  472. fmt.Println(startDate, endDate)
  473. err = data_manage.RefreshEdbDataByYs(v.EdbInfoId, v.EdbCode, startDate, endDate)
  474. if err != nil {
  475. return errors.New("RefreshEdbDataByYs:" + err.Error())
  476. }
  477. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  478. if err != nil {
  479. return err
  480. }
  481. if item != nil {
  482. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  483. if err != nil {
  484. return err
  485. }
  486. }
  487. }
  488. wg.Done()
  489. return err
  490. }