edb_info_stat_column.go 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package data_stat
  2. import (
  3. "eta/eta_api/utils"
  4. "github.com/beego/beego/v2/client/orm"
  5. "time"
  6. )
  7. // EdbInfoStatColumn 数据源统计表自定义列
  8. type EdbInfoStatColumn struct {
  9. Id int `orm:"column(id);pk" description:"自增id"`
  10. ColumnName string `description:"字段名称"`
  11. ColumnKey string `description:"字段"`
  12. CreateTime string `description:" 创建时间"`
  13. ModifyTime string `description:"修改时间"`
  14. Type int `description:"列表类型:1数据源明细表,2数据源统计表,3删除指标列表,4指标信息变更表"`
  15. Sort int `description:"列排序"`
  16. IsMust int `description:"是否必选列: 0非必选 1必须"`
  17. IsSort int `description:"是否是允许排序的列,0否,1是"`
  18. IsShow int `description:"是否展示:1展示,0不展示"`
  19. ColumnNameEn string `description:"英文字段名称"`
  20. }
  21. type EdbInfoStatColumnOrm struct {
  22. Id int `orm:"column(id);pk" description:"自增id"`
  23. ColumnName string `description:"字段名称"`
  24. ColumnKey string `description:"字段"`
  25. CreateTime time.Time `description:" 创建时间"`
  26. ModifyTime time.Time `description:"修改时间"`
  27. Type int `description:"列表类型:1数据源明细表,2数据源统计表,3删除指标列表,4指标信息变更表"`
  28. Sort int `description:"列排序"`
  29. IsMust int `description:"是否必选列: 0非必选 1必须"`
  30. IsSort int `description:"是否是允许排序的列,0否,1是"`
  31. IsShow int `description:"是否展示:1展示,0不展示"`
  32. ColumnNameEn string `description:"英文字段名称"`
  33. }
  34. type EdbInfoStatColumnListItem struct {
  35. Id int `description:"自增id"`
  36. ColumnName string `description:"字段名称"`
  37. ColumnKey string `description:"字段"`
  38. Type int `description:"列表类型:1数据源明细表,2数据源统计表,3删除指标列表,4指标信息变更表"`
  39. IsMust int `description:"是否必选列: 0非必选 1必须"`
  40. IsSort int `description:"是否是允许排序的列,0否,1是"`
  41. IsShow int `description:"是否展示:1展示,0不展示"`
  42. ColumnNameEn string `description:"英文字段名称"`
  43. }
  44. func (this *EdbInfoStatColumnOrm) toView() EdbInfoStatColumn {
  45. return EdbInfoStatColumn{
  46. Id: this.Id,
  47. ColumnName: this.ColumnName,
  48. ColumnKey: this.ColumnKey,
  49. CreateTime: this.CreateTime.Format(utils.FormatDateTime),
  50. ModifyTime: this.ModifyTime.Format(utils.FormatDateTime),
  51. Type: this.Type,
  52. Sort: this.Sort,
  53. IsMust: this.IsMust,
  54. IsSort: this.IsSort,
  55. IsShow: this.IsShow,
  56. }
  57. }
  58. func toStatColumnList(ormList []*EdbInfoStatColumnOrm) (list []EdbInfoStatColumn) {
  59. for _, v := range ormList {
  60. list = append(list, v.toView())
  61. }
  62. return
  63. }
  64. type StatColumnList struct {
  65. List []*EdbInfoStatColumnListItem
  66. }
  67. type EditStatColumnReq struct {
  68. List []*EdbInfoStatColumnListReq
  69. }
  70. type EdbInfoStatColumnListReq struct {
  71. Id int `description:"自增id"`
  72. IsShow int `description:"是否展示:1展示,0不展示"`
  73. }
  74. // GetStatColumn 获取自定义列
  75. func GetStatColumn(columnType int) (list []EdbInfoStatColumn, err error) {
  76. o := orm.NewOrmUsingDB("data")
  77. sql := `SELECT * FROM edb_info_stat_column WHERE type=? ORDER BY sort asc, id asc `
  78. // [2025-zsh-时间类型修复-chenhan]
  79. var ormList []*EdbInfoStatColumnOrm
  80. _, err = o.Raw(sql, columnType).QueryRows(&ormList)
  81. if err != nil {
  82. return
  83. }
  84. list = toStatColumnList(ormList)
  85. return
  86. }
  87. // GetAllStatColumn 获取所有自定义列
  88. func GetAllStatColumn() (list []EdbInfoStatColumn, err error) {
  89. o := orm.NewOrmUsingDB("data")
  90. sql := `SELECT * FROM edb_info_stat_column ORDER BY sort asc, id asc `
  91. _, err = o.Raw(sql).QueryRows(&list)
  92. return
  93. }
  94. // UpdateStatColumn 批量更新自定义列
  95. func UpdateStatColumn(list []*EdbInfoStatColumn) (err error) {
  96. o := orm.NewOrmUsingDB("data")
  97. p, err := o.Raw("UPDATE edb_info_stat_column SET is_show = ?, sort=? WHERE id = ?").Prepare()
  98. if err != nil {
  99. return
  100. }
  101. defer func() {
  102. _ = p.Close() // 别忘记关闭 statement
  103. }()
  104. for _, v := range list {
  105. _, err = p.Exec(v.IsShow, v.Sort, v.Id)
  106. if err != nil {
  107. return
  108. }
  109. }
  110. return
  111. }