package english_classify import ( "hongze/hongze_yb_en_api/global" "hongze/hongze_yb_en_api/models/base" ) type Classify struct { Id int `gorm:"primaryKey;column:id" json:"id"` ClassifyName string `gorm:"column:classify_name" json:"classify_name"` //分类名称 Sort int8 `gorm:"column:sort" json:"sort"` //排序 ParentId int `gorm:"column:parent_id" json:"parent_id"` //父级分类id RootId int `gorm:"column:root_id" json:"root_id"` //父级分类id ClassifyLabel string `gorm:"column:classify_label" json:"classify_label"` ShowType uint8 `gorm:"column:show_type" json:"show_type"` //展示类型:1-列表 2-专栏 ClassifyType uint8 `gorm:"column:classify_type" json:"classify_type"` //分类类型:0英文报告,1英文线上路演 IsShow int8 `gorm:"column:is_show" json:"is_show"` //是否展示报告:1,展示该分类下的报告,0隐藏分类下的报告 base.TimeBase } // TableName get sql table name.获取数据库表名 func (c *Classify) TableName() string { return "english_classify" } type ClassifyListItem struct { Id int `json:"id"` ClassifyName string `json:"classify_name"` //分类名称 Sort int8 `json:"sort"` //排序 ParentId int `json:"parent_id"` //父级分类id RootId int `json:"root_id"` //父级分类id ClassifyLabel string `json:"classify_label"` ShowType uint8 `json:"show_type"` //展示类型:1-列表 2-专栏 IsShow int8 `json:"is_show"` //是否展示报告:1,展示该分类下的报告,0隐藏分类下的报告 ClassifyType uint8 `json:"classify_type"` //分类类型:0英文报告,1英文线上路演 CreateTime string `json:"create_time"` //创建时间 ModifyTime string `json:"modify_time"` //最后更新时间 Child []*ClassifyListItem `json:"child"` } // GetParent 获取一级分类列表 func (c *Classify) GetParent() (list []*Classify, err error) { err = global.DEFAULT_MYSQL.Model(c).Where("parent_id=0 and enabled=1").Order("sort ASC,create_time ASC").Scan(&list).Error return } // GetChild 获取二级分类和三级分类列表 func (c *Classify) GetChild() (list []*Classify, err error) { err = global.DEFAULT_MYSQL.Model(c).Where("parent_id>0 and enabled=1 ").Order("sort ASC,create_time ASC").Scan(&list).Error return } // GetChild 获取二级分类列表 func (c *Classify) GetSecondChild(parentId int) (list []*Classify, err error) { 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 return } type EnglishClassifyFullName struct { Id int `description:"分类ID"` ParentId int `description:"父级分类id"` RootId int `description:"一级分类ID"` RootName string `description:"一级分类名"` ParentName string `description:"二级分类名"` ClassifyName string `description:"分类名称"` } // GetEnglishClassifyFullNameByIds 获取英文分类名一级/二级/三级 func (c *Classify) GetEnglishClassifyFullNameByIds(classifyIds []int) (list []*EnglishClassifyFullName, err error) { sql := ` SELECT a.id, a.parent_id, a.root_id, a.classify_name, b.classify_name AS root_name, c.classify_name AS parent_name FROM english_classify a LEFT JOIN english_classify b ON a.root_id = b.id LEFT JOIN english_classify c ON a.parent_id = c.id where a.id IN (?)` err = global.DEFAULT_MYSQL.Raw(sql, classifyIds).Scan(&list).Error return }