edb_info.go 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620
  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 := "刷新失败,无效的指标渠道:source:"+strconv.Itoa(source)+" EdbCode:"+v.EdbCode
  376. err = errors.New(msg)
  377. return err
  378. }
  379. maxAndMinItem, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
  380. if err != nil {
  381. return err
  382. }
  383. if maxAndMinItem != nil {
  384. err = data_manage.ModifyEdbInfoMaxAndMinInfo(edbInfoId, maxAndMinItem)
  385. if err != nil {
  386. return err
  387. }
  388. }
  389. }
  390. return err
  391. }
  392. //刷新手工指标数据
  393. func RefreshDataFromManual(wg *sync.WaitGroup) (err error) {
  394. defer func() {
  395. if err != nil {
  396. fmt.Println("RefreshDataFromManual Err:" + err.Error())
  397. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromManual ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  398. }
  399. }()
  400. var condition string
  401. var pars []interface{}
  402. condition += " AND source=? "
  403. pars = append(pars, utils.DATA_SOURCE_MANUAL)
  404. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  405. if err != nil {
  406. return errors.New("GetEdbInfoByCondition:" + err.Error())
  407. }
  408. var endDate string
  409. endDate = time.Now().Format(utils.FormatDate)
  410. for _, v := range items {
  411. startDate := ""
  412. if v.Frequency == "日度" {
  413. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  414. } else if v.Frequency == "周度" {
  415. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  416. } else if v.Frequency == "月度" {
  417. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  418. } else if v.Frequency == "季度" {
  419. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  420. } else if v.Frequency == "年度" {
  421. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  422. } else {
  423. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  424. }
  425. err = data_manage.RefreshManual(v.EdbInfoId, v.EdbCode, startDate, endDate)
  426. if err != nil {
  427. return errors.New("SyncEdbDataByThs:" + err.Error())
  428. }
  429. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  430. if err != nil {
  431. return err
  432. }
  433. if item != nil {
  434. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  435. if err != nil {
  436. return err
  437. }
  438. }
  439. }
  440. wg.Done()
  441. return err
  442. }
  443. //刷新隆众数据
  444. func RefreshDataFromLz(wg *sync.WaitGroup) (err error) {
  445. defer func() {
  446. if err != nil {
  447. fmt.Println("RefreshDataFromLz Err:" + err.Error())
  448. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromLz ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  449. }
  450. }()
  451. var condition string
  452. var pars []interface{}
  453. condition += " AND source=? "
  454. pars = append(pars, utils.DATA_SOURCE_LZ)
  455. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  456. if err != nil {
  457. return errors.New("GetEdbInfoByCondition:" + err.Error())
  458. }
  459. var endDate string
  460. endDate = time.Now().Format(utils.FormatDateUnSpace)
  461. for _, v := range items {
  462. startDate := ""
  463. if v.Frequency == "日度" {
  464. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  465. } else if v.Frequency == "周度" {
  466. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  467. } else if v.Frequency == "月度" {
  468. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  469. } else if v.Frequency == "季度" {
  470. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  471. } else if v.Frequency == "年度" {
  472. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  473. } else {
  474. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  475. }
  476. fmt.Println(startDate, endDate)
  477. err = data_manage.RefreshEdbDataByLz(v.EdbInfoId, v.EdbCode, startDate, endDate)
  478. if err != nil {
  479. return errors.New("RefreshEdbDataByLz:" + err.Error())
  480. }
  481. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  482. if err != nil {
  483. return err
  484. }
  485. if item != nil {
  486. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  487. if err != nil {
  488. return err
  489. }
  490. }
  491. }
  492. wg.Done()
  493. return err
  494. }
  495. //刷新有色数据
  496. func RefreshDataFromYs(wg *sync.WaitGroup) (err error) {
  497. defer func() {
  498. if err != nil {
  499. fmt.Println("RefreshDataFromYs Err:" + err.Error())
  500. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromYs ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  501. }
  502. }()
  503. var condition string
  504. var pars []interface{}
  505. condition += " AND source=? "
  506. pars = append(pars, utils.DATA_SOURCE_YS)
  507. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  508. if err != nil {
  509. return errors.New("GetEdbInfoByCondition:" + err.Error())
  510. }
  511. var endDate string
  512. endDate = time.Now().Format(utils.FormatDateUnSpace)
  513. for _, v := range items {
  514. startDate := ""
  515. if v.Frequency == "日度" {
  516. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  517. } else if v.Frequency == "周度" {
  518. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  519. } else if v.Frequency == "月度" {
  520. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  521. } else if v.Frequency == "季度" {
  522. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  523. } else if v.Frequency == "年度" {
  524. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  525. } else {
  526. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  527. }
  528. fmt.Println(startDate, endDate)
  529. err = data_manage.RefreshEdbDataByYs(v.EdbInfoId, v.EdbCode, startDate, endDate)
  530. if err != nil {
  531. return errors.New("RefreshEdbDataByYs:" + err.Error())
  532. }
  533. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  534. if err != nil {
  535. return err
  536. }
  537. if item != nil {
  538. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  539. if err != nil {
  540. return err
  541. }
  542. }
  543. }
  544. wg.Done()
  545. return err
  546. }
  547. //刷新钢联数据
  548. func RefreshDataFromGl(wg *sync.WaitGroup) (err error) {
  549. defer func() {
  550. if err != nil {
  551. fmt.Println("RefreshDataFromGl Err:" + err.Error())
  552. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromYs ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  553. }
  554. }()
  555. var condition string
  556. var pars []interface{}
  557. condition += " AND source=? "
  558. pars = append(pars, utils.DATA_SOURCE_GL)
  559. items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
  560. if err != nil {
  561. return errors.New("GetEdbInfoByCondition:" + err.Error())
  562. }
  563. var endDate string
  564. endDate = time.Now().Format(utils.FormatDateUnSpace)
  565. for _, v := range items {
  566. startDate := ""
  567. if v.Frequency == "日度" {
  568. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  569. } else if v.Frequency == "周度" {
  570. startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
  571. } else if v.Frequency == "月度" {
  572. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
  573. } else if v.Frequency == "季度" {
  574. startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
  575. } else if v.Frequency == "年度" {
  576. startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
  577. } else {
  578. startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
  579. }
  580. fmt.Println(startDate, endDate)
  581. err = data_manage.RefreshEdbDataByGl(v.EdbInfoId, v.EdbCode, startDate, endDate)
  582. if err != nil {
  583. return errors.New("RefreshEdbDataByGl:" + err.Error())
  584. }
  585. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  586. if err != nil {
  587. return err
  588. }
  589. if item != nil {
  590. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  591. if err != nil {
  592. return err
  593. }
  594. }
  595. }
  596. wg.Done()
  597. return err
  598. }