english_classify.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. }