Browse Source

[new]当有订阅商品时显示订阅文案

zk 3 months ago
parent
commit
ce8d6e33c8

+ 5 - 0
lib/data/bean/goods_bean.dart

@@ -28,6 +28,9 @@ class GoodsBean {
   @JsonKey(name: 'subscriptionMillis')
   @JsonKey(name: 'subscriptionMillis')
   int subscriptionMillis;
   int subscriptionMillis;
 
 
+  @JsonKey(name: 'subscribable')
+  int subscribable;
+
   @JsonKey(name: 'popular')
   @JsonKey(name: 'popular')
   bool popular;
   bool popular;
 
 
@@ -45,6 +48,7 @@ class GoodsBean {
       this.name,
       this.name,
       this.level,
       this.level,
       this.originalAmount,
       this.originalAmount,
+      this.subscribable,
       this.amount,
       this.amount,
       this.subscriptionMillis,
       this.subscriptionMillis,
       this.popular,
       this.popular,
@@ -61,6 +65,7 @@ class GoodsBean {
       name,
       name,
       level,
       level,
       originalAmount,
       originalAmount,
+      subscribable,
       amount,
       amount,
       subscriptionMillis,
       subscriptionMillis,
       popular,
       popular,

+ 2 - 0
lib/data/bean/goods_bean.g.dart

@@ -11,6 +11,7 @@ GoodsBean _$GoodsBeanFromJson(Map<String, dynamic> json) => GoodsBean(
       json['name'] as String,
       json['name'] as String,
       (json['level'] as num).toInt(),
       (json['level'] as num).toInt(),
       (json['originalAmount'] as num).toInt(),
       (json['originalAmount'] as num).toInt(),
+      (json['subscribable'] as num).toInt(),
       (json['amount'] as num).toInt(),
       (json['amount'] as num).toInt(),
       (json['subscriptionMillis'] as num).toInt(),
       (json['subscriptionMillis'] as num).toInt(),
       json['popular'] as bool,
       json['popular'] as bool,
@@ -30,6 +31,7 @@ Map<String, dynamic> _$GoodsBeanToJson(GoodsBean instance) => <String, dynamic>{
       'originalAmount': instance.originalAmount,
       'originalAmount': instance.originalAmount,
       'amount': instance.amount,
       'amount': instance.amount,
       'subscriptionMillis': instance.subscriptionMillis,
       'subscriptionMillis': instance.subscriptionMillis,
+      'subscribable': instance.subscribable,
       'popular': instance.popular,
       'popular': instance.popular,
       'newcomer': instance.newcomer,
       'newcomer': instance.newcomer,
       'tag': instance.tag,
       'tag': instance.tag,

+ 19 - 0
lib/module/member/member_controller.dart

@@ -53,6 +53,10 @@ class MemberController extends BaseController implements PaymentStatusCallback {
   final MemberRepository memberRepository;
   final MemberRepository memberRepository;
   final PaymentStatusManager paymentStatusManager;
   final PaymentStatusManager paymentStatusManager;
 
 
+  final RxBool _isShowMemberSubscribeTxt = false.obs;
+
+  bool get isShowMemberSubscribeTxt => _isShowMemberSubscribeTxt.value;
+
   final switcherController = SwitcherController();
   final switcherController = SwitcherController();
 
 
   final ScrollController scrollController = ScrollController();
   final ScrollController scrollController = ScrollController();
@@ -246,6 +250,7 @@ class MemberController extends BaseController implements PaymentStatusCallback {
       payItemList.clear();
       payItemList.clear();
       evaluateList.clear();
       evaluateList.clear();
       _selectedGoods.value = null;
       _selectedGoods.value = null;
+      _checkMemberHasSubscribe(response.goodsList);
       if (response.goodsList?.isNotEmpty == true) {
       if (response.goodsList?.isNotEmpty == true) {
         goodsList.addAll(response.goodsList!);
         goodsList.addAll(response.goodsList!);
         _selectedGoods.value = goodsList.first;
         _selectedGoods.value = goodsList.first;
@@ -260,6 +265,20 @@ class MemberController extends BaseController implements PaymentStatusCallback {
     });
     });
   }
   }
 
 
+  void _checkMemberHasSubscribe(List<GoodsBean>? goodsList) {
+    if (goodsList == null) {
+      _isShowMemberSubscribeTxt.value = false;
+      return;
+    }
+    for (var goods in goodsList) {
+      if (goods.subscribable == 1) {
+        _isShowMemberSubscribeTxt.value = true;
+        return;
+      }
+    }
+    _isShowMemberSubscribeTxt.value = false;
+  }
+
   void onGoodsItemClick(GoodsBean item) {
   void onGoodsItemClick(GoodsBean item) {
     _selectedGoods.value = item;
     _selectedGoods.value = item;
     onBuyClick();
     onBuyClick();

+ 16 - 12
lib/module/member/member_page.dart

@@ -153,18 +153,22 @@ class MemberPage extends BasePage<MemberController> {
                             ),
                             ),
                             //SizedBox(height: 8.w),
                             //SizedBox(height: 8.w),
                             buildUserEvaluateList(),
                             buildUserEvaluateList(),
-                            Visibility(
-                                visible: Platform.isIOS,
-                                child: Padding(
-                                  padding: EdgeInsets.only(
-                                      left: 16.w, right: 16.w, top: 16.w),
-                                  child: Text(
-                                    StringName.memberIosPayDesc,
-                                    style: TextStyle(
-                                        fontSize: 10.sp,
-                                        color: ColorName.black60),
-                                  ),
-                                )),
+                            Obx(() {
+                              return Visibility(
+                                  visible:
+                                      controller.isShowMemberSubscribeTxt &&
+                                          Platform.isIOS,
+                                  child: Padding(
+                                    padding: EdgeInsets.only(
+                                        left: 16.w, right: 16.w, top: 16.w),
+                                    child: Text(
+                                      StringName.memberIosPayDesc,
+                                      style: TextStyle(
+                                          fontSize: 10.sp,
+                                          color: ColorName.black60),
+                                    ),
+                                  ));
+                            }),
                             SizedBox(
                             SizedBox(
                                 height: 190.w +
                                 height: 190.w +
                                     MediaQuery.of(Get.context!).padding.bottom)
                                     MediaQuery.of(Get.context!).padding.bottom)