package web
import (
"fmt"
"server/call"
"server/common"
"server/config"
"server/db"
"server/modules/web/values"
"server/util"
"time"
"github.com/liangdas/mqant/log"
)
func FetchDatas ( ) {
GetShareData ( )
GetActivitySlotsRank ( )
}
var (
FetchInterval = 5 * 60
ShareDataRankNum = 20 // 排行榜显示8个
ActivitySlotsRankNum = 10 // slots活动排行榜数目
)
// 分享数据
func GetShareData ( ) {
values . ShareTotalInviteReward = db . Mysql ( ) . Sum ( & common . ShareInfo { } , "" , "invite_reward" )
values . ShareTotalBetReward = db . Mysql ( ) . Sum ( & common . ShareInfo { } , "" , "bet_reward" )
ranks := [ ] * values . OneShareRank { }
err := db . Mysql ( ) . C ( ) . Raw ( fmt . Sprintf ( "select uid,invite_reward + bet_reward as reward from share_info order by reward desc limit %d" , ShareDataRankNum ) ) . Scan ( & ranks ) . Error
if err != nil {
log . Error ( "err:%v" , err )
}
for _ , v := range ranks {
robot := call . GetConfigShareRobotByID ( v . UID )
if robot != nil {
v . Avatar = robot . Avatar
v . Nick = robot . Nick
} else {
p , _ := call . GetUserXInfo ( v . UID , "mobile" , "avatar" )
v . Avatar = p . Avatar
v . Nick = p . Mobile
}
v . Nick = "*******" + v . Nick [ len ( v . Nick ) - 3 : ]
}
values . ShareRank = ranks
time . AfterFunc ( time . Duration ( FetchInterval ) * time . Second , GetShareData )
}
// slots活动排行榜
func GetActivitySlotsRank ( ) {
list := [ ] * common . ActivitySlotsData { }
str := "time2"
numberStr := "best_number2"
order := "best_number2 desc,time2 asc"
if call . IsActivitySingleDay ( common . ActivityIDSlots ) {
order = "best_number1 desc,time1 asc"
str = "time1"
numberStr = "best_number1"
}
db . Mysql ( ) . QueryList ( 0 , 10 , fmt . Sprintf ( "%s >= %d and %s > 0" , str , util . GetZeroTime ( time . Now ( ) ) . Unix ( ) , numberStr ) , order , & common . ActivitySlotsData { } , & list )
values . ActivitySlotsRank = list
interval := FetchInterval
if ! config . GetBase ( ) . Release {
interval = int ( util . GetNext5MinUnix ( ) - time . Now ( ) . Unix ( ) )
}
time . AfterFunc ( time . Duration ( interval ) * time . Second , GetActivitySlotsRank )
for _ , v := range values . ActivitySlotsRank {
log . Debug ( "ActivitySlotsRank:%+v" , v )
}
}