diff --git a/api/controller/BaseClass.go b/api/controller/BaseClass.go index ca25660..09d757a 100644 --- a/api/controller/BaseClass.go +++ b/api/controller/BaseClass.go @@ -196,6 +196,12 @@ func (b *BaseClass) PutBaseClass(c *gin.Context) { return } + // 是否推荐搜索 + if req.IsRecommendSearch == nil { + responses.FailWithMessage("缺少参数", c) + return + } + id := c.Param("class_id") if id == "" { responses.FailWithMessage("缺少参数", c) @@ -236,6 +242,10 @@ func (b *BaseClass) PutBaseClass(c *gin.Context) { baseClassData["class_brief"] = req.ClassBrief } + if *req.IsRecommendSearch != baseClass.IsRecommendSearch { + baseClassData["is_recommend_search"] = req.IsRecommendSearch + } + // 排序值 if req.Sort != baseClass.Sort { baseClassData["sort"] = req.Sort @@ -278,6 +288,12 @@ func (b *BaseClass) AddBaseClass(c *gin.Context) { return } + // 是否推荐搜索 + if req.IsRecommendSearch == nil { + responses.FailWithMessage("缺少参数", c) + return + } + // 开始事务 tx := global.Db.Begin() defer func() { @@ -287,11 +303,12 @@ func (b *BaseClass) AddBaseClass(c *gin.Context) { }() baseClass := &model.BaseClass{ - ClassName: req.ClassName, - ClassStatus: 1, - ClassIcon: utils.RemoveOssDomain(req.ClassIcon), - ClassBrief: req.ClassBrief, - Sort: req.Sort, + ClassName: req.ClassName, + ClassStatus: 1, + ClassIcon: utils.RemoveOssDomain(req.ClassIcon), + ClassBrief: req.ClassBrief, + Sort: req.Sort, + IsRecommendSearch: *req.IsRecommendSearch, } baseClassDao := dao.BaseClassDao{} diff --git a/api/dao/BaseClass.go b/api/dao/BaseClass.go index b84cd66..da89602 100644 --- a/api/dao/BaseClass.go +++ b/api/dao/BaseClass.go @@ -125,6 +125,11 @@ func (r *BaseClassDao) GetBaseClassPageSearch(req requests.GetBaseClassPage, pag query = query.Where("class_status = ?", req.ClassStatus) } + // 是否推荐搜索 + if req.IsRecommendSearch != nil { + query = query.Where("is_recommend_search = ?", req.IsRecommendSearch) + } + // 排序 if req.Order != nil { if req.Order.Sort != "" { @@ -162,6 +167,11 @@ func (r *BaseClassDao) GetBaseClassListSearch(req requests.GetBaseClassList) (m query = query.Where("class_status = ?", req.ClassStatus) } + // 是否推荐搜索 + if req.IsRecommendSearch != nil { + query = query.Where("is_recommend_search = ?", req.IsRecommendSearch) + } + // 排序 if req.Order != nil { if req.Order.Sort != "" { diff --git a/api/dto/BaseClass.go b/api/dto/BaseClass.go index c8f13e5..ceec2b4 100644 --- a/api/dto/BaseClass.go +++ b/api/dto/BaseClass.go @@ -8,27 +8,29 @@ import ( // BaseClassDto 基础数据-分类表 type BaseClassDto struct { - ClassId string `json:"class_id"` // 主键id - ClassName string `json:"class_name"` // 分类名称 - ClassStatus int `json:"class_status"` // 分类状态(1:正常 2:隐藏) - ClassIcon string `json:"class_icon"` // 图标地址 - ClassBrief string `json:"class_brief"` // 分类简介 - Sort uint `json:"sort"` // 排序值(越大排名越靠前) - CreatedAt model.LocalTime `json:"created_at"` // 创建时间 - UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间 + ClassId string `json:"class_id"` // 主键id + ClassName string `json:"class_name"` // 分类名称 + ClassStatus int `json:"class_status"` // 分类状态(1:正常 2:隐藏) + ClassIcon string `json:"class_icon"` // 图标地址 + ClassBrief string `json:"class_brief"` // 分类简介 + Sort uint `json:"sort"` // 排序值(越大排名越靠前) + IsRecommendSearch int `json:"is_recommend_search"` // 是否推荐搜索 + CreatedAt model.LocalTime `json:"created_at"` // 创建时间 + UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间 } // GetBaseClassDto 详情-基础数据-分类表 func GetBaseClassDto(m *model.BaseClass) *BaseClassDto { return &BaseClassDto{ - ClassId: fmt.Sprintf("%d", m.ClassId), - ClassName: m.ClassName, - ClassStatus: m.ClassStatus, - ClassIcon: utils.AddOssDomain(m.ClassIcon), - ClassBrief: m.ClassBrief, - Sort: m.Sort, - CreatedAt: m.CreatedAt, - UpdatedAt: m.UpdatedAt, + ClassId: fmt.Sprintf("%d", m.ClassId), + ClassName: m.ClassName, + ClassStatus: m.ClassStatus, + ClassIcon: utils.AddOssDomain(m.ClassIcon), + ClassBrief: m.ClassBrief, + Sort: m.Sort, + IsRecommendSearch: m.IsRecommendSearch, + CreatedAt: m.CreatedAt, + UpdatedAt: m.UpdatedAt, } } @@ -40,14 +42,15 @@ func GetBaseClassListDto(m []*model.BaseClass) []*BaseClassDto { if len(m) > 0 { for i, v := range m { response := &BaseClassDto{ - ClassId: fmt.Sprintf("%d", v.ClassId), - ClassName: v.ClassName, - ClassStatus: v.ClassStatus, - ClassIcon: utils.AddOssDomain(v.ClassIcon), - ClassBrief: v.ClassBrief, - Sort: v.Sort, - CreatedAt: v.CreatedAt, - UpdatedAt: v.UpdatedAt, + ClassId: fmt.Sprintf("%d", v.ClassId), + ClassName: v.ClassName, + ClassStatus: v.ClassStatus, + ClassIcon: utils.AddOssDomain(v.ClassIcon), + ClassBrief: v.ClassBrief, + Sort: v.Sort, + IsRecommendSearch: v.IsRecommendSearch, + CreatedAt: v.CreatedAt, + UpdatedAt: v.UpdatedAt, } // 将转换后的结构体添加到新切片中 diff --git a/api/model/BaseClass.go b/api/model/BaseClass.go index 2f5a5c6..f521890 100644 --- a/api/model/BaseClass.go +++ b/api/model/BaseClass.go @@ -8,12 +8,13 @@ import ( // BaseClass 基础数据-分类表 type BaseClass struct { - ClassId int64 `gorm:"column:class_id;type:bigint(19);primary_key;comment:主键id" json:"class_id"` - ClassName string `gorm:"column:class_name;type:varchar(100);comment:分类名称" json:"class_name"` - ClassStatus int `gorm:"column:class_status;type:tinyint(1);default:1;comment:分类状态(1:正常 2:隐藏)" json:"class_status"` - ClassIcon string `gorm:"column:class_icon;type:varchar(255);comment:图标地址" json:"class_icon"` - ClassBrief string `gorm:"column:class_brief;type:text;comment:分类简介" json:"class_brief"` - Sort uint `gorm:"column:sort;type:int(10) unsigned;default:1;comment:排序值(越大排名越靠前)" json:"sort"` + ClassId int64 `gorm:"column:class_id;type:bigint(19);primary_key;comment:主键id" json:"class_id"` + ClassName string `gorm:"column:class_name;type:varchar(100);comment:分类名称" json:"class_name"` + ClassStatus int `gorm:"column:class_status;type:tinyint(1);default:1;comment:分类状态(1:正常 2:隐藏)" json:"class_status"` + ClassIcon string `gorm:"column:class_icon;type:varchar(255);comment:图标地址" json:"class_icon"` + ClassBrief string `gorm:"column:class_brief;type:text;comment:分类简介" json:"class_brief"` + Sort uint `gorm:"column:sort;type:int(10) unsigned;default:1;comment:排序值(越大排名越靠前)" json:"sort"` + IsRecommendSearch int `gorm:"column:is_recommend_search;type:tinyint(1);default:0;comment:是否推荐搜索" json:"is_recommend_search"` Model } diff --git a/api/requests/BaseClass.go b/api/requests/BaseClass.go index 1554d65..804a419 100644 --- a/api/requests/BaseClass.go +++ b/api/requests/BaseClass.go @@ -10,11 +10,12 @@ type BaseClassRequest struct { // GetBaseClassPage 获取基础分类列表-分页 type GetBaseClassPage struct { - Page int `json:"page" form:"page" label:"页码"` - PageSize int `json:"page_size" form:"page_size" label:"每页个数"` - ClassName string `json:"class_name" form:"class_name" label:"分类名称"` - ClassStatus *int `json:"class_status" form:"class_status" label:"分类状态"` // (1:正常 2:隐藏) - Order *GetBaseClassPageOrder `json:"order" form:"order" label:"排序"` + Page int `json:"page" form:"page" label:"页码"` + PageSize int `json:"page_size" form:"page_size" label:"每页个数"` + ClassName string `json:"class_name" form:"class_name" label:"分类名称"` + ClassStatus *int `json:"class_status" form:"class_status" label:"分类状态"` // (1:正常 2:隐藏) + IsRecommendSearch *int `json:"is_recommend_search" form:"is_recommend_search" label:"是否推荐搜索"` + Order *GetBaseClassPageOrder `json:"order" form:"order" label:"排序"` } // GetBaseClassPageOrder 获取基础分类列表-分页-排序条件 @@ -24,9 +25,10 @@ type GetBaseClassPageOrder struct { // GetBaseClassList 获取基础分类列表 type GetBaseClassList struct { - ClassName string `json:"class_name" form:"class_name" label:"分类名称"` - ClassStatus *int `json:"class_status" form:"class_status" label:"分类状态"` // (1:正常 2:隐藏) - Order *GetBaseClassListOrder `json:"order" form:"order" label:"排序"` + ClassName string `json:"class_name" form:"class_name" label:"分类名称"` + ClassStatus *int `json:"class_status" form:"class_status" label:"分类状态"` // (1:正常 2:隐藏) + IsRecommendSearch *int `json:"is_recommend_search" form:"is_recommend_search" label:"是否推荐搜索"` + Order *GetBaseClassListOrder `json:"order" form:"order" label:"排序"` } // GetBaseClassListOrder 获取基础分类列表-排序条件 @@ -41,16 +43,18 @@ type PutBaseClassStatus struct { // PutBaseClass 修改基础分类 type PutBaseClass struct { - ClassName string `json:"class_name" form:"class_name" label:"分类名称" validate:"required"` - ClassIcon string `json:"class_icon" form:"class_icon" label:"图标地址" validate:"required"` - ClassBrief string `json:"class_brief" form:"class_brief" label:"分类简介" validate:"required"` - Sort uint `json:"sort" form:"sort" label:"排序值" validate:"required,number,min=1"` + ClassName string `json:"class_name" form:"class_name" label:"分类名称" validate:"required"` + ClassIcon string `json:"class_icon" form:"class_icon" label:"图标地址" validate:"required"` + ClassBrief string `json:"class_brief" form:"class_brief" label:"分类简介" validate:"required"` + Sort uint `json:"sort" form:"sort" label:"排序值" validate:"required,number,min=1"` + IsRecommendSearch *int `json:"is_recommend_search" form:"is_recommend_search" label:"是否推荐搜索"` } // AddBaseClass 新增基础分类 type AddBaseClass struct { - ClassName string `json:"class_name" form:"class_name" label:"分类名称" validate:"required"` - ClassIcon string `json:"class_icon" form:"class_icon" label:"图标地址" validate:"required"` - ClassBrief string `json:"class_brief" form:"class_brief" label:"分类简介" validate:"required"` - Sort uint `json:"sort" form:"sort" label:"排序值" validate:"required,number,min=1"` + ClassName string `json:"class_name" form:"class_name" label:"分类名称" validate:"required"` + ClassIcon string `json:"class_icon" form:"class_icon" label:"图标地址" validate:"required"` + ClassBrief string `json:"class_brief" form:"class_brief" label:"分类简介" validate:"required"` + Sort uint `json:"sort" form:"sort" label:"排序值" validate:"required,number,min=1"` + IsRecommendSearch *int `json:"is_recommend_search" form:"is_recommend_search" label:"是否推荐搜索"` }