warehouse.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package trade_analysis
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/models/data_manage"
  5. "eta/eta_api/utils"
  6. "fmt"
  7. )
  8. // WarehouseExtraConfig 建仓图表配置
  9. type WarehouseExtraConfig struct {
  10. MultipleGraphConfigId int `description:"多图配置ID"`
  11. WarehouseChartType int `description:"图表类型: 1-多单图; 2-空单图; 3-净多单图"`
  12. Exchange string `description:"交易所标识"`
  13. ClassifyName string `description:"品种名称"`
  14. Contracts []string `description:"合约代码"`
  15. Companies []string `description:"期货公司, 不超过5个"`
  16. PredictRatio float64 `description:"预估参数, 0-1之间"`
  17. }
  18. // WarehouseChartPars 建仓单表配置
  19. type WarehouseChartPars struct {
  20. WarehouseChartType int `description:"图表类型: 1-多单图; 2-空单图; 3-净多单图"`
  21. DateType int `description:"日期类型"`
  22. DateTypeNum int `description:"日期类型=25(N月)时的N值"`
  23. StartDate string `description:"自定义开始日期"`
  24. EndDate string `description:"自定义结束日期"`
  25. //ChartThemeId int `description:"图表主题ID"`
  26. ChartEdbInfoList []*data_manage.ChartSaveItem `description:"指标及配置信息"`
  27. //SourcesFrom *data_manage.ChartInfoSourcesFrom `description:"图表来源"`
  28. }
  29. // WarehouseChartDataResp 图表详情返回信息
  30. type WarehouseChartDataResp struct {
  31. WarehouseExtraConfig
  32. MultiEdbMappings []*WarehouseEdbSaveItem
  33. }
  34. // WarehouseEdbSaveItem 建仓指标保存
  35. type WarehouseEdbSaveItem struct {
  36. EdbInfoId int `description:"指标ID"`
  37. EdbName string `description:"指标名称"`
  38. Unit string `description:"单位"`
  39. Frequency string `description:"频度"`
  40. ClassifyId int `description:"指标库分类ID"`
  41. UniqueFlag string `description:"唯一标识"`
  42. //ExtraConfig string `description:"配置信息-JSON"`
  43. }
  44. type WarehouseEdbSaveRespItem struct {
  45. WarehouseEdbSaveItem
  46. Tips string `description:"提示信息"`
  47. ErrMsg string `description:"错误信息"`
  48. }
  49. // CreateWarehouseChart 新增建仓图表
  50. func CreateWarehouseChart(chartInfo *data_manage.ChartInfo, seriesList []*data_manage.ChartSeries, multiChartMapping *data_manage.MultipleGraphConfigChartMapping) (err error) {
  51. tx := global.DbMap[utils.DbNameIndex].Begin()
  52. defer func() {
  53. if err != nil {
  54. _ = tx.Rollback()
  55. } else {
  56. _ = tx.Commit()
  57. }
  58. }()
  59. // 新增图表
  60. e := tx.Create(chartInfo).Error
  61. if e != nil {
  62. err = fmt.Errorf("insert chart err: %v", e)
  63. return
  64. }
  65. // 新增图例
  66. if len(seriesList) > 0 {
  67. for _, s := range seriesList {
  68. s.ChartInfoId = chartInfo.ChartInfoId
  69. }
  70. e = tx.CreateInBatches(seriesList, utils.MultiAddNum).Error
  71. if e != nil {
  72. err = fmt.Errorf("insert multi series err: %v", e)
  73. return
  74. }
  75. }
  76. // 图表关联
  77. if multiChartMapping != nil {
  78. multiChartMapping.ChartInfoId = chartInfo.ChartInfoId
  79. e = tx.Create(multiChartMapping).Error
  80. if e != nil {
  81. err = fmt.Errorf("insert multi chart mapping err: %v", e)
  82. return
  83. }
  84. }
  85. return
  86. }