2025-01-25 18:05:37 +08:00

55 lines
1.5 KiB
Go

package querier
import (
"gorm.io/gen"
)
type AppAccountQuerier interface {
//GetAppConfig 获取所有小游戏配置
//
//select `app_id`,`secret`,`ecpm_value`,`ecpm_view`,`type` from `app_account` left join douyin_ecpm_config on app_account.id = douyin_ecpm_config.app_account_id
GetAppConfig() ([]*gen.T, error)
}
type GameScoreQuerier interface {
/*
SELECT
app_user.nickname,
app_user.avatar,
gs.score,
gs.app_user_id,
gs.t_rank
FROM
(
SELECT
game_score.score,
game_score.app_user_id,
game_score.app_account,
rank() OVER (ORDER BY game_score.score DESC) t_rank
FROM
game_score
WHERE
game_score.t = ?
AND game_score.app_account = ?
) AS gs
LEFT JOIN app_user ON app_user.id = gs.app_user_id
WHERE
gs.app_user_id = ?
LIMIT 1;
*/
GetUserRank(appId uint32, userId uint64, t uint32) (resp RankingData, err error)
//select DISTINCT app_account,t from game_score
FindDistinctRanking() (resp []*gen.T, err error)
}
type RankingData struct {
Nickname string `json:"nickname" db:"nickname"` // 昵称
Avatar string `json:"avatar" db:"avatar"` // 头像
Score uint32 `json:"score" db:"score"` // 得分
UserId uint64 `json:"userId" db:"app_user_id"` // 用户 ID
Rank uint32 `json:"rank" db:"t_rank"` // 排名
Self bool `json:"self" db:"-"` // 是否是自己
}