优化订阅逻辑-未绑定账号的必须登录才可以购买套餐
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import 'package:get/get.dart';
|
||||
import 'package:kaer_with_panels/app/common/app_run_data.dart';
|
||||
import 'package:kaer_with_panels/app/widgets/dialogs/kr_dialog.dart';
|
||||
import 'package:kaer_with_panels/app/routes/app_pages.dart';
|
||||
import 'package:kaer_with_panels/app/utils/kr_log_util.dart';
|
||||
|
||||
/// 订阅导航工具类
|
||||
/// 用于统一处理订阅相关的导航逻辑
|
||||
class KRSubscribeNavigationUtil {
|
||||
/// 导航到购买会员页面
|
||||
/// 如果是设备登录用户,会先提示需要绑定账号,然后跳转到登录页面
|
||||
/// 如果是普通用户,直接跳转到购买会员页面
|
||||
///
|
||||
/// [tag] 调用来源标签,用于日志记录
|
||||
static void navigateToPurchase({String tag = 'Subscribe'}) {
|
||||
final appRunData = KRAppRunData.getInstance();
|
||||
final isDeviceLogin = appRunData.isDeviceLogin();
|
||||
final account = appRunData.kr_account.value;
|
||||
|
||||
KRLogUtil.kr_i('=== 订阅按钮点击 ===', tag: tag);
|
||||
KRLogUtil.kr_i('账号: $account', tag: tag);
|
||||
KRLogUtil.kr_i('是否设备登录: $isDeviceLogin', tag: tag);
|
||||
|
||||
if (isDeviceLogin) {
|
||||
// 设备登录用户需要绑定账号
|
||||
KRLogUtil.kr_i('检测到设备登录,显示绑定提示', tag: tag);
|
||||
KRDialog.show(
|
||||
title: '提示',
|
||||
message: '购买套餐需要登录绑定用户',
|
||||
confirmText: '确定',
|
||||
cancelText: '取消',
|
||||
onConfirm: () {
|
||||
Get.back(); // 关闭对话框
|
||||
// 跳转到登录页面(保持设备登录状态)
|
||||
Get.toNamed(Routes.MR_LOGIN);
|
||||
},
|
||||
onCancel: () => Get.back(),
|
||||
);
|
||||
} else {
|
||||
// 正常流程 - 跳转到购买页面
|
||||
KRLogUtil.kr_i('普通用户,跳转到购买页面', tag: tag);
|
||||
Get.toNamed(Routes.KR_PURCHASE_MEMBERSHIP);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user