From 48e842f11396e1063a037f075cf7ee69ebb29c0d Mon Sep 17 00:00:00 2001 From: "1147192855@qq.com" <1147192855@qq.com> Date: Tue, 9 Apr 2024 13:41:53 +0800 Subject: [PATCH] no message --- lib/common/api/retrofit_client.dart | 11 ++++- lib/common/api/user_api.dart | 19 -------- lib/common/config/app_config.dart | 2 + lib/common/job/common/app_version_model.dart | 12 +++++ lib/common/job/common/base_app_version.dart | 20 ++++++++ lib/common/job/common/base_page.dart | 20 ++++---- lib/common/job/common/base_page_data.dart | 19 ++++---- lib/page/global_widget/start_page.dart | 49 ++++++++++++++++++-- lib/page/login_page/login_logic.dart | 5 -- 9 files changed, 108 insertions(+), 49 deletions(-) delete mode 100644 lib/common/api/user_api.dart create mode 100644 lib/common/job/common/app_version_model.dart create mode 100644 lib/common/job/common/base_app_version.dart diff --git a/lib/common/api/retrofit_client.dart b/lib/common/api/retrofit_client.dart index ea30120..9f9e887 100644 --- a/lib/common/api/retrofit_client.dart +++ b/lib/common/api/retrofit_client.dart @@ -1,5 +1,8 @@ import 'package:dio/dio.dart' hide Headers; import 'package:retrofit/retrofit.dart'; +import 'package:school_asignment_app/common/job/common/app_version_model.dart'; +import 'package:school_asignment_app/common/job/common/base_app_version.dart'; +import 'package:school_asignment_app/common/job/common/base_page_data.dart'; import 'package:school_asignment_app/common/job/enum_subject.dart'; import 'package:school_asignment_app/common/job/user_info_detail.dart'; import 'package:school_asignment_app/common/job/work_student.dart'; @@ -12,6 +15,12 @@ part 'retrofit_client.g.dart'; abstract class RetrofitClient { factory RetrofitClient(Dio dio, {String? baseUrl}) = _RetrofitClient; + /* start 系统系列接口 */ + @POST("/api/infra/AppVersion/GetList") + Future?> getAppVersions(@Body() BaseAppVersion appVersion); + + /* start 系统系列接口 */ + @POST("/api/rbac/Auth/Login") Future toLogin(@Field() String account, @Field() String password); @@ -22,5 +31,5 @@ abstract class RetrofitClient { Future getWorkList(@Queries() WorkStudentParams params); @GET("/api/app/Common/GetEnumInfos") - Future>> getEnumSubjectList(@Query('enumNames') String enumNames); + Future>> getEnumSubjectList(@Query('enumNames') String enumNames); } diff --git a/lib/common/api/user_api.dart b/lib/common/api/user_api.dart deleted file mode 100644 index 0b381a7..0000000 --- a/lib/common/api/user_api.dart +++ /dev/null @@ -1,19 +0,0 @@ -import 'package:school_asignment_app/common/job/user_info.dart'; -import 'package:school_asignment_app/common/request/rest_dio.dart'; - -import '../job/common/base_structure_result.dart'; -import 'retrofit_client.dart'; - -class UserApi { - // static Future> toLogin({required String loginName, required String password}) async { - // var response = await RestDio.instance - // .post('/auth/login/exam-marking/user', data: {'loginName': loginName, 'password': password}); - // return BaseStructureResult.fromJson(response, (response) => response); - // } - - // // 获取用户信息 - // static Future> getUserInfo() async { - // var response = await RestDio.instanime.get('/auth/info/cur-user'); - // return BaseStructureResult.fromJson(response, (response) => UserInfo.fromJson(response)); - // } -} diff --git a/lib/common/config/app_config.dart b/lib/common/config/app_config.dart index fa82751..e953558 100644 --- a/lib/common/config/app_config.dart +++ b/lib/common/config/app_config.dart @@ -15,4 +15,6 @@ class AppConfig { /// ui width static const UI_HEIGHT = 812.0; + static const SKIP_UPDATING_USER = '18888888888'; + static const APP_NAME = '18888888888'; } diff --git a/lib/common/job/common/app_version_model.dart b/lib/common/job/common/app_version_model.dart new file mode 100644 index 0000000..b6f09cb --- /dev/null +++ b/lib/common/job/common/app_version_model.dart @@ -0,0 +1,12 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'app_version_model.g.dart'; + +@JsonSerializable() +class AppVersionModel extends Object { + AppVersionModel(); + + factory AppVersionModel.fromJson(Map srcJson) => _$AppVersionModelFromJson(srcJson); + + Map toJson() => _$AppVersionModelToJson(this); +} diff --git a/lib/common/job/common/base_app_version.dart b/lib/common/job/common/base_app_version.dart new file mode 100644 index 0000000..a9283e2 --- /dev/null +++ b/lib/common/job/common/base_app_version.dart @@ -0,0 +1,20 @@ +import 'package:json_annotation/json_annotation.dart'; +import 'package:school_asignment_app/common/job/common/base_page.dart'; + +part 'base_app_version.g.dart'; + +@JsonSerializable() +class BaseAppVersion extends BasePage { + @JsonKey(name: 'AppName') + String appName; + + // 1 安卓 2 IOS + @JsonKey(name: 'FtuType') + int ftuType; + + BaseAppVersion(this.appName, this.ftuType, super.page, super.limit); + + factory BaseAppVersion.fromJson(Map srcJson) => _$BaseAppVersionFromJson(srcJson); + + Map toJson() => _$BaseAppVersionToJson(this); +} diff --git a/lib/common/job/common/base_page.dart b/lib/common/job/common/base_page.dart index 375cd1a..69a5491 100644 --- a/lib/common/job/common/base_page.dart +++ b/lib/common/job/common/base_page.dart @@ -6,26 +6,24 @@ * @FilePath: \marking_app\lib\common\model\common\base_page.dart * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ -import 'package:json_annotation/json_annotation.dart'; - +import 'package:json_annotation/json_annotation.dart'; + part 'base_page.g.dart'; - @JsonSerializable() - class BasePage extends Object { - - @JsonKey(name: 'Page') +class BasePage extends Object { + @JsonKey(name: 'PageNumber') int page; - @JsonKey(name: 'Limit') + @JsonKey(name: 'PageSize') int limit; - BasePage(this.page,this.limit,); + BasePage( + this.page, + this.limit, + ); factory BasePage.fromJson(Map srcJson) => _$BasePageFromJson(srcJson); Map toJson() => _$BasePageToJson(this); - } - - diff --git a/lib/common/job/common/base_page_data.dart b/lib/common/job/common/base_page_data.dart index 3fde8be..96ffe50 100644 --- a/lib/common/job/common/base_page_data.dart +++ b/lib/common/job/common/base_page_data.dart @@ -6,24 +6,23 @@ * @FilePath: \marking_app\lib\common\model\common\base_page.dart * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ -import 'package:json_annotation/json_annotation.dart'; - +import 'package:json_annotation/json_annotation.dart'; + part 'base_page_data.g.dart'; @JsonSerializable(genericArgumentFactories: true, fieldRename: FieldRename.snake) - class BasePageData extends Object { - +class BasePageData extends Object { @JsonKey(name: 'items') List items; - @JsonKey(name: 'total') + @JsonKey(name: 'totalCount') int total; - BasePageData(this.items,this.total,); + BasePageData( + this.items, + this.total, + ); - - factory BasePageData.fromJson( Map json, T Function(dynamic json) fromJsonT) => _$BasePageDataFromJson(json, fromJsonT); + factory BasePageData.fromJson(Map json, T Function(dynamic json) fromJsonT) => _$BasePageDataFromJson(json, fromJsonT); Map toJson(Object Function(T value) toJsonT) => _$BasePageDataToJson(this, toJsonT); } - - diff --git a/lib/page/global_widget/start_page.dart b/lib/page/global_widget/start_page.dart index c3d3755..7780ed4 100644 --- a/lib/page/global_widget/start_page.dart +++ b/lib/page/global_widget/start_page.dart @@ -1,8 +1,14 @@ import 'dart:convert'; +import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:package_info/package_info.dart'; +import 'package:school_asignment_app/common/config/app_config.dart'; +import 'package:school_asignment_app/common/job/common/app_version_model.dart'; +import 'package:school_asignment_app/common/job/common/base_app_version.dart'; +import 'package:school_asignment_app/common/job/common/base_page_data.dart'; import 'package:school_asignment_app/common/job/user_info.dart'; import 'package:school_asignment_app/common/job/user_info_detail.dart'; import 'package:school_asignment_app/common/mixins/request_tool_mixin.dart'; @@ -16,8 +22,6 @@ import 'package:school_asignment_app/page/work_page/work_logic.dart'; import 'package:school_asignment_app/page/work_page/work_view.dart'; import 'package:school_asignment_app/routes/app_pages.dart'; -import '../../common/utils/storage.dart'; - class StartPage extends StatefulWidget { const StartPage({Key? key}) : super(key: key); @@ -132,9 +136,10 @@ class _StartPageState extends State { } class PageIndexState { - PageIndexState({required this.pageController}); + PageIndexState({required this.pageController, this.showUpgrade = false}); RxInt pageIndex = 0.obs; + bool showUpgrade; //文本输入框控制器 final PageController pageController; @@ -143,6 +148,44 @@ class PageIndexState { class PageIndexController extends GetxController with RequestToolMixin { late PageIndexState _pageIndexState; + void getAppUpgrade(UserInfoDetail user) async { + try { + _pageIndexState.showUpgrade = true; + if (user.name == AppConfig.SKIP_UPDATING_USER) return; + // 获取设备信息 + String deviceInfo = "android"; + int deviceType; + if (Platform.isAndroid) { + deviceType = 1; + } else if (Platform.isIOS) { + deviceInfo = "ios"; + deviceType = 2; + } else { + return; + } + var params = BaseAppVersion(AppConfig.APP_NAME, deviceType, 1, 1); + BasePageData? result = await getClient().getAppVersions(params); + if (result != null && result.total == 1) { + //获取当前版本 + PackageInfo packageInfo = await PackageInfo.fromPlatform(); + //获取当前版本 + String localVersion = packageInfo.version; + String appName = packageInfo.appName; //应用名称 + String packageName = packageInfo.packageName; //包名称 + // String buildNumber = packageInfo.buildNumber; //小版本号 + AppVersionModel data = result.items[0]; + // Map json = {'downloadPath': data.apkUrl, 'version': data.version, 'systemType': deviceType, 'description': data.description}; + // UpdateAppEvent updateAppEvent = UpdateAppEvent.fromJson(json, localVersion, deviceInfo, appName, packageName, typeName: 'systemType'); + // if (updateAppEvent.upgrade) { + // await UpdateDialog.showUpdateDialog(context, updateAppEvent); + // } + } + } catch (e) { + } finally { + _pageIndexState.showUpgrade = false; + } + } + @override void onInit() { _pageIndexState = PageIndexState(pageController: PageController()); diff --git a/lib/page/login_page/login_logic.dart b/lib/page/login_page/login_logic.dart index 56cd2d1..1cf3b13 100644 --- a/lib/page/login_page/login_logic.dart +++ b/lib/page/login_page/login_logic.dart @@ -1,11 +1,6 @@ -import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:get/get.dart'; -import 'package:school_asignment_app/common/api/user_api.dart'; -import 'package:school_asignment_app/common/job/common/base_structure_result.dart'; -import 'package:school_asignment_app/common/job/user_info.dart'; -import 'package:school_asignment_app/common/job/user_login.dart'; import 'package:school_asignment_app/common/mixins/request_tool_mixin.dart'; import 'package:school_asignment_app/common/store/user_store.dart'; import 'package:school_asignment_app/common/utils/storage.dart';