english_classify.go 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package models
  2. import (
  3. sql2 "database/sql"
  4. "eta/eta_api/global"
  5. "eta/eta_api/utils"
  6. "fmt"
  7. )
  8. // UpdateEnglishClassifySortByParentId 根据父类id更新排序
  9. func UpdateEnglishClassifySortByParentId(parentId, permissionId, nowSort int, updateSort string) (err error) {
  10. sql := ` update english_classify set sort = ` + updateSort + ` WHERE parent_id=? AND sort > ? `
  11. if permissionId > 0 {
  12. sql += ` or ( id > ` + fmt.Sprint(permissionId) + ` and sort = ` + fmt.Sprint(nowSort) + `)`
  13. }
  14. err = global.DbMap[utils.DbNameReport].Exec(sql, parentId, nowSort).Error
  15. return
  16. }
  17. // GetMaxSortByParentId 获取最大的排序值
  18. func (classifyInfo *EnglishClassify) GetMaxSortByParentId(parentId int) (maxSort int, err error) {
  19. var maxNull sql2.NullInt64
  20. sql := `SELECT max(sort) AS sort FROM english_classify WHERE parent_id = ? `
  21. err = global.DbMap[utils.DbNameReport].Raw(sql, parentId).Scan(&maxNull).Error
  22. if maxNull.Valid {
  23. maxSort = int(maxNull.Int64)
  24. }
  25. return
  26. }
  27. // GetMaxSort 获取最大的排序值
  28. func (classifyInfo *EnglishClassify) GetMaxSort() (maxSort int, err error) {
  29. var maxNull sql2.NullInt64
  30. sql := `SELECT max(sort) AS sort FROM english_classify`
  31. err = global.DbMap[utils.DbNameReport].Raw(sql).Scan(&maxNull).Error
  32. if maxNull.Valid {
  33. maxSort = int(maxNull.Int64)
  34. }
  35. return
  36. }
  37. // GetFirstClassifyByParentId 获取当前父级分类下,且排序数相同 的排序第一条的数据
  38. func (classifyInfo *EnglishClassify) GetFirstClassifyByParentId(parentId int) (item *Classify, err error) {
  39. sql := `SELECT * FROM english_classify WHERE parent_id = ? order by sort asc, id asc limit 1`
  40. err = global.DbMap[utils.DbNameReport].Raw(sql, parentId).First(&item).Error
  41. return
  42. }
  43. type EnglishClassifyMoveReq struct {
  44. ClassifyId int `description:"分类ID"`
  45. PrevClassifyId int `description:"上一个兄弟节点分类id"`
  46. NextClassifyId int `description:"下一个兄弟节点分类id"`
  47. }
  48. type EnClassifyAddReq struct {
  49. EnPermissions []int `description:"权限IDs"`
  50. ClassifyName string `description:"分类名称"`
  51. ParentId int `description:"父级分类id"`
  52. }
  53. type EnClassifyEditReq struct {
  54. ClassifyId int `description:"分类ID"`
  55. EnClassifyAddReq
  56. }
  57. // GetClassifyListByParentId 获取当前父级分类下的素有分类
  58. func (classifyInfo *EnglishClassify) GetClassifyListByParentId(childId []int) (items []*Classify, err error) {
  59. if len(childId) <= 0 {
  60. return
  61. }
  62. sql := `SELECT b.* FROM english_classify as a
  63. join english_classify b on a.parent_id = b.id
  64. WHERE a.id in (?) order b.id asc`
  65. err = global.DbMap[utils.DbNameReport].Raw(sql, childId).Find(&items).Error
  66. return
  67. }
  68. // GetClassifyListByParentId 获取当前父级分类下的素有分类
  69. func (classifyInfo *EnglishClassify) GetClassifyListByIdList(idList []int) (items []*Classify, err error) {
  70. if len(idList) <= 0 {
  71. return
  72. }
  73. sql := `SELECT a.* FROM english_classify as a
  74. WHERE a.id in (?) order by a.id asc`
  75. err = global.DbMap[utils.DbNameReport].Raw(sql, idList).Find(&items).Error
  76. return
  77. }