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) } }