@@ -0,0 +1,63 @@
|
||||
package tonerecomod
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"91porn-server/common/log"
|
||||
"91porn-server/models"
|
||||
)
|
||||
|
||||
// OffiRecomPages OffiRecomPages
|
||||
func OffiRecomPages(sort D, skip int64, limit int64) (page OffiRecomPage, err error) {
|
||||
pipeline := []M{
|
||||
{
|
||||
"$facet": M{
|
||||
"total": A{M{"$count": "total"}},
|
||||
"list": A{
|
||||
M{"$sort": sort},
|
||||
M{"$skip": skip},
|
||||
M{"$limit": limit},
|
||||
M{
|
||||
"$lookup": M{
|
||||
"from": models.VideoInfo,
|
||||
"localField": "vid",
|
||||
"foreignField": "_id",
|
||||
"as": "video_info",
|
||||
},
|
||||
},
|
||||
M{
|
||||
"$unwind": "$video_info",
|
||||
},
|
||||
M{
|
||||
"$set": M{
|
||||
"video_info.sortKey": "$sortKey",
|
||||
"video_info.enable": "$enable",
|
||||
},
|
||||
},
|
||||
M{
|
||||
"$replaceWith": "$video_info",
|
||||
},
|
||||
M{
|
||||
"$lookup": M{
|
||||
"from": models.Tag,
|
||||
"localField": "tags",
|
||||
"foreignField": "_id",
|
||||
"as": "tags",
|
||||
},
|
||||
},
|
||||
}},
|
||||
},
|
||||
{
|
||||
"$project": M{
|
||||
"total": M{"$arrayElemAt": A{"$total.total", 0}},
|
||||
"list": 1,
|
||||
},
|
||||
},
|
||||
}
|
||||
coll := mdb.Coll(models.ToneRecom)
|
||||
if err = coll.AggregateDecode(&page, pipeline); err != nil {
|
||||
log.ZapLog.Error(fmt.Sprintf("coll:%s Page error:%+v:", models.ToneRecom, err))
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user