@@ -0,0 +1,53 @@
|
||||
package rank
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"91porn-server/common/log"
|
||||
"91porn-server/common/timeutil/timerange"
|
||||
"91porn-server/models/s/hotstatmod"
|
||||
"91porn-server/models/v/vidmod"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
)
|
||||
|
||||
// RunStat 统计实时排行榜
|
||||
func RunStat() {
|
||||
log.Info("rank stat running...")
|
||||
defer log.Info("rank stat finished...")
|
||||
now := time.Now()
|
||||
sumDate := timerange.LocDayRange(now).Head
|
||||
infos, err := vidmod.GetTotalNewsList()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
mNow := calNowHot(infos)
|
||||
mYesterday, err := hotstatmod.GetYesterdayHotValue(sumDate)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
mLastWeek, err := hotstatmod.GetLastWeekHotValue(sumDate)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
mLastMonth, _ := hotstatmod.GetLastMonthHotValue(sumDate)
|
||||
mDayli := make(map[primitive.ObjectID]int)
|
||||
mWeek := make(map[primitive.ObjectID]int)
|
||||
mMonth := make(map[primitive.ObjectID]int)
|
||||
for vid, v := range mNow {
|
||||
mDayli[vid] = v - mYesterday[vid]
|
||||
mWeek[vid] = v - mLastWeek[vid]
|
||||
mMonth[vid] = v - mLastMonth[vid]
|
||||
}
|
||||
//入库
|
||||
_ = hotstatmod.UpdateInsertHotValue(sumDate, mDayli, mWeek, mMonth, mNow)
|
||||
}
|
||||
|
||||
func calNowHot(infos []*vidmod.VideoModel) map[primitive.ObjectID]int {
|
||||
mNow := make(map[primitive.ObjectID]int)
|
||||
for _, v := range infos {
|
||||
value := 1*v.FakePlayCount + 4*v.FakeLikeCount + 2*v.FakeCommentCount + v.FakeShareCount
|
||||
mNow[v.ID] = value
|
||||
}
|
||||
return mNow
|
||||
}
|
||||
Reference in New Issue
Block a user