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.
595 lines
18 KiB
595 lines
18 KiB
package call |
|
|
|
import ( |
|
"fmt" |
|
"reflect" |
|
"server/common" |
|
"server/db" |
|
"server/pb" |
|
"server/util" |
|
"strings" |
|
"time" |
|
|
|
"github.com/liangdas/mqant/log" |
|
"gorm.io/gorm" |
|
) |
|
|
|
func GetShareInfo(uid int) *common.ShareInfo { |
|
shareInfo := &common.ShareInfo{UID: uid} |
|
db.Mysql().Get(shareInfo) |
|
if shareInfo.ID <= 0 { |
|
info, _ := GetUserXInfo(uid, "channel_id") |
|
shareInfo.ChannelID = info.ChannelID |
|
shareInfo.Share = util.GetShareCode(uid) |
|
shareInfo.CreateTime = time.Now().Unix() |
|
shareInfo.Level = 1 |
|
db.Mysql().Create(shareInfo) |
|
} |
|
return shareInfo |
|
} |
|
func GetShareInfoByCode(code string) *common.ShareInfo { |
|
shareInfo := &common.ShareInfo{Share: code} |
|
db.Mysql().Get(shareInfo) |
|
return shareInfo |
|
} |
|
|
|
func GetShareLink(cid, uid int) string { |
|
shareInfo := GetShareInfo(uid) |
|
channel := GetChannelByID(cid) |
|
if channel == nil { |
|
return "" |
|
} |
|
u := "" |
|
if strings.Contains(channel.ShareURL, "?") { |
|
u = channel.ShareURL + fmt.Sprintf("&shareCode=%s", shareInfo.Share) |
|
} else { |
|
u = channel.ShareURL + fmt.Sprintf("?shareCode=%s", shareInfo.Share) |
|
} |
|
if !strings.Contains(u, "app") { |
|
u += fmt.Sprintf("&app=%d", common.GetShareChannel(cid)) |
|
} |
|
return u |
|
} |
|
|
|
// 分享查询 |
|
func ShareBind(share string, isOld bool, uid, cid int) { |
|
// 分享码为空 |
|
if share == "" { |
|
return |
|
} |
|
// 获取上一级分享信息 |
|
upInfo := &common.ShareInfo{Share: share} |
|
db.Mysql().Get(upInfo) |
|
if upInfo.ID > 0 { |
|
upInfo.UID = upInfo.UID |
|
// todo ?发送奖励? |
|
//util.Go(func() { |
|
// SendShareReward(cid, codeInfo.UID, codeInfo.ActivityId) |
|
//}) |
|
} else { |
|
// 一级 |
|
upInfo = &common.ShareInfo{Share: share} |
|
} |
|
if upInfo.ID <= 0 { |
|
return |
|
} |
|
if !isOld { // 新账号创建分享信息 |
|
shareInfo := &common.ShareInfo{UID: uid, UP1: upInfo.UID, UP2: upInfo.UP1, UP3: upInfo.UP2, UP4: upInfo.UP3, UP5: upInfo.UP4, CreateTime: time.Now().Unix(), ChannelID: cid, Share: util.GetShareCode(uid)} |
|
db.Mysql().Create(shareInfo) |
|
} else { // 已有账号直接走更新 |
|
err := db.Mysql().Update(&common.ShareInfo{UID: uid}, map[string]interface{}{ |
|
"up1": upInfo.UID, |
|
"up2": upInfo.UP1, |
|
"up3": upInfo.UP2, |
|
"up4": upInfo.UP3, |
|
"up5": upInfo.UP4, |
|
}) |
|
if err != nil { |
|
log.Error("ShareBind err:%v", err) |
|
} |
|
} |
|
// 更新上级的下级数 |
|
ref := reflect.ValueOf(upInfo).Elem() |
|
for i := 1; i <= 4; i++ { |
|
upUid := int(ref.FieldByName(fmt.Sprintf("UP%d", i)).Int()) |
|
if uid == 0 { |
|
break |
|
} |
|
field := fmt.Sprintf("down%d", i+1) |
|
db.Mysql().Update(&common.ShareInfo{UID: upUid}, map[string]interface{}{field: gorm.Expr(fmt.Sprintf("%s + 1", field))}) |
|
} |
|
|
|
// todo 更新上级邀请玩家数量? |
|
CheckTask(Task{Uid: upInfo.UID, Value: 1, Types: []common.TaskType{common.TaskTypeInvite}}) |
|
// todo |
|
util.Go(func() { |
|
if upInfo.UID != 0 { |
|
// pdd摇奖次数 |
|
err := db.Mysql().C().Model(&common.PddDataNew{}).Where("uid = ?", upInfo.UID). |
|
Updates(map[string]interface{}{ |
|
"spin": gorm.Expr("spin + ?", 1), |
|
}).Error |
|
if err != nil { |
|
log.Error("update spin err, %s", err.Error()) |
|
return |
|
} |
|
// 裂变任务邀请人数 |
|
err = db.Mysql().C().Model(&common.ShareTaskNewData{}).Where("uid = ? and `type` = 2 and `status` = 0", upInfo.UID). |
|
Updates(map[string]interface{}{ |
|
"progress": gorm.Expr("progress + ?", 1), |
|
}).Error |
|
if err != nil { |
|
log.Error("update share invite task err, %s", err.Error()) |
|
return |
|
} |
|
} |
|
}) |
|
} |
|
|
|
// 判断分享,发放有效用户奖励 |
|
func CheckShare(r *common.RechargeOrder) { |
|
shareInfo := GetShareInfo(r.UID) |
|
// todo |
|
if GetConfigShareSys() == nil { |
|
return |
|
} |
|
reward := GetConfigShareSys().ShareReward |
|
// 付费分享 |
|
// CheckShareTask(shareInfo.UP1, 1, common.TaskTypePayShare) |
|
// 发放奖励 |
|
update := map[string]interface{}{ |
|
"recharge_amount": gorm.Expr("recharge_amount + ?", r.Amount), |
|
} |
|
if shareInfo.BetAmount != -1 { |
|
update["bet_amount"] = gorm.Expr("bet_amount + ?", r.Amount) |
|
} |
|
db.Mysql().Update(&common.ShareInfo{UID: r.UID}, update) |
|
betAmount := shareInfo.BetAmount |
|
if betAmount == -1 { |
|
betAmount = 0 |
|
} |
|
if shareInfo.RechargeAmount+r.Amount < GetConfigShareSys().ShareRecharge { |
|
return |
|
} |
|
if shareInfo.UP1 == 0 { |
|
return |
|
} |
|
if shareInfo.BetAmount >= 0 { |
|
db.Mysql().Update(&common.ShareInfo{UID: r.UID}, map[string]interface{}{ |
|
"bet_amount": -1, |
|
}) |
|
update = map[string]interface{}{ |
|
"invalid_invites": gorm.Expr("invalid_invites + 1"), |
|
"invite_reward": gorm.Expr("invite_reward + ?", reward), |
|
"available_reward": gorm.Expr("available_reward + ?", reward), |
|
} |
|
db.Mysql().Update(&common.ShareInfo{UID: shareInfo.UP1}, update) |
|
ShareRecharge(r.UID, r.Amount+betAmount, 1) |
|
IncreaseInviteCount(fmt.Sprintf("%v", shareInfo.UP1), 1, false) |
|
} else { |
|
ShareRecharge(r.UID, r.Amount+betAmount, 2) |
|
} |
|
} |
|
|
|
func ShareRecharge(uid int, amount int64, typ int) { |
|
shareInfo := &common.ShareInfo{UID: uid} |
|
db.Mysql().Get(shareInfo) |
|
if shareInfo.UP1 == 0 { |
|
return |
|
} |
|
ref := reflect.ValueOf(shareInfo).Elem() |
|
// 循环查询上级 |
|
for i := 1; i <= 5; i++ { |
|
upUid := int(ref.FieldByName(fmt.Sprintf("UP%d", i)).Int()) |
|
if upUid == 0 { |
|
break |
|
} |
|
tmpShareInfo := GetShareInfo(upUid) |
|
con := GetConfigShareByLevel(tmpShareInfo.Level) |
|
if con == nil { |
|
log.Error("unknown config share level:%v", i) |
|
continue |
|
} |
|
var per int64 |
|
for _, v := range con.SubRewardTiers { |
|
if v.Tier == i { |
|
per = v.Per |
|
} |
|
} |
|
// 发奖 |
|
reward := amount * per / 1000 |
|
if reward <= 0 { |
|
continue |
|
} |
|
db.Mysql().Update(&common.ShareInfo{UID: upUid}, map[string]interface{}{ |
|
"withdrawable": gorm.Expr("withdrawable + ?", reward), |
|
}) |
|
if i == 1 { // 上一级的充值任务 |
|
err := db.Mysql().C().Model(&common.ShareTaskNewData{}).Where("uid = ? and `type` = ? and `status` = 0", |
|
upUid, common.ShareTaskNewTypeRecharge).Updates(map[string]interface{}{ |
|
"progress": gorm.Expr("progress + ?", amount), |
|
}).Error |
|
if err != nil { |
|
log.Error("update share recharge task err, %s", err.Error()) |
|
} |
|
} |
|
db.Mysql().Create(&common.ShareDetail{ |
|
UID: uid, |
|
Type: typ, |
|
Up: upUid, |
|
RechargeAmount: amount, |
|
Reward: reward, |
|
Time: time.Now().Unix(), |
|
}) |
|
} |
|
} |
|
|
|
// 投注奖励结算 |
|
func ShareSettle(d *pb.InnerAfterSettle) { |
|
//shareInfo := &common.ShareInfo{UID: int(d.UID)} |
|
//db.Mysql().Get(shareInfo) |
|
//if shareInfo.UP1 == 0 { |
|
// return |
|
//} |
|
//db.Mysql().Update(&common.ShareInfo{UID: int(d.UID)}, map[string]interface{}{"bet": gorm.Expr("bet + ?", d.TotalBet)}) |
|
// |
|
//ref := reflect.ValueOf(shareInfo).Elem() |
|
//// 循环查询上级 |
|
//for i := 1; i <= 3; i++ { |
|
// uid := int(ref.FieldByName(fmt.Sprintf("UP%d", i)).Int()) |
|
// if uid == 0 { |
|
// break |
|
// } |
|
// con := GetConfigShareByLevel(i) |
|
// if con == nil { |
|
// log.Error("unknown config share level:%v", i) |
|
// continue |
|
// } |
|
// // 发奖 |
|
// reward := d.TotalBet * con.Per / 1000 |
|
// if reward <= 0 { |
|
// continue |
|
// } |
|
// db.Mysql().Update(&common.ShareInfo{UID: uid}, map[string]interface{}{ |
|
// "bet_reward": gorm.Expr("bet_reward + ?", reward), |
|
// "available_reward": gorm.Expr("available_reward + ?", reward), |
|
// }) |
|
//} |
|
} |
|
|
|
func GetConfigShareByLevel(level int) (result *common.ConfigShare) { |
|
for _, v := range configShare { |
|
if v.Level == level { |
|
return v |
|
} |
|
} |
|
return |
|
} |
|
|
|
func PackLevelSql(uid, level int) (sql string) { |
|
if level == 0 { |
|
sql = fmt.Sprintf("up1 = %d or up2 = %d or up3 = %d", uid, uid, uid) |
|
} else { |
|
sql = fmt.Sprintf("up%d = %d", level, uid) |
|
} |
|
return |
|
} |
|
|
|
// GetUserShares 查询玩家下级数量 |
|
func GetUserShares(uid, level int) int64 { |
|
return db.Mysql().Count(&common.ShareInfo{}, PackLevelSql(uid, level)) |
|
} |
|
|
|
// GetUserShareRecharges 查询玩家下级充值人数 |
|
func GetUserShareRecharges(uid, level int) (count int64) { |
|
sql := fmt.Sprintf(`SELECT count(*) as count from |
|
(SELECT uid from share_info WHERE %s)a |
|
INNER JOIN |
|
(SELECT uid from recharge_info WHERE total_recharge > 0)b |
|
on a.uid = b.uid`, PackLevelSql(uid, level)) |
|
err := db.Mysql().C().Raw(sql).Scan(&count).Error |
|
if err != nil { |
|
log.Error("err:%v", err) |
|
} |
|
return |
|
} |
|
|
|
// GetUserShareValidRecharges 查询玩家下级有效充值人数 |
|
func GetUserShareValidRecharges(uid, level int) (count int64) { |
|
sql := fmt.Sprintf(`SELECT count(*) as count from |
|
(SELECT uid from share_info WHERE %s)a |
|
INNER JOIN |
|
(SELECT uid from recharge_info WHERE total_recharge >= %d)b |
|
on a.uid = b.uid`, PackLevelSql(uid, level), GetConfigShareSys().ShareRecharge) |
|
err := db.Mysql().C().Raw(sql).Scan(&count).Error |
|
if err != nil { |
|
log.Error("err:%v", err) |
|
} |
|
return |
|
} |
|
|
|
// GetUserShareRechargeAmount 查询玩家下级充值总额 |
|
func GetUserShareRechargeAmount(uid, level int) (count int64) { |
|
sql := fmt.Sprintf(`SELECT sum(b.total_recharge) as count from |
|
(SELECT uid from share_info WHERE %s)a |
|
INNER JOIN |
|
(SELECT uid,total_recharge from recharge_info WHERE total_recharge > 0)b |
|
on a.uid = b.uid`, PackLevelSql(uid, level)) |
|
err := db.Mysql().C().Raw(sql).Scan(&count).Error |
|
if err != nil { |
|
log.Error("err:%v", err) |
|
} |
|
return |
|
} |
|
|
|
// GetActivityShareCode 根据actid获取share code |
|
func GetActivityShareCode(uid, actId int) (code string, err error) { |
|
now := time.Now() |
|
ret := make([]*common.ShareActivityCode, 0, 1) |
|
_, err = db.Mysql().QueryList(0, 1, fmt.Sprintf("uid = %d and activity_id = %d ", uid, actId), "id", &common.ShareActivityCode{}, &ret) |
|
if err != nil { |
|
log.Error("GetActivityShareCode err:%v", err) |
|
return |
|
} |
|
expireTime := util.GetZeroTime(now.AddDate(0, 0, 1)) |
|
if len(ret) == 0 { |
|
code = util.GetShareCode(-uid - actId) |
|
err = db.Mysql().Create(&common.ShareActivityCode{ |
|
UID: uid, |
|
ShareCode: code, |
|
ActivityId: actId, |
|
ExpireAt: expireTime.Unix(), |
|
CreateAt: now.Unix(), |
|
}) |
|
if err != nil { |
|
log.Error("GetActivityShareCode err:%v", err) |
|
return |
|
} |
|
} else { |
|
code = ret[0].ShareCode |
|
_, err = db.Mysql().UpdateRes(&common.ShareActivityCode{UID: uid, ActivityId: actId}, map[string]interface{}{ |
|
"expire_at": expireTime.Unix(), |
|
}) |
|
if err != nil { |
|
log.Error("GetActivityShareCode err:%v", err) |
|
} |
|
} |
|
return |
|
} |
|
|
|
// SendShareReward 发送分享奖励 |
|
func SendShareReward(channel, uid, actId int) { |
|
log.Info("SendShareReward channel:%v,uid:%v,actId:%d", channel, uid, actId) |
|
if common.ActivityIDFreeSpin == actId { |
|
freespin := GetUserFreeSpinData(uid) |
|
now := time.Now().Unix() |
|
if freespin.LastSpin == 0 && freespin.SpinNum == 0 { |
|
// 未参与活动 |
|
p, _ := GetUserXInfo(uid, "birth") |
|
data := &common.ActivityFreeSpinData{UID: uid, SpinNum: common.DefaultFreeSpinNum} |
|
if util.IsSameDayTimeStamp(now, p.Birth) { |
|
data.LastSpin = now |
|
} |
|
err := db.Mysql().Create(data) |
|
if err != nil { |
|
log.Error("SendShareReward uid:%v,err:%v", uid, err) |
|
} |
|
} else { |
|
_, err := db.Mysql().UpdateRes(&common.ActivityFreeSpinData{UID: uid}, |
|
map[string]interface{}{"last_spin": now, "spin_num": gorm.Expr("spin_num + ?", 1)}) |
|
if err != nil { |
|
log.Error("SendShareReward uid:%v,err:%v", uid, err) |
|
} |
|
} |
|
} else if common.ActivityIDSign == actId { |
|
// 判断今日参与签到 |
|
// 如果参与就再发送奖励,同时发送邮件 |
|
list := GetConfigActivitySign() |
|
data := &common.ActivitySignData{UID: uid} |
|
db.Mysql().Get(data) |
|
first := util.GetZeroTime(time.Unix(data.Time, 0)).Unix() |
|
today := util.GetZeroTime(time.Now()).Unix() |
|
day := int((today-first)/common.OneDay) + 1 |
|
log.Info("SendShareReward day:%v", day) |
|
// 给前两天 |
|
if day > 2 { |
|
return |
|
} |
|
sign := data.Sign |
|
for i := 0; i < day; i++ { |
|
if sign&1 == 1 && day == i+1 { |
|
// 发放当日奖励 |
|
for _, v := range list { |
|
if v.Day == day { |
|
reward := v.Reward |
|
log.Info("SendShareReward reward:%v", reward) |
|
UpdateCurrencyPro(&common.UpdateCurrency{ |
|
CurrencyBalance: &common.CurrencyBalance{ |
|
UID: uid, |
|
Type: common.CurrencyINR, |
|
ChannelID: channel, |
|
Value: reward, |
|
Event: common.CurrencyEventActivitySign, |
|
NeedBet: GetConfigCurrencyResourceNeedBet(common.CurrencyResourceBonus, reward), |
|
}, |
|
}) |
|
break |
|
} |
|
} |
|
break |
|
} |
|
sign >>= 1 |
|
} |
|
} |
|
} |
|
|
|
// WriteShareBalance 写入分享流水 |
|
func WriteShareBalance(b *common.ESShareBalance, shouldUpdate bool) { |
|
if b.Amount == 0 { |
|
return |
|
} |
|
now := time.Now() |
|
if (b.FriendNick == "" || b.Phone == "") && b.FriendUID > 0 { |
|
ret, _ := GetUserXInfo(b.FriendUID, "nick", "mobile") |
|
b.FriendNick = ret.Nick |
|
b.Phone = ret.Mobile |
|
} |
|
if b.RefererNick == "" { |
|
ret, _ := GetUserXInfo(b.RefererUID, "nick") |
|
b.RefererNick = ret.Nick |
|
} |
|
if b.Date == "" { |
|
b.Date = now.Format("20060102") |
|
} |
|
if b.Time == 0 { |
|
b.Time = now.Unix() |
|
} |
|
InsertToESGO(common.ESIndexShareBalance, b) |
|
|
|
if !shouldUpdate { |
|
return |
|
} |
|
|
|
// 先更新总收益 |
|
total := &common.ShareRewardData{} |
|
// totalSql := fmt.Sprintf("select * from share_reward_data where uid = %d and time = 0", b.RefererUID) |
|
db.Mysql().QueryBySql(fmt.Sprintf("select * from share_reward_data where uid = %d and time = 0", b.RefererUID), total) |
|
if total.ID == 0 { |
|
total = &common.ShareRewardData{} |
|
total.UID = b.RefererUID |
|
total.Date = "" |
|
total.Time = 0 |
|
total.SetReward(b.Event, b.Amount) |
|
db.Mysql().Create(total) |
|
} else { |
|
field := total.GetRewardName(b.Event) |
|
if field != "" { |
|
db.Mysql().UpdateW(&common.ShareRewardData{}, |
|
map[string]interface{}{ |
|
"total_reward": gorm.Expr("total_reward + ?", b.Amount), |
|
field: gorm.Expr(fmt.Sprintf("%s + %d", field, b.Amount))}, |
|
fmt.Sprintf("uid = %d and time = 0", b.RefererUID)) |
|
} |
|
} |
|
// 更新当天收益 |
|
t := util.GetZeroTime(now).Unix() |
|
today := &common.ShareRewardData{UID: b.RefererUID, Time: t} |
|
db.Mysql().Get(today) |
|
if today.ID == 0 { |
|
today = &common.ShareRewardData{UID: b.RefererUID, Time: t} |
|
today.Date = b.Date |
|
today.SetReward(b.Event, b.Amount) |
|
db.Mysql().Create(today) |
|
} else { |
|
field := today.GetRewardName(b.Event) |
|
if field != "" { |
|
db.Mysql().Update(&common.ShareRewardData{UID: b.RefererUID, Time: t}, |
|
map[string]interface{}{ |
|
"total_reward": gorm.Expr("total_reward + ?", b.Amount), |
|
field: gorm.Expr(fmt.Sprintf("%s + %d", field, b.Amount))}) |
|
} |
|
} |
|
|
|
// 更新分享者总奖励表 |
|
// one := &common.ShareTotalReward{RefererUID: b.RefererUID, FriendUID: b.FriendUID, Level: b.Level, Reward: b.Amount} |
|
// if !db.Mysql().Exist(one) { |
|
// one.Reward = b.Amount |
|
// db.Mysql().Create(one) |
|
// return |
|
// } |
|
// db.Mysql().Update(one, map[string]interface{}{"reward": gorm.Expr("reward + ?", b, b.Amount)}) |
|
// db.Mysql().UpsertMap(fmt.Sprintf("referer_uid = %v and friend_uid = %v", b.RefererUID, b.FriendUID), |
|
// one, map[string]interface{}{"reward": gorm.Expr("reward + ?", b.Amount)}) |
|
} |
|
|
|
// 计算排行榜 |
|
func CalShareRank(t int, ti int64) (list []*common.ShareRank) { |
|
data := []*OneRank{} |
|
switch t { |
|
case common.ShareRankTypeDaily: |
|
db.Mysql().QueryBySql(fmt.Sprintf("select uid as UID,total_reward as Reward from share_reward_data where time = %d ORDER BY Reward desc LIMIT %d", |
|
ti, common.ShareRankMaxNum), &data) |
|
case common.ShareRankTypeWeekly: |
|
db.Mysql().QueryBySql(fmt.Sprintf("select uid as UID,sum(total_reward) as Reward from share_reward_data where time>=%d and time<%d group by uid ORDER BY Reward desc LIMIT %d", |
|
ti, ti+7*common.OneDay, common.ShareRankMaxNum), &data) |
|
case common.ShareRankTypeMonthly: |
|
db.Mysql().QueryBySql(fmt.Sprintf("select uid as UID,sum(total_reward) as Reward from share_reward_data where time>=%d and time<%d group by uid ORDER BY Reward desc LIMIT %d", |
|
ti, util.GetLastDateOfMonth(time.Unix(ti, 0)).Unix()+common.OneDay, common.ShareRankMaxNum), &data) |
|
} |
|
for _, v := range data { |
|
one := &common.ShareRank{ |
|
UID: v.UID, |
|
Type: t, |
|
Time: ti, |
|
Level: GetShareInfo(v.UID).Level, |
|
Reward: v.Reward, |
|
} |
|
p, _ := GetUserXInfo(v.UID, "avatar", "nick") |
|
one.Avatar = p.Avatar |
|
one.Nick = p.Nick |
|
list = append(list, one) |
|
} |
|
return |
|
} |
|
|
|
func GetShareRank(t int, ti int64) (list []*common.ShareRank) { |
|
now := time.Now() |
|
switch t { |
|
case common.ShareRankTypeDaily: |
|
if util.GetZeroTime(now).Unix() == ti { // 查询今天 |
|
list = CalShareRank(t, ti) |
|
return |
|
} |
|
case common.ShareRankTypeWeekly: |
|
if util.GetWeekZeroTime(now).Unix() == ti { // 查询本周 |
|
list = CalShareRank(t, ti) |
|
return |
|
} |
|
case common.ShareRankTypeMonthly: |
|
if util.GetFirstDateOfMonth(now).Unix() == ti { // 查询本月 |
|
list = CalShareRank(t, ti) |
|
return |
|
} |
|
} |
|
db.Mysql().QueryList(0, common.ShareRankMaxNum, fmt.Sprintf("type = %d and time = %d", t, ti), "reward desc", &common.ShareRank{}, &list) |
|
return |
|
} |
|
|
|
type OneRank struct { |
|
UID int |
|
Reward int64 |
|
} |
|
|
|
func GetShareRewardData(uid, t int, ti int64) *common.ShareRank { |
|
data := &OneRank{} |
|
switch t { |
|
case common.ShareRankTypeDaily: |
|
db.Mysql().QueryBySql(fmt.Sprintf("select uid as UID,total_reward as Reward from share_reward_data where time = %d AND uid = %d", |
|
ti, uid), &data) |
|
case common.ShareRankTypeWeekly: |
|
db.Mysql().QueryBySql(fmt.Sprintf("select uid as UID,sum(total_reward) as Reward from share_reward_data where time>=%d and time<%d AND uid = %d", |
|
ti, ti+7*common.OneWeek, uid), data) |
|
case common.ShareRankTypeMonthly: |
|
db.Mysql().QueryBySql(fmt.Sprintf("select uid as UID,sum(total_reward) as Reward from share_reward_data where time>=%d and time<%d AND uid = %d", |
|
ti, util.GetLastDateOfMonth(time.Unix(ti, 0)).Unix()+common.OneDay, uid), &data) |
|
} |
|
|
|
one := &common.ShareRank{ |
|
UID: uid, |
|
Type: t, |
|
Time: ti, |
|
Level: GetShareInfo(uid).Level, |
|
Reward: data.Reward, |
|
} |
|
p, _ := GetUserXInfo(uid, "avatar", "nick") |
|
one.Avatar = p.Avatar |
|
one.Nick = p.Nick |
|
return one |
|
} |
|
|
|
func GetShareWithdrawHis(uid, page, num int) (list []*common.RechargeOrder, count int64) { |
|
count, _ = db.Mysql().QueryListW(page, num, "created_at desc", |
|
&common.RechargeOrder{UID: uid}, &list, "uid = ? and (event = ? or event = ?) and scene = ?", |
|
uid, common.CurrencyEventWithDraw, common.CurrencyEventShareWithdraw, common.ActivityIDShare) |
|
return |
|
}
|
|
|