|
|
@@ -1,3 +1,5 @@
|
|
|
+import 'dart:io';
|
|
|
+
|
|
|
import 'package:agile_pay/flutter_pay.dart';
|
|
|
import 'package:carousel_slider/carousel_controller.dart';
|
|
|
import 'package:carousel_slider/carousel_options.dart';
|
|
|
@@ -12,6 +14,7 @@ import '../../../data/bean/goods_info.dart';
|
|
|
import '../../../data/bean/member_info.dart';
|
|
|
import '../../../data/bean/pay_way_info.dart';
|
|
|
import '../../../data/bean/wechat_payment_sign_bean.dart';
|
|
|
+import '../../../data/consts/constants.dart';
|
|
|
import '../../../data/consts/error_code.dart';
|
|
|
import '../../../data/consts/payment_type.dart';
|
|
|
import '../../../data/repository/account_repository.dart';
|
|
|
@@ -33,6 +36,9 @@ import '../../../utils/http_handler.dart';
|
|
|
import '../../../utils/payment_status_manager.dart';
|
|
|
import '../../../utils/toast_util.dart';
|
|
|
import '../store_banner_bean.dart';
|
|
|
+import '../suprise/surprise_dialog.dart';
|
|
|
+import '../ticket/discount_ticket_dialog.dart';
|
|
|
+import 'new_discount_page.dart';
|
|
|
|
|
|
@injectable
|
|
|
class NewDiscountController extends BaseController
|
|
|
@@ -45,7 +51,8 @@ class NewDiscountController extends BaseController
|
|
|
|
|
|
final PaymentStatusManager paymentStatusManager;
|
|
|
|
|
|
- RxList<GoodsInfo> get goodsInfoList => storeRepository.newDiscountGoodsInfoList;
|
|
|
+ RxList<GoodsInfo> get goodsInfoList =>
|
|
|
+ storeRepository.newDiscountGoodsInfoList;
|
|
|
|
|
|
RxList<PayWayInfo> get payWayList => storeRepository.newDiscountPayWayList;
|
|
|
|
|
|
@@ -57,7 +64,6 @@ class NewDiscountController extends BaseController
|
|
|
|
|
|
PayWayInfo? get selectedPayWay => _selectedPayWay.value;
|
|
|
|
|
|
-
|
|
|
CancelableFuture? _storeDataFuture;
|
|
|
|
|
|
bool get isLogin => accountRepository.isLogin.value;
|
|
|
@@ -74,8 +80,6 @@ class NewDiscountController extends BaseController
|
|
|
|
|
|
List<CharacterInfo> get charactersList => _charactersList;
|
|
|
|
|
|
-
|
|
|
-
|
|
|
final CarouselSliderController carouselSliderController =
|
|
|
CarouselSliderController();
|
|
|
|
|
|
@@ -156,11 +160,9 @@ class NewDiscountController extends BaseController
|
|
|
}
|
|
|
|
|
|
void refreshStoreData() {
|
|
|
-
|
|
|
storeRepository.refreshNewDiscountGoodsInfoList();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
void updateFilteredGoodsList() {
|
|
|
if (_selectedPayWay.value == null) {
|
|
|
return;
|
|
|
@@ -455,7 +457,6 @@ class NewDiscountController extends BaseController
|
|
|
void onInit() {
|
|
|
super.onInit();
|
|
|
|
|
|
-
|
|
|
if (goodsInfoList.isNotEmpty) {
|
|
|
_selectedGoodsInfoItem.value = goodsInfoList.first;
|
|
|
}
|
|
|
@@ -464,14 +465,13 @@ class NewDiscountController extends BaseController
|
|
|
_selectedPayWay.value = payWayList.first;
|
|
|
updateFilteredGoodsList();
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
ever<List<GoodsInfo>>(goodsInfoList, (list) {
|
|
|
if (list.isNotEmpty) {
|
|
|
_selectedGoodsInfoItem.value = list.first;
|
|
|
}
|
|
|
});
|
|
|
|
|
|
-
|
|
|
ever<List<PayWayInfo>>(payWayList, (list) {
|
|
|
if (list.isNotEmpty) {
|
|
|
_selectedPayWay.value = list.first;
|
|
|
@@ -480,12 +480,31 @@ class NewDiscountController extends BaseController
|
|
|
});
|
|
|
}
|
|
|
|
|
|
-
|
|
|
@override
|
|
|
void onClose() {
|
|
|
super.onClose();
|
|
|
_storeDataFuture?.cancel();
|
|
|
paymentStatusManager.unregisterPaymentSuccessCallback(this);
|
|
|
+ if (!isFirstIntoDiscount() && !accountRepository.isVipUser) {
|
|
|
+ if (Platform.isAndroid) {
|
|
|
+ DiscountTicketDialog.show(
|
|
|
+ clickConfirm: () {
|
|
|
+ NewDiscountPage.start();
|
|
|
+ },
|
|
|
+ clickCancel: () {},
|
|
|
+ );
|
|
|
+ }
|
|
|
+ if (Platform.isIOS) {
|
|
|
+ SurpriseDialog.show(
|
|
|
+ clickConfirm: () {
|
|
|
+ NewDiscountPage.start();
|
|
|
+ },
|
|
|
+ clickCancel: () {},
|
|
|
+ );
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ setFirstIntoDiscount(false);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@override
|
|
|
@@ -496,6 +515,7 @@ class NewDiscountController extends BaseController
|
|
|
) {
|
|
|
LoadingDialog.hide();
|
|
|
AtmobLog.d(tag, 'onPaymentSuccess: $orderNo');
|
|
|
+ Get.back();
|
|
|
PaymentSuccessDialog.show(
|
|
|
goodsInfo: goodsInfo,
|
|
|
btnConfirm: () {
|