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 }