huxiaoqiang il y a 4 ans
Parent
commit
11b4a14cc5

+ 5 - 2
lib/beans/login_information_bean_entity.dart

@@ -12,9 +12,12 @@ class LoginInformationBeanData with JsonConvert<LoginInformationBeanData> {
 }
 
 class LoginInformationBeanDataExtra with JsonConvert<LoginInformationBeanDataExtra> {
+	String name;
+	String picture;
+	int type;
+	String timestamp;
+	List<String> salt;
 	int id;
 	int uid;
 	int state;
-	String name;
-	String picture;
 }

+ 22 - 8
lib/generated/json/login_information_bean_entity_helper.dart

@@ -39,6 +39,23 @@ Map<String, dynamic> loginInformationBeanDataToJson(LoginInformationBeanData ent
 }
 
 loginInformationBeanDataExtraFromJson(LoginInformationBeanDataExtra data, Map<String, dynamic> json) {
+	if (json['name'] != null) {
+		data.name = json['name'].toString();
+	}
+	if (json['picture'] != null) {
+		data.picture = json['picture'].toString();
+	}
+	if (json['type'] != null) {
+		data.type = json['type'] is String
+				? int.tryParse(json['type'])
+				: json['type'].toInt();
+	}
+	if (json['timestamp'] != null) {
+		data.timestamp = json['timestamp'].toString();
+	}
+	if (json['salt'] != null) {
+		data.salt = (json['salt'] as List).map((v) => v.toString()).toList().cast<String>();
+	}
 	if (json['id'] != null) {
 		data.id = json['id'] is String
 				? int.tryParse(json['id'])
@@ -54,21 +71,18 @@ loginInformationBeanDataExtraFromJson(LoginInformationBeanDataExtra data, Map<St
 				? int.tryParse(json['state'])
 				: json['state'].toInt();
 	}
-	if (json['name'] != null) {
-		data.name = json['name'].toString();
-	}
-	if (json['picture'] != null) {
-		data.picture = json['picture'].toString();
-	}
 	return data;
 }
 
 Map<String, dynamic> loginInformationBeanDataExtraToJson(LoginInformationBeanDataExtra entity) {
 	final Map<String, dynamic> data = new Map<String, dynamic>();
+	data['name'] = entity.name;
+	data['picture'] = entity.picture;
+	data['type'] = entity.type;
+	data['timestamp'] = entity.timestamp;
+	data['salt'] = entity.salt;
 	data['id'] = entity.id;
 	data['uid'] = entity.uid;
 	data['state'] = entity.state;
-	data['name'] = entity.name;
-	data['picture'] = entity.picture;
 	return data;
 }

+ 68 - 2
lib/https/MyDio.dart

@@ -3,8 +3,11 @@ import 'dart:io';
 
 import 'package:bbyyy/beans/simple_bean.dart';
 import 'package:bbyyy/my_tools/easy_loading/easy_loading.dart';
+import 'package:bbyyy/my_tools/event_bus.dart';
 import 'package:bbyyy/my_tools/global.dart';
 import 'package:bbyyy/my_tools/my_cookie.dart';
+import 'package:bbyyy/my_tools/my_tools.dart';
+import 'package:bbyyy/my_tools/s.dart';
 import 'package:bbyyy/paegs/root_page/root_page_view.dart';
 import 'package:dio/dio.dart';
 import 'package:flutter/cupertino.dart';
@@ -39,7 +42,7 @@ class MyDio {
 
     options = BaseOptions(
       baseUrl: MyCookie().getServer(),
-      connectTimeout: 30000,
+      connectTimeout: 10000,
       receiveTimeout: 3000,
     );
     if (MyCookie().loginInformation != null) {
@@ -52,6 +55,10 @@ class MyDio {
     dio = Dio(options);
   }
 
+  cancelRequest(){
+    dio.clear();
+  }
+
   post(String url, data, SCallBack sCallBack, FCallBack fCallBack) async {
     logger.info(MyCookie().getServer() + url);
     try {
@@ -80,10 +87,16 @@ class MyDio {
         case DioErrorType.connectTimeout:
           fCallBack(e);
           EasyLoading.showToast('链接超时');
+          if(!MyCookie().switching){
+            changeServer();
+          }
           break;
         case DioErrorType.other:
           fCallBack(e);
           EasyLoading.showToast('网络错误');
+          if(!MyCookie().switching){
+            changeServer();
+          }
           break;
         case DioErrorType.receiveTimeout:
           fCallBack(e);
@@ -92,6 +105,9 @@ class MyDio {
         case DioErrorType.response:
           fCallBack(e);
           EasyLoading.showToast('服务器异常');
+          if(!MyCookie().switching){
+            changeServer();
+          }
           break;
         case DioErrorType.sendTimeout:
           fCallBack(e);
@@ -99,7 +115,10 @@ class MyDio {
           break;
         default:
           fCallBack(e);
-          EasyLoading.showToast('网络错误');
+          EasyLoading.showToast('网络出错');
+          if(!MyCookie().switching){
+            changeServer();
+          }
       }
     }
   }
@@ -223,6 +242,7 @@ class MyDio {
             simpleBean.error.contains('会话过期,请重新登录') ||
             simpleBean.error.contains('登录失效,请重新登录')) {
           MyCookie().clean();
+          cancelRequest();
           RootPageView().bNIndex = 0;
           navigatorKey.currentState.pushNamedAndRemoveUntil(
               '/loginPage', ModalRoute.withName("/loginPage"));
@@ -233,4 +253,50 @@ class MyDio {
       return false;
     }
   }
+
+  void changeServer() {
+    MyCookie().switching = true;
+    List<String> salt = MyCookie().getLoginInformation().data.extra.salt;
+    print('salt.length=======${salt.toString()}');
+    if(salt==null||salt.length==0){
+      MyCookie().prefs.setString('using', '');
+    }else{
+      w:
+      for (int i = 0; i < salt.length; i++) {
+        if (MyCookie().prefs.getString('using') == null ||
+            MyCookie().prefs.getString('using').isEmpty ||
+            MyCookie().prefs.getString('using') == '') {
+          MyCookie().prefs.setString('using', salt[i]);
+          break w;
+        } else if (!MyCookie().prefs.getString('using').contains(salt[i])) {
+          MyCookie().prefs.setString(
+              'using', '${MyCookie().prefs.getString('using')},${salt[i]}');
+          break w;
+        }
+        if (i == salt.length - 1 &&
+            MyCookie().prefs.getString('using').contains(salt[i])) {
+          MyCookie().prefs.setString('using', '');
+        }
+      }
+    }
+    if(MyCookie().prefs.getString('using')==''){
+      MyCookie().prefs.setString('timestamp', '');
+      MyCookie().prefs.setString('uid', '');
+      MyCookie().prefs.setString('serverID', '');
+      EventBus().emit('服务器异常,请稍后再试');
+      MyCookie().switching = false;
+    }else{
+      MyCookie().prefs.setString(
+          'timestamp', MyCookie().getLoginInformation().data.extra.timestamp);
+      MyCookie().prefs.setString(
+          'uid', MyCookie().getLoginInformation().data.extra.uid.toString());
+      s().encryption();
+      RootPageView().bNIndex = 0;
+      cancelRequest();
+      MyCookie().reNum++;
+      MyCookie().switching = false;
+      navigatorKey.currentState.pushNamedAndRemoveUntil(
+          '/loginPage', ModalRoute.withName("/loginPage"));
+    }
+  }
 }

+ 2 - 1
lib/https/my_request.dart

@@ -67,7 +67,8 @@ checkLogin(SCallBack sCallBack, FCallBack fCallBack) {
       {
         '__user__': MyCookie().getUser(),
         'version': MyCookie().packageInfo.version,
-        'phone': Platform.isAndroid ? 'Android' : 'IOS'
+        'phone': Platform.isAndroid ? 'Android' : 'IOS',
+        'seq': int.parse(MyCookie().prefs.getString('serverID'))
       },
       sCallBack,
       fCallBack);

+ 4 - 22
lib/main.dart

@@ -49,6 +49,7 @@ import 'my_tools/my_colors.dart';
 import 'my_tools/my_views.dart';
 import 'my_tools/order.dart';
 import 'my_tools/pop_up_queue.dart';
+import 'my_tools/s.dart';
 
 final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
     FlutterLocalNotificationsPlugin();
@@ -134,7 +135,8 @@ class MyApp extends StatelessWidget with WidgetsBindingObserver {
   StatelessElement createElement() {
     // TODO: implement createElement
     WidgetsBinding.instance.addObserver(this);
-    MyCookie().initP();
+    // MyCookie().initP();
+
     _initFluwx();
     EventBus().on('hasNewOrder', (arg) {
       newOrder = arg;
@@ -156,9 +158,7 @@ class MyApp extends StatelessWidget with WidgetsBindingObserver {
         couponBulletBox(arg);
       }
     });
-    EventBus().on('packageInfo', (arg) {
-      isItUnderReview();
-    });
+
     return super.createElement();
   }
 
@@ -1336,24 +1336,6 @@ class MyApp extends StatelessWidget with WidgetsBindingObserver {
       }
     }, (error) {});
   }
-
-  void isItUnderReview() {
-    MyDio().post(
-        '/model/appStoreReview', {'version': MyCookie().packageInfo.version},
-        (response, hasError) {
-      if (!hasError) {
-        AppStoreReviewBeanEntity e = AppStoreReviewBeanEntity()
-            .fromJson(json.decode(response.data.toString()));
-        print(e.data);
-        if (e.data && Platform.isIOS) {
-          MyCookie().underReview = true;
-        } else {
-          MyCookie().underReview = false;
-        }
-        EventBus().emit('appStoreReview');
-      }
-    }, (error) {});
-  }
 }
 
 class FallbackCupertinoLocalisationsDelegate

+ 7 - 2
lib/my_tools/my_cookie.dart

@@ -11,7 +11,7 @@ String appName = '梆梆鱼';
 
 class MyCookie {
   MyCookie._internal() {
-    initP();
+    // initP();
   }
 
   //保存单例
@@ -22,7 +22,7 @@ class MyCookie {
 
  // String server = '172.16.104.19';
   String server = 'bby.banghuo.net';
-//   String server = '39.108.225.84';
+  // String server = '39.108.225.84';
   SharedPreferences prefs;
   PackageInfo packageInfo;
   UserBeanDataData userBean;
@@ -30,6 +30,8 @@ class MyCookie {
   MyLocation location;
   bool haveNoPay = false;
   bool underReview = true;
+  bool switching = false;
+  int reNum = 0;
 
   getUT() {
     return 'user=${loginInformation.data.user}&token=${loginInformation.data.token}';
@@ -41,6 +43,9 @@ class MyCookie {
 
   initP() async {
     prefs = await SharedPreferences.getInstance();
+    if(prefs.getString('serverID')==null||prefs.getString('serverID').isEmpty){
+      prefs.setString('serverID', '0');
+    }
     packageInfo = await PackageInfo.fromPlatform();
     EventBus().emit('packageInfo');
     plugin = DisableScreenshots();

+ 39 - 0
lib/my_tools/s.dart

@@ -0,0 +1,39 @@
+import 'package:bbyyy/https/MyDio.dart';
+import 'package:bbyyy/my_tools/my_cookie.dart';
+import 'package:encrypt/encrypt.dart';
+
+class s {
+  encryption() {
+    // print('encryption=========================================');
+    String timestamp = MyCookie().prefs.getString('timestamp');
+    String uid = MyCookie().prefs.getString('uid');
+    String s = timestamp.replaceRange(0, uid.length, uid);
+    // print(timestamp);
+    // print(uid);
+    // print(s);
+    // print(s.substring(0, 16));
+    // print(s.substring(16, s.length));
+    var sk = s.substring(0, 16);
+    var sv = s.substring(16);
+    // print(sk);
+    // print(sv);
+
+    final key = Key.fromUtf8(sk);
+    final iv = IV.fromUtf8(sv);
+    final encrypter = Encrypter(AES(key, mode: AESMode.cbc));
+    // print('MyCookie().prefs.getString(using)==============${MyCookie().prefs.getString('using')}');
+    String using = MyCookie().prefs.getString('using').split(',').last;
+    var decrypt16 = encrypter.decrypt64(using, iv: iv);
+    // print(decrypt16);
+    MyCookie().server = decrypt16.split(':')[1];
+    // if(MyCookie().server=='bby.banghuo.net'){
+    //   MyCookie().server = '172.162.104.19';
+    // }
+    // if(MyCookie().server=='localhost'){
+    //   MyCookie().server = '172.163.104.19';
+    // }
+    MyCookie().prefs.setString('serverID', decrypt16.split(':')[0]);
+    MyDio().initDio();
+    // print('encryption=========================================');
+  }
+}

+ 0 - 2
lib/paegs/guest_login_page/root_page.dart

@@ -22,8 +22,6 @@ class _RootPage1State extends State<RootPage1> {
   @override
   void initState() {
     super.initState();
-    MyCookie().initP();
-    // MyData().init(context);
     EventBus().on('toLogin', (arg) {
       showDialog(
         context: context,

+ 116 - 23
lib/paegs/login_page/login_page.dart

@@ -1,19 +1,24 @@
 import 'dart:convert';
 import 'dart:io';
 
+import 'package:bbyyy/beans/app_store_review_bean_entity.dart';
 import 'package:bbyyy/beans/login_information_bean_entity.dart';
 import 'package:bbyyy/https/MyDio.dart';
 import 'package:bbyyy/https/my_request.dart';
+import 'package:bbyyy/my_tools/easy_loading/easy_loading.dart';
+import 'package:bbyyy/my_tools/event_bus.dart';
 import 'package:bbyyy/my_tools/my_colors.dart';
 import 'package:bbyyy/my_tools/my_cookie.dart';
 import 'package:bbyyy/my_tools/my_tools.dart';
+import 'package:bbyyy/my_tools/my_views.dart';
 import 'package:bbyyy/paegs/forget_password_page/forget_password_page.dart';
 import 'package:bbyyy/paegs/guest_login_page/root_page.dart';
 import 'package:bbyyy/paegs/registered_page/registered_page.dart';
 import 'package:bbyyy/paegs/root_page/root_page.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:flutter/material.dart';
-import 'package:flutter_svg/flutter_svg.dart';import 'package:bbyyy/beans/app_store_review_bean_entity.dart';
+import 'package:flutter/services.dart';
+import 'package:flutter_svg/flutter_svg.dart';
 
 class LoginPage extends StatefulWidget {
   @override
@@ -30,7 +35,20 @@ class _LoginPageState extends State<LoginPage> {
   void initState() {
     // TODO: implement initState
     super.initState();
-    checkAuditStatus();
+    print('MyCookie().reNum===========${MyCookie().reNum}');
+    EventBus().on('服务器异常,请稍后再试', (arg) {
+      qAPP();
+    });
+    Future.delayed(Duration.zero, () {
+      MyCookie().reNum = 0;
+      checkAuditStatus();
+    });
+  }
+  @override
+  void dispose() {
+    // TODO: implement dispose
+    super.dispose();
+    EventBus().off('服务器异常,请稍后再试');
   }
 
   @override
@@ -239,7 +257,12 @@ class _LoginPageState extends State<LoginPage> {
                                     ),
                                   ),
                                 ),
-                                Visibility(child: Container(width: 20,),visible: showBrowse,),
+                                Visibility(
+                                  child: Container(
+                                    width: 20,
+                                  ),
+                                  visible: showBrowse,
+                                ),
                                 Visibility(
                                   visible: showBrowse,
                                   child: Expanded(
@@ -261,7 +284,8 @@ class _LoginPageState extends State<LoginPage> {
                                         child: Text(
                                           '游客登录',
                                           style: TextStyle(
-                                              color: Colors.white, fontSize: 17),
+                                              color: Colors.white,
+                                              fontSize: 17),
                                         ),
                                         alignment: Alignment.center,
                                         padding: EdgeInsets.only(bottom: 2),
@@ -302,8 +326,8 @@ class _LoginPageState extends State<LoginPage> {
                                     children: [
                                       GestureDetector(
                                         onTap: () {
-                                          MyTools().toPage(
-                                              context, RegisteredPage(), (then) {},
+                                          MyTools().toPage(context,
+                                              RegisteredPage(), (then) {},
                                               noBack: true);
                                         },
                                         behavior: HitTestBehavior.translucent,
@@ -312,7 +336,8 @@ class _LoginPageState extends State<LoginPage> {
                                           child: Text(
                                             '注册账号',
                                             style: TextStyle(
-                                                color: MyColors.c666666, fontSize: 14),
+                                                color: MyColors.c666666,
+                                                fontSize: 14),
                                           ),
                                         ),
                                       ),
@@ -320,16 +345,17 @@ class _LoginPageState extends State<LoginPage> {
                                         height: 13,
                                         width: 2,
                                         decoration: BoxDecoration(
-                                          borderRadius:
-                                              BorderRadius.all(Radius.circular(1)),
+                                          borderRadius: BorderRadius.all(
+                                              Radius.circular(1)),
                                           color: MyColors.cFF4233,
                                         ),
-                                        margin: EdgeInsets.only(left: 27, right: 27),
+                                        margin: EdgeInsets.only(
+                                            left: 27, right: 27),
                                       ),
                                       GestureDetector(
                                         onTap: () {
-                                          MyTools().toPage(
-                                              context, ForgetPasswordPage(), (then) {},
+                                          MyTools().toPage(context,
+                                              ForgetPasswordPage(), (then) {},
                                               noBack: true);
                                         },
                                         behavior: HitTestBehavior.translucent,
@@ -338,7 +364,8 @@ class _LoginPageState extends State<LoginPage> {
                                           child: Text(
                                             '忘记密码',
                                             style: TextStyle(
-                                                color: MyColors.c666666, fontSize: 14),
+                                                color: MyColors.c666666,
+                                                fontSize: 14),
                                           ),
                                         ),
                                       ),
@@ -364,11 +391,13 @@ class _LoginPageState extends State<LoginPage> {
   }
 
   void login() {
+    print(MyCookie().switching);
     loginAccount({
       'user': _phoneNum.text,
       'password': MyTools.base64Encode(_pw.text),
-      'version':MyCookie().packageInfo.version,
-      'phone': Platform.isAndroid?'Android':'IOS'
+      'version': MyCookie().packageInfo.version,
+      'phone': Platform.isAndroid ? 'Android' : 'IOS',
+      'seq': int.parse(MyCookie().prefs.getString('serverID'))
     }, (r, hE) {
       if (!hE) {
         LoginInformationBeanEntity entity = LoginInformationBeanEntity()
@@ -381,23 +410,87 @@ class _LoginPageState extends State<LoginPage> {
   }
 
   void checkAuditStatus() {
-    MyDio().post('/model/appStoreReview', {
-      'version':MyCookie().packageInfo.version
-    }, (response, hasError) {
-      if(!hasError){
-        AppStoreReviewBeanEntity e = AppStoreReviewBeanEntity().fromJson(json.decode(response.data.toString()));
+    EasyLoading.show();
+    MyDio().post(
+        '/model/appStoreReview', {'version': MyCookie().packageInfo.version},
+        (response, hasError) {
+      if (!hasError) {
+        EasyLoading.dismiss();
+        AppStoreReviewBeanEntity e = AppStoreReviewBeanEntity()
+            .fromJson(json.decode(response.data.toString()));
         print(e.data);
-        if(e.data&&Platform.isIOS){
+        if (e.data && Platform.isIOS) {
           setState(() {
             showBrowse = true;
             MyCookie().underReview = showBrowse;
           });
         }
       }
-    }, (error) { });
+    }, (error) {});
   }
 
   void guestLogin() {
-    MyTools().toPage(context, RootPage1(), (then){});
+    MyTools().toPage(context, RootPage1(), (then) {});
+  }
+
+  void qAPP() {
+    showDialog(
+      context: context,
+      builder: (BuildContext context) {
+        return Material(
+          color: Colors.black12,
+          child: Center(
+            child: Container(
+              decoration: BoxDecoration(
+                borderRadius: BorderRadius.circular(16),
+                color: Colors.white,
+              ),
+              height: 180,
+              margin: EdgeInsets.symmetric(horizontal: 18),
+              padding: EdgeInsets.symmetric(horizontal: 8, vertical: 12),
+              child: Column(
+                children: [
+                  Expanded(
+                    child: Center(
+                      child: Container(
+                        child: MyViews()
+                            .myText('服务器出现异常,请稍后再试。', MyColors.c333333, 14),
+                        margin: EdgeInsets.symmetric(horizontal: 20),
+                      ),
+                    ),
+                  ),
+                  Container(
+                    height: 0.5,
+                    color: MyColors.cE7E7E7,
+                    margin: EdgeInsets.only(bottom: 12),
+                  ),
+                  Container(
+                    margin: EdgeInsets.symmetric(horizontal: 10),
+                    child: Expanded(
+                      child: GestureDetector(
+                        behavior: HitTestBehavior.translucent,
+                        onTap: () async {
+                          await SystemChannels.platform
+                              .invokeMethod('SystemNavigator.pop');
+                        },
+                        child: Container(
+                          decoration: BoxDecoration(
+                              borderRadius: BorderRadius.circular(20),
+                              color: MyColors.cFF4233),
+                          height: 40,
+                          child: MyViews().myText('退 出', Colors.white, 14),
+                          alignment: Alignment.center,
+                        ),
+                      ),
+                    ),
+                  )
+                ],
+                mainAxisAlignment: MainAxisAlignment.spaceBetween,
+              ),
+            ),
+          ),
+        );
+      },
+    );
   }
 }

+ 2 - 1
lib/paegs/root_page/root_page.dart

@@ -16,6 +16,7 @@ import 'package:bbyyy/my_tools/my_cookie.dart';
 import 'package:bbyyy/my_tools/my_datas.dart';
 import 'package:bbyyy/my_tools/my_tools.dart';
 import 'package:bbyyy/my_tools/pop_up_queue.dart';
+import 'package:bbyyy/my_tools/s.dart';
 import 'package:bbyyy/nsq/nsq.dart' as Nsq;
 import 'package:bbyyy/paegs/gang_page/gang_page.dart';
 import 'package:bbyyy/paegs/home_page/home_page.dart';
@@ -44,7 +45,7 @@ class _RootPageState extends State<RootPage> {
   @override
   void initState() {
     super.initState();
-    MyCookie().initP();
+    // s().encryption();
     LocationUtil().initLocation(context);
     LocationUtil().getLocation();
     Nsq.ConnectServer(

+ 124 - 20
lib/paegs/welcome_page/welcome_page.dart

@@ -1,15 +1,22 @@
 import 'dart:async';
 import 'dart:convert';
+import 'dart:io';
 
+import 'package:bbyyy/beans/app_store_review_bean_entity.dart';
 import 'package:bbyyy/beans/login_information_bean_entity.dart';
 import 'package:bbyyy/https/MyDio.dart';
 import 'package:bbyyy/https/my_request.dart';
 import 'package:bbyyy/my_tools/easy_loading/easy_loading.dart';
+import 'package:bbyyy/my_tools/event_bus.dart';
+import 'package:bbyyy/my_tools/my_colors.dart';
 import 'package:bbyyy/my_tools/my_cookie.dart';
 import 'package:bbyyy/my_tools/my_tools.dart';
+import 'package:bbyyy/my_tools/my_views.dart';
+import 'package:bbyyy/my_tools/s.dart';
 import 'package:bbyyy/paegs/login_page/login_page.dart';
 import 'package:bbyyy/paegs/root_page/root_page.dart';
 import 'package:flutter/material.dart';
+import 'package:flutter/services.dart';
 
 class WelcomePage extends StatefulWidget {
   @override
@@ -30,29 +37,65 @@ class _WelcomePageState extends State<WelcomePage> {
       ..textPadding = EdgeInsets.all(0)
       ..contentPadding = EdgeInsets.fromLTRB(20, 12, 20, 12)
       ..userInteractions = false;
-    Timer(Duration(seconds: 1), () {
-      if (MyCookie().getLoginInformation() == null ||
-          MyCookie().getLoginInformation().data == null ||
-          MyCookie().getLoginInformation().data.token.isEmpty ||
-          MyCookie().getLoginInformation().data.token == '') {
-        MyTools().toPage(context, LoginPage(), (then) {}, noBack: true);
-      } else {
-        MyDio().initDio();
-        checkLogin((r, hE) {
-          if (!hE) {
-            String token = MyCookie().getToken();
-            LoginInformationBeanEntity loginInformation =
-            LoginInformationBeanEntity()
-                .fromJson(json.decode(r.data.toString()));
-            loginInformation.data.token = token;
-            MyCookie().saveLoginInformationBeanEntity(loginInformation);
-            MyTools().toPage(context, RootPage(), (then) {}, noBack: true);
-          } else {
+    EventBus().on('服务器异常,请稍后再试', (arg) {
+      qAPP();
+    });
+    EventBus().on('packageInfo', (arg) {
+      try{
+        if(MyCookie().prefs.getString('timestamp')!=null&&MyCookie().prefs.getString('timestamp')!=''&&
+            MyCookie().prefs.getString('uid')!=null&&MyCookie().prefs.getString('uid')!=''&&
+            MyCookie().prefs.getString('using')!=null&&MyCookie().prefs.getString('using')!=''){
+          s().encryption();
+        }
+      }catch(e){}
+      isItUnderReview();
+    });
+    MyCookie().initP();
+
+  }
+
+  void isItUnderReview() {
+    EasyLoading.show();
+    MyDio().post(
+        '/model/appStoreReview', {'version': MyCookie().packageInfo.version},
+        (response, hasError) {
+      if (!hasError) {
+        EasyLoading.dismiss();
+        AppStoreReviewBeanEntity e = AppStoreReviewBeanEntity()
+            .fromJson(json.decode(response.data.toString()));
+        print(e.data);
+        if (e.data && Platform.isIOS) {
+          MyCookie().underReview = true;
+        } else {
+          MyCookie().underReview = false;
+        }
+        EventBus().emit('appStoreReview');
+
+        Timer(Duration(seconds: 1), () {
+          if (MyCookie().getLoginInformation() == null ||
+              MyCookie().getLoginInformation().data == null ||
+              MyCookie().getLoginInformation().data.token.isEmpty ||
+              MyCookie().getLoginInformation().data.token == '') {
             MyTools().toPage(context, LoginPage(), (then) {}, noBack: true);
+          } else {
+            MyDio().initDio();
+            checkLogin((r, hE) {
+              if (!hE) {
+                String token = MyCookie().getToken();
+                LoginInformationBeanEntity loginInformation =
+                    LoginInformationBeanEntity()
+                        .fromJson(json.decode(r.data.toString()));
+                loginInformation.data.token = token;
+                MyCookie().saveLoginInformationBeanEntity(loginInformation);
+                MyTools().toPage(context, RootPage(), (then) {}, noBack: true);
+              } else {
+                MyTools().toPage(context, LoginPage(), (then) {}, noBack: true);
+              }
+            }, (e) {});
           }
-        }, (e) {});
+        });
       }
-    });
+    }, (error) {});
   }
 
   @override
@@ -76,4 +119,65 @@ class _WelcomePageState extends State<WelcomePage> {
       ),
     );
   }
+
+  void qAPP() {
+    showDialog(
+      context: context,
+      builder: (BuildContext context) {
+        return Material(
+          color: Colors.black12,
+          child: Center(
+            child: Container(
+              decoration: BoxDecoration(
+                borderRadius: BorderRadius.circular(16),
+                color: Colors.white,
+              ),
+              height: 180,
+              margin: EdgeInsets.symmetric(horizontal: 18),
+              padding: EdgeInsets.symmetric(horizontal: 8, vertical: 12),
+              child: Column(
+                children: [
+                  Expanded(
+                    child: Center(
+                      child: Container(
+                        child: MyViews()
+                            .myText('服务器出现异常,请稍后再试。', MyColors.c333333, 14),
+                        margin: EdgeInsets.symmetric(horizontal: 20),
+                      ),
+                    ),
+                  ),
+                  Container(
+                    height: 0.5,
+                    color: MyColors.cE7E7E7,
+                    margin: EdgeInsets.only(bottom: 12),
+                  ),
+                  Container(
+                    margin: EdgeInsets.symmetric(horizontal: 10),
+                    child: Expanded(
+                      child: GestureDetector(
+                        behavior: HitTestBehavior.translucent,
+                        onTap: () async {
+                          await SystemChannels.platform
+                              .invokeMethod('SystemNavigator.pop');
+                        },
+                        child: Container(
+                          decoration: BoxDecoration(
+                              borderRadius: BorderRadius.circular(20),
+                              color: MyColors.cFF4233),
+                          height: 40,
+                          child: MyViews().myText('退 出', Colors.white, 14),
+                          alignment: Alignment.center,
+                        ),
+                      ),
+                    ),
+                  )
+                ],
+                mainAxisAlignment: MainAxisAlignment.spaceBetween,
+              ),
+            ),
+          ),
+        );
+      },
+    );
+  }
 }

+ 29 - 1
pubspec.lock

@@ -36,6 +36,20 @@ packages:
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "3.1.2"
+  args:
+    dependency: transitive
+    description:
+      name: args
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.2.0"
+  asn1lib:
+    dependency: transitive
+    description:
+      name: asn1lib
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "1.0.2"
   async:
     dependency: transitive
     description:
@@ -140,7 +154,7 @@ packages:
       name: convert
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.1.1"
+    version: "3.0.1"
   crypto:
     dependency: "direct main"
     description:
@@ -218,6 +232,13 @@ packages:
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.1.0"
+  encrypt:
+    dependency: "direct main"
+    description:
+      name: encrypt
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "5.0.1"
   fake_async:
     dependency: transitive
     description:
@@ -644,6 +665,13 @@ packages:
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.0"
+  pointycastle:
+    dependency: transitive
+    description:
+      name: pointycastle
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "3.3.1"
   process:
     dependency: transitive
     description:

+ 2 - 1
pubspec.yaml

@@ -45,7 +45,7 @@ dependencies:
   package_info: ^0.4.3+2 #获取版本号
   flutter_image_compress: ^0.7.0 #图片压缩
   crypto: ^3.0.1 #md5加密
-  convert: ^2.1.1 #md5加密使用
+  convert: ^3.0.1 #md5加密使用
   sqflite: ^2.0.0+3 #数据
   uuid: ^3.0.3 #生成订单UUID
   flutter_slidable: ^0.5.7 #滑动删除
@@ -72,6 +72,7 @@ dependencies:
   amap_flutter_base: ^2.0.0
   amap_flutter_location: ^2.0.0
   provider: ^5.0.0
+  encrypt: ^5.0.1
 
 dev_dependencies:
   flutter_test: