|
|
|
|
@ -1,6 +1,7 @@ |
|
|
|
|
package call |
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
|
"context" |
|
|
|
|
"encoding/json" |
|
|
|
|
"errors" |
|
|
|
|
"fmt" |
|
|
|
|
@ -13,6 +14,7 @@ import ( |
|
|
|
|
"server/pb" |
|
|
|
|
"server/util" |
|
|
|
|
"strconv" |
|
|
|
|
"strings" |
|
|
|
|
"time" |
|
|
|
|
|
|
|
|
|
"github.com/liangdas/mqant/log" |
|
|
|
|
@ -662,3 +664,94 @@ func UpdateUserNeedBet(uid int, amount int64) { |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// AddGameRecord 添加玩家游玩记录
|
|
|
|
|
func AddGameRecord(uid int, provider int, gameId int) error { |
|
|
|
|
member := fmt.Sprintf("%v_%v", provider, gameId) |
|
|
|
|
playerGamesSetKey := fmt.Sprintf("player:%v:games:set", uid) |
|
|
|
|
playerGamesListKey := fmt.Sprintf("player:%v:games:list", uid) |
|
|
|
|
ctx := context.Background() |
|
|
|
|
client := db.Redis().GetRedis() |
|
|
|
|
// 检查集合中是否已经存在该游戏记录
|
|
|
|
|
exists, err := client.SIsMember(ctx, playerGamesSetKey, member).Result() |
|
|
|
|
if err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
if !exists { |
|
|
|
|
// 将游戏ID添加到集合进行去重
|
|
|
|
|
client.SAdd(ctx, playerGamesSetKey, member) |
|
|
|
|
// 将游戏ID添加到列表的头部
|
|
|
|
|
client.LPush(ctx, playerGamesListKey, member) |
|
|
|
|
// 保持列表中最多50条记录
|
|
|
|
|
client.LTrim(ctx, playerGamesListKey, 0, 49) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// GetGameRecord 获取游玩记录
|
|
|
|
|
func GetGameRecord(uid int) (gameList []*common.ConfigGameList) { |
|
|
|
|
client := db.Redis().GetRedis() |
|
|
|
|
ctx := context.Background() |
|
|
|
|
playerGamesListKey := fmt.Sprintf("player:%d:games:list", uid) |
|
|
|
|
games, err := client.LRange(ctx, playerGamesListKey, 0, -1).Result() |
|
|
|
|
if err != nil { |
|
|
|
|
log.Error("GetGameRecord LRange uid:%v,err:%v", uid, err) |
|
|
|
|
return nil |
|
|
|
|
} |
|
|
|
|
gameList = make([]*common.ConfigGameList, 0, len(games)) |
|
|
|
|
for _, game := range games { |
|
|
|
|
splitArr := strings.Split(game, "_") |
|
|
|
|
if len(splitArr) == 2 { |
|
|
|
|
provider, _ := strconv.Atoi(splitArr[0]) |
|
|
|
|
gameId, _ := strconv.Atoi(splitArr[1]) |
|
|
|
|
gameConf := GetConfigGameListByID(provider, gameId) |
|
|
|
|
if gameConf != nil { |
|
|
|
|
gameList = append(gameList, gameConf) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func AddPlayerFavorite(uid int, provider int, gameId int) error { |
|
|
|
|
info := &common.PlayerFavorite{Uid: uid, GameId: gameId, Provider: provider} |
|
|
|
|
if db.Mysql().Exist(info) { |
|
|
|
|
log.Error("AddPlayerFavorite uid:%v exist", uid) |
|
|
|
|
return errors.New(" exist") |
|
|
|
|
} |
|
|
|
|
info.CreateAt = time.Now().Unix() |
|
|
|
|
err := db.Mysql().Create(info) |
|
|
|
|
if err != nil { |
|
|
|
|
log.Error("AddPlayerFavorite Create uid:%v,err:%v", uid, err) |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
return nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func DelPlayerFavorite(uid int, provider int, gameId int) error { |
|
|
|
|
err := db.Mysql().C().Where("uid = ? and provider = ? and game_id = ?", uid, provider, gameId).Delete(&common.PlayerFavorite{}).Error |
|
|
|
|
if err != nil { |
|
|
|
|
log.Error("DelPlayerFavorite Delete uid:%v,err:%v", uid, err) |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
return nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func GetPlayerFavoriteList(uid int) (gameList []*common.ConfigGameList) { |
|
|
|
|
var ret []*common.PlayerFavorite |
|
|
|
|
_, err := db.Mysql().QueryAll(fmt.Sprintf("uid = %v", uid), "create_at", &common.PlayerFavorite{}, &ret) |
|
|
|
|
if err != nil { |
|
|
|
|
log.Error("GetPlayerFavoriteList Delete uid:%v,err:%v", uid, err) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
gameList = make([]*common.ConfigGameList, 0, len(ret)) |
|
|
|
|
for _, game := range ret { |
|
|
|
|
gameConf := GetConfigGameListByID(game.Provider, game.GameId) |
|
|
|
|
if gameConf != nil { |
|
|
|
|
gameList = append(gameList, gameConf) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|