增加了推荐搜索字段
This commit is contained in:
parent
43e7aee9c2
commit
ca2f2c4421
@ -4,7 +4,7 @@ package controller
|
||||
type Api struct {
|
||||
Login // 登录
|
||||
Public // 公共方法
|
||||
Class // 分类
|
||||
BaseClass // 分类
|
||||
Question // 问题
|
||||
User // 用户
|
||||
UserCoupon // 用户优惠卷
|
||||
|
||||
@ -4,19 +4,36 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"hepa-calc-api/api/dao"
|
||||
"hepa-calc-api/api/dto"
|
||||
"hepa-calc-api/api/requests"
|
||||
"hepa-calc-api/api/responses"
|
||||
"hepa-calc-api/global"
|
||||
"hepa-calc-api/utils"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
type Class struct{}
|
||||
type BaseClass struct{}
|
||||
|
||||
// GetBaseClassList 获取分类列表
|
||||
func (b *BaseClass) GetBaseClassList(c *gin.Context) {
|
||||
baseClassRequest := requests.BaseClassRequest{}
|
||||
req := baseClassRequest.GetBaseClassList
|
||||
if err := c.ShouldBind(&req); err != nil {
|
||||
responses.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
// 参数验证
|
||||
if err := global.Validate.Struct(req); err != nil {
|
||||
responses.FailWithMessage(utils.Translate(err), c)
|
||||
return
|
||||
}
|
||||
|
||||
func (b *Class) GetClassList(c *gin.Context) {
|
||||
// 获取分类数据
|
||||
baseClassDao := dao.BaseClassDao{}
|
||||
|
||||
maps := make(map[string]interface{})
|
||||
maps["class_status"] = 1
|
||||
baseClass, err := baseClassDao.GetBaseClassOrderList(maps)
|
||||
baseClass, err := baseClassDao.GetBaseClassListSearch(req)
|
||||
if err != nil {
|
||||
responses.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
@ -32,8 +49,8 @@ func (b *Class) GetClassList(c *gin.Context) {
|
||||
responses.OkWithData(g, c)
|
||||
}
|
||||
|
||||
// GetClass 获取分类详情
|
||||
func (r *Class) GetClass(c *gin.Context) {
|
||||
// GetBaseClass 获取分类详情
|
||||
func (r *BaseClass) GetBaseClass(c *gin.Context) {
|
||||
id := c.Param("class_id")
|
||||
if id == "" {
|
||||
responses.FailWithMessage("缺少参数", c)
|
||||
@ -4,6 +4,7 @@ import (
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
"hepa-calc-api/api/model"
|
||||
"hepa-calc-api/api/requests"
|
||||
"hepa-calc-api/global"
|
||||
)
|
||||
|
||||
@ -115,3 +116,36 @@ func (r *BaseClassDao) GetBaseClass(maps interface{}) (m *model.BaseClass, err e
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// GetBaseClassListSearch 获取列表
|
||||
func (r *BaseClassDao) GetBaseClassListSearch(req requests.GetBaseClassList) (m []*model.BaseClass, err error) {
|
||||
// 构建查询条件
|
||||
query := global.Db.Model(&model.BaseClass{})
|
||||
|
||||
query = query.Where("class_status = ?", 1)
|
||||
|
||||
// 分类名称
|
||||
if req.ClassName != "" {
|
||||
query = query.Where("class_name LIKE ?", "%"+req.ClassName+"%")
|
||||
}
|
||||
|
||||
// 分类简介
|
||||
if req.ClassBrief != "" {
|
||||
query = query.Where("class_brief LIKE ?", "%"+req.ClassBrief+"%")
|
||||
}
|
||||
|
||||
// 是否推荐搜索
|
||||
if req.IsRecommendSearch != nil {
|
||||
query = query.Where("is_recommend_search = ?", req.IsRecommendSearch)
|
||||
}
|
||||
|
||||
// 排序
|
||||
query = query.Order("sort desc")
|
||||
query = query.Order("created_at desc")
|
||||
|
||||
err = query.Scopes(model.Paginate(1, 10)).Find(&m).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
@ -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,
|
||||
}
|
||||
|
||||
// 将转换后的结构体添加到新切片中
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
|
||||
12
api/requests/BaseClass.go
Normal file
12
api/requests/BaseClass.go
Normal file
@ -0,0 +1,12 @@
|
||||
package requests
|
||||
|
||||
type BaseClassRequest struct {
|
||||
GetBaseClassList // 获取分类列表
|
||||
}
|
||||
|
||||
// GetBaseClassList 获取分类列表
|
||||
type GetBaseClassList struct {
|
||||
ClassName string `json:"class_name" form:"class_name" label:"分类名称"`
|
||||
ClassBrief string `json:"class_brief" form:"class_brief" label:"分类简介"`
|
||||
IsRecommendSearch *int `json:"is_recommend_search" form:"is_recommend_search" label:"是否推荐搜索"`
|
||||
}
|
||||
@ -137,10 +137,10 @@ func privateRouter(r *gin.Engine, api controller.Api) {
|
||||
classGroup := r.Group("/class")
|
||||
{
|
||||
// 获取分类列表
|
||||
classGroup.GET("/list", api.Class.GetClassList)
|
||||
classGroup.GET("/list", api.BaseClass.GetBaseClassList)
|
||||
|
||||
// 获取分类详情
|
||||
classGroup.GET("/:class_id", api.Class.GetClass)
|
||||
classGroup.GET("/:class_id", api.BaseClass.GetBaseClass)
|
||||
}
|
||||
|
||||
// 问题
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user