You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.0 KiB
75 lines
2.0 KiB
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) |
|
} |
|
}
|
|
|