chart.go 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package services
  2. import (
  3. "encoding/json"
  4. "eta/eta_mini_api/utils"
  5. "fmt"
  6. "io"
  7. "net/http"
  8. "time"
  9. "github.com/rdlucklib/rdluck_tools/paging"
  10. )
  11. type ChartInfoView struct {
  12. ChartInfoId int `orm:"column(chart_info_id);pk"`
  13. ChartName string `description:"来源名称"`
  14. ChartNameEn string `description:"英文图表名称"`
  15. Unit string `description:"中文单位名称"`
  16. UnitEn string `description:"英文单位名称"`
  17. ChartClassifyId int `description:"图表分类id"`
  18. ChartClassifyName string `description:"图表名称"`
  19. SysUserId int
  20. SysUserRealName string
  21. UniqueCode string `description:"图表唯一编码"`
  22. CreateTime time.Time
  23. ModifyTime time.Time
  24. DateType int `description:"日期类型:1:00年至今,2:10年至今,3:15年至今,4:年初至今,5:自定义时间"`
  25. StartDate string `description:"自定义开始日期"`
  26. EndDate string `description:"自定义结束日期"`
  27. IsSetName int `description:"设置名称"`
  28. EdbInfoIds string `description:"指标id"`
  29. ChartType int `description:"生成样式:1:曲线图,2:季节性图"`
  30. Calendar string `description:"公历/农历"`
  31. SeasonStartDate string `description:"季节性图开始日期"`
  32. SeasonEndDate string `description:"季节性图开始日期"`
  33. ChartImage string `description:"图表图片"`
  34. Sort int `description:"排序字段,数字越小越排前面"`
  35. IsAdd bool `description:"true:已加入我的图库,false:未加入我的图库"`
  36. MyChartId int
  37. MyChartClassifyId string `description:"我的图表分类,多个用逗号隔开"`
  38. ChartClassify []*ChartClassifyView
  39. EdbEndDate string `description:"指标最新更新日期"`
  40. XMin string `description:"图表X轴最小值"`
  41. XMax string `description:"图表X轴最大值"`
  42. LeftMin string `description:"图表左侧最小值"`
  43. LeftMax string `description:"图表左侧最大值"`
  44. RightMin string `description:"图表右侧最小值"`
  45. RightMax string `description:"图表右侧最大值"`
  46. Right2Min string `description:"图表右侧最小值"`
  47. Right2Max string `description:"图表右侧最大值"`
  48. MinMaxSave int `description:"是否手动保存过上下限:0-否;1-是"`
  49. IsEdit bool `description:"是否有编辑权限"`
  50. IsEnChart bool `description:"是否展示英文标识"`
  51. WarnMsg string `description:"错误信息"`
  52. Disabled int `description:"是否禁用,0:启用,1:禁用,默认:0"`
  53. BarConfig string `description:"柱方图的配置,json数据" json:"-"`
  54. Source int `description:"1:ETA图库;2:商品价格曲线;3:相关性图表"`
  55. //CorrelationLeadUnit string `description:"相关性图表-领先单位"`
  56. ExtraConfig string `description:"图表额外配置,json数据"`
  57. ChartSource string `description:"图表来源str"`
  58. ChartSourceEn string `description:"图表来源(英文)"`
  59. Button ChartViewButton `description:"操作按钮"`
  60. SeasonExtraConfig string `description:"季节性图表中的配置,json数据"`
  61. StartYear int `description:"当选择的日期类型为最近N年类型时,即date_type=20, 用start_year表示N"`
  62. ChartThemeId int `description:"图表应用主题ID"`
  63. ChartThemeStyle string `description:"图表应用主题样式"`
  64. SourcesFrom string `description:"图表来源"`
  65. Instructions string `description:"图表说明"`
  66. MarkersLines string `description:"标识线"`
  67. MarkersAreas string `description:"标识区"`
  68. IsJoinPermission int `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
  69. HaveOperaAuth bool `description:"是否有数据权限,默认:false"`
  70. ForumChartInfoId int `description:"社区的图表ID"`
  71. }
  72. type ChartClassifyView struct {
  73. ChartClassifyId int `orm:"column(chart_classify_id);pk"`
  74. ChartClassifyName string `description:"分类名称"`
  75. ParentId int `description:"父级id"`
  76. }
  77. type ChartViewButton struct {
  78. IsEdit bool `description:"是否有编辑权限"`
  79. IsEnChart bool `description:"是否展示英文标识"`
  80. IsAdd bool `description:"true:已加入我的图库,false:未加入我的图库"`
  81. IsCopy bool `description:"是否有另存为按钮"`
  82. IsSetName int `description:"设置名称"`
  83. }
  84. type ChartListResp struct {
  85. List []*ChartInfoView
  86. Paging *paging.PagingItem
  87. }
  88. type ChartResp[T any] struct {
  89. Ret int
  90. Data T
  91. Msg string
  92. ErrMsg string
  93. }
  94. func GetChartList(currentIndex, pageSize int) (resp *ChartResp[ChartListResp], err error) {
  95. url := utils.ETA_MINI_BRIDGE_URL + "/chart/list?"
  96. url += fmt.Sprintf("PageSize=%d&CurrentIndex=%d", pageSize, currentIndex)
  97. fmt.Println(url)
  98. client := &http.Client{}
  99. // 提交请求
  100. req, err := http.NewRequest("GET", url, nil)
  101. if err != nil {
  102. return
  103. }
  104. nonce := utils.GetRandStringNoSpecialChar(16)
  105. timestamp := time.Now().Format(utils.FormatDateTimeUnSpace)
  106. signature := utils.GetSign(nonce, timestamp, utils.ETA_MINI_APPID, utils.ETA_MINI_APP_SECRET)
  107. //增加header选项
  108. req.Header.Add("Nonce", nonce)
  109. req.Header.Add("Timestamp", timestamp)
  110. req.Header.Add("Appid", utils.ETA_MINI_APPID)
  111. req.Header.Add("Signature", signature)
  112. req.Header.Set("Content-Type", "application/json")
  113. response, err := client.Do(req)
  114. if err != nil {
  115. return
  116. }
  117. defer response.Body.Close()
  118. body, err := io.ReadAll(response.Body)
  119. if err != nil {
  120. return
  121. }
  122. utils.FileLog.Info("result:" + string(body))
  123. err = json.Unmarshal(body, &resp)
  124. if err != nil {
  125. return resp, err
  126. }
  127. return resp, nil
  128. }