Commit 578775ca794820b7d42a5737558a381ee0119fb1
1 parent
ca0d27b6
feat:课程学习增加vip权限控制
Showing
2 changed files
with
31 additions
and
32 deletions
lib/common/core/user_util.dart
| @@ -63,8 +63,8 @@ class UserUtil { | @@ -63,8 +63,8 @@ class UserUtil { | ||
| 63 | pushNamedAndRemoveUntil(AppRouteName.login, (route) => false, arguments: {'showPasswordPage': showPasswordLoginPage}); | 63 | pushNamedAndRemoveUntil(AppRouteName.login, (route) => false, arguments: {'showPasswordPage': showPasswordLoginPage}); |
| 64 | } | 64 | } |
| 65 | 65 | ||
| 66 | - // 是否有游戏权限 | ||
| 67 | - static bool hasGamePermission() { | 66 | + // 是否有权限 |
| 67 | + static bool hasPermission() { | ||
| 68 | return _userEntity?.valid ?? false; | 68 | return _userEntity?.valid ?? false; |
| 69 | } | 69 | } |
| 70 | 70 |
lib/pages/home/view.dart
| 1 | 1 | ||
| 2 | -import 'package:flutter/foundation.dart'; | ||
| 3 | import 'package:flutter/material.dart'; | 2 | import 'package:flutter/material.dart'; |
| 4 | -import 'package:flutter/services.dart'; | ||
| 5 | import 'package:flutter_app_update/azhon_app_update.dart'; | 3 | import 'package:flutter_app_update/azhon_app_update.dart'; |
| 6 | import 'package:flutter_app_update/update_model.dart'; | 4 | import 'package:flutter_app_update/update_model.dart'; |
| 7 | import 'package:flutter_bloc/flutter_bloc.dart'; | 5 | import 'package:flutter_bloc/flutter_bloc.dart'; |
| @@ -69,11 +67,9 @@ class _HomePageView extends StatelessWidget { | @@ -69,11 +67,9 @@ class _HomePageView extends StatelessWidget { | ||
| 69 | Expanded( | 67 | Expanded( |
| 70 | child: GestureDetector( | 68 | child: GestureDetector( |
| 71 | onTap: () { | 69 | onTap: () { |
| 72 | - if (UserUtil.isLogined()) { | 70 | + _checkPermission(() { |
| 73 | pushNamed(AppRouteName.courseUnit); | 71 | pushNamed(AppRouteName.courseUnit); |
| 74 | - } else { | ||
| 75 | - pushNamed(AppRouteName.login); | ||
| 76 | - } | 72 | + }); |
| 77 | }, | 73 | }, |
| 78 | child: Column( | 74 | child: Column( |
| 79 | mainAxisAlignment: MainAxisAlignment.center, | 75 | mainAxisAlignment: MainAxisAlignment.center, |
| @@ -105,30 +101,9 @@ class _HomePageView extends StatelessWidget { | @@ -105,30 +101,9 @@ class _HomePageView extends StatelessWidget { | ||
| 105 | 'WQF ModuleSelectPage BlocBuilder state: $userState'); | 101 | 'WQF ModuleSelectPage BlocBuilder state: $userState'); |
| 106 | return GestureDetector( | 102 | return GestureDetector( |
| 107 | onTap: () { | 103 | onTap: () { |
| 108 | - //如果没登录先登录 | ||
| 109 | - if (UserUtil.isLogined()) { | ||
| 110 | - if (AppConfigHelper | ||
| 111 | - .shouldHidePay()) { | ||
| 112 | - pushNamed(AppRouteName.games); | ||
| 113 | - } else { | ||
| 114 | - if (UserUtil | ||
| 115 | - .hasGamePermission()) { | ||
| 116 | - pushNamed(AppRouteName.games); | ||
| 117 | - } else { | ||
| 118 | - showTwoActionDialog( | ||
| 119 | - '提示', '忽略', '去续费', | ||
| 120 | - '您的课程已到期,请快快续费继续学习吧!', | ||
| 121 | - leftTap: () { | ||
| 122 | - popPage(); | ||
| 123 | - }, rightTap: () { | ||
| 124 | - popPage(); | ||
| 125 | - pushNamed(AppRouteName.shop); | ||
| 126 | - }); | ||
| 127 | - } | ||
| 128 | - } | ||
| 129 | - } else { | ||
| 130 | - pushNamed(AppRouteName.login); | ||
| 131 | - } | 104 | + _checkPermission(() { |
| 105 | + pushNamed(AppRouteName.games); | ||
| 106 | + }); | ||
| 132 | }, | 107 | }, |
| 133 | child: Column( | 108 | child: Column( |
| 134 | mainAxisAlignment: MainAxisAlignment | 109 | mainAxisAlignment: MainAxisAlignment |
| @@ -168,6 +143,30 @@ class _HomePageView extends StatelessWidget { | @@ -168,6 +143,30 @@ class _HomePageView extends StatelessWidget { | ||
| 168 | }); | 143 | }); |
| 169 | 144 | ||
| 170 | 145 | ||
| 146 | + _checkPermission(VoidCallback onAllowed) { | ||
| 147 | + if (UserUtil.isLogined()) { | ||
| 148 | + if (AppConfigHelper.shouldHidePay()) { | ||
| 149 | + onAllowed(); | ||
| 150 | + } else { | ||
| 151 | + if (UserUtil.hasPermission()) { | ||
| 152 | + onAllowed(); | ||
| 153 | + } else { | ||
| 154 | + showTwoActionDialog('提示', '忽略', '去续费', | ||
| 155 | + '您的课程已到期,请快快续费继续学习吧!', leftTap: () { | ||
| 156 | + popPage(); | ||
| 157 | + }, rightTap: () { | ||
| 158 | + popPage(); | ||
| 159 | + pushNamed(AppRouteName.shop); | ||
| 160 | + }); | ||
| 161 | + } | ||
| 162 | + } | ||
| 163 | + } else { | ||
| 164 | + //如果没登录先登录 | ||
| 165 | + pushNamed(AppRouteName.login); | ||
| 166 | + } | ||
| 167 | + } | ||
| 168 | + | ||
| 169 | + | ||
| 171 | ///Flutter侧处理升级对话框 | 170 | ///Flutter侧处理升级对话框 |
| 172 | ///[forcedUpgrade] 是否强制升级 | 171 | ///[forcedUpgrade] 是否强制升级 |
| 173 | _showUpdateDialog(BuildContext context, bool forcedUpgrade, | 172 | _showUpdateDialog(BuildContext context, bool forcedUpgrade, |