161 lines
4.9 KiB
Go
161 lines
4.9 KiB
Go
package models
|
|
|
|
import (
|
|
"time"
|
|
"github.com/beego/beego/v2/client/orm"
|
|
)
|
|
|
|
// ProgramCategory 程序分类模型
|
|
type ProgramCategory struct {
|
|
CategoryId int `orm:"column(category_id);auto" json:"category_id"`
|
|
CategoryName string `orm:"column(category_name);size(100)" json:"category_name"`
|
|
CategoryDesc string `orm:"column(category_desc);size(500);null" json:"category_desc"`
|
|
ParentId int `orm:"column(parent_id);default(0)" json:"parent_id"`
|
|
SortOrder int `orm:"column(sort_order);default(0)" json:"sort_order"`
|
|
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
|
|
UpdateTime time.Time `orm:"column(update_time);type(datetime);auto_now" json:"update_time"`
|
|
}
|
|
|
|
// TableName 设置表名
|
|
func (c *ProgramCategory) TableName() string {
|
|
return "yz_program_category"
|
|
}
|
|
|
|
// ProgramInfo 程序信息模型
|
|
type ProgramInfo struct {
|
|
ProgramId int `orm:"column(program_id);auto" json:"program_id"`
|
|
CategoryId int `orm:"column(category_id)" json:"category_id"`
|
|
ProgramName string `orm:"column(program_name);size(200)" json:"program_name"`
|
|
ProgramDesc string `orm:"column(program_desc);type(text);null" json:"program_desc"`
|
|
JumpUrl string `orm:"column(jump_url);size(1000)" json:"jump_url"`
|
|
IconUrl string `orm:"column(icon_url);size(1000);null" json:"icon_url"`
|
|
Version string `orm:"column(version);size(50);null" json:"version"`
|
|
Status int8 `orm:"column(status);default(1)" json:"status"`
|
|
SortOrder int `orm:"column(sort_order);default(0)" json:"sort_order"`
|
|
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
|
|
UpdateTime time.Time `orm:"column(update_time);type(datetime);auto_now" json:"update_time"`
|
|
|
|
// 关联的分类信息
|
|
Category *ProgramCategory `orm:"-" json:"category,omitempty"`
|
|
}
|
|
|
|
// TableName 设置表名
|
|
func (p *ProgramInfo) TableName() string {
|
|
return "yz_program_info"
|
|
}
|
|
|
|
// GetAllProgramCategories 获取所有程序分类
|
|
func GetAllProgramCategories() ([]*ProgramCategory, error) {
|
|
o := orm.NewOrm()
|
|
var categories []*ProgramCategory
|
|
_, err := o.QueryTable("yz_program_category").OrderBy("SortOrder").All(&categories)
|
|
return categories, err
|
|
}
|
|
|
|
// GetProgramCategoryById 根据ID获取程序分类
|
|
func GetProgramCategoryById(id int) (*ProgramCategory, error) {
|
|
o := orm.NewOrm()
|
|
category := &ProgramCategory{CategoryId: id}
|
|
err := o.Read(category, "CategoryId")
|
|
if err == orm.ErrNoRows {
|
|
return nil, err
|
|
}
|
|
return category, nil
|
|
}
|
|
|
|
// AddProgramCategory 添加新程序分类
|
|
func AddProgramCategory(category *ProgramCategory) (int64, error) {
|
|
o := orm.NewOrm()
|
|
id, err := o.Insert(category)
|
|
return id, err
|
|
}
|
|
|
|
// UpdateProgramCategory 更新程序分类
|
|
func UpdateProgramCategory(category *ProgramCategory) error {
|
|
o := orm.NewOrm()
|
|
_, err := o.Update(category)
|
|
return err
|
|
}
|
|
|
|
// DeleteProgramCategory 删除程序分类
|
|
func DeleteProgramCategory(id int) error {
|
|
o := orm.NewOrm()
|
|
_, err := o.Delete(&ProgramCategory{CategoryId: id})
|
|
return err
|
|
}
|
|
|
|
// GetAllProgramInfos 获取所有程序信息
|
|
func GetAllProgramInfos() ([]*ProgramInfo, error) {
|
|
o := orm.NewOrm()
|
|
var programs []*ProgramInfo
|
|
_, err := o.QueryTable("yz_program_info").OrderBy("SortOrder").All(&programs)
|
|
|
|
// 加载关联的分类信息
|
|
if err == nil && len(programs) > 0 {
|
|
for _, program := range programs {
|
|
if category, err := GetProgramCategoryById(program.CategoryId); err == nil {
|
|
program.Category = category
|
|
}
|
|
}
|
|
}
|
|
|
|
return programs, err
|
|
}
|
|
|
|
// GetProgramInfoById 根据ID获取程序信息
|
|
func GetProgramInfoById(id int) (*ProgramInfo, error) {
|
|
o := orm.NewOrm()
|
|
program := &ProgramInfo{ProgramId: id}
|
|
err := o.Read(program, "ProgramId")
|
|
if err == orm.ErrNoRows {
|
|
return nil, err
|
|
}
|
|
|
|
// 加载关联的分类信息
|
|
if err == nil {
|
|
if category, err := GetProgramCategoryById(program.CategoryId); err == nil {
|
|
program.Category = category
|
|
}
|
|
}
|
|
|
|
return program, nil
|
|
}
|
|
|
|
// AddProgramInfo 添加新程序信息
|
|
func AddProgramInfo(program *ProgramInfo) (int64, error) {
|
|
o := orm.NewOrm()
|
|
id, err := o.Insert(program)
|
|
return id, err
|
|
}
|
|
|
|
// UpdateProgramInfo 更新程序信息
|
|
func UpdateProgramInfo(program *ProgramInfo) error {
|
|
o := orm.NewOrm()
|
|
_, err := o.Update(program)
|
|
return err
|
|
}
|
|
|
|
// DeleteProgramInfo 删除程序信息
|
|
func DeleteProgramInfo(id int) error {
|
|
o := orm.NewOrm()
|
|
_, err := o.Delete(&ProgramInfo{ProgramId: id})
|
|
return err
|
|
}
|
|
|
|
// GetProgramInfosByCategoryId 根据分类ID获取程序信息
|
|
func GetProgramInfosByCategoryId(categoryId int) ([]*ProgramInfo, error) {
|
|
o := orm.NewOrm()
|
|
var programs []*ProgramInfo
|
|
_, err := o.QueryTable("yz_program_info").Filter("CategoryId", categoryId).OrderBy("SortOrder").All(&programs)
|
|
|
|
// 加载关联的分类信息
|
|
if err == nil && len(programs) > 0 {
|
|
for _, program := range programs {
|
|
if category, err := GetProgramCategoryById(program.CategoryId); err == nil {
|
|
program.Category = category
|
|
}
|
|
}
|
|
}
|
|
|
|
return programs, err
|
|
} |