优化订阅逻辑-未绑定账号的必须登录才可以购买套餐

This commit is contained in:
Rust 2025-10-17 21:42:48 +08:00
parent de9cf751f3
commit 135d60aaa6
6 changed files with 57 additions and 7 deletions

View File

@ -5,6 +5,7 @@ import 'package:kaer_with_panels/app/localization/app_translations.dart';
import 'package:kaer_with_panels/app/widgets/kr_app_text_style.dart';
import 'package:kaer_with_panels/app/widgets/kr_local_image.dart';
import 'package:kaer_with_panels/app/routes/app_pages.dart';
import 'package:kaer_with_panels/app/utils/kr_subscribe_navigation_util.dart';
import '../controllers/kr_home_controller.dart';
import '../models/kr_home_views_status.dart';
@ -43,8 +44,8 @@ class KRHomeConnectionOptionsView extends GetView<KRHomeController> {
return GestureDetector(
onTap: () {
if (controller.kr_subscribeService.kr_currentSubscribe.value == null) {
//
Get.toNamed(Routes.KR_PURCHASE_MEMBERSHIP);
// 使
KRSubscribeNavigationUtil.navigateToPurchase(tag: 'ConnectionOptions');
} else {
//
onTap?.call();

View File

@ -4,6 +4,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:kaer_with_panels/app/localization/app_translations.dart';
import 'package:kaer_with_panels/app/widgets/kr_app_text_style.dart';
import '../../../routes/app_pages.dart';
import '../../../utils/kr_subscribe_navigation_util.dart';
import '../controllers/kr_home_controller.dart';
@ -40,7 +41,7 @@ class KRHomeLastDayCard extends GetView<KRHomeController> {
),
),
GestureDetector(
onTap: () => Get.toNamed(Routes.KR_PURCHASE_MEMBERSHIP),
onTap: () => KRSubscribeNavigationUtil.navigateToPurchase(tag: 'LastDayCard'),
child: Row(
children: [
Text(

View File

@ -6,6 +6,7 @@ import 'package:kaer_with_panels/app/widgets/kr_app_text_style.dart';
import '../../../routes/app_pages.dart';
import '../../../services/kr_subscribe_service.dart';
import '../../../utils/kr_log_util.dart';
import '../../../utils/kr_subscribe_navigation_util.dart';
import '../controllers/kr_home_controller.dart';
///
@ -41,7 +42,7 @@ class KRHomeTrialCard extends GetView<KRHomeController> {
),
),
GestureDetector(
onTap: () => Get.toNamed(Routes.KR_PURCHASE_MEMBERSHIP),
onTap: () => KRSubscribeNavigationUtil.navigateToPurchase(tag: 'TrialCard'),
child: Row(
children: [
Text(

View File

@ -4,6 +4,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:kaer_with_panels/app/localization/app_translations.dart';
import 'package:kaer_with_panels/app/routes/app_pages.dart';
import 'package:kaer_with_panels/app/utils/kr_subscribe_navigation_util.dart';
import '../../../widgets/kr_app_text_style.dart';
@ -65,7 +66,7 @@ class KRSubscriptionCard extends StatelessWidget {
width: double.infinity,
height: 42.h,
child: ElevatedButton(
onPressed: () => Get.toNamed(Routes.KR_PURCHASE_MEMBERSHIP),
onPressed: () => KRSubscribeNavigationUtil.navigateToPurchase(tag: 'SubscriptionCard'),
style: ElevatedButton.styleFrom(
backgroundColor: Colors.blue,
elevation: 0,

View File

@ -14,6 +14,7 @@ import 'package:kaer_with_panels/app/widgets/kr_app_text_style.dart';
import 'package:kaer_with_panels/app/widgets/kr_local_image.dart';
import 'package:kaer_with_panels/app/modules/kr_main/controllers/kr_main_controller.dart';
import 'package:kaer_with_panels/app/modules/kr_home/widgets/kr_subscribe_selector_view.dart';
import 'package:kaer_with_panels/app/utils/kr_subscribe_navigation_util.dart';
import '../../../common/app_run_data.dart';
import '../../../model/response/kr_user_available_subscribe.dart';
import '../../../services/kr_subscribe_service.dart';
@ -533,7 +534,7 @@ class KRUserInfoView extends GetView<KRUserInfoController> {
children: [
Expanded(
child: ElevatedButton(
onPressed: () => Get.toNamed(Routes.KR_PURCHASE_MEMBERSHIP),
onPressed: () => KRSubscribeNavigationUtil.navigateToPurchase(tag: 'UserInfo'),
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xFF1797FF),
foregroundColor: Colors.white,
@ -597,7 +598,7 @@ class KRUserInfoView extends GetView<KRUserInfoController> {
ElevatedButton(
onPressed: !isLoggedIn
? () => Get.find<KRMainController>().kr_setPage(0)
: () => Get.toNamed(Routes.KR_PURCHASE_MEMBERSHIP),
: () => KRSubscribeNavigationUtil.navigateToPurchase(tag: 'UserInfo'),
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xFF1797FF),
foregroundColor: Colors.white,

View File

@ -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);
}
}
}