fix: 更新诸多bug

This commit is contained in:
2026-01-08 02:01:21 -08:00
parent 9563a81a6e
commit 8477c2e343
96 changed files with 1338 additions and 5695 deletions
@@ -246,13 +246,13 @@ class KRPurchaseMembershipController extends GetxController {
/// 获取用户已订阅套餐
Future<void> kr_getAlreadySubscribe() async {
final either = await _kr_subscribeApi.kr_getAlreadySubscribe();
final either = await _kr_subscribeApi.kr_getAlreadySubscribe(includeExpired: 'all');
either.fold(
(error) => KRCommonUtil.kr_showToast(error.msg),
(alreadySubscribe) {
_kr_alreadySubscribe = alreadySubscribe;
KRLogUtil.kr_i(
'订阅套餐: ${_kr_alreadySubscribe.map((e) => e.subscribeId).toList()}',
'获取所有订阅记录(含过期): ${_kr_alreadySubscribe.map((e) => "ID:${e.userSubscribeId}, SubID:${e.subscribeId}").toList()}',
tag: 'PurchaseMembershipController');
},
);
@@ -558,19 +558,18 @@ class KRPurchaseMembershipController extends GetxController {
// =========================================================================
final quantity = kr_getSelectedQuantity();
// 判断是续订还是新购
final isRenewal = _kr_alreadySubscribe
.any((subscribe) => subscribe.subscribeId == selectedPlan.kr_id);
final subscribeId = isRenewal
? _kr_alreadySubscribe
.firstWhere(
(subscribe) => subscribe.subscribeId == selectedPlan.kr_id,
orElse: () =>
KRAlreadySubscribe(userSubscribeId: 0, subscribeId: 0), // 默认值
)
.userSubscribeId
// 判断是续订还是新购:查找匹配选中套餐 ID 的最后一项记录(最新的记录,可能已过期)
final matchingSubscribes = _kr_alreadySubscribe
.where((subscribe) => subscribe.subscribeId == selectedPlan.kr_id)
.toList();
final bool isRenewal = matchingSubscribes.isNotEmpty;
final int subscribeId = isRenewal
? matchingSubscribes.last.userSubscribeId
: 0;
print('📊 [Purchase] 订阅判断: isRenewal=$isRenewal, userSubscribeId=$subscribeId');
// 根据判断结果调用不同的接口
final purchaseEither = isRenewal
? await _kr_subscribeApi.kr_renewal(