manual_classify.go 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. package data_manage
  2. import (
  3. "eta_gn/eta_api/global"
  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. err = global.DmSQL["edb"].Create(item).Error
  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.NewOrmUsingDB("edb")
  39. //sql := ` SELECT classify_id,classify_name,parent_id FROM edbdata_classify WHERE parent_id=0 AND is_show=1 ORDER BY sort ASC ,classify_id ASC `
  40. //_, err = o.Raw(sql).QueryRows(&newItems)
  41. //if err != nil {
  42. // return
  43. //}
  44. sql := ` SELECT classify_id,classify_name,parent_id FROM edbdata_classify WHERE parent_id=0 AND is_show=1 ORDER BY sort ASC ,classify_id ASC `
  45. err = global.DmSQL["edb"].Raw(sql).Find(&newItems).Error
  46. if err != nil {
  47. return
  48. }
  49. classifyLen := len(newItems)
  50. for i := 0; i < classifyLen; i++ {
  51. var childItems []*ManualClassifyList
  52. parentId := newItems[i].ClassifyId
  53. childSql := ``
  54. //childSql = "SELECT classify_id,classify_name,parent_id FROM edbdata_classify WHERE parent_id=? AND is_show=1 ORDER BY sort ASC ,classify_id ASC "
  55. //_, err = o.Raw(childSql, parentId).QueryRows(&childItems)
  56. //if err != nil {
  57. // return
  58. //}
  59. childSql = "SELECT classify_id,classify_name,parent_id FROM edbdata_classify WHERE parent_id=? AND is_show=1 ORDER BY sort ASC ,classify_id ASC "
  60. err = global.DmSQL["edb"].Raw(childSql, parentId).Find(&childItems).Error
  61. if err != nil {
  62. return
  63. }
  64. checkList := make([]int, 0)
  65. for _, v := range childItems {
  66. if v.ParentId > 0 {
  67. count, err := GetManualUserClassifyCount(adminId, v.ClassifyId)
  68. if err != nil {
  69. return items, err
  70. }
  71. if count > 0 {
  72. checkList = append(checkList, v.ClassifyId)
  73. }
  74. }
  75. }
  76. newItems[i].CheckList = checkList
  77. newItems[i].Child = childItems
  78. }
  79. for _, v := range newItems {
  80. if v.ParentId > 0 {
  81. count, err := GetManualUserClassifyCount(adminId, v.ClassifyId)
  82. if err != nil {
  83. return items, err
  84. }
  85. if count > 0 {
  86. v.CheckList = append(v.CheckList, v.ClassifyId)
  87. }
  88. }
  89. childLen := len(v.Child)
  90. if childLen > 0 {
  91. items = append(items, v)
  92. }
  93. }
  94. return
  95. }
  96. func GetManualClassifyAllV2() (items []*ManualClassifyList, err error) {
  97. var newItems []*ManualClassifyList
  98. //o := orm.NewOrmUsingDB("edb")
  99. //sql := ` SELECT classify_id,classify_name,parent_id FROM edbdata_classify WHERE parent_id=0 AND is_show=1 ORDER BY sort ASC ,classify_id ASC `
  100. //_, err = o.Raw(sql).QueryRows(&newItems)
  101. //if err != nil {
  102. // return
  103. //}
  104. sql := ` SELECT classify_id,classify_name,parent_id FROM edbdata_classify WHERE parent_id=0 AND is_show=1 ORDER BY sort ASC ,classify_id ASC `
  105. err = global.DmSQL["edb"].Raw(sql).Find(&newItems).Error
  106. if err != nil {
  107. return
  108. }
  109. classifyLen := len(newItems)
  110. for i := 0; i < classifyLen; i++ {
  111. var childItems []*ManualClassifyList
  112. parentId := newItems[i].ClassifyId
  113. childSql := ``
  114. //childSql = "SELECT classify_id,classify_name,parent_id FROM edbdata_classify WHERE parent_id=? AND is_show=1 ORDER BY sort ASC ,classify_id ASC "
  115. //_, err = o.Raw(childSql, parentId).QueryRows(&childItems)
  116. //if err != nil {
  117. // return
  118. //}
  119. childSql = "SELECT classify_id,classify_name,parent_id FROM edbdata_classify WHERE parent_id=? AND is_show=1 ORDER BY sort ASC ,classify_id ASC "
  120. err = global.DmSQL["edb"].Raw(childSql, parentId).Find(&childItems).Error
  121. if err != nil {
  122. return
  123. }
  124. newItems[i].Child = childItems
  125. }
  126. for _, v := range newItems {
  127. items = append(items, v)
  128. }
  129. return
  130. }
  131. type AddManualClassifyReq struct {
  132. ClassifyName string `description:"分类名称"`
  133. ParentId int `description:"父级id,第一级传0"`
  134. }
  135. //func GetManualClassifyCount(classifyName string, parentId int) (count int, err error) {
  136. // o := orm.NewOrmUsingDB("edb")
  137. // sql := `SELECT COUNT(1) AS count FROM edbdata_classify WHERE parent_id=? AND classify_name=? `
  138. // err = o.Raw(sql, parentId, classifyName).QueryRow(&count)
  139. // return
  140. //}
  141. func GetManualClassifyByClassifyName(classifyName string) (item *EdbdataClassify, err error) {
  142. //o := orm.NewOrmUsingDB("edb")
  143. //sql := `SELECT * FROM edbdata_classify WHERE classify_name=? `
  144. //err = o.Raw(sql, classifyName).QueryRow(&item)
  145. sql := `SELECT * FROM edbdata_classify WHERE classify_name=? `
  146. err = global.DmSQL["edb"].Raw(sql, classifyName).First(&item).Error
  147. return
  148. }
  149. func ModifyManualClassifyIsShow(isShow, classifyId, parentId int) (err error) {
  150. //o := orm.NewOrmUsingDB("edb")
  151. //sql := `UPDATE edbdata_classify SET is_show=?,parent_id=? WHERE classify_id=? `
  152. //_, err = o.Raw(sql, isShow, parentId, classifyId).Exec()
  153. sql := `UPDATE edbdata_classify SET is_show=?,parent_id=? WHERE classify_id=? `
  154. err = global.DmSQL["edb"].Exec(sql, isShow, parentId, classifyId).Error
  155. return
  156. }
  157. type EditManualClassifyReq struct {
  158. ClassifyName string `description:"分类名称"`
  159. ClassifyId int `orm:"column(classify_id);pk" description:"分类id"`
  160. ParentId int `description:"上级id"`
  161. }
  162. // DelManualClassifyReq 删除手工指标分类请求
  163. type DelManualClassifyReq struct {
  164. ClassifyId int `description:"分类id"`
  165. }
  166. func GetManualClassifyById(classifyId int) (item *EdbdataClassify, err error) {
  167. //o := orm.NewOrmUsingDB("edb")
  168. //sql := ` SELECT * FROM edbdata_classify WHERE classify_id=? `
  169. //err = o.Raw(sql, classifyId).QueryRow(&item)
  170. sql := ` SELECT * FROM edbdata_classify WHERE classify_id=? `
  171. err = global.DmSQL["edb"].Raw(sql, classifyId).First(&item).Error
  172. return
  173. }
  174. func ModifyManualClassifyName(classifyName string, classifyId, parentId int) (err error) {
  175. //o := orm.NewOrmUsingDB("edb")
  176. //updateStr := ` classify_name=? `
  177. //pars := []interface{}{classifyName}
  178. //if parentId > 0 {
  179. // updateStr += ` , parent_id=? `
  180. // pars = append(pars, parentId)
  181. //}
  182. //sql := `UPDATE edbdata_classify SET ` + updateStr + ` WHERE classify_id=? `
  183. //
  184. //pars = append(pars, classifyId)
  185. //_, err = o.Raw(sql, pars).Exec()
  186. updateStr := ` classify_name=? `
  187. pars := []interface{}{classifyName}
  188. if parentId > 0 {
  189. updateStr += ` , parent_id=? `
  190. pars = append(pars, parentId)
  191. }
  192. sql := `UPDATE edbdata_classify SET ` + updateStr + ` WHERE classify_id=? `
  193. pars = append(pars, classifyId)
  194. err = global.DmSQL["edb"].Exec(sql, pars).Error
  195. return
  196. }
  197. func GetManualClassifyAllByCondition(condition string) (items []*EdbdataClassifyList, err error) {
  198. //o := orm.NewOrmUsingDB("edb")
  199. //sql := ` SELECT classify_id,classify_name,parent_id FROM edbdata_classify WHERE is_show=1 `
  200. //if condition != "" {
  201. // sql += condition
  202. //}
  203. //sql += ` ORDER BY sort ASC `
  204. //_, err = o.Raw(sql).QueryRows(&items)
  205. sql := ` SELECT classify_id,classify_name,parent_id FROM edbdata_classify WHERE is_show=1 `
  206. if condition != "" {
  207. sql += condition
  208. }
  209. sql += ` ORDER BY sort ASC `
  210. err = global.DmSQL["edb"].Raw(sql).Find(&items).Error
  211. return
  212. }
  213. // GetChildManualClassifyCount 根据分类id获取下面存在的子分类数量(展示的)
  214. func GetChildManualClassifyCount(parentId int) (count int, err error) {
  215. //o := orm.NewOrmUsingDB("edb")
  216. //sql := `SELECT COUNT(1) AS count FROM edbdata_classify WHERE parent_id=? AND is_show = 1`
  217. //err = o.Raw(sql, parentId).QueryRow(&count)
  218. sql := `SELECT COUNT(1) AS count FROM edbdata_classify WHERE parent_id=? AND is_show = 1`
  219. err = global.DmSQL["edb"].Raw(sql, parentId).Scan(&count).Error
  220. return
  221. }