manual_classify.go 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. package data_manage
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "time"
  5. )
  6. type EdbdataClassify struct {
  7. ClassifyId int `orm:"column(classify_id);pk" description:"分类id"`
  8. ClassifyName string `description:"分类名称"`
  9. ParentId int `description:"父级id"`
  10. CreateTime time.Time `description:"创建时间"`
  11. Sort int `description:"排序"`
  12. IsShow int `description:"是否显示"`
  13. }
  14. type EdbdataClassifyList struct {
  15. ClassifyId int `description:"分类id"`
  16. ClassifyName string `description:"分类名称"`
  17. ParentId int `description:"父级id"`
  18. CreateTime time.Time `description:"创建时间"`
  19. Sort int `description:"排序"`
  20. IsShow int `description:"是否显示"`
  21. Total int `description:"指标总数"`
  22. }
  23. func AddEdbdataClassify(item *EdbdataClassify) (lastId int64, err error) {
  24. o := orm.NewOrmUsingDB("edb")
  25. lastId, err = o.Insert(item)
  26. return
  27. }
  28. type ManualClassifyList struct {
  29. ClassifyId int
  30. ClassifyName string
  31. ParentId int
  32. CheckList []int
  33. Child []*ManualClassifyList
  34. }
  35. func GetManualClassifyAll(adminId int) (items []*ManualClassifyList, err error) {
  36. var newItems []*ManualClassifyList
  37. o := orm.NewOrmUsingDB("edb")
  38. sql := ` SELECT classify_id,classify_name,parent_id FROM edbdata_classify WHERE parent_id=0 AND is_show=1 ORDER BY sort ASC `
  39. _, err = o.Raw(sql).QueryRows(&newItems)
  40. if err != nil {
  41. return
  42. }
  43. classifyLen := len(newItems)
  44. for i := 0; i < classifyLen; i++ {
  45. var childItems []*ManualClassifyList
  46. parentId := newItems[i].ClassifyId
  47. childSql := ``
  48. childSql = "SELECT classify_id,classify_name,parent_id FROM edbdata_classify WHERE parent_id=? AND is_show=1 ORDER BY sort ASC "
  49. _, err = o.Raw(childSql, parentId).QueryRows(&childItems)
  50. if err != nil {
  51. return
  52. }
  53. checkList := make([]int, 0)
  54. for _, v := range childItems {
  55. if v.ParentId > 0 {
  56. count, err := GetManualUserClassifyCount(adminId, v.ClassifyId)
  57. if err != nil {
  58. return items, err
  59. }
  60. if count > 0 {
  61. checkList = append(checkList, v.ClassifyId)
  62. }
  63. }
  64. }
  65. newItems[i].CheckList = checkList
  66. newItems[i].Child = childItems
  67. }
  68. for _, v := range newItems {
  69. if v.ParentId > 0 {
  70. count, err := GetManualUserClassifyCount(adminId, v.ClassifyId)
  71. if err != nil {
  72. return items, err
  73. }
  74. if count > 0 {
  75. v.CheckList = append(v.CheckList, v.ClassifyId)
  76. }
  77. }
  78. childLen := len(v.Child)
  79. if childLen > 0 {
  80. items = append(items, v)
  81. }
  82. }
  83. return
  84. }
  85. type AddManualClassifyReq struct {
  86. ClassifyName string `description:"分类名称"`
  87. ParentId int `description:"父级id,第一级传0"`
  88. }
  89. func GetManualClassifyCount(classifyName string, parentId int) (count int, err error) {
  90. o := orm.NewOrmUsingDB("edb")
  91. sql := `SELECT COUNT(1) AS count FROM edbdata_classify WHERE parent_id=? AND classify_name=? `
  92. err = o.Raw(sql, parentId, classifyName).QueryRow(&count)
  93. return
  94. }
  95. func GetManualClassifyByClassifyName(classifyName string) (item *EdbdataClassify, err error) {
  96. o := orm.NewOrmUsingDB("edb")
  97. sql := `SELECT * FROM edbdata_classify WHERE classify_name=? `
  98. err = o.Raw(sql, classifyName).QueryRow(&item)
  99. return
  100. }
  101. func ModifyManualClassifyIsShow(isShow, classifyId, parentId int) (err error) {
  102. o := orm.NewOrmUsingDB("edb")
  103. sql := `UPDATE edbdata_classify SET is_show=?,parent_id=? WHERE classify_id=? `
  104. _, err = o.Raw(sql, isShow, parentId, classifyId).Exec()
  105. return
  106. }
  107. type EditManualClassifyReq struct {
  108. ClassifyName string `description:"分类名称"`
  109. ClassifyId int `orm:"column(classify_id);pk" description:"分类id"`
  110. }
  111. func GetManualClassifyById(classifyId int) (item *EdbdataClassify, err error) {
  112. o := orm.NewOrmUsingDB("edb")
  113. sql := ` SELECT * FROM edbdata_classify WHERE classify_id=? `
  114. err = o.Raw(sql, classifyId).QueryRow(&item)
  115. return
  116. }
  117. func ModifyManualClassifyName(classifyName string, classifyId int) (err error) {
  118. o := orm.NewOrmUsingDB("edb")
  119. sql := `UPDATE edbdata_classify SET classify_name=? WHERE classify_id=? `
  120. _, err = o.Raw(sql, classifyName, classifyId).Exec()
  121. return
  122. }
  123. func GetManualClassifyAllByCondition(condition string) (items []*EdbdataClassifyList, err error) {
  124. o := orm.NewOrmUsingDB("edb")
  125. sql := ` SELECT classify_id,classify_name,parent_id FROM edbdata_classify WHERE is_show=1 `
  126. if condition != "" {
  127. sql += condition
  128. }
  129. sql += ` ORDER BY sort ASC `
  130. _, err = o.Raw(sql).QueryRows(&items)
  131. return
  132. }