@@ -0,0 +1,33 @@
|
||||
package tonesearcher
|
||||
|
||||
import "91porn-server/app/service/searcher"
|
||||
|
||||
type ToneRes struct {
|
||||
Name string `json:"name"` //主题名
|
||||
Types string `json:"types"` //类型
|
||||
Cover string `json:"cover"` //封面
|
||||
PlayCount int64 `json:"playCount"` //播放数
|
||||
PayCount int64 `json:"payCount"` //购买数
|
||||
Sort int `json:"-"` //排序
|
||||
}
|
||||
|
||||
type Result struct {
|
||||
dat []ToneRes
|
||||
hasNext bool
|
||||
}
|
||||
|
||||
func (*Result) Types() searcher.ResultTypes {
|
||||
return searcher.ToneSearchResult
|
||||
}
|
||||
|
||||
func (r *Result) Data() interface{} {
|
||||
return r.dat
|
||||
}
|
||||
|
||||
func (r *Result) Count() int64 {
|
||||
return int64(len(r.dat))
|
||||
}
|
||||
|
||||
func (r *Result) HasNext() bool {
|
||||
return r.hasNext
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package tonesearcher
|
||||
|
||||
import (
|
||||
"91porn-server/app/appg"
|
||||
"91porn-server/app/service/searcher"
|
||||
"91porn-server/common/constant/redisconst"
|
||||
"91porn-server/common/log"
|
||||
"91porn-server/models/v/tonemod"
|
||||
"91porn-server/models/v/tonerecomod"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
)
|
||||
|
||||
// M M
|
||||
type M = bson.M
|
||||
|
||||
type ToneValue = tonemod.ToneValue
|
||||
|
||||
// ToneSearcher ToneSearcher
|
||||
type ToneSearcher struct {
|
||||
}
|
||||
|
||||
// NewToneSearcher NewToneSearcher
|
||||
func NewToneSearcher() searcher.Searcher {
|
||||
return &ToneSearcher{}
|
||||
}
|
||||
|
||||
// Search Search
|
||||
func (t *ToneSearcher) Search(unuse1 searcher.KeyWorder, unuse2 searcher.Opter) (result searcher.Resulter, err error) {
|
||||
enable := true
|
||||
enableMatch := tonemod.EnableMatch{Enable: &enable}
|
||||
max := int64(7)
|
||||
list, err := tonemod.List(bson.D{{Key: "sortKey", Value: 1}}, 0, max, enableMatch.New())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
toneValue := GetToneValue()
|
||||
toneResList := make([]ToneRes, len(list))
|
||||
for i, v := range list {
|
||||
toneRes := ToneRes{
|
||||
Name: v.Name,
|
||||
Types: v.Types,
|
||||
Cover: v.Cover,
|
||||
Sort: v.SortKey,
|
||||
}
|
||||
switch v.Types {
|
||||
case tonerecomod.OfficialRecom:
|
||||
toneRes.PlayCount = toneValue.OfficialRecomPlayCount
|
||||
case tonerecomod.GoldCoinArea:
|
||||
toneRes.PayCount = toneValue.GoldCoinAreaPayCount
|
||||
case tonerecomod.LatestUpload:
|
||||
toneRes.PlayCount = toneValue.LatestUploadPlayCount
|
||||
case tonerecomod.MostLikes:
|
||||
toneRes.PlayCount = toneValue.MostLikesPlayCount
|
||||
case tonerecomod.PlayAtMost:
|
||||
toneRes.PlayCount = toneValue.PlayAtMostPlayCount
|
||||
case tonerecomod.MostComments:
|
||||
toneRes.PlayCount = toneValue.MostCommentsPlayCount
|
||||
case tonerecomod.FreeArea:
|
||||
toneRes.PlayCount = toneValue.FreeAreaPlayCount
|
||||
}
|
||||
toneResList[i] = toneRes
|
||||
}
|
||||
return &Result{toneResList, false}, nil
|
||||
}
|
||||
|
||||
func GetToneValue() ToneValue {
|
||||
var toneValue ToneValue
|
||||
redisKey := redisconst.ToneKey()
|
||||
if err := appg.Redis.Scan(redisKey, &toneValue); err != nil {
|
||||
log.Warn("tone Run redis Scan error", log.E(err))
|
||||
}
|
||||
return toneValue
|
||||
}
|
||||
Reference in New Issue
Block a user