base_edb_info.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package logic
  2. import (
  3. "errors"
  4. "eta/eta_index_lib/models"
  5. "eta/eta_index_lib/services"
  6. "eta/eta_index_lib/utils"
  7. "strconv"
  8. "time"
  9. )
  10. // RefreshBaseEdbInfo 刷新基础指标
  11. func RefreshBaseEdbInfo(edbInfo *models.EdbInfo, startDate string) (isHandling bool, errMsg string, err error) {
  12. cacheKey := utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(edbInfo.Source) + "_" + edbInfo.EdbCode
  13. if utils.Rc.IsExist(cacheKey) {
  14. isHandling = true
  15. return
  16. }
  17. utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
  18. defer func() {
  19. utils.Rc.Delete(cacheKey)
  20. }()
  21. switch edbInfo.Source {
  22. case utils.DATA_SOURCE_SCI:
  23. err = models.RefreshEdbDataFromSci(edbInfo.EdbInfoId, edbInfo.EdbCode, startDate)
  24. case utils.DATA_SOURCE_BAIINFO:
  25. err = models.RefreshEdbDataFromBaiinfo(edbInfo.EdbInfoId, edbInfo.EdbCode, startDate)
  26. case utils.DATA_SOURCE_MYSTEEL_CHEMICAL:
  27. err = models.RefreshEdbDataFromMysteelChemical(edbInfo.EdbInfoId, edbInfo.EdbCode, startDate)
  28. default:
  29. return
  30. }
  31. if err != nil && err.Error() != utils.ErrNoRow() {
  32. errMsg = "刷新指标信息失败!"
  33. err = errors.New("刷新指标信息失败 RefreshEdbDataFromSci,Err:" + err.Error())
  34. return
  35. }
  36. // 更新指标最大最小值
  37. if edbInfo.Source == utils.DATA_SOURCE_MYSTEEL_CHEMICAL {
  38. dataUpdateTime := time.Now().Format(utils.FormatDateTime)
  39. err, errMsg = models.UnifiedModifyEdbInfoMaxAndMinInfoDataUpdate(edbInfo, dataUpdateTime)
  40. if err != nil {
  41. return
  42. }
  43. } else {
  44. err, errMsg = models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
  45. if err != nil {
  46. return
  47. }
  48. }
  49. // 更新ES
  50. go UpdateEs(edbInfo.EdbInfoId)
  51. // 添加钢联化工指标的刷新日志
  52. if edbInfo.Source == utils.DATA_SOURCE_MYSTEEL_CHEMICAL {
  53. // 添加指标刷新成功日志
  54. _ = services.AddEdbInfoUpdateLog(edbInfo.EdbInfoId, 1, "")
  55. }
  56. return
  57. }