base_from_trade_analysis.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "eta/eta_index_lib/models"
  5. "eta/eta_index_lib/utils"
  6. "fmt"
  7. "time"
  8. )
  9. // BaseFromTradeAnalysisController 持仓分析指标
  10. type BaseFromTradeAnalysisController struct {
  11. BaseAuthController
  12. }
  13. // EdbRefresh
  14. // @Title 指标库刷新
  15. // @Description 指标库刷新
  16. // @Success 200 {object} models.RefreshEdbInfoReq
  17. // @router /edb/refresh [post]
  18. func (this *BaseFromTradeAnalysisController) EdbRefresh() {
  19. br := new(models.BaseResponse).Init()
  20. defer func() {
  21. if br.ErrMsg == "" {
  22. br.IsSendEmail = false
  23. }
  24. this.Data["json"] = br
  25. this.ServeJSON()
  26. }()
  27. var req models.RefreshEdbInfoReq
  28. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  29. if err != nil {
  30. br.Msg = "参数解析异常!"
  31. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  32. return
  33. }
  34. if req.EdbCode == "" {
  35. br.Msg = "请输入指标编码!"
  36. br.ErrMsg = "请输入指标编码,指标编码为空"
  37. return
  38. }
  39. if req.EdbInfoId < 0 {
  40. br.Msg = "请输入指标ID!"
  41. br.ErrMsg = "请输入指标ID"
  42. return
  43. }
  44. thsOb := new(models.EdbThsHf)
  45. source := thsOb.GetSource()
  46. subSource := thsOb.GetSubSource()
  47. cacheKey := fmt.Sprintf("%s_%d_%d_%s", utils.CACHE_EDB_DATA_REFRESH, source, subSource, req.EdbCode)
  48. if utils.Rc.IsExist(cacheKey) {
  49. br.Ret = 501
  50. br.Success = true
  51. br.Msg = "系统处理中,请稍后重试"
  52. return
  53. }
  54. utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
  55. defer func() {
  56. _ = utils.Rc.Delete(cacheKey)
  57. }()
  58. // 获取指标详情
  59. //edbInfo, e := models.GetEdbInfoByEdbCode(source, req.EdbCode)
  60. //if e != nil {
  61. // br.Msg = "指标不存在"
  62. // br.ErrMsg = fmt.Sprintf("指标不存在, %v", e)
  63. // return
  64. //}
  65. //
  66. //// 获取指标关联信息
  67. //baseMapping := new(models.BaseFromEdbMapping)
  68. //{
  69. // ob := new(models.BaseFromEdbMapping)
  70. // cond := fmt.Sprintf(" AND %s = ? AND %s = ? AND %s = ?", ob.Cols().EdbCode, ob.Cols().Source, ob.Cols().SubSource)
  71. // pars := make([]interface{}, 0)
  72. // pars = append(pars, req.EdbCode, thsOb.GetSource(), thsOb.GetSubSource())
  73. // mapping, e := ob.GetItemByCondition(cond, pars, "")
  74. // if e != nil {
  75. // br.Msg = "刷新失败"
  76. // br.ErrMsg = fmt.Sprintf("指标关联信息有误, %v", e)
  77. // return
  78. // }
  79. // baseMapping = mapping
  80. //}
  81. //
  82. //// 刷新指标
  83. //if e = thsOb.Refresh(edbInfo, baseMapping, req.StartDate); e != nil {
  84. // br.Msg = "刷新指标失败"
  85. // br.ErrMsg = fmt.Sprintf("刷新指标失败, %v", e)
  86. // return
  87. //}
  88. //
  89. //// 更新指标最值
  90. //if e = thsOb.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo); e != nil {
  91. // br.Msg = "刷新指标失败"
  92. // br.ErrMsg = fmt.Sprintf("更新指标最值失败, %v", e)
  93. // return
  94. //}
  95. // 更新ES
  96. //go logic.UpdateEs(edbInfo.EdbInfoId)
  97. br.Ret = 200
  98. br.Success = true
  99. br.Msg = "操作成功"
  100. }