This commit is contained in:
xiabin 2025-01-25 19:14:36 +08:00
parent bc110382df
commit e5831ea5b7
4 changed files with 17 additions and 8 deletions

View File

@ -9,4 +9,8 @@ goctl rpc protoc .\dw_server\dw_server.proto --go-grpc_out .\dw_server\ --go_out
goctl model mysql datasource -c -dir .\game_open_api\model\ --url 'root:youtu!0113@tcp(127.0.0.1:3306)/ecpm' -t game_score -style go_zero
docker exec -i mysql mysqldump -uroot -p'youtu!0113' ecpm > ecpm_backup.sql
docker build -t youtu_server -f game_open_api/Dockerfile .
docker save youtu_server -o ./images.tar
```

View File

@ -18,7 +18,7 @@ COPY . .
RUN go build -ldflags="-s -w" -o /app/game_open_api ./game_open_api/game_open_api.go
FROM scratch
FROM alpine
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=builder /usr/share/zoneinfo/Asia/Shanghai /usr/share/zoneinfo/Asia/Shanghai

View File

@ -191,19 +191,24 @@ type IGameScoreDo interface {
// FROM
// game_score
// WHERE
// game_score.t = ?
// AND game_score.app_account = ?
// game_score.t = @t
// AND game_score.app_account = @appId
// ) AS gs
// LEFT JOIN app_user ON app_user.id = gs.app_user_id
// WHERE
// gs.app_user_id = ?
// gs.app_user_id = @userId
// LIMIT 1;
func (g gameScoreDo) GetUserRank(appId uint32, userId uint64, t uint32) (result querier.RankingData, err error) {
var params []interface{}
var generateSQL strings.Builder
params = append(params, t)
params = append(params, appId)
params = append(params, userId)
generateSQL.WriteString("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; ")
var executeSQL *gorm.DB
executeSQL = g.UnderlyingDB().Raw(generateSQL.String()).Take(&result) // ignore_security_alert
executeSQL = g.UnderlyingDB().Raw(generateSQL.String(), params...).Take(&result) // ignore_security_alert
err = executeSQL.Error
return

View File

@ -30,12 +30,12 @@ type GameScoreQuerier interface {
FROM
game_score
WHERE
game_score.t = ?
AND game_score.app_account = ?
game_score.t = @t
AND game_score.app_account = @appId
) AS gs
LEFT JOIN app_user ON app_user.id = gs.app_user_id
WHERE
gs.app_user_id = ?
gs.app_user_id = @userId
LIMIT 1;
*/
GetUserRank(appId uint32, userId uint64, t uint32) (resp RankingData, err error)