fix: correct ticket charge API body, logout type, and login/logout flow

- Fix upsertUserChargeLog: use separate userCharge + userChargelog objects
  matching Lionheart reference, validDate 90 days at 4AM
- Fix userLogout: use LogoutType.Logout = 1 (was incorrectly changed to 0)
- Fix loginDateTime tracking: userLoginFull now returns the exact timestamp
  sent to server, ensuring logout uses matching value
- Fix home page logout: call UserLogoutApi before navigating back
- Add force-logout for stale sessions before ticket flow login
- Add comprehensive debug logging across entire ticket flow

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-23 13:10:10 +08:00
parent fee7291ab9
commit 4ad57dc1cf
4 changed files with 467 additions and 153 deletions

View File

@@ -76,7 +76,7 @@ class AppStrings {
static const stepCheckPreview = '检查登录状态';
static const stepUserLogin = '登录游戏';
static const stepFetchData = '获取用户数据';
static const stepSimulatePlay = '模拟游戏时间';
static const stepChargeTicket = '使用功能票';
static const stepUploadPlaylog = '上传游玩记录';
static const stepUpsertAll = '上传用户数据';
static const stepLogout = '退出游戏';
@@ -92,6 +92,9 @@ class AppStrings {
static const loading = '加载中...';
static const ticketsNotLoaded = '点击刷新按钮加载功能票。';
static const noTickets = '暂无功能票。';
static const ticketNotSelected = '请先在功能票列表中选中一张票。';
static const selectedTicket = '已选票';
static const rewards = '获得奖励';
// Settings
static const titleServerSettings = 'Title Server 设置';