eta_business_chart_permission.go 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. package data_manage
  2. import (
  3. "eta/eta_hub/global"
  4. "eta/eta_hub/utils"
  5. "fmt"
  6. "time"
  7. "github.com/beego/beego/v2/client/orm"
  8. "github.com/rdlucklib/rdluck_tools/paging"
  9. )
  10. // EtaBusinessChartPermission 商家图表权限表
  11. type EtaBusinessChartPermission struct {
  12. EtaBusinessChartPermissionId int64 `orm:"column(eta_business_chart_permission_id);pk;auto"`
  13. ChartInfoId int `orm:"column(chart_info_id)" description:"图表id"`
  14. Source int `orm:"column(source)" description:"分类来源: 1-图库; 2-商品价格曲线; 3-相关性图表; 6-拟合方程图表; 7-统计特征"`
  15. BusinessCode string `orm:"column(business_code)" description:"客户编码"`
  16. EtaBusinessId int `orm:"column(eta_business_id)" description:"商家ID"`
  17. ModifyTime time.Time `orm:"column(modify_time);type(datetime);null" description:"变更时间"`
  18. CreateTime time.Time `orm:"column(create_time);type(datetime);null" description:"关系建立时间"`
  19. }
  20. // TableName 设置表名
  21. func (m *EtaBusinessChartPermission) TableName() string {
  22. return "eta_business_chart_permission"
  23. }
  24. type BusinessChartInfoView struct {
  25. ChartInfoId int
  26. ChartName string
  27. UniqueCode string
  28. Description []string
  29. EdbInfoList []*BusinessChartEdbListItem
  30. }
  31. // GetChartListByBusinessCode 根据商家编码获取图表列表
  32. func (m *EtaBusinessChartPermission) GetChartListByBusinessCode(businessCode string, startSize int, pageSize int) ([]*BusinessChartInfoView, error) {
  33. if businessCode == "" {
  34. return nil, fmt.Errorf("business code cannot be empty")
  35. }
  36. var chartList []*BusinessChartInfoView
  37. //o := orm.NewOrmUsingDB("data")
  38. // 构建SQL查询
  39. sql := `
  40. SELECT
  41. c.chart_info_id, c.chart_name, c.unique_code
  42. FROM
  43. eta_business_chart_permission p
  44. JOIN
  45. chart_info c ON p.chart_info_id = c.chart_info_id
  46. WHERE
  47. p.business_code = ?
  48. ORDER BY
  49. c.sort ASC, c.chart_info_id DESC
  50. LIMIT ?, ?
  51. `
  52. err := global.DbMap[utils.DbNameIndex].Raw(sql, businessCode, startSize, pageSize).Find(&chartList).Error
  53. if err != nil {
  54. return nil, fmt.Errorf("failed to get chart list: %v", err)
  55. }
  56. return chartList, nil
  57. }
  58. func (m *EtaBusinessChartPermission) GetChartListByBusinessCodeTotal(businessCode string) (int64, error) {
  59. //o := orm.NewOrmUsingDB("data")
  60. sql := `
  61. SELECT COUNT(*) FROM eta_business_chart_permission p
  62. JOIN
  63. chart_info c ON p.chart_info_id = c.chart_info_id
  64. WHERE
  65. p.business_code = ?
  66. `
  67. var total int64
  68. err := global.DbMap[utils.DbNameIndex].Raw(sql, businessCode).Scan(&total)
  69. if err != nil {
  70. return 0, fmt.Errorf("failed to get chart list total: %v", err)
  71. }
  72. return total, nil
  73. }
  74. // GetChartInfoByUniqueCode 根据唯一编码获取图表信息
  75. func (m *EtaBusinessChartPermission) GetChartInfoByUniqueCode(businessCode string, uniqueCode string) (chartInfo *BusinessChartInfoView, err error) {
  76. //o := orm.NewOrmUsingDB("data")
  77. sql := `
  78. SELECT
  79. c.chart_info_id, c.chart_name, c.unique_code
  80. FROM
  81. eta_business_chart_permission p
  82. JOIN
  83. chart_info c ON p.chart_info_id = c.chart_info_id
  84. WHERE
  85. p.business_code = ? AND c.unique_code = ?
  86. `
  87. err = global.DbMap[utils.DbNameIndex].Raw(sql, businessCode, uniqueCode).Scan(&chartInfo).Error
  88. return
  89. }
  90. // Init 初始化表结构
  91. func init() {
  92. orm.RegisterModel(new(EtaBusinessChartPermission))
  93. }
  94. type BusinessChartInfoResp struct {
  95. List []*BusinessChartInfoView
  96. Paging *paging.PagingItem
  97. }
  98. type BusinessChartEdbListResp struct {
  99. List []*BusinessChartEdbListItem
  100. }
  101. type BusinessChartEdbListItem struct {
  102. EdbInfoId int
  103. EdbCode string
  104. EdbName string
  105. EdbInfoType int
  106. Frequency string
  107. Unit string
  108. EndDate string
  109. EndValue float64
  110. LatestDate string
  111. LatestValue float64
  112. UniqueCode string
  113. }
  114. type ChartDescription struct {
  115. ChartInfoId int
  116. Description string
  117. }
  118. // 查询图表描述列表
  119. func (m *EtaBusinessChartPermission) GetChartDescriptionListByChartInfoIds(chartInfoIds []int) (list []*ChartDescription, err error) {
  120. //o := orm.NewOrmUsingDB("data")
  121. sql := `
  122. SELECT * FROM chart_description WHERE chart_info_id IN (` + utils.GetOrmInReplace(len(chartInfoIds)) + `) ORDER BY id DESC
  123. `
  124. err = global.DbMap[utils.DbNameIndex].Raw(sql, chartInfoIds).Find(&list).Error
  125. return list, err
  126. }
  127. func (m *EtaBusinessChartPermission) GetChartDescriptionListByChartInfoId(chartInfoId int) (list []*ChartDescription, err error) {
  128. //o := orm.NewOrmUsingDB("data")
  129. sql := `
  130. SELECT * FROM chart_description WHERE chart_info_id = ? ORDER BY id DESC
  131. `
  132. err = global.DbMap[utils.DbNameIndex].Raw(sql, chartInfoId).Find(&list).Error
  133. return
  134. }
  135. type BusinessChartDetailResp struct {
  136. ChartInfoId int
  137. ChartName string
  138. UniqueCode string
  139. Description []string
  140. EdbInfoList []TraceEdbInfoMoreResp
  141. }
  142. // GetChartListByBusinessCode 根据商家编码获取图表列表
  143. func (m *EtaBusinessChartPermission) GetChartCountByBusinessCodeAndEdbInfoId(businessCode string, edbInfoId int) (count int64, err error) {
  144. if businessCode == "" {
  145. return 0, fmt.Errorf("business code cannot be empty")
  146. }
  147. //o := orm.NewOrmUsingDB("data")
  148. // 构建SQL查询
  149. sql := `
  150. SELECT
  151. COUNT(DISTINCT p.chart_info_id)
  152. FROM
  153. eta_business_chart_permission p
  154. JOIN
  155. chart_edb_mapping c ON p.chart_info_id = c.chart_info_id
  156. WHERE
  157. p.business_code = ? AND c.edb_info_id = ?
  158. `
  159. err = global.DbMap[utils.DbNameIndex].Raw(sql, businessCode, edbInfoId).Scan(&count).Error
  160. return
  161. }