scense_game/wwwroot/game/api/game_end.dspy

25 lines
987 B
Python

#!/usr/bin/env python3
"""W-08e/g 结束结算:写 game_result 并返回结算结果(分数/时长/关卡展示)。"""
result = {'success': False, 'data': {}}
try:
user_id = await get_user()
session_id = params_kw.get('session_id', '')
if not session_id:
result['code'] = 400
result['error'] = '缺少 session_id'
else:
score = params_kw.get('score', None)
duration_ms = params_kw.get('duration_ms', None)
level = params_kw.get('level', None)
result_json = params_kw.get('result_json', None)
data = await game_end_session(user_id, session_id, score=score, duration_ms=duration_ms,
level=level, result_json=result_json)
result['success'] = True
result['data'] = data
except ValueError as e:
result['code'] = 400
result['error'] = str(e)
except Exception as e:
result['error'] = str(e)
return json.dumps(result, ensure_ascii=False, default=str)