第一次打开:
App启动 → 设备登录 → 保存Token → 进入主页
后续打开:
App启动 → 检测本地Token → Token有效 → 自动登录 → 进入主页
↓
Token失效/无效 → 自动设备登录 → 更新Token → 进入主页
This commit is contained in:
parent
06a198a975
commit
a3b7c418b1
@ -193,11 +193,16 @@ class KRPackageListItem {
|
|||||||
final descriptionJson = json['description'];
|
final descriptionJson = json['description'];
|
||||||
KRDescription description;
|
KRDescription description;
|
||||||
if (descriptionJson is String) {
|
if (descriptionJson is String) {
|
||||||
try {
|
// 如果是空字符串,直接返回空描述
|
||||||
description = KRDescription.fromJson(jsonDecode(descriptionJson));
|
if (descriptionJson.isEmpty) {
|
||||||
} catch (e) {
|
|
||||||
KRLogUtil.kr_e('解析描述信息失败: $e');
|
|
||||||
description = KRDescription(kr_features: []);
|
description = KRDescription(kr_features: []);
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
description = KRDescription.fromJson(jsonDecode(descriptionJson));
|
||||||
|
} catch (e) {
|
||||||
|
KRLogUtil.kr_e('解析描述信息失败: $e');
|
||||||
|
description = KRDescription(kr_features: []);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (descriptionJson is Map<String, dynamic>) {
|
} else if (descriptionJson is Map<String, dynamic>) {
|
||||||
description = KRDescription.fromJson(descriptionJson);
|
description = KRDescription.fromJson(descriptionJson);
|
||||||
|
|||||||
@ -622,11 +622,12 @@ class KRLoginView extends GetView<KRLoginController> {
|
|||||||
/// 显示悬浮框
|
/// 显示悬浮框
|
||||||
void _showDropdown(BuildContext context) {
|
void _showDropdown(BuildContext context) {
|
||||||
final theme = Theme.of(context);
|
final theme = Theme.of(context);
|
||||||
|
final mediaQuery = MediaQuery.of(context);
|
||||||
if (controller.isDropdownVisible) return;
|
if (controller.isDropdownVisible) return;
|
||||||
|
|
||||||
controller.overlayEntry = OverlayEntry(
|
controller.overlayEntry = OverlayEntry(
|
||||||
builder: (_) => Positioned(
|
builder: (BuildContext overlayContext) => Positioned(
|
||||||
width: MediaQuery.of(context).size.width - 40.w,
|
width: mediaQuery.size.width - 40.w,
|
||||||
child: CompositedTransformFollower(
|
child: CompositedTransformFollower(
|
||||||
link: controller.kr_layerLink,
|
link: controller.kr_layerLink,
|
||||||
showWhenUnlinked: false,
|
showWhenUnlinked: false,
|
||||||
|
|||||||
@ -100,7 +100,7 @@ class KRPurchaseMembershipController extends GetxController {
|
|||||||
await _iniUserInfo();
|
await _iniUserInfo();
|
||||||
await kr_getAlreadySubscribe();
|
await kr_getAlreadySubscribe();
|
||||||
await kr_fetchPackages();
|
await kr_fetchPackages();
|
||||||
await kr_fetchPaymentMethods();
|
// await kr_fetchPaymentMethods(); // ⚠️ 后端暂未实现 /v1/app/payment/methods 接口
|
||||||
|
|
||||||
// 根据套餐数量决定是否显示套餐选择器
|
// 根据套餐数量决定是否显示套餐选择器
|
||||||
kr_showPlanSelector.value = kr_plans.length > 1;
|
kr_showPlanSelector.value = kr_plans.length > 1;
|
||||||
@ -300,11 +300,12 @@ class KRPurchaseMembershipController extends GetxController {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (kr_selectedPaymentMethodIndex.value < 0 ||
|
// ⚠️ 支付方式接口暂未实现,暂时跳过支付方式验证
|
||||||
kr_selectedPaymentMethodIndex.value >= kr_paymentMethods.length) {
|
// if (kr_selectedPaymentMethodIndex.value < 0 ||
|
||||||
KRCommonUtil.kr_showToast('请选择支付方式');
|
// kr_selectedPaymentMethodIndex.value >= kr_paymentMethods.length) {
|
||||||
return false;
|
// KRCommonUtil.kr_showToast('请选择支付方式');
|
||||||
}
|
// return false;
|
||||||
|
// }
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -312,8 +313,14 @@ class KRPurchaseMembershipController extends GetxController {
|
|||||||
/// 处理购买和结账流程
|
/// 处理购买和结账流程
|
||||||
Future<void> kr_processPurchaseAndCheckout() async {
|
Future<void> kr_processPurchaseAndCheckout() async {
|
||||||
final selectedPlan = kr_plans[kr_selectedPlanIndex.value];
|
final selectedPlan = kr_plans[kr_selectedPlanIndex.value];
|
||||||
final selectedPaymentMethod =
|
|
||||||
kr_paymentMethods[kr_selectedPaymentMethodIndex.value];
|
// ⚠️ 支付方式接口暂未实现,使用默认支付方式 ID (1) 和平台 'alipay'
|
||||||
|
final paymentMethodId = kr_paymentMethods.isNotEmpty && kr_selectedPaymentMethodIndex.value >= 0
|
||||||
|
? kr_paymentMethods[kr_selectedPaymentMethodIndex.value].id
|
||||||
|
: 1;
|
||||||
|
final paymentPlatform = kr_paymentMethods.isNotEmpty && kr_selectedPaymentMethodIndex.value >= 0
|
||||||
|
? kr_paymentMethods[kr_selectedPaymentMethodIndex.value].platform
|
||||||
|
: 'alipay';
|
||||||
|
|
||||||
// 获取选中的数量
|
// 获取选中的数量
|
||||||
final quantity = kr_getSelectedQuantity();
|
final quantity = kr_getSelectedQuantity();
|
||||||
@ -334,13 +341,13 @@ class KRPurchaseMembershipController extends GetxController {
|
|||||||
? await _kr_subscribeApi.kr_renewal(
|
? await _kr_subscribeApi.kr_renewal(
|
||||||
subscribeId,
|
subscribeId,
|
||||||
quantity,
|
quantity,
|
||||||
selectedPaymentMethod.id,
|
paymentMethodId,
|
||||||
'',
|
'',
|
||||||
)
|
)
|
||||||
: await _kr_subscribeApi.kr_purchase(
|
: await _kr_subscribeApi.kr_purchase(
|
||||||
selectedPlan.kr_id,
|
selectedPlan.kr_id,
|
||||||
quantity,
|
quantity,
|
||||||
selectedPaymentMethod.id,
|
paymentMethodId,
|
||||||
'',
|
'',
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -356,7 +363,7 @@ class KRPurchaseMembershipController extends GetxController {
|
|||||||
arguments: {
|
arguments: {
|
||||||
'url': uri,
|
'url': uri,
|
||||||
'order': order,
|
'order': order,
|
||||||
'payment_type': selectedPaymentMethod.platform,
|
'payment_type': paymentPlatform,
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@ -44,7 +44,7 @@ class HttpUtil {
|
|||||||
|
|
||||||
/// 对dio进行配置
|
/// 对dio进行配置
|
||||||
void initDio() {
|
void initDio() {
|
||||||
Loggy.initLoggy(logPrinter: PrettyPrinter());
|
Loggy.initLoggy(logPrinter: _KRSimpleLogPrinter());
|
||||||
_dio.interceptors.add(LoggyDioInterceptor(requestBody: true));
|
_dio.interceptors.add(LoggyDioInterceptor(requestBody: true));
|
||||||
_dio.options.baseUrl = AppConfig.getInstance().baseUrl;
|
_dio.options.baseUrl = AppConfig.getInstance().baseUrl;
|
||||||
// 添加日志拦截器
|
// 添加日志拦截器
|
||||||
@ -290,3 +290,11 @@ class MyInterceptor extends Interceptor {
|
|||||||
handler.next(err);
|
handler.next(err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// 自定义简洁日志打印机(无边框符号)
|
||||||
|
class _KRSimpleLogPrinter extends LoggyPrinter {
|
||||||
|
@override
|
||||||
|
void onLog(LogRecord record) {
|
||||||
|
print(record.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user