classify.go 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package english_classify
  2. import (
  3. "hongze/hongze_yb_en_api/global"
  4. "hongze/hongze_yb_en_api/models/base"
  5. )
  6. type Classify struct {
  7. Id int `gorm:"primaryKey;column:id" json:"id"`
  8. ClassifyName string `gorm:"column:classify_name" json:"classify_name"` //分类名称
  9. Sort int8 `gorm:"column:sort" json:"sort"` //排序
  10. ParentId int `gorm:"column:parent_id" json:"parent_id"` //父级分类id
  11. RootId int `gorm:"column:root_id" json:"root_id"` //父级分类id
  12. ClassifyLabel string `gorm:"column:classify_label" json:"classify_label"`
  13. ShowType uint8 `gorm:"column:show_type" json:"show_type"` //展示类型:1-列表 2-专栏
  14. ClassifyType uint8 `gorm:"column:classify_type" json:"classify_type"` //分类类型:0英文报告,1英文线上路演
  15. IsShow int8 `gorm:"column:is_show" json:"is_show"` //是否展示报告:1,展示该分类下的报告,0隐藏分类下的报告
  16. base.TimeBase
  17. }
  18. // TableName get sql table name.获取数据库表名
  19. func (c *Classify) TableName() string {
  20. return "english_classify"
  21. }
  22. type ClassifyListItem struct {
  23. Id int `json:"id"`
  24. ClassifyName string `json:"classify_name"` //分类名称
  25. Sort int8 `json:"sort"` //排序
  26. ParentId int `json:"parent_id"` //父级分类id
  27. RootId int `json:"root_id"` //父级分类id
  28. ClassifyLabel string `json:"classify_label"`
  29. ShowType uint8 `json:"show_type"` //展示类型:1-列表 2-专栏
  30. IsShow int8 `json:"is_show"` //是否展示报告:1,展示该分类下的报告,0隐藏分类下的报告
  31. ClassifyType uint8 `json:"classify_type"` //分类类型:0英文报告,1英文线上路演
  32. CreateTime string `json:"create_time"` //创建时间
  33. ModifyTime string `json:"modify_time"` //最后更新时间
  34. Child []*ClassifyListItem `json:"child"`
  35. }
  36. // GetParent 获取一级分类列表
  37. func (c *Classify) GetParent() (list []*Classify, err error) {
  38. err = global.DEFAULT_MYSQL.Model(c).Where("parent_id=0 and enabled=1").Order("sort ASC,create_time ASC").Scan(&list).Error
  39. return
  40. }
  41. // GetChild 获取二级分类和三级分类列表
  42. func (c *Classify) GetChild() (list []*Classify, err error) {
  43. err = global.DEFAULT_MYSQL.Model(c).Where("parent_id>0 and enabled=1 ").Order("sort ASC,create_time ASC").Scan(&list).Error
  44. return
  45. }
  46. // GetChild 获取二级分类列表
  47. func (c *Classify) GetSecondChild(parentId int) (list []*Classify, err error) {
  48. err = global.DEFAULT_MYSQL.Model(c).Where("parent_id=? and parent_id=root_id and enabled=1", parentId).Order("sort ASC,create_time ASC").Scan(&list).Error
  49. return
  50. }
  51. type EnglishClassifyFullName struct {
  52. Id int `description:"分类ID"`
  53. ParentId int `description:"父级分类id"`
  54. RootId int `description:"一级分类ID"`
  55. RootName string `description:"一级分类名"`
  56. ParentName string `description:"二级分类名"`
  57. ClassifyName string `description:"分类名称"`
  58. }
  59. // GetEnglishClassifyFullNameByIds 获取英文分类名一级/二级/三级
  60. func (c *Classify) GetEnglishClassifyFullNameByIds(classifyIds []int) (list []*EnglishClassifyFullName, err error) {
  61. sql := ` SELECT
  62. a.id,
  63. a.parent_id,
  64. a.root_id,
  65. a.classify_name,
  66. b.classify_name AS root_name,
  67. c.classify_name AS parent_name
  68. FROM
  69. english_classify a
  70. LEFT JOIN english_classify b ON a.root_id = b.id
  71. LEFT JOIN english_classify c ON a.parent_id = c.id
  72. where a.id IN (?)`
  73. err = global.DEFAULT_MYSQL.Raw(sql, classifyIds).Scan(&list).Error
  74. return
  75. }