65 lines
1.3 KiB
Go
65 lines
1.3 KiB
Go
|
package model
|
||
|
|
||
|
import "github.com/codinl/go-logger"
|
||
|
|
||
|
//go:generate goqueryset -in search.go
|
||
|
// gen:qs
|
||
|
type SearchHistory struct {
|
||
|
Model
|
||
|
|
||
|
Uid uint32 `json:"uid" gorm:"index"`
|
||
|
Keyword string `json:"keyword"` // 搜索内容
|
||
|
}
|
||
|
|
||
|
func (*SearchHistory) TableName() string {
|
||
|
return "search_history"
|
||
|
}
|
||
|
|
||
|
// gen:qs
|
||
|
type HotSearch struct {
|
||
|
Model
|
||
|
|
||
|
Keyword string `json:"keyword"` // 搜索内容
|
||
|
Sort uint32 `json:"sort" gorm:"index"` // 排序
|
||
|
}
|
||
|
|
||
|
func (*HotSearch) TableName() string {
|
||
|
return "hot_search"
|
||
|
}
|
||
|
|
||
|
func GetSearchHistoryList(uid uint32) ([]SearchHistory, error) {
|
||
|
var historys []SearchHistory
|
||
|
err := NewSearchHistoryQuerySet(DB).UidEq(uid).OrderDescByCreatedAt().Limit(10).All(&historys)
|
||
|
if err != nil && err != RecordNotFound {
|
||
|
logger.Error("err:", err)
|
||
|
return historys, err
|
||
|
}
|
||
|
return historys, nil
|
||
|
}
|
||
|
|
||
|
func SearchHistoryAdd(uid uint32, key string) error {
|
||
|
history := SearchHistory{
|
||
|
Uid: uid,
|
||
|
Keyword: key,
|
||
|
}
|
||
|
if key == "" {
|
||
|
return nil
|
||
|
}
|
||
|
err := DB.Create(&history).Error
|
||
|
if err != nil {
|
||
|
logger.Error("err:", err)
|
||
|
return err
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func HotSearchList() ([]HotSearch, error) {
|
||
|
hots := make([]HotSearch, 0)
|
||
|
err := NewHotSearchQuerySet(DB).OrderDescBySort().Limit(10).All(&hots)
|
||
|
if err != nil && err != RecordNotFound {
|
||
|
logger.Error("err:", err)
|
||
|
return hots, err
|
||
|
}
|
||
|
return hots, nil
|
||
|
}
|