Showing
17 changed files
with
974 additions
and
10 deletions
| ... | @@ -30,8 +30,25 @@ | ... | @@ -30,8 +30,25 @@ |
| 30 | android:name="com.yalantis.ucrop.UCropActivity" | 30 | android:name="com.yalantis.ucrop.UCropActivity" |
| 31 | android:screenOrientation="portrait" | 31 | android:screenOrientation="portrait" |
| 32 | android:theme="@style/Theme.AppCompat.Light.NoActionBar" /> | 32 | android:theme="@style/Theme.AppCompat.Light.NoActionBar" /> |
| 33 | + <activity | ||
| 34 | + android:name="com.braintreepayments.api.BraintreeBrowserSwitchActivity" | ||
| 35 | + android:launchMode="singleTask" | ||
| 36 | + android:exported="true"> | ||
| 37 | + <intent-filter> | ||
| 38 | + <action android:name="android.intent.action.VIEW" /> | ||
| 39 | + | ||
| 40 | + <category android:name="android.intent.category.DEFAULT" /> | ||
| 41 | + <category android:name="android.intent.category.BROWSABLE" /> | ||
| 42 | + | ||
| 43 | + <data android:scheme="pub.yiyan.parlando.Parlando.braintree" /> | ||
| 44 | + </intent-filter> | ||
| 45 | + </activity> | ||
| 46 | + | ||
| 33 | <meta-data | 47 | <meta-data |
| 34 | android:name="flutterEmbedding" | 48 | android:name="flutterEmbedding" |
| 35 | android:value="2" /> | 49 | android:value="2" /> |
| 50 | + <meta-data | ||
| 51 | + android:name="com.google.android.gms.wallet.api.enabled" | ||
| 52 | + android:value="true" /> | ||
| 36 | </application> | 53 | </application> |
| 37 | </manifest> | 54 | </manifest> | ... | ... |
| ... | @@ -344,6 +344,7 @@ class MapScreenState extends State<AccountEditPage> | ... | @@ -344,6 +344,7 @@ class MapScreenState extends State<AccountEditPage> |
| 344 | mainAxisAlignment: MainAxisAlignment.start, | 344 | mainAxisAlignment: MainAxisAlignment.start, |
| 345 | children: <Widget>[ | 345 | children: <Widget>[ |
| 346 | Expanded( | 346 | Expanded( |
| 347 | + flex: 2, | ||
| 347 | child: Text( | 348 | child: Text( |
| 348 | ParlandoLocalizations.of(context) | 349 | ParlandoLocalizations.of(context) |
| 349 | .accountEditPageUserGender, | 350 | .accountEditPageUserGender, |
| ... | @@ -352,9 +353,9 @@ class MapScreenState extends State<AccountEditPage> | ... | @@ -352,9 +353,9 @@ class MapScreenState extends State<AccountEditPage> |
| 352 | fontWeight: FontWeight.bold, | 353 | fontWeight: FontWeight.bold, |
| 353 | ), | 354 | ), |
| 354 | ), | 355 | ), |
| 355 | - flex: 2, | ||
| 356 | ), | 356 | ), |
| 357 | Expanded( | 357 | Expanded( |
| 358 | + flex: 2, | ||
| 358 | child: Text( | 359 | child: Text( |
| 359 | ParlandoLocalizations.of(context) | 360 | ParlandoLocalizations.of(context) |
| 360 | .accountEditPageUserBirthday, | 361 | .accountEditPageUserBirthday, |
| ... | @@ -363,7 +364,6 @@ class MapScreenState extends State<AccountEditPage> | ... | @@ -363,7 +364,6 @@ class MapScreenState extends State<AccountEditPage> |
| 363 | fontWeight: FontWeight.bold, | 364 | fontWeight: FontWeight.bold, |
| 364 | ), | 365 | ), |
| 365 | ), | 366 | ), |
| 366 | - flex: 2, | ||
| 367 | ), | 367 | ), |
| 368 | ], | 368 | ], |
| 369 | )), | 369 | )), |
| ... | @@ -378,6 +378,7 @@ class MapScreenState extends State<AccountEditPage> | ... | @@ -378,6 +378,7 @@ class MapScreenState extends State<AccountEditPage> |
| 378 | mainAxisAlignment: MainAxisAlignment.start, | 378 | mainAxisAlignment: MainAxisAlignment.start, |
| 379 | children: <Widget>[ | 379 | children: <Widget>[ |
| 380 | Flexible( | 380 | Flexible( |
| 381 | + flex: 2, | ||
| 381 | child: Padding( | 382 | child: Padding( |
| 382 | padding: EdgeInsets.only(right: 10.px), | 383 | padding: EdgeInsets.only(right: 10.px), |
| 383 | child: TextField( | 384 | child: TextField( |
| ... | @@ -389,9 +390,9 @@ class MapScreenState extends State<AccountEditPage> | ... | @@ -389,9 +390,9 @@ class MapScreenState extends State<AccountEditPage> |
| 389 | enabled: !_status, | 390 | enabled: !_status, |
| 390 | ), | 391 | ), |
| 391 | ), | 392 | ), |
| 392 | - flex: 2, | ||
| 393 | ), | 393 | ), |
| 394 | Flexible( | 394 | Flexible( |
| 395 | + flex: 2, | ||
| 395 | child: TextField( | 396 | child: TextField( |
| 396 | decoration: InputDecoration( | 397 | decoration: InputDecoration( |
| 397 | hintText: ParlandoLocalizations.of( | 398 | hintText: ParlandoLocalizations.of( |
| ... | @@ -400,7 +401,6 @@ class MapScreenState extends State<AccountEditPage> | ... | @@ -400,7 +401,6 @@ class MapScreenState extends State<AccountEditPage> |
| 400 | ), | 401 | ), |
| 401 | enabled: !_status, | 402 | enabled: !_status, |
| 402 | ), | 403 | ), |
| 403 | - flex: 2, | ||
| 404 | ), | 404 | ), |
| 405 | ], | 405 | ], |
| 406 | )), | 406 | )), |
| ... | @@ -436,6 +436,7 @@ class MapScreenState extends State<AccountEditPage> | ... | @@ -436,6 +436,7 @@ class MapScreenState extends State<AccountEditPage> |
| 436 | mainAxisAlignment: MainAxisAlignment.start, | 436 | mainAxisAlignment: MainAxisAlignment.start, |
| 437 | children: <Widget>[ | 437 | children: <Widget>[ |
| 438 | Expanded( | 438 | Expanded( |
| 439 | + flex: 2, | ||
| 439 | child: Padding( | 440 | child: Padding( |
| 440 | padding: EdgeInsets.only(right: 10.px), | 441 | padding: EdgeInsets.only(right: 10.px), |
| 441 | child: ElevatedButton( | 442 | child: ElevatedButton( |
| ... | @@ -448,9 +449,9 @@ class MapScreenState extends State<AccountEditPage> | ... | @@ -448,9 +449,9 @@ class MapScreenState extends State<AccountEditPage> |
| 448 | }, | 449 | }, |
| 449 | ), | 450 | ), |
| 450 | ), | 451 | ), |
| 451 | - flex: 2, | ||
| 452 | ), | 452 | ), |
| 453 | Expanded( | 453 | Expanded( |
| 454 | + flex: 2, | ||
| 454 | child: Padding( | 455 | child: Padding( |
| 455 | padding: EdgeInsets.only(left: 10.px), | 456 | padding: EdgeInsets.only(left: 10.px), |
| 456 | child: ElevatedButton( | 457 | child: ElevatedButton( |
| ... | @@ -465,7 +466,6 @@ class MapScreenState extends State<AccountEditPage> | ... | @@ -465,7 +466,6 @@ class MapScreenState extends State<AccountEditPage> |
| 465 | }, | 466 | }, |
| 466 | ), | 467 | ), |
| 467 | ), | 468 | ), |
| 468 | - flex: 2, | ||
| 469 | ), | 469 | ), |
| 470 | ], | 470 | ], |
| 471 | ), | 471 | ), | ... | ... |
| ... | @@ -11,7 +11,6 @@ import 'package:cached_network_image/cached_network_image.dart'; | ... | @@ -11,7 +11,6 @@ import 'package:cached_network_image/cached_network_image.dart'; |
| 11 | import 'package:flustars/flustars.dart'; | 11 | import 'package:flustars/flustars.dart'; |
| 12 | import 'package:flutter/material.dart'; | 12 | import 'package:flutter/material.dart'; |
| 13 | import 'package:Parlando/membership/membership_router.dart'; | 13 | import 'package:Parlando/membership/membership_router.dart'; |
| 14 | -import 'package:Parlando/poem/poem_router.dart'; | ||
| 15 | import 'package:Parlando/routers/fluro_navigator.dart'; | 14 | import 'package:Parlando/routers/fluro_navigator.dart'; |
| 16 | import 'package:Parlando/setting/setting_router.dart'; | 15 | import 'package:Parlando/setting/setting_router.dart'; |
| 17 | import 'package:Parlando/tiktok/style/style.dart'; | 16 | import 'package:Parlando/tiktok/style/style.dart'; | ... | ... |
| ... | @@ -13,12 +13,16 @@ import 'package:Parlando/category/models/category_item_entity.dart'; | ... | @@ -13,12 +13,16 @@ import 'package:Parlando/category/models/category_item_entity.dart'; |
| 13 | import 'package:Parlando/home/models/home_entity.dart'; | 13 | import 'package:Parlando/home/models/home_entity.dart'; |
| 14 | import 'package:Parlando/home/models/setting_entity.dart'; | 14 | import 'package:Parlando/home/models/setting_entity.dart'; |
| 15 | import 'package:Parlando/login/models/auth_entity.dart'; | 15 | import 'package:Parlando/login/models/auth_entity.dart'; |
| 16 | +import 'package:Parlando/membership/models/membership_entity.dart'; | ||
| 17 | +import 'package:Parlando/membership/models/order_entity.dart'; | ||
| 18 | +import 'package:Parlando/membership/models/pay_entity.dart'; | ||
| 16 | import 'package:Parlando/models/upload_entity.dart'; | 19 | import 'package:Parlando/models/upload_entity.dart'; |
| 17 | import 'package:Parlando/poem/models/lang_sort_entity.dart'; | 20 | import 'package:Parlando/poem/models/lang_sort_entity.dart'; |
| 18 | import 'package:Parlando/poem/models/search_entity.dart'; | 21 | import 'package:Parlando/poem/models/search_entity.dart'; |
| 19 | import 'package:Parlando/timeline/models/friend_entity.dart'; | 22 | import 'package:Parlando/timeline/models/friend_entity.dart'; |
| 20 | 23 | ||
| 21 | JsonConvert jsonConvert = JsonConvert(); | 24 | JsonConvert jsonConvert = JsonConvert(); |
| 25 | + | ||
| 22 | typedef JsonConvertFunction<T> = T Function(Map<String, dynamic> json); | 26 | typedef JsonConvertFunction<T> = T Function(Map<String, dynamic> json); |
| 23 | 27 | ||
| 24 | class JsonConvert { | 28 | class JsonConvert { |
| ... | @@ -54,6 +58,21 @@ class JsonConvert { | ... | @@ -54,6 +58,21 @@ class JsonConvert { |
| 54 | (AuthEntity).toString(): AuthEntity.fromJson, | 58 | (AuthEntity).toString(): AuthEntity.fromJson, |
| 55 | (AuthData).toString(): AuthData.fromJson, | 59 | (AuthData).toString(): AuthData.fromJson, |
| 56 | (AuthError).toString(): AuthError.fromJson, | 60 | (AuthError).toString(): AuthError.fromJson, |
| 61 | + (MembershipEntity).toString(): MembershipEntity.fromJson, | ||
| 62 | + (MembershipData).toString(): MembershipData.fromJson, | ||
| 63 | + (MembershipDataGoodsList).toString(): MembershipDataGoodsList.fromJson, | ||
| 64 | + (MembershipError).toString(): MembershipError.fromJson, | ||
| 65 | + (OrderEntity).toString(): OrderEntity.fromJson, | ||
| 66 | + (OrderData).toString(): OrderData.fromJson, | ||
| 67 | + (OrderError).toString(): OrderError.fromJson, | ||
| 68 | + (PayEntity).toString(): PayEntity.fromJson, | ||
| 69 | + (PayData).toString(): PayData.fromJson, | ||
| 70 | + (PayDataPurchaseUnits).toString(): PayDataPurchaseUnits.fromJson, | ||
| 71 | + (PayDataPurchaseUnitsAmount).toString(): | ||
| 72 | + PayDataPurchaseUnitsAmount.fromJson, | ||
| 73 | + (PayDataPurchaseUnitsPayee).toString(): PayDataPurchaseUnitsPayee.fromJson, | ||
| 74 | + (PayDataLinks).toString(): PayDataLinks.fromJson, | ||
| 75 | + (PayError).toString(): PayError.fromJson, | ||
| 57 | (UploadEntity).toString(): UploadEntity.fromJson, | 76 | (UploadEntity).toString(): UploadEntity.fromJson, |
| 58 | (UploadData).toString(): UploadData.fromJson, | 77 | (UploadData).toString(): UploadData.fromJson, |
| 59 | (UploadError).toString(): UploadError.fromJson, | 78 | (UploadError).toString(): UploadError.fromJson, |
| ... | @@ -306,6 +325,84 @@ class JsonConvert { | ... | @@ -306,6 +325,84 @@ class JsonConvert { |
| 306 | .map<AuthError>((Map<String, dynamic> e) => AuthError.fromJson(e)) | 325 | .map<AuthError>((Map<String, dynamic> e) => AuthError.fromJson(e)) |
| 307 | .toList() as M; | 326 | .toList() as M; |
| 308 | } | 327 | } |
| 328 | + if (<MembershipEntity>[] is M) { | ||
| 329 | + return data | ||
| 330 | + .map<MembershipEntity>( | ||
| 331 | + (Map<String, dynamic> e) => MembershipEntity.fromJson(e)) | ||
| 332 | + .toList() as M; | ||
| 333 | + } | ||
| 334 | + if (<MembershipData>[] is M) { | ||
| 335 | + return data | ||
| 336 | + .map<MembershipData>( | ||
| 337 | + (Map<String, dynamic> e) => MembershipData.fromJson(e)) | ||
| 338 | + .toList() as M; | ||
| 339 | + } | ||
| 340 | + if (<MembershipDataGoodsList>[] is M) { | ||
| 341 | + return data | ||
| 342 | + .map<MembershipDataGoodsList>( | ||
| 343 | + (Map<String, dynamic> e) => MembershipDataGoodsList.fromJson(e)) | ||
| 344 | + .toList() as M; | ||
| 345 | + } | ||
| 346 | + if (<MembershipError>[] is M) { | ||
| 347 | + return data | ||
| 348 | + .map<MembershipError>( | ||
| 349 | + (Map<String, dynamic> e) => MembershipError.fromJson(e)) | ||
| 350 | + .toList() as M; | ||
| 351 | + } | ||
| 352 | + if (<OrderEntity>[] is M) { | ||
| 353 | + return data | ||
| 354 | + .map<OrderEntity>((Map<String, dynamic> e) => OrderEntity.fromJson(e)) | ||
| 355 | + .toList() as M; | ||
| 356 | + } | ||
| 357 | + if (<OrderData>[] is M) { | ||
| 358 | + return data | ||
| 359 | + .map<OrderData>((Map<String, dynamic> e) => OrderData.fromJson(e)) | ||
| 360 | + .toList() as M; | ||
| 361 | + } | ||
| 362 | + if (<OrderError>[] is M) { | ||
| 363 | + return data | ||
| 364 | + .map<OrderError>((Map<String, dynamic> e) => OrderError.fromJson(e)) | ||
| 365 | + .toList() as M; | ||
| 366 | + } | ||
| 367 | + if (<PayEntity>[] is M) { | ||
| 368 | + return data | ||
| 369 | + .map<PayEntity>((Map<String, dynamic> e) => PayEntity.fromJson(e)) | ||
| 370 | + .toList() as M; | ||
| 371 | + } | ||
| 372 | + if (<PayData>[] is M) { | ||
| 373 | + return data | ||
| 374 | + .map<PayData>((Map<String, dynamic> e) => PayData.fromJson(e)) | ||
| 375 | + .toList() as M; | ||
| 376 | + } | ||
| 377 | + if (<PayDataPurchaseUnits>[] is M) { | ||
| 378 | + return data | ||
| 379 | + .map<PayDataPurchaseUnits>( | ||
| 380 | + (Map<String, dynamic> e) => PayDataPurchaseUnits.fromJson(e)) | ||
| 381 | + .toList() as M; | ||
| 382 | + } | ||
| 383 | + if (<PayDataPurchaseUnitsAmount>[] is M) { | ||
| 384 | + return data | ||
| 385 | + .map<PayDataPurchaseUnitsAmount>((Map<String, dynamic> e) => | ||
| 386 | + PayDataPurchaseUnitsAmount.fromJson(e)) | ||
| 387 | + .toList() as M; | ||
| 388 | + } | ||
| 389 | + if (<PayDataPurchaseUnitsPayee>[] is M) { | ||
| 390 | + return data | ||
| 391 | + .map<PayDataPurchaseUnitsPayee>( | ||
| 392 | + (Map<String, dynamic> e) => PayDataPurchaseUnitsPayee.fromJson(e)) | ||
| 393 | + .toList() as M; | ||
| 394 | + } | ||
| 395 | + if (<PayDataLinks>[] is M) { | ||
| 396 | + return data | ||
| 397 | + .map<PayDataLinks>( | ||
| 398 | + (Map<String, dynamic> e) => PayDataLinks.fromJson(e)) | ||
| 399 | + .toList() as M; | ||
| 400 | + } | ||
| 401 | + if (<PayError>[] is M) { | ||
| 402 | + return data | ||
| 403 | + .map<PayError>((Map<String, dynamic> e) => PayError.fromJson(e)) | ||
| 404 | + .toList() as M; | ||
| 405 | + } | ||
| 309 | if (<UploadEntity>[] is M) { | 406 | if (<UploadEntity>[] is M) { |
| 310 | return data | 407 | return data |
| 311 | .map<UploadEntity>( | 408 | .map<UploadEntity>( | ... | ... |
lib/generated/json/membership_entity.g.dart
0 → 100644
| 1 | +import 'package:Parlando/generated/json/base/json_convert_content.dart'; | ||
| 2 | +import 'package:Parlando/membership/models/membership_entity.dart'; | ||
| 3 | + | ||
| 4 | +MembershipEntity $MembershipEntityFromJson(Map<String, dynamic> json) { | ||
| 5 | + final MembershipEntity membershipEntity = MembershipEntity(); | ||
| 6 | + final String? status = jsonConvert.convert<String>(json['status']); | ||
| 7 | + if (status != null) { | ||
| 8 | + membershipEntity.status = status; | ||
| 9 | + } | ||
| 10 | + final int? code = jsonConvert.convert<int>(json['code']); | ||
| 11 | + if (code != null) { | ||
| 12 | + membershipEntity.code = code; | ||
| 13 | + } | ||
| 14 | + final String? message = jsonConvert.convert<String>(json['message']); | ||
| 15 | + if (message != null) { | ||
| 16 | + membershipEntity.message = message; | ||
| 17 | + } | ||
| 18 | + final MembershipData? data = | ||
| 19 | + jsonConvert.convert<MembershipData>(json['data']); | ||
| 20 | + if (data != null) { | ||
| 21 | + membershipEntity.data = data; | ||
| 22 | + } | ||
| 23 | + final MembershipError? error = | ||
| 24 | + jsonConvert.convert<MembershipError>(json['error']); | ||
| 25 | + if (error != null) { | ||
| 26 | + membershipEntity.error = error; | ||
| 27 | + } | ||
| 28 | + return membershipEntity; | ||
| 29 | +} | ||
| 30 | + | ||
| 31 | +Map<String, dynamic> $MembershipEntityToJson(MembershipEntity entity) { | ||
| 32 | + final Map<String, dynamic> data = <String, dynamic>{}; | ||
| 33 | + data['status'] = entity.status; | ||
| 34 | + data['code'] = entity.code; | ||
| 35 | + data['message'] = entity.message; | ||
| 36 | + data['data'] = entity.data?.toJson(); | ||
| 37 | + data['error'] = entity.error?.toJson(); | ||
| 38 | + return data; | ||
| 39 | +} | ||
| 40 | + | ||
| 41 | +MembershipData $MembershipDataFromJson(Map<String, dynamic> json) { | ||
| 42 | + final MembershipData membershipData = MembershipData(); | ||
| 43 | + final int? id = jsonConvert.convert<int>(json['id']); | ||
| 44 | + if (id != null) { | ||
| 45 | + membershipData.id = id; | ||
| 46 | + } | ||
| 47 | + final String? title = jsonConvert.convert<String>(json['title']); | ||
| 48 | + if (title != null) { | ||
| 49 | + membershipData.title = title; | ||
| 50 | + } | ||
| 51 | + final String? intro = jsonConvert.convert<String>(json['intro']); | ||
| 52 | + if (intro != null) { | ||
| 53 | + membershipData.intro = intro; | ||
| 54 | + } | ||
| 55 | + final String? bgType = jsonConvert.convert<String>(json['bg_type']); | ||
| 56 | + if (bgType != null) { | ||
| 57 | + membershipData.bgType = bgType; | ||
| 58 | + } | ||
| 59 | + final String? bgImages = jsonConvert.convert<String>(json['bg_images']); | ||
| 60 | + if (bgImages != null) { | ||
| 61 | + membershipData.bgImages = bgImages; | ||
| 62 | + } | ||
| 63 | + final String? videoUrl = jsonConvert.convert<String>(json['video_url']); | ||
| 64 | + if (videoUrl != null) { | ||
| 65 | + membershipData.videoUrl = videoUrl; | ||
| 66 | + } | ||
| 67 | + final String? videoCover = jsonConvert.convert<String>(json['video_cover']); | ||
| 68 | + if (videoCover != null) { | ||
| 69 | + membershipData.videoCover = videoCover; | ||
| 70 | + } | ||
| 71 | + final String? terminal = jsonConvert.convert<String>(json['terminal']); | ||
| 72 | + if (terminal != null) { | ||
| 73 | + membershipData.terminal = terminal; | ||
| 74 | + } | ||
| 75 | + final String? state = jsonConvert.convert<String>(json['state']); | ||
| 76 | + if (state != null) { | ||
| 77 | + membershipData.state = state; | ||
| 78 | + } | ||
| 79 | + final String? createdAt = jsonConvert.convert<String>(json['created_at']); | ||
| 80 | + if (createdAt != null) { | ||
| 81 | + membershipData.createdAt = createdAt; | ||
| 82 | + } | ||
| 83 | + final String? updatedAt = jsonConvert.convert<String>(json['updated_at']); | ||
| 84 | + if (updatedAt != null) { | ||
| 85 | + membershipData.updatedAt = updatedAt; | ||
| 86 | + } | ||
| 87 | + final int? isVip = jsonConvert.convert<int>(json['is_vip']); | ||
| 88 | + if (isVip != null) { | ||
| 89 | + membershipData.isVip = isVip; | ||
| 90 | + } | ||
| 91 | + final List<MembershipDataGoodsList>? goodsList = jsonConvert | ||
| 92 | + .convertListNotNull<MembershipDataGoodsList>(json['goods_list']); | ||
| 93 | + if (goodsList != null) { | ||
| 94 | + membershipData.goodsList = goodsList; | ||
| 95 | + } | ||
| 96 | + return membershipData; | ||
| 97 | +} | ||
| 98 | + | ||
| 99 | +Map<String, dynamic> $MembershipDataToJson(MembershipData entity) { | ||
| 100 | + final Map<String, dynamic> data = <String, dynamic>{}; | ||
| 101 | + data['id'] = entity.id; | ||
| 102 | + data['title'] = entity.title; | ||
| 103 | + data['intro'] = entity.intro; | ||
| 104 | + data['bg_type'] = entity.bgType; | ||
| 105 | + data['bg_images'] = entity.bgImages; | ||
| 106 | + data['video_url'] = entity.videoUrl; | ||
| 107 | + data['video_cover'] = entity.videoCover; | ||
| 108 | + data['terminal'] = entity.terminal; | ||
| 109 | + data['state'] = entity.state; | ||
| 110 | + data['created_at'] = entity.createdAt; | ||
| 111 | + data['updated_at'] = entity.updatedAt; | ||
| 112 | + data['is_vip'] = entity.isVip; | ||
| 113 | + data['goods_list'] = entity.goodsList?.map((v) => v.toJson()).toList(); | ||
| 114 | + return data; | ||
| 115 | +} | ||
| 116 | + | ||
| 117 | +MembershipDataGoodsList $MembershipDataGoodsListFromJson( | ||
| 118 | + Map<String, dynamic> json) { | ||
| 119 | + final MembershipDataGoodsList membershipDataGoodsList = | ||
| 120 | + MembershipDataGoodsList(); | ||
| 121 | + final int? id = jsonConvert.convert<int>(json['id']); | ||
| 122 | + if (id != null) { | ||
| 123 | + membershipDataGoodsList.id = id; | ||
| 124 | + } | ||
| 125 | + final String? membershipId = | ||
| 126 | + jsonConvert.convert<String>(json['membership_id']); | ||
| 127 | + if (membershipId != null) { | ||
| 128 | + membershipDataGoodsList.membershipId = membershipId; | ||
| 129 | + } | ||
| 130 | + final String? name = jsonConvert.convert<String>(json['name']); | ||
| 131 | + if (name != null) { | ||
| 132 | + membershipDataGoodsList.name = name; | ||
| 133 | + } | ||
| 134 | + final String? price = jsonConvert.convert<String>(json['price']); | ||
| 135 | + if (price != null) { | ||
| 136 | + membershipDataGoodsList.price = price; | ||
| 137 | + } | ||
| 138 | + final String? linePrice = jsonConvert.convert<String>(json['line_price']); | ||
| 139 | + if (linePrice != null) { | ||
| 140 | + membershipDataGoodsList.linePrice = linePrice; | ||
| 141 | + } | ||
| 142 | + final String? limitDays = jsonConvert.convert<String>(json['limit_days']); | ||
| 143 | + if (limitDays != null) { | ||
| 144 | + membershipDataGoodsList.limitDays = limitDays; | ||
| 145 | + } | ||
| 146 | + final String? limitUnit = jsonConvert.convert<String>(json['limit_unit']); | ||
| 147 | + if (limitUnit != null) { | ||
| 148 | + membershipDataGoodsList.limitUnit = limitUnit; | ||
| 149 | + } | ||
| 150 | + final String? terminal = jsonConvert.convert<String>(json['terminal']); | ||
| 151 | + if (terminal != null) { | ||
| 152 | + membershipDataGoodsList.terminal = terminal; | ||
| 153 | + } | ||
| 154 | + final String? state = jsonConvert.convert<String>(json['state']); | ||
| 155 | + if (state != null) { | ||
| 156 | + membershipDataGoodsList.state = state; | ||
| 157 | + } | ||
| 158 | + final String? sn = jsonConvert.convert<String>(json['sn']); | ||
| 159 | + if (sn != null) { | ||
| 160 | + membershipDataGoodsList.sn = sn; | ||
| 161 | + } | ||
| 162 | + final String? visits = jsonConvert.convert<String>(json['visits']); | ||
| 163 | + if (visits != null) { | ||
| 164 | + membershipDataGoodsList.visits = visits; | ||
| 165 | + } | ||
| 166 | + final String? virtualSales = | ||
| 167 | + jsonConvert.convert<String>(json['virtual_sales']); | ||
| 168 | + if (virtualSales != null) { | ||
| 169 | + membershipDataGoodsList.virtualSales = virtualSales; | ||
| 170 | + } | ||
| 171 | + final String? sales = jsonConvert.convert<String>(json['sales']); | ||
| 172 | + if (sales != null) { | ||
| 173 | + membershipDataGoodsList.sales = sales; | ||
| 174 | + } | ||
| 175 | + final String? stocks = jsonConvert.convert<String>(json['stocks']); | ||
| 176 | + if (stocks != null) { | ||
| 177 | + membershipDataGoodsList.stocks = stocks; | ||
| 178 | + } | ||
| 179 | + final String? createdAt = jsonConvert.convert<String>(json['created_at']); | ||
| 180 | + if (createdAt != null) { | ||
| 181 | + membershipDataGoodsList.createdAt = createdAt; | ||
| 182 | + } | ||
| 183 | + final String? updatedAt = jsonConvert.convert<String>(json['updated_at']); | ||
| 184 | + if (updatedAt != null) { | ||
| 185 | + membershipDataGoodsList.updatedAt = updatedAt; | ||
| 186 | + } | ||
| 187 | + return membershipDataGoodsList; | ||
| 188 | +} | ||
| 189 | + | ||
| 190 | +Map<String, dynamic> $MembershipDataGoodsListToJson( | ||
| 191 | + MembershipDataGoodsList entity) { | ||
| 192 | + final Map<String, dynamic> data = <String, dynamic>{}; | ||
| 193 | + data['id'] = entity.id; | ||
| 194 | + data['membership_id'] = entity.membershipId; | ||
| 195 | + data['name'] = entity.name; | ||
| 196 | + data['price'] = entity.price; | ||
| 197 | + data['line_price'] = entity.linePrice; | ||
| 198 | + data['limit_days'] = entity.limitDays; | ||
| 199 | + data['limit_unit'] = entity.limitUnit; | ||
| 200 | + data['terminal'] = entity.terminal; | ||
| 201 | + data['state'] = entity.state; | ||
| 202 | + data['sn'] = entity.sn; | ||
| 203 | + data['visits'] = entity.visits; | ||
| 204 | + data['virtual_sales'] = entity.virtualSales; | ||
| 205 | + data['sales'] = entity.sales; | ||
| 206 | + data['stocks'] = entity.stocks; | ||
| 207 | + data['created_at'] = entity.createdAt; | ||
| 208 | + data['updated_at'] = entity.updatedAt; | ||
| 209 | + return data; | ||
| 210 | +} | ||
| 211 | + | ||
| 212 | +MembershipError $MembershipErrorFromJson(Map<String, dynamic> json) { | ||
| 213 | + final MembershipError membershipError = MembershipError(); | ||
| 214 | + return membershipError; | ||
| 215 | +} | ||
| 216 | + | ||
| 217 | +Map<String, dynamic> $MembershipErrorToJson(MembershipError entity) { | ||
| 218 | + final Map<String, dynamic> data = <String, dynamic>{}; | ||
| 219 | + return data; | ||
| 220 | +} |
lib/generated/json/order_entity.g.dart
0 → 100644
| 1 | +import 'package:Parlando/generated/json/base/json_convert_content.dart'; | ||
| 2 | +import 'package:Parlando/membership/models/order_entity.dart'; | ||
| 3 | + | ||
| 4 | +OrderEntity $OrderEntityFromJson(Map<String, dynamic> json) { | ||
| 5 | + final OrderEntity orderEntity = OrderEntity(); | ||
| 6 | + final String? status = jsonConvert.convert<String>(json['status']); | ||
| 7 | + if (status != null) { | ||
| 8 | + orderEntity.status = status; | ||
| 9 | + } | ||
| 10 | + final int? code = jsonConvert.convert<int>(json['code']); | ||
| 11 | + if (code != null) { | ||
| 12 | + orderEntity.code = code; | ||
| 13 | + } | ||
| 14 | + final String? message = jsonConvert.convert<String>(json['message']); | ||
| 15 | + if (message != null) { | ||
| 16 | + orderEntity.message = message; | ||
| 17 | + } | ||
| 18 | + final OrderData? data = jsonConvert.convert<OrderData>(json['data']); | ||
| 19 | + if (data != null) { | ||
| 20 | + orderEntity.data = data; | ||
| 21 | + } | ||
| 22 | + final OrderError? error = jsonConvert.convert<OrderError>(json['error']); | ||
| 23 | + if (error != null) { | ||
| 24 | + orderEntity.error = error; | ||
| 25 | + } | ||
| 26 | + return orderEntity; | ||
| 27 | +} | ||
| 28 | + | ||
| 29 | +Map<String, dynamic> $OrderEntityToJson(OrderEntity entity) { | ||
| 30 | + final Map<String, dynamic> data = <String, dynamic>{}; | ||
| 31 | + data['status'] = entity.status; | ||
| 32 | + data['code'] = entity.code; | ||
| 33 | + data['message'] = entity.message; | ||
| 34 | + data['data'] = entity.data?.toJson(); | ||
| 35 | + data['error'] = entity.error?.toJson(); | ||
| 36 | + return data; | ||
| 37 | +} | ||
| 38 | + | ||
| 39 | +OrderData $OrderDataFromJson(Map<String, dynamic> json) { | ||
| 40 | + final OrderData orderData = OrderData(); | ||
| 41 | + final String? orderSn = jsonConvert.convert<String>(json['order_sn']); | ||
| 42 | + if (orderSn != null) { | ||
| 43 | + orderData.orderSn = orderSn; | ||
| 44 | + } | ||
| 45 | + return orderData; | ||
| 46 | +} | ||
| 47 | + | ||
| 48 | +Map<String, dynamic> $OrderDataToJson(OrderData entity) { | ||
| 49 | + final Map<String, dynamic> data = <String, dynamic>{}; | ||
| 50 | + data['order_sn'] = entity.orderSn; | ||
| 51 | + return data; | ||
| 52 | +} | ||
| 53 | + | ||
| 54 | +OrderError $OrderErrorFromJson(Map<String, dynamic> json) { | ||
| 55 | + final OrderError orderError = OrderError(); | ||
| 56 | + return orderError; | ||
| 57 | +} | ||
| 58 | + | ||
| 59 | +Map<String, dynamic> $OrderErrorToJson(OrderError entity) { | ||
| 60 | + final Map<String, dynamic> data = <String, dynamic>{}; | ||
| 61 | + return data; | ||
| 62 | +} |
lib/generated/json/pay_entity.g.dart
0 → 100644
| 1 | +import 'package:Parlando/generated/json/base/json_convert_content.dart'; | ||
| 2 | +import 'package:Parlando/membership/models/pay_entity.dart'; | ||
| 3 | + | ||
| 4 | +PayEntity $PayEntityFromJson(Map<String, dynamic> json) { | ||
| 5 | + final PayEntity payEntity = PayEntity(); | ||
| 6 | + final String? status = jsonConvert.convert<String>(json['status']); | ||
| 7 | + if (status != null) { | ||
| 8 | + payEntity.status = status; | ||
| 9 | + } | ||
| 10 | + final int? code = jsonConvert.convert<int>(json['code']); | ||
| 11 | + if (code != null) { | ||
| 12 | + payEntity.code = code; | ||
| 13 | + } | ||
| 14 | + final String? message = jsonConvert.convert<String>(json['message']); | ||
| 15 | + if (message != null) { | ||
| 16 | + payEntity.message = message; | ||
| 17 | + } | ||
| 18 | + final PayData? data = jsonConvert.convert<PayData>(json['data']); | ||
| 19 | + if (data != null) { | ||
| 20 | + payEntity.data = data; | ||
| 21 | + } | ||
| 22 | + final PayError? error = jsonConvert.convert<PayError>(json['error']); | ||
| 23 | + if (error != null) { | ||
| 24 | + payEntity.error = error; | ||
| 25 | + } | ||
| 26 | + return payEntity; | ||
| 27 | +} | ||
| 28 | + | ||
| 29 | +Map<String, dynamic> $PayEntityToJson(PayEntity entity) { | ||
| 30 | + final Map<String, dynamic> data = <String, dynamic>{}; | ||
| 31 | + data['status'] = entity.status; | ||
| 32 | + data['code'] = entity.code; | ||
| 33 | + data['message'] = entity.message; | ||
| 34 | + data['data'] = entity.data?.toJson(); | ||
| 35 | + data['error'] = entity.error?.toJson(); | ||
| 36 | + return data; | ||
| 37 | +} | ||
| 38 | + | ||
| 39 | +PayData $PayDataFromJson(Map<String, dynamic> json) { | ||
| 40 | + final PayData payData = PayData(); | ||
| 41 | + final String? id = jsonConvert.convert<String>(json['id']); | ||
| 42 | + if (id != null) { | ||
| 43 | + payData.id = id; | ||
| 44 | + } | ||
| 45 | + final String? intent = jsonConvert.convert<String>(json['intent']); | ||
| 46 | + if (intent != null) { | ||
| 47 | + payData.intent = intent; | ||
| 48 | + } | ||
| 49 | + final String? status = jsonConvert.convert<String>(json['status']); | ||
| 50 | + if (status != null) { | ||
| 51 | + payData.status = status; | ||
| 52 | + } | ||
| 53 | + final List<PayDataPurchaseUnits>? purchaseUnits = jsonConvert | ||
| 54 | + .convertListNotNull<PayDataPurchaseUnits>(json['purchase_units']); | ||
| 55 | + if (purchaseUnits != null) { | ||
| 56 | + payData.purchaseUnits = purchaseUnits; | ||
| 57 | + } | ||
| 58 | + final String? createTime = jsonConvert.convert<String>(json['create_time']); | ||
| 59 | + if (createTime != null) { | ||
| 60 | + payData.createTime = createTime; | ||
| 61 | + } | ||
| 62 | + final List<PayDataLinks>? links = | ||
| 63 | + jsonConvert.convertListNotNull<PayDataLinks>(json['links']); | ||
| 64 | + if (links != null) { | ||
| 65 | + payData.links = links; | ||
| 66 | + } | ||
| 67 | + return payData; | ||
| 68 | +} | ||
| 69 | + | ||
| 70 | +Map<String, dynamic> $PayDataToJson(PayData entity) { | ||
| 71 | + final Map<String, dynamic> data = <String, dynamic>{}; | ||
| 72 | + data['id'] = entity.id; | ||
| 73 | + data['intent'] = entity.intent; | ||
| 74 | + data['status'] = entity.status; | ||
| 75 | + data['purchase_units'] = | ||
| 76 | + entity.purchaseUnits?.map((v) => v.toJson()).toList(); | ||
| 77 | + data['create_time'] = entity.createTime; | ||
| 78 | + data['links'] = entity.links?.map((v) => v.toJson()).toList(); | ||
| 79 | + return data; | ||
| 80 | +} | ||
| 81 | + | ||
| 82 | +PayDataPurchaseUnits $PayDataPurchaseUnitsFromJson(Map<String, dynamic> json) { | ||
| 83 | + final PayDataPurchaseUnits payDataPurchaseUnits = PayDataPurchaseUnits(); | ||
| 84 | + final String? referenceId = jsonConvert.convert<String>(json['reference_id']); | ||
| 85 | + if (referenceId != null) { | ||
| 86 | + payDataPurchaseUnits.referenceId = referenceId; | ||
| 87 | + } | ||
| 88 | + final PayDataPurchaseUnitsAmount? amount = | ||
| 89 | + jsonConvert.convert<PayDataPurchaseUnitsAmount>(json['amount']); | ||
| 90 | + if (amount != null) { | ||
| 91 | + payDataPurchaseUnits.amount = amount; | ||
| 92 | + } | ||
| 93 | + final PayDataPurchaseUnitsPayee? payee = | ||
| 94 | + jsonConvert.convert<PayDataPurchaseUnitsPayee>(json['payee']); | ||
| 95 | + if (payee != null) { | ||
| 96 | + payDataPurchaseUnits.payee = payee; | ||
| 97 | + } | ||
| 98 | + final String? description = jsonConvert.convert<String>(json['description']); | ||
| 99 | + if (description != null) { | ||
| 100 | + payDataPurchaseUnits.description = description; | ||
| 101 | + } | ||
| 102 | + final String? customId = jsonConvert.convert<String>(json['custom_id']); | ||
| 103 | + if (customId != null) { | ||
| 104 | + payDataPurchaseUnits.customId = customId; | ||
| 105 | + } | ||
| 106 | + final String? softDescriptor = | ||
| 107 | + jsonConvert.convert<String>(json['soft_descriptor']); | ||
| 108 | + if (softDescriptor != null) { | ||
| 109 | + payDataPurchaseUnits.softDescriptor = softDescriptor; | ||
| 110 | + } | ||
| 111 | + return payDataPurchaseUnits; | ||
| 112 | +} | ||
| 113 | + | ||
| 114 | +Map<String, dynamic> $PayDataPurchaseUnitsToJson(PayDataPurchaseUnits entity) { | ||
| 115 | + final Map<String, dynamic> data = <String, dynamic>{}; | ||
| 116 | + data['reference_id'] = entity.referenceId; | ||
| 117 | + data['amount'] = entity.amount?.toJson(); | ||
| 118 | + data['payee'] = entity.payee?.toJson(); | ||
| 119 | + data['description'] = entity.description; | ||
| 120 | + data['custom_id'] = entity.customId; | ||
| 121 | + data['soft_descriptor'] = entity.softDescriptor; | ||
| 122 | + return data; | ||
| 123 | +} | ||
| 124 | + | ||
| 125 | +PayDataPurchaseUnitsAmount $PayDataPurchaseUnitsAmountFromJson( | ||
| 126 | + Map<String, dynamic> json) { | ||
| 127 | + final PayDataPurchaseUnitsAmount payDataPurchaseUnitsAmount = | ||
| 128 | + PayDataPurchaseUnitsAmount(); | ||
| 129 | + final String? currencyCode = | ||
| 130 | + jsonConvert.convert<String>(json['currency_code']); | ||
| 131 | + if (currencyCode != null) { | ||
| 132 | + payDataPurchaseUnitsAmount.currencyCode = currencyCode; | ||
| 133 | + } | ||
| 134 | + final String? value = jsonConvert.convert<String>(json['value']); | ||
| 135 | + if (value != null) { | ||
| 136 | + payDataPurchaseUnitsAmount.value = value; | ||
| 137 | + } | ||
| 138 | + return payDataPurchaseUnitsAmount; | ||
| 139 | +} | ||
| 140 | + | ||
| 141 | +Map<String, dynamic> $PayDataPurchaseUnitsAmountToJson( | ||
| 142 | + PayDataPurchaseUnitsAmount entity) { | ||
| 143 | + final Map<String, dynamic> data = <String, dynamic>{}; | ||
| 144 | + data['currency_code'] = entity.currencyCode; | ||
| 145 | + data['value'] = entity.value; | ||
| 146 | + return data; | ||
| 147 | +} | ||
| 148 | + | ||
| 149 | +PayDataPurchaseUnitsPayee $PayDataPurchaseUnitsPayeeFromJson( | ||
| 150 | + Map<String, dynamic> json) { | ||
| 151 | + final PayDataPurchaseUnitsPayee payDataPurchaseUnitsPayee = | ||
| 152 | + PayDataPurchaseUnitsPayee(); | ||
| 153 | + final String? emailAddress = | ||
| 154 | + jsonConvert.convert<String>(json['email_address']); | ||
| 155 | + if (emailAddress != null) { | ||
| 156 | + payDataPurchaseUnitsPayee.emailAddress = emailAddress; | ||
| 157 | + } | ||
| 158 | + final String? merchantId = jsonConvert.convert<String>(json['merchant_id']); | ||
| 159 | + if (merchantId != null) { | ||
| 160 | + payDataPurchaseUnitsPayee.merchantId = merchantId; | ||
| 161 | + } | ||
| 162 | + return payDataPurchaseUnitsPayee; | ||
| 163 | +} | ||
| 164 | + | ||
| 165 | +Map<String, dynamic> $PayDataPurchaseUnitsPayeeToJson( | ||
| 166 | + PayDataPurchaseUnitsPayee entity) { | ||
| 167 | + final Map<String, dynamic> data = <String, dynamic>{}; | ||
| 168 | + data['email_address'] = entity.emailAddress; | ||
| 169 | + data['merchant_id'] = entity.merchantId; | ||
| 170 | + return data; | ||
| 171 | +} | ||
| 172 | + | ||
| 173 | +PayDataLinks $PayDataLinksFromJson(Map<String, dynamic> json) { | ||
| 174 | + final PayDataLinks payDataLinks = PayDataLinks(); | ||
| 175 | + final String? href = jsonConvert.convert<String>(json['href']); | ||
| 176 | + if (href != null) { | ||
| 177 | + payDataLinks.href = href; | ||
| 178 | + } | ||
| 179 | + final String? rel = jsonConvert.convert<String>(json['rel']); | ||
| 180 | + if (rel != null) { | ||
| 181 | + payDataLinks.rel = rel; | ||
| 182 | + } | ||
| 183 | + final String? method = jsonConvert.convert<String>(json['method']); | ||
| 184 | + if (method != null) { | ||
| 185 | + payDataLinks.method = method; | ||
| 186 | + } | ||
| 187 | + return payDataLinks; | ||
| 188 | +} | ||
| 189 | + | ||
| 190 | +Map<String, dynamic> $PayDataLinksToJson(PayDataLinks entity) { | ||
| 191 | + final Map<String, dynamic> data = <String, dynamic>{}; | ||
| 192 | + data['href'] = entity.href; | ||
| 193 | + data['rel'] = entity.rel; | ||
| 194 | + data['method'] = entity.method; | ||
| 195 | + return data; | ||
| 196 | +} | ||
| 197 | + | ||
| 198 | +PayError $PayErrorFromJson(Map<String, dynamic> json) { | ||
| 199 | + final PayError payError = PayError(); | ||
| 200 | + return payError; | ||
| 201 | +} | ||
| 202 | + | ||
| 203 | +Map<String, dynamic> $PayErrorToJson(PayError entity) { | ||
| 204 | + final Map<String, dynamic> data = <String, dynamic>{}; | ||
| 205 | + return data; | ||
| 206 | +} |
| ... | @@ -164,4 +164,4 @@ VideoError $VideoErrorFromJson(Map<String, dynamic> json) { | ... | @@ -164,4 +164,4 @@ VideoError $VideoErrorFromJson(Map<String, dynamic> json) { |
| 164 | Map<String, dynamic> $VideoErrorToJson(VideoError entity) { | 164 | Map<String, dynamic> $VideoErrorToJson(VideoError entity) { |
| 165 | final Map<String, dynamic> data = <String, dynamic>{}; | 165 | final Map<String, dynamic> data = <String, dynamic>{}; |
| 166 | return data; | 166 | return data; |
| 167 | -} | 167 | +} |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| 1 | import 'package:Parlando/account/view_models/account_view_model.dart'; | 1 | import 'package:Parlando/account/view_models/account_view_model.dart'; |
| 2 | +import 'package:Parlando/membership/view_models/membership_view_model.dart'; | ||
| 2 | import 'package:dio/dio.dart'; | 3 | import 'package:dio/dio.dart'; |
| 3 | import 'package:flustars/flustars.dart'; | 4 | import 'package:flustars/flustars.dart'; |
| 4 | import 'package:flutter/material.dart'; | 5 | import 'package:flutter/material.dart'; |
| ... | @@ -128,7 +129,8 @@ class MyApp extends StatelessWidget { | ... | @@ -128,7 +129,8 @@ class MyApp extends StatelessWidget { |
| 128 | providers: [ | 129 | providers: [ |
| 129 | ChangeNotifierProvider(create: (_) => ThemeProvider()), | 130 | ChangeNotifierProvider(create: (_) => ThemeProvider()), |
| 130 | ChangeNotifierProvider(create: (_) => LocaleProvider()), | 131 | ChangeNotifierProvider(create: (_) => LocaleProvider()), |
| 131 | - ChangeNotifierProvider(create: (_) => AccountViewProvider()) | 132 | + ChangeNotifierProvider(create: (_) => AccountViewProvider()), |
| 133 | + ChangeNotifierProvider(create: (_) => MembershipViewProvider()) | ||
| 132 | ], | 134 | ], |
| 133 | child: Consumer2<ThemeProvider, LocaleProvider>( | 135 | child: Consumer2<ThemeProvider, LocaleProvider>( |
| 134 | builder: | 136 | builder: | ... | ... |
lib/membership/models/membership_entity.dart
0 → 100644
| 1 | +import 'dart:convert'; | ||
| 2 | +import 'package:Parlando/generated/json/base/json_field.dart'; | ||
| 3 | +import 'package:Parlando/generated/json/membership_entity.g.dart'; | ||
| 4 | + | ||
| 5 | +@JsonSerializable() | ||
| 6 | +class MembershipEntity { | ||
| 7 | + String? status; | ||
| 8 | + int? code; | ||
| 9 | + String? message; | ||
| 10 | + MembershipData? data; | ||
| 11 | + MembershipError? error; | ||
| 12 | + | ||
| 13 | + MembershipEntity(); | ||
| 14 | + | ||
| 15 | + factory MembershipEntity.fromJson(Map<String, dynamic> json) => | ||
| 16 | + $MembershipEntityFromJson(json); | ||
| 17 | + | ||
| 18 | + Map<String, dynamic> toJson() => $MembershipEntityToJson(this); | ||
| 19 | + | ||
| 20 | + @override | ||
| 21 | + String toString() { | ||
| 22 | + return jsonEncode(this); | ||
| 23 | + } | ||
| 24 | +} | ||
| 25 | + | ||
| 26 | +@JsonSerializable() | ||
| 27 | +class MembershipData { | ||
| 28 | + int? id; | ||
| 29 | + String? title; | ||
| 30 | + String? intro; | ||
| 31 | + @JSONField(name: "bg_type") | ||
| 32 | + String? bgType; | ||
| 33 | + @JSONField(name: "bg_images") | ||
| 34 | + String? bgImages; | ||
| 35 | + @JSONField(name: "video_url") | ||
| 36 | + String? videoUrl; | ||
| 37 | + @JSONField(name: "video_cover") | ||
| 38 | + String? videoCover; | ||
| 39 | + String? terminal; | ||
| 40 | + String? state; | ||
| 41 | + @JSONField(name: "created_at") | ||
| 42 | + String? createdAt; | ||
| 43 | + @JSONField(name: "updated_at") | ||
| 44 | + String? updatedAt; | ||
| 45 | + @JSONField(name: "is_vip") | ||
| 46 | + int? isVip; | ||
| 47 | + @JSONField(name: "goods_list") | ||
| 48 | + List<MembershipDataGoodsList>? goodsList; | ||
| 49 | + | ||
| 50 | + MembershipData(); | ||
| 51 | + | ||
| 52 | + factory MembershipData.fromJson(Map<String, dynamic> json) => | ||
| 53 | + $MembershipDataFromJson(json); | ||
| 54 | + | ||
| 55 | + Map<String, dynamic> toJson() => $MembershipDataToJson(this); | ||
| 56 | + | ||
| 57 | + @override | ||
| 58 | + String toString() { | ||
| 59 | + return jsonEncode(this); | ||
| 60 | + } | ||
| 61 | +} | ||
| 62 | + | ||
| 63 | +@JsonSerializable() | ||
| 64 | +class MembershipDataGoodsList { | ||
| 65 | + int? id; | ||
| 66 | + @JSONField(name: "membership_id") | ||
| 67 | + String? membershipId; | ||
| 68 | + String? name; | ||
| 69 | + String? price; | ||
| 70 | + @JSONField(name: "line_price") | ||
| 71 | + String? linePrice; | ||
| 72 | + @JSONField(name: "limit_days") | ||
| 73 | + String? limitDays; | ||
| 74 | + @JSONField(name: "limit_unit") | ||
| 75 | + String? limitUnit; | ||
| 76 | + String? terminal; | ||
| 77 | + String? state; | ||
| 78 | + String? sn; | ||
| 79 | + String? visits; | ||
| 80 | + @JSONField(name: "virtual_sales") | ||
| 81 | + String? virtualSales; | ||
| 82 | + String? sales; | ||
| 83 | + String? stocks; | ||
| 84 | + @JSONField(name: "created_at") | ||
| 85 | + String? createdAt; | ||
| 86 | + @JSONField(name: "updated_at") | ||
| 87 | + String? updatedAt; | ||
| 88 | + | ||
| 89 | + MembershipDataGoodsList(); | ||
| 90 | + | ||
| 91 | + factory MembershipDataGoodsList.fromJson(Map<String, dynamic> json) => | ||
| 92 | + $MembershipDataGoodsListFromJson(json); | ||
| 93 | + | ||
| 94 | + Map<String, dynamic> toJson() => $MembershipDataGoodsListToJson(this); | ||
| 95 | + | ||
| 96 | + @override | ||
| 97 | + String toString() { | ||
| 98 | + return jsonEncode(this); | ||
| 99 | + } | ||
| 100 | +} | ||
| 101 | + | ||
| 102 | +@JsonSerializable() | ||
| 103 | +class MembershipError { | ||
| 104 | + MembershipError(); | ||
| 105 | + | ||
| 106 | + factory MembershipError.fromJson(Map<String, dynamic> json) => | ||
| 107 | + $MembershipErrorFromJson(json); | ||
| 108 | + | ||
| 109 | + Map<String, dynamic> toJson() => $MembershipErrorToJson(this); | ||
| 110 | + | ||
| 111 | + @override | ||
| 112 | + String toString() { | ||
| 113 | + return jsonEncode(this); | ||
| 114 | + } | ||
| 115 | +} |
lib/membership/models/order_entity.dart
0 → 100644
| 1 | +import 'dart:convert'; | ||
| 2 | +import 'package:Parlando/generated/json/base/json_field.dart'; | ||
| 3 | +import 'package:Parlando/generated/json/order_entity.g.dart'; | ||
| 4 | + | ||
| 5 | +@JsonSerializable() | ||
| 6 | +class OrderEntity { | ||
| 7 | + String? status; | ||
| 8 | + int? code; | ||
| 9 | + String? message; | ||
| 10 | + OrderData? data; | ||
| 11 | + OrderError? error; | ||
| 12 | + | ||
| 13 | + OrderEntity(); | ||
| 14 | + | ||
| 15 | + factory OrderEntity.fromJson(Map<String, dynamic> json) => | ||
| 16 | + $OrderEntityFromJson(json); | ||
| 17 | + | ||
| 18 | + Map<String, dynamic> toJson() => $OrderEntityToJson(this); | ||
| 19 | + | ||
| 20 | + @override | ||
| 21 | + String toString() { | ||
| 22 | + return jsonEncode(this); | ||
| 23 | + } | ||
| 24 | +} | ||
| 25 | + | ||
| 26 | +@JsonSerializable() | ||
| 27 | +class OrderData { | ||
| 28 | + @JSONField(name: "order_sn") | ||
| 29 | + String? orderSn; | ||
| 30 | + | ||
| 31 | + OrderData(); | ||
| 32 | + | ||
| 33 | + factory OrderData.fromJson(Map<String, dynamic> json) => | ||
| 34 | + $OrderDataFromJson(json); | ||
| 35 | + | ||
| 36 | + Map<String, dynamic> toJson() => $OrderDataToJson(this); | ||
| 37 | + | ||
| 38 | + @override | ||
| 39 | + String toString() { | ||
| 40 | + return jsonEncode(this); | ||
| 41 | + } | ||
| 42 | +} | ||
| 43 | + | ||
| 44 | +@JsonSerializable() | ||
| 45 | +class OrderError { | ||
| 46 | + OrderError(); | ||
| 47 | + | ||
| 48 | + factory OrderError.fromJson(Map<String, dynamic> json) => | ||
| 49 | + $OrderErrorFromJson(json); | ||
| 50 | + | ||
| 51 | + Map<String, dynamic> toJson() => $OrderErrorToJson(this); | ||
| 52 | + | ||
| 53 | + @override | ||
| 54 | + String toString() { | ||
| 55 | + return jsonEncode(this); | ||
| 56 | + } | ||
| 57 | +} |
lib/membership/models/pay_entity.dart
0 → 100644
| 1 | +import 'dart:convert'; | ||
| 2 | +import 'package:Parlando/generated/json/base/json_field.dart'; | ||
| 3 | +import 'package:Parlando/generated/json/pay_entity.g.dart'; | ||
| 4 | + | ||
| 5 | +@JsonSerializable() | ||
| 6 | +class PayEntity { | ||
| 7 | + String? status; | ||
| 8 | + int? code; | ||
| 9 | + String? message; | ||
| 10 | + PayData? data; | ||
| 11 | + PayError? error; | ||
| 12 | + | ||
| 13 | + PayEntity(); | ||
| 14 | + | ||
| 15 | + factory PayEntity.fromJson(Map<String, dynamic> json) => | ||
| 16 | + $PayEntityFromJson(json); | ||
| 17 | + | ||
| 18 | + Map<String, dynamic> toJson() => $PayEntityToJson(this); | ||
| 19 | + | ||
| 20 | + @override | ||
| 21 | + String toString() { | ||
| 22 | + return jsonEncode(this); | ||
| 23 | + } | ||
| 24 | +} | ||
| 25 | + | ||
| 26 | +@JsonSerializable() | ||
| 27 | +class PayData { | ||
| 28 | + String? id; | ||
| 29 | + String? intent; | ||
| 30 | + String? status; | ||
| 31 | + @JSONField(name: "purchase_units") | ||
| 32 | + List<PayDataPurchaseUnits>? purchaseUnits; | ||
| 33 | + @JSONField(name: "create_time") | ||
| 34 | + String? createTime; | ||
| 35 | + List<PayDataLinks>? links; | ||
| 36 | + | ||
| 37 | + PayData(); | ||
| 38 | + | ||
| 39 | + factory PayData.fromJson(Map<String, dynamic> json) => $PayDataFromJson(json); | ||
| 40 | + | ||
| 41 | + Map<String, dynamic> toJson() => $PayDataToJson(this); | ||
| 42 | + | ||
| 43 | + @override | ||
| 44 | + String toString() { | ||
| 45 | + return jsonEncode(this); | ||
| 46 | + } | ||
| 47 | +} | ||
| 48 | + | ||
| 49 | +@JsonSerializable() | ||
| 50 | +class PayDataPurchaseUnits { | ||
| 51 | + @JSONField(name: "reference_id") | ||
| 52 | + String? referenceId; | ||
| 53 | + PayDataPurchaseUnitsAmount? amount; | ||
| 54 | + PayDataPurchaseUnitsPayee? payee; | ||
| 55 | + String? description; | ||
| 56 | + @JSONField(name: "custom_id") | ||
| 57 | + String? customId; | ||
| 58 | + @JSONField(name: "soft_descriptor") | ||
| 59 | + String? softDescriptor; | ||
| 60 | + | ||
| 61 | + PayDataPurchaseUnits(); | ||
| 62 | + | ||
| 63 | + factory PayDataPurchaseUnits.fromJson(Map<String, dynamic> json) => | ||
| 64 | + $PayDataPurchaseUnitsFromJson(json); | ||
| 65 | + | ||
| 66 | + Map<String, dynamic> toJson() => $PayDataPurchaseUnitsToJson(this); | ||
| 67 | + | ||
| 68 | + @override | ||
| 69 | + String toString() { | ||
| 70 | + return jsonEncode(this); | ||
| 71 | + } | ||
| 72 | +} | ||
| 73 | + | ||
| 74 | +@JsonSerializable() | ||
| 75 | +class PayDataPurchaseUnitsAmount { | ||
| 76 | + @JSONField(name: "currency_code") | ||
| 77 | + String? currencyCode; | ||
| 78 | + String? value; | ||
| 79 | + | ||
| 80 | + PayDataPurchaseUnitsAmount(); | ||
| 81 | + | ||
| 82 | + factory PayDataPurchaseUnitsAmount.fromJson(Map<String, dynamic> json) => | ||
| 83 | + $PayDataPurchaseUnitsAmountFromJson(json); | ||
| 84 | + | ||
| 85 | + Map<String, dynamic> toJson() => $PayDataPurchaseUnitsAmountToJson(this); | ||
| 86 | + | ||
| 87 | + @override | ||
| 88 | + String toString() { | ||
| 89 | + return jsonEncode(this); | ||
| 90 | + } | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +@JsonSerializable() | ||
| 94 | +class PayDataPurchaseUnitsPayee { | ||
| 95 | + @JSONField(name: "email_address") | ||
| 96 | + String? emailAddress; | ||
| 97 | + @JSONField(name: "merchant_id") | ||
| 98 | + String? merchantId; | ||
| 99 | + | ||
| 100 | + PayDataPurchaseUnitsPayee(); | ||
| 101 | + | ||
| 102 | + factory PayDataPurchaseUnitsPayee.fromJson(Map<String, dynamic> json) => | ||
| 103 | + $PayDataPurchaseUnitsPayeeFromJson(json); | ||
| 104 | + | ||
| 105 | + Map<String, dynamic> toJson() => $PayDataPurchaseUnitsPayeeToJson(this); | ||
| 106 | + | ||
| 107 | + @override | ||
| 108 | + String toString() { | ||
| 109 | + return jsonEncode(this); | ||
| 110 | + } | ||
| 111 | +} | ||
| 112 | + | ||
| 113 | +@JsonSerializable() | ||
| 114 | +class PayDataLinks { | ||
| 115 | + String? href; | ||
| 116 | + String? rel; | ||
| 117 | + String? method; | ||
| 118 | + | ||
| 119 | + PayDataLinks(); | ||
| 120 | + | ||
| 121 | + factory PayDataLinks.fromJson(Map<String, dynamic> json) => | ||
| 122 | + $PayDataLinksFromJson(json); | ||
| 123 | + | ||
| 124 | + Map<String, dynamic> toJson() => $PayDataLinksToJson(this); | ||
| 125 | + | ||
| 126 | + @override | ||
| 127 | + String toString() { | ||
| 128 | + return jsonEncode(this); | ||
| 129 | + } | ||
| 130 | +} | ||
| 131 | + | ||
| 132 | +@JsonSerializable() | ||
| 133 | +class PayError { | ||
| 134 | + PayError(); | ||
| 135 | + | ||
| 136 | + factory PayError.fromJson(Map<String, dynamic> json) => | ||
| 137 | + $PayErrorFromJson(json); | ||
| 138 | + | ||
| 139 | + Map<String, dynamic> toJson() => $PayErrorToJson(this); | ||
| 140 | + | ||
| 141 | + @override | ||
| 142 | + String toString() { | ||
| 143 | + return jsonEncode(this); | ||
| 144 | + } | ||
| 145 | +} |
This diff is collapsed. Click to expand it.
| 1 | +import 'package:Parlando/apis/api_response.dart'; | ||
| 2 | +import 'package:Parlando/membership/models/membership_entity.dart'; | ||
| 3 | +import 'package:Parlando/net/dio_utils.dart'; | ||
| 4 | +import 'package:Parlando/net/http_api.dart'; | ||
| 5 | +import 'package:flutter/material.dart'; | ||
| 6 | + | ||
| 7 | +class MembershipViewProvider with ChangeNotifier { | ||
| 8 | + ApiResponse _apiResponse = ApiResponse.initial('Empty data'); | ||
| 9 | + MembershipData? _membership; | ||
| 10 | + | ||
| 11 | + ApiResponse get response { | ||
| 12 | + return _apiResponse; | ||
| 13 | + } | ||
| 14 | + | ||
| 15 | + MembershipData? get media { | ||
| 16 | + return _membership; | ||
| 17 | + } | ||
| 18 | + | ||
| 19 | + Future<void> fetchMembershipData(String value) async { | ||
| 20 | + _apiResponse = ApiResponse.loading('请求数据中...'); | ||
| 21 | + DioUtils.instance.asyncRequestNetwork<MembershipEntity>( | ||
| 22 | + Method.get, | ||
| 23 | + HttpApi.membership, | ||
| 24 | + onSuccess: (data) { | ||
| 25 | + _apiResponse = ApiResponse.completed(data!.data); | ||
| 26 | + notifyListeners(); | ||
| 27 | + }, | ||
| 28 | + onError: (code, msg) { | ||
| 29 | + _apiResponse = ApiResponse.error(msg); | ||
| 30 | + notifyListeners(); | ||
| 31 | + }, | ||
| 32 | + ); | ||
| 33 | + } | ||
| 34 | + | ||
| 35 | + void setSelectedMembership(MembershipData? membership) { | ||
| 36 | + _membership = membership; | ||
| 37 | + // notifyListeners(); | ||
| 38 | + } | ||
| 39 | +} |
| ... | @@ -9,11 +9,14 @@ class HttpApi { | ... | @@ -9,11 +9,14 @@ class HttpApi { |
| 9 | static const String immersive = 'immersive'; | 9 | static const String immersive = 'immersive'; |
| 10 | static const String avatar = 'avatar'; | 10 | static const String avatar = 'avatar'; |
| 11 | static const String user = 'user'; | 11 | static const String user = 'user'; |
| 12 | + static const String membership = 'membership'; | ||
| 12 | static const String home = 'home'; | 13 | static const String home = 'home'; |
| 13 | static const String myVideos = '/my/videos'; | 14 | static const String myVideos = '/my/videos'; |
| 14 | static const String praise = '/praise'; | 15 | static const String praise = '/praise'; |
| 15 | static const String addView = '/addview'; | 16 | static const String addView = '/addview'; |
| 16 | static const String collect = '/collect'; | 17 | static const String collect = '/collect'; |
| 18 | + static const String order = '/order'; | ||
| 19 | + static const String pay = '/pay'; | ||
| 17 | static const String search = 'search/repositories'; | 20 | static const String search = 'search/repositories'; |
| 18 | static const String subscriptions = 'users/simplezhli/subscriptions'; | 21 | static const String subscriptions = 'users/simplezhli/subscriptions'; |
| 19 | static const String upload = 'uuc/upload-inco'; | 22 | static const String upload = 'uuc/upload-inco'; | ... | ... |
This diff is collapsed. Click to expand it.
| ... | @@ -108,11 +108,13 @@ dependencies: | ... | @@ -108,11 +108,13 @@ dependencies: |
| 108 | email_validator: ^2.0.1 | 108 | email_validator: ^2.0.1 |
| 109 | 109 | ||
| 110 | getwidget: ^2.0.5 | 110 | getwidget: ^2.0.5 |
| 111 | - sign_in_with_apple: ^3.3.0 | 111 | + sign_in_with_apple: ^4.0.0 |
| 112 | event_bus: ^2.0.0 | 112 | event_bus: ^2.0.0 |
| 113 | 113 | ||
| 114 | animated_radial_menu: ^0.0.1 | 114 | animated_radial_menu: ^0.0.1 |
| 115 | 115 | ||
| 116 | + flutter_braintree: ^2.3.1 | ||
| 117 | + | ||
| 116 | dependency_overrides: | 118 | dependency_overrides: |
| 117 | decimal: 1.5.0 | 119 | decimal: 1.5.0 |
| 118 | 120 | ... | ... |
-
Please register or login to post a comment