edb_info.go 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554
  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. source := v.Source
  234. fmt.Println(v.EdbInfoId, v.EdbCode, v.EdbName, v.SourceName)
  235. if source == utils.DATA_SOURCE_CALCULATE {
  236. startDate := ""
  237. if v.Frequency == "日度" {
  238. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  239. } else if v.Frequency == "周度" {
  240. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  241. } else if v.Frequency == "月度" {
  242. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  243. } else if v.Frequency == "季度" {
  244. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  245. } else if v.Frequency == "年度" {
  246. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  247. } else {
  248. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  249. }
  250. endDate := time.Now().Format(utils.FormatDate)
  251. var edbInfoIdBytes []string
  252. calculateMap, err := data_manage.GetEdbInfoCalculateDetail(int(v.EdbInfoId))
  253. if err != nil {
  254. return errors.New("GetEdbInfoCalculateDetail Err:" + err.Error())
  255. }
  256. var formulaStr string
  257. edbInfoList := make([]*data_manage.EdbInfo, 0)
  258. for _, v := range calculateMap {
  259. formulaStr += v.FromTag + ","
  260. edbInfoIdBytes = append(edbInfoIdBytes, v.FromTag)
  261. edbInfo, _ := data_manage.GetEdbInfoById(v.FromEdbInfoId)
  262. edbInfoList = append(edbInfoList, edbInfo)
  263. }
  264. fmt.Println("RefreshCalculate:", edbInfoList, edbInfoId, edbCode, v.CalculateFormula, startDate, endDate, edbInfoIdBytes)
  265. err = RefreshCalculate(edbInfoList, edbInfoId, edbCode, v.CalculateFormula, startDate, endDate, edbInfoIdBytes)
  266. if err != nil {
  267. return errors.New("RefreshCalculate Err:" + err.Error())
  268. }
  269. } else if source == utils.DATA_SOURCE_CALCULATE_LJZZY {
  270. calculateLjzzy, err := data_manage.GetEdbInfoCalculateLjzzyDetail(edbInfoId)
  271. if err != nil {
  272. return errors.New("GetEdbInfoCalculateLjzzyDetail Err:" + err.Error())
  273. }
  274. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateLjzzy.FromEdbInfoId)
  275. if err != nil {
  276. return errors.New("GetEdbInfoById Err:" + err.Error())
  277. }
  278. year := time.Now().Year() - 1
  279. startDate := strconv.Itoa(year) + "-01" + "-01"
  280. endDate := time.Now().Format(utils.FormatDate)
  281. err = data_manage.RefreshCalculateLjzzy(edbInfoId, fromEdbInfo, edbCode, startDate, endDate)
  282. if err != nil {
  283. return errors.New("RefreshCalculateLjzzy Err:" + err.Error())
  284. }
  285. } else if source == utils.DATA_SOURCE_CALCULATE_TBZ {
  286. calculateTbz, err := data_manage.GetEdbInfoCalculateTbzDetail(edbInfoId)
  287. if err != nil {
  288. return errors.New("GetEdbInfoCalculateTbzDetail Err:" + err.Error())
  289. }
  290. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
  291. if err != nil {
  292. return errors.New("GetEdbInfoById Err:" + err.Error())
  293. }
  294. startDate := time.Now().AddDate(-2, -2, 0).Format(utils.FormatDate)
  295. endDate := time.Now().Format(utils.FormatDate)
  296. err = data_manage.RefreshCalculateTbz(edbInfoId, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
  297. if err != nil {
  298. return errors.New("RefreshCalculateTbz Err:" + err.Error())
  299. }
  300. } else if source == utils.DATA_SOURCE_CALCULATE_TCZ {
  301. calculateTcz, err := data_manage.GetEdbInfoCalculateTczDetail(edbInfoId)
  302. if err != nil {
  303. return errors.New("GetEdbInfoCalculateTczDetail Err:" + err.Error())
  304. }
  305. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTcz.FromEdbInfoId)
  306. if err != nil {
  307. return errors.New("GetEdbInfoById Err:" + err.Error())
  308. }
  309. startDate := time.Now().AddDate(-2, -2, 0).Format(utils.FormatDate)
  310. endDate := time.Now().Format(utils.FormatDate)
  311. err = data_manage.RefreshCalculateTcz(edbInfoId, fromEdbInfo, calculateTcz.EdbCode, startDate, endDate)
  312. if err != nil {
  313. return errors.New("RefreshCalculateTcz Err:" + err.Error())
  314. }
  315. } else if source == utils.DATA_SOURCE_CALCULATE_NSZYDPJJS {
  316. calculateNszydpjjs, err := data_manage.GetEdbInfoCalculateNszydpjjsDetail(edbInfoId)
  317. if err != nil {
  318. return errors.New("GetEdbInfoCalculateNszydpjjsDetail Err:" + err.Error())
  319. }
  320. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateNszydpjjs.FromEdbInfoId)
  321. if err != nil {
  322. return errors.New("GetEdbInfoById Err:" + err.Error())
  323. }
  324. formulaInt, _ := strconv.Atoi(v.CalculateFormula)
  325. err = data_manage.RefreshCalculateNszydpjjs(edbInfoId, v.Source, formulaInt, fromEdbInfo, calculateNszydpjjs.EdbCode)
  326. if err != nil {
  327. return errors.New("RefreshCalculateNszydpjjs Err:" + err.Error())
  328. }
  329. } else if source == utils.DATA_SOURCE_CALCULATE_HBZ {
  330. calculateHbz, err := data_manage.GetEdbInfoCalculateHbzDetail(edbInfoId)
  331. if err != nil {
  332. return errors.New("GetEdbInfoCalculateHbzDetail Err:" + err.Error())
  333. }
  334. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateHbz.FromEdbInfoId)
  335. if err != nil {
  336. return errors.New("GetEdbInfoById Err:" + err.Error())
  337. }
  338. startDate := time.Now().AddDate(-2, -2, 0).Format(utils.FormatDate)
  339. endDate := time.Now().Format(utils.FormatDate)
  340. err = data_manage.RefreshCalculateHbz(edbInfoId, source, fromEdbInfo, calculateHbz.EdbCode, startDate, endDate)
  341. if err != nil {
  342. return errors.New("RefreshCalculateTbz Err:" + err.Error())
  343. }
  344. } else if source == utils.DATA_SOURCE_CALCULATE_HCZ {
  345. calculateHcz, err := data_manage.GetEdbInfoCalculateHczDetail(edbInfoId)
  346. if err != nil {
  347. return errors.New("GetEdbInfoCalculateHczDetail Err:" + err.Error())
  348. }
  349. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateHcz.FromEdbInfoId)
  350. if err != nil {
  351. return errors.New("GetEdbInfoById Err:" + err.Error())
  352. }
  353. startDate := time.Now().AddDate(-2, -2, 0).Format(utils.FormatDate)
  354. endDate := time.Now().Format(utils.FormatDate)
  355. err = data_manage.RefreshCalculateHcz(edbInfoId, source, fromEdbInfo, calculateHcz.EdbCode, startDate, endDate)
  356. if err != nil {
  357. return errors.New("RefreshCalculateTbz Err:" + err.Error())
  358. }
  359. } else if source == utils.DATA_SOURCE_CALCULATE_BP {
  360. calculateBp, err := data_manage.GetEdbInfoCalculateBpDetail(edbInfoId)
  361. if err != nil {
  362. return errors.New("GetEdbInfoCalculateBpDetail Err:" + err.Error())
  363. }
  364. fromEdbInfo, err := data_manage.GetEdbInfoById(calculateBp.FromEdbInfoId)
  365. if err != nil {
  366. return errors.New("GetEdbInfoById Err:" + err.Error())
  367. }
  368. startDate := time.Now().AddDate(-2, -2, 0).Format(utils.FormatDate)
  369. endDate := time.Now().Format(utils.FormatDate)
  370. err = data_manage.RefreshCalculateBp(edbInfoId, fromEdbInfo, calculateBp.EdbCode, startDate, endDate)
  371. if err != nil {
  372. return errors.New("RefreshCalculateTbz Err:" + err.Error())
  373. }
  374. } else {
  375. msg := "刷新失败,无效的指标渠道"
  376. err = errors.New(msg)
  377. return err
  378. }
  379. }
  380. return err
  381. }
  382. //刷新手工指标数据
  383. func RefreshDataFromManual(wg *sync.WaitGroup) (err error) {
  384. defer func() {
  385. if err != nil {
  386. fmt.Println("RefreshDataFromManual Err:" + err.Error())
  387. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromManual ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  388. }
  389. }()
  390. var condition string
  391. var pars []interface{}
  392. condition += " AND source=? "
  393. pars = append(pars, utils.DATA_SOURCE_MANUAL)
  394. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  395. if err != nil {
  396. return errors.New("GetEdbInfoByCondition:" + err.Error())
  397. }
  398. var endDate string
  399. endDate = time.Now().Format(utils.FormatDate)
  400. for _, v := range items {
  401. startDate := ""
  402. if v.Frequency == "日度" {
  403. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  404. } else if v.Frequency == "周度" {
  405. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  406. } else if v.Frequency == "月度" {
  407. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  408. } else if v.Frequency == "季度" {
  409. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  410. } else if v.Frequency == "年度" {
  411. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  412. } else {
  413. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  414. }
  415. err = data_manage.RefreshManual(v.EdbInfoId, v.EdbCode, startDate, endDate)
  416. if err != nil {
  417. return errors.New("SyncEdbDataByThs:" + err.Error())
  418. }
  419. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  420. if err != nil {
  421. return err
  422. }
  423. if item != nil {
  424. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  425. if err != nil {
  426. return err
  427. }
  428. }
  429. }
  430. wg.Done()
  431. return err
  432. }
  433. //刷新隆众数据
  434. func RefreshDataFromLz(wg *sync.WaitGroup) (err error) {
  435. defer func() {
  436. if err != nil {
  437. fmt.Println("RefreshDataFromLz Err:" + err.Error())
  438. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromLz ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  439. }
  440. }()
  441. var condition string
  442. var pars []interface{}
  443. condition += " AND source=? "
  444. pars = append(pars, utils.DATA_SOURCE_LZ)
  445. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  446. if err != nil {
  447. return errors.New("GetEdbInfoByCondition:" + err.Error())
  448. }
  449. var endDate string
  450. endDate = time.Now().Format(utils.FormatDateUnSpace)
  451. for _, v := range items {
  452. startDate := ""
  453. if v.Frequency == "日度" {
  454. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  455. } else if v.Frequency == "周度" {
  456. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  457. } else if v.Frequency == "月度" {
  458. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  459. } else if v.Frequency == "季度" {
  460. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  461. } else if v.Frequency == "年度" {
  462. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  463. } else {
  464. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  465. }
  466. fmt.Println(startDate, endDate)
  467. err = data_manage.RefreshEdbDataByLz(v.EdbInfoId, v.EdbCode, startDate, endDate)
  468. if err != nil {
  469. return errors.New("RefreshEdbDataByLz:" + err.Error())
  470. }
  471. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  472. if err != nil {
  473. return err
  474. }
  475. if item != nil {
  476. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  477. if err != nil {
  478. return err
  479. }
  480. }
  481. }
  482. wg.Done()
  483. return err
  484. }
  485. //刷新有色数据
  486. func RefreshDataFromYs(wg *sync.WaitGroup) (err error) {
  487. defer func() {
  488. if err != nil {
  489. fmt.Println("RefreshDataFromYs Err:" + err.Error())
  490. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromYs ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  491. }
  492. }()
  493. var condition string
  494. var pars []interface{}
  495. condition += " AND source=? "
  496. pars = append(pars, utils.DATA_SOURCE_YS)
  497. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  498. if err != nil {
  499. return errors.New("GetEdbInfoByCondition:" + err.Error())
  500. }
  501. var endDate string
  502. endDate = time.Now().Format(utils.FormatDateUnSpace)
  503. for _, v := range items {
  504. startDate := ""
  505. if v.Frequency == "日度" {
  506. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  507. } else if v.Frequency == "周度" {
  508. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  509. } else if v.Frequency == "月度" {
  510. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  511. } else if v.Frequency == "季度" {
  512. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  513. } else if v.Frequency == "年度" {
  514. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  515. } else {
  516. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  517. }
  518. fmt.Println(startDate, endDate)
  519. err = data_manage.RefreshEdbDataByYs(v.EdbInfoId, v.EdbCode, startDate, endDate)
  520. if err != nil {
  521. return errors.New("RefreshEdbDataByYs:" + err.Error())
  522. }
  523. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  524. if err != nil {
  525. return err
  526. }
  527. if item != nil {
  528. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  529. if err != nil {
  530. return err
  531. }
  532. }
  533. }
  534. wg.Done()
  535. return err
  536. }