From 9b1833e196369c4f39248e7414016dd5181daebf Mon Sep 17 00:00:00 2001 From: laiiihz Date: Thu, 7 Jan 2021 17:30:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E6=88=91=E7=9A=84=E6=94=B6?= =?UTF-8?q?=E7=9B=8A=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/build.gradle | 3 + lib/constants/api_v2.dart | 9 +++ .../user/functions/user_benefit_func.dart | 11 ++++ lib/pages/user/model/user_benefit_model.dart | 63 +++++++++++++++++++ lib/pages/user/user_page.dart | 6 +- lib/pages/user/widget/shop_benefit_view.dart | 50 +++++++++++++-- 6 files changed, 135 insertions(+), 7 deletions(-) create mode 100644 lib/constants/api_v2.dart create mode 100644 lib/pages/user/functions/user_benefit_func.dart create mode 100644 lib/pages/user/model/user_benefit_model.dart diff --git a/android/app/build.gradle b/android/app/build.gradle index 17064ea..a67b49e 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -87,6 +87,9 @@ android { signingConfig signingConfigs.debug minifyEnabled false shrinkResources false + ndk{ + abiFilters 'arm64-v8a' + } } } diff --git a/lib/constants/api_v2.dart b/lib/constants/api_v2.dart new file mode 100644 index 0000000..582d2ac --- /dev/null +++ b/lib/constants/api_v2.dart @@ -0,0 +1,9 @@ +class APIV2 { + static UserAPI userAPI = UserAPI(); +} + +class UserAPI { + + ///我的收益 + String get userBenefit => '/v2/app/user/income'; +} diff --git a/lib/pages/user/functions/user_benefit_func.dart b/lib/pages/user/functions/user_benefit_func.dart new file mode 100644 index 0000000..cc0f5f4 --- /dev/null +++ b/lib/pages/user/functions/user_benefit_func.dart @@ -0,0 +1,11 @@ +import 'package:recook/constants/api.dart'; +import 'package:recook/constants/api_v2.dart'; +import 'package:recook/manager/http_manager.dart'; +import 'package:recook/pages/user/model/user_benefit_model.dart'; + +class UserBenefitFunc { + static Future update() async { + ResultData result = await HttpManager.post(APIV2.userAPI.userBenefit, {}); + return UserBenefitModel.fromJson(result.data); + } +} diff --git a/lib/pages/user/model/user_benefit_model.dart b/lib/pages/user/model/user_benefit_model.dart new file mode 100644 index 0000000..af2f756 --- /dev/null +++ b/lib/pages/user/model/user_benefit_model.dart @@ -0,0 +1,63 @@ +class UserBenefitModel { + String code; + String msg; + Data data; + + UserBenefitModel({this.code, this.msg, this.data}); + UserBenefitModel.zero() { + this.code = ''; + this.msg = ''; + this.data = Data.zero(); + } + + UserBenefitModel.fromJson(Map json) { + code = json['code']; + msg = json['msg']; + data = json['data'] != null ? new Data.fromJson(json['data']) : null; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + data['msg'] = this.msg; + if (this.data != null) { + data['data'] = this.data.toJson(); + } + return data; + } +} + +class Data { + double monthExpect; + double dayExpect; + double lastMonthExpect; + double lastMonthIncome; + + Data( + {this.monthExpect, + this.dayExpect, + this.lastMonthExpect, + this.lastMonthIncome}); + + Data.zero( + {this.monthExpect = 0, + this.dayExpect = 0, + this.lastMonthExpect = 0, + this.lastMonthIncome = 0}); + + Data.fromJson(Map json) { + monthExpect = json['monthExpect'] + .0; + dayExpect = json['dayExpect'] + .0; + lastMonthExpect = json['lastMonthExpect'] + .0; + lastMonthIncome = json['lastMonthIncome'] + .0; + } + + Map toJson() { + final Map data = new Map(); + data['monthExpect'] = this.monthExpect; + data['dayExpect'] = this.dayExpect; + data['lastMonthExpect'] = this.lastMonthExpect; + data['lastMonthIncome'] = this.lastMonthIncome; + return data; + } +} diff --git a/lib/pages/user/user_page.dart b/lib/pages/user/user_page.dart index 14d340b..a658199 100644 --- a/lib/pages/user/user_page.dart +++ b/lib/pages/user/user_page.dart @@ -56,6 +56,9 @@ class _UserPageState extends BaseStoreState { String _capital; //提现金额 bool _isFirstLoad = true; + GlobalKey _shopBenefitKey = + GlobalKey(); + @override bool get wantKeepAlive => true; @@ -167,6 +170,7 @@ class _UserPageState extends BaseStoreState { refreshingText: "正在更新个人数据...", onRefresh: () { VersionTool.checkVersionInfo(context); + _shopBenefitKey.currentState.updateBenefit(); _updateUserBriefInfo(); }, body: ListView( @@ -190,7 +194,7 @@ class _UserPageState extends BaseStoreState { height: AppConfig.getShowCommission() ? 10 : 0, ), UserPageAssetsView(), - ShopBenefitView(), + ShopBenefitView(key: _shopBenefitKey), ShopCheckView(), ShopManagerView(), OrderCentralView( diff --git a/lib/pages/user/widget/shop_benefit_view.dart b/lib/pages/user/widget/shop_benefit_view.dart index 9486da1..b5b89cc 100644 --- a/lib/pages/user/widget/shop_benefit_view.dart +++ b/lib/pages/user/widget/shop_benefit_view.dart @@ -1,12 +1,32 @@ import 'package:flutter/material.dart'; +import 'package:recook/pages/user/functions/user_benefit_func.dart'; +import 'package:recook/pages/user/model/user_benefit_model.dart'; import 'package:recook/pages/user/user_benefit_page.dart'; import 'package:recook/utils/custom_route.dart'; import 'package:recook/widgets/custom_image_button.dart'; import 'package:velocity_x/velocity_x.dart'; import 'package:recook/constants/constants.dart'; -class ShopBenefitView extends StatelessWidget { - const ShopBenefitView({Key key}) : super(key: key); +class ShopBenefitView extends StatefulWidget { + ShopBenefitView({Key key}) : super(key: key); + + @override + ShopBenefitViewState createState() => ShopBenefitViewState(); +} + +class ShopBenefitViewState extends State { + UserBenefitModel _model = UserBenefitModel.zero(); + + Future updateBenefit() async { + _model = await UserBenefitFunc.update(); + if (mounted) setState(() {}); + } + + @override + void initState() { + super.initState(); + updateBenefit(); + } @override Widget build(BuildContext context) { @@ -38,7 +58,12 @@ class ShopBenefitView extends StatelessWidget { child: Row( children: [ [ - '1223.56X'.text.size(18.sp).color(Color(0xFF333333)).make(), + _model.data.monthExpect + .toStringAsFixed(2) + .text + .size(18.sp) + .color(Color(0xFF333333)) + .make(), 6.hb, '本月预估'.text.size(12.sp).color(Color(0xFF333333)).make(), ].column().expand(), @@ -50,7 +75,12 @@ class ShopBenefitView extends StatelessWidget { endIndent: 16.w, ), [ - '1223.56X'.text.size(18.sp).color(Color(0xFF333333)).make(), + _model.data.dayExpect + .toStringAsFixed(2) + .text + .size(18.sp) + .color(Color(0xFF333333)) + .make(), 6.hb, '今日预估'.text.size(12.sp).color(Color(0xFF333333)).make(), ].column().expand(), @@ -69,7 +99,11 @@ class ShopBenefitView extends StatelessWidget { textBaseline: TextBaseline.alphabetic, children: [ '上月结算'.text.size(12.sp).color(Color(0xFF666666)).make(), - '¥1234.12X'.text.size(12.sp).color(Color(0xFFD7BE8E)).make(), + '¥${_model.data.lastMonthIncome.toStringAsFixed(2)}' + .text + .size(12.sp) + .color(Color(0xFFD7BE8E)) + .make(), ]).expand(), 30.hb, Row( @@ -78,7 +112,11 @@ class ShopBenefitView extends StatelessWidget { textBaseline: TextBaseline.alphabetic, children: [ '上月预估'.text.size(12.sp).color(Color(0xFF666666)).make(), - '¥1234.12X'.text.size(12.sp).color(Color(0xFFD7BE8E)).make(), + '¥${_model.data.lastMonthExpect.toStringAsFixed(2)}' + .text + .size(12.sp) + .color(Color(0xFFD7BE8E)) + .make(), ]).expand(), ].row(), ].column(crossAlignment: CrossAxisAlignment.start),