manual_classify.go 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package data_manage
  2. import (
  3. "github.com/rdlucklib/rdluck_tools/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.NewOrm()
  25. o.Using("edb")
  26. lastId, err = o.Insert(item)
  27. return
  28. }
  29. type ManualClassifyList struct {
  30. ClassifyId int
  31. ClassifyName string
  32. ParentId int
  33. CheckList []int
  34. Child []*ManualClassifyList
  35. }
  36. func GetManualClassifyAll(adminId int) (items []*ManualClassifyList, err error) {
  37. var newItems []*ManualClassifyList
  38. o := orm.NewOrm()
  39. o.Using("edb")
  40. sql := ` SELECT classify_id,classify_name,parent_id FROM edbdata_classify WHERE parent_id=0 AND is_show=1 ORDER BY sort ASC `
  41. _, err = o.Raw(sql).QueryRows(&newItems)
  42. if err != nil {
  43. return
  44. }
  45. classifyLen := len(newItems)
  46. for i := 0; i < classifyLen; i++ {
  47. var childItems []*ManualClassifyList
  48. parentId := newItems[i].ClassifyId
  49. childSql := ``
  50. childSql = "SELECT classify_id,classify_name,parent_id FROM edbdata_classify WHERE parent_id=? AND is_show=1 ORDER BY sort ASC "
  51. _, err = o.Raw(childSql, parentId).QueryRows(&childItems)
  52. if err != nil {
  53. return
  54. }
  55. checkList := make([]int, 0)
  56. for _, v := range childItems {
  57. if v.ParentId > 0 {
  58. count, err := GetManualUserClassifyCount(adminId, v.ClassifyId)
  59. if err != nil {
  60. return items, err
  61. }
  62. if count > 0 {
  63. checkList = append(checkList, v.ClassifyId)
  64. }
  65. }
  66. }
  67. newItems[i].CheckList = checkList
  68. newItems[i].Child = childItems
  69. }
  70. for _, v := range newItems {
  71. if v.ParentId > 0 {
  72. count, err := GetManualUserClassifyCount(adminId, v.ClassifyId)
  73. if err != nil {
  74. return items, err
  75. }
  76. if count > 0 {
  77. v.CheckList = append(v.CheckList, v.ClassifyId)
  78. }
  79. }
  80. childLen := len(v.Child)
  81. if childLen > 0 {
  82. items = append(items, v)
  83. }
  84. }
  85. return
  86. }
  87. type AddManualClassifyReq struct {
  88. ClassifyName string `description:"分类名称"`
  89. ParentId int `description:"父级id,第一级传0"`
  90. }
  91. func GetManualClassifyCount(classifyName string, parentId int) (count int, err error) {
  92. o := orm.NewOrm()
  93. o.Using("edb")
  94. sql := `SELECT COUNT(1) AS count FROM edbdata_classify WHERE parent_id=? AND classify_name=? `
  95. err = o.Raw(sql, parentId, classifyName).QueryRow(&count)
  96. return
  97. }
  98. func GetManualClassifyByClassifyName(classifyName string) (item *EdbdataClassify, err error) {
  99. o := orm.NewOrm()
  100. o.Using("edb")
  101. sql := `SELECT * FROM edbdata_classify WHERE classify_name=? `
  102. err = o.Raw(sql, classifyName).QueryRow(&item)
  103. return
  104. }
  105. func ModifyManualClassifyIsShow(isShow, classifyId, parentId int) (err error) {
  106. o := orm.NewOrm()
  107. o.Using("edb")
  108. sql := `UPDATE edbdata_classify SET is_show=?,parent_id=? WHERE classify_id=? `
  109. _, err = o.Raw(sql, isShow, parentId, classifyId).Exec()
  110. return
  111. }
  112. type EditManualClassifyReq struct {
  113. ClassifyName string `description:"分类名称"`
  114. ClassifyId int `orm:"column(classify_id);pk" description:"分类id"`
  115. }
  116. func GetManualClassifyById(classifyId int) (item *EdbdataClassify, err error) {
  117. o := orm.NewOrm()
  118. o.Using("edb")
  119. sql := ` SELECT * FROM edbdata_classify WHERE classify_id=? `
  120. err = o.Raw(sql, classifyId).QueryRow(&item)
  121. return
  122. }
  123. func ModifyManualClassifyName(classifyName string, classifyId int) (err error) {
  124. o := orm.NewOrm()
  125. o.Using("edb")
  126. sql := `UPDATE edbdata_classify SET classify_name=? WHERE classify_id=? `
  127. _, err = o.Raw(sql, classifyName, classifyId).Exec()
  128. return
  129. }
  130. func GetManualClassifyAllByCondition(condition string) (items []*EdbdataClassifyList, err error) {
  131. o := orm.NewOrm()
  132. o.Using("edb")
  133. sql := ` SELECT classify_id,classify_name,parent_id FROM edbdata_classify WHERE is_show=1 `
  134. if condition != "" {
  135. sql += condition
  136. }
  137. sql += ` ORDER BY sort ASC `
  138. _, err = o.Raw(sql).QueryRows(&items)
  139. return
  140. }