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 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 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 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 /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 COPY --from=builder /usr/share/zoneinfo/Asia/Shanghai /usr/share/zoneinfo/Asia/Shanghai

View File

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

View File

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