edb_collect_classify.go 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. package data_manage
  2. import (
  3. "eta_gn/eta_api/global"
  4. "eta_gn/eta_api/utils"
  5. "fmt"
  6. "strings"
  7. "time"
  8. )
  9. // EdbCollectClassify 指标收藏分类
  10. type EdbCollectClassify struct {
  11. EdbCollectClassifyId int `gorm:"primaryKey;autoIncrement;column:edb_collect_classify_id;type:int(10) unsigned;not null"`
  12. ClassifyName string `gorm:"column:classify_name;type:varchar(255);not null;default:''"` // 分类名称
  13. ParentId int `gorm:"column:parent_id;type:int(10) unsigned;not null;default:0"` // 父级Id
  14. SysUserId int `gorm:"column:sys_user_id;type:int(10) unsigned;not null;default:0"` // 创建人Id
  15. SysUserRealName string `gorm:"column:sys_user_real_name;type:varchar(128);not null"` // 创建人姓名
  16. UniqueCode string `gorm:"unique;column:unique_code;type:varchar(64);not null;default:''"` // 唯一编码
  17. Level int `gorm:"column:level;type:int(10) unsigned;not null;default:0"` // 层级
  18. Sort int `gorm:"column:sort;type:int(10) unsigned;not null;default:0"` // 排序
  19. RootId int `gorm:"column:root_id;type:int(10) unsigned;not null;default:0"` // 顶级Id
  20. LevelPath string `gorm:"column:level_path;type:varchar(255);not null;default:''"`
  21. CreateTime time.Time `gorm:"column:create_time;type:datetime"` // 创建时间
  22. ModifyTime time.Time `gorm:"column:modify_time;type:datetime"` // 修改时间
  23. }
  24. func (m *EdbCollectClassify) TableName() string {
  25. return "edb_collect_classify"
  26. }
  27. type EdbCollectClassifyCols struct {
  28. PrimaryId string
  29. ClassifyName string
  30. ParentId string
  31. SysUserId string
  32. SysUserRealName string
  33. UniqueCode string
  34. Level string
  35. Sort string
  36. RootId string
  37. LevelPath string
  38. CreateTime string
  39. ModifyTime string
  40. }
  41. func (m *EdbCollectClassify) Cols() EdbCollectClassifyCols {
  42. return EdbCollectClassifyCols{
  43. PrimaryId: "edb_collect_classify_id",
  44. ClassifyName: "classify_name",
  45. ParentId: "parent_id",
  46. SysUserId: "sys_user_id",
  47. SysUserRealName: "sys_user_real_name",
  48. UniqueCode: "unique_code",
  49. Level: "level",
  50. Sort: "sort",
  51. RootId: "root_id",
  52. LevelPath: "level_path",
  53. CreateTime: "create_time",
  54. ModifyTime: "modify_time",
  55. }
  56. }
  57. func (m *EdbCollectClassify) Create() (err error) {
  58. err = global.DmSQL["data"].Create(m).Error
  59. return
  60. }
  61. func (m *EdbCollectClassify) CreateMulti(items []*EdbCollectClassify) (err error) {
  62. if len(items) == 0 {
  63. return
  64. }
  65. err = global.DmSQL["data"].CreateInBatches(items, utils.MultiAddNum).Error
  66. return
  67. }
  68. func (m *EdbCollectClassify) Update(cols []string) (err error) {
  69. err = global.DmSQL["data"].Select(cols).Updates(m).Error
  70. return
  71. }
  72. func (m *EdbCollectClassify) Remove() (err error) {
  73. sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
  74. err = global.DmSQL["data"].Exec(sql, m.EdbCollectClassifyId).Error
  75. return
  76. }
  77. func (m *EdbCollectClassify) MultiRemove(ids []int) (err error) {
  78. if len(ids) == 0 {
  79. return
  80. }
  81. sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.Cols().PrimaryId, utils.GetOrmInReplace(len(ids)))
  82. err = global.DmSQL["data"].Exec(sql, ids).Error
  83. return
  84. }
  85. func (m *EdbCollectClassify) RemoveByCondition(condition string, pars []interface{}) (err error) {
  86. if condition == "" {
  87. return
  88. }
  89. sql := fmt.Sprintf(`DELETE FROM %s WHERE %s`, m.TableName(), condition)
  90. err = global.DmSQL["data"].Exec(sql, pars...).Error
  91. return
  92. }
  93. func (m *EdbCollectClassify) GetItemById(id int) (item *EdbCollectClassify, err error) {
  94. sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
  95. err = global.DmSQL["data"].Raw(sql, id).First(&item).Error
  96. return
  97. }
  98. func (m *EdbCollectClassify) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *EdbCollectClassify, err error) {
  99. order := ``
  100. if orderRule != "" {
  101. order = ` ORDER BY ` + orderRule
  102. }
  103. sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
  104. err = global.DmSQL["data"].Raw(sql, pars...).First(&item).Error
  105. return
  106. }
  107. func (m *EdbCollectClassify) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
  108. sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
  109. err = global.DmSQL["data"].Raw(sql, pars...).Scan(&count).Error
  110. return
  111. }
  112. func (m *EdbCollectClassify) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*EdbCollectClassify, err error) {
  113. fields := strings.Join(fieldArr, ",")
  114. if len(fieldArr) == 0 {
  115. fields = `*`
  116. }
  117. order := fmt.Sprintf(`ORDER BY %s DESC`, m.Cols().CreateTime)
  118. if orderRule != "" {
  119. order = ` ORDER BY ` + orderRule
  120. }
  121. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
  122. err = global.DmSQL["data"].Raw(sql, pars...).Find(&items).Error
  123. return
  124. }
  125. func (m *EdbCollectClassify) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*EdbCollectClassify, err error) {
  126. fields := strings.Join(fieldArr, ",")
  127. if len(fieldArr) == 0 {
  128. fields = `*`
  129. }
  130. order := fmt.Sprintf(`ORDER BY %s DESC`, m.Cols().CreateTime)
  131. if orderRule != "" {
  132. order = ` ORDER BY ` + orderRule
  133. }
  134. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
  135. pars = append(pars, startSize, pageSize)
  136. err = global.DmSQL["data"].Raw(sql, pars...).Find(&items).Error
  137. return
  138. }
  139. func (m *EdbCollectClassify) GetSortMax(parentId int) (sort int, err error) {
  140. sql := fmt.Sprintf(`SELECT COALESCE(MAX(%s), 0) FROM %s WHERE %s = ?`, m.Cols().Sort, m.TableName(), m.Cols().ParentId)
  141. err = global.DmSQL["data"].Raw(sql, parentId).Scan(&sort).Error
  142. return
  143. }
  144. // EdbCollectClassifyItem 指标收藏分类
  145. type EdbCollectClassifyItem struct {
  146. ClassifyId int `description:"收藏ID"`
  147. ClassifyName string `description:"指标收藏分类ID"`
  148. ParentId int `description:"指标ID"`
  149. UniqueCode string `description:"指标ID"`
  150. Level int `description:"指标ID"`
  151. Sort int `description:"指标ID"`
  152. }
  153. func (m *EdbCollectClassify) Format2Item() (item *EdbCollectClassifyItem) {
  154. item = new(EdbCollectClassifyItem)
  155. item.ClassifyId = m.EdbCollectClassifyId
  156. item.ClassifyName = m.ClassifyName
  157. item.ParentId = m.ParentId
  158. item.UniqueCode = m.UniqueCode
  159. item.Level = m.Level
  160. item.Sort = m.Sort
  161. return
  162. }
  163. // EdbCollectClassifyListItem 指标收藏分类列表
  164. type EdbCollectClassifyListItem struct {
  165. NodeType int `description:"类型: 1-分类; 2-指标"`
  166. ClassifyId int `description:"分类ID"`
  167. ClassifyName string `description:"分类名称"`
  168. EdbInfoId int `description:"指标ID"`
  169. EdbCode string `description:"指标编码"`
  170. EdbName string `description:"指标名称"`
  171. ParentId int `description:"父级ID"`
  172. Level int `description:"层级"`
  173. Sort int `description:"排序"`
  174. UniqueCode string `description:"唯一编码, 指标的话用indexCode"`
  175. Children []*EdbCollectClassifyListItem `description:"子分类"`
  176. }
  177. // EdbCollectClassifyAddReq 新增分类
  178. type EdbCollectClassifyAddReq struct {
  179. ClassifyName string `description:"分类名称"`
  180. ParentId int `description:"父级ID"`
  181. Level int `description:"层级"`
  182. }
  183. // EdbCollectClassifyEditReq 编辑分类
  184. type EdbCollectClassifyEditReq struct {
  185. ClassifyId int `description:"分类ID"`
  186. ClassifyName string `description:"分类名称"`
  187. }