no message

This commit is contained in:
1147192855@qq.com 2024-04-09 13:41:53 +08:00
parent 85aa842a9a
commit 48e842f113
9 changed files with 108 additions and 49 deletions

View File

@ -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<BasePageData<AppVersionModel>?> 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<WorkStudent> getWorkList(@Queries() WorkStudentParams params);
@GET("/api/app/Common/GetEnumInfos")
Future<Map<String,List<EnumSubject>>> getEnumSubjectList(@Query('enumNames') String enumNames);
Future<Map<String, List<EnumSubject>>> getEnumSubjectList(@Query('enumNames') String enumNames);
}

View File

@ -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<BaseStructureResult<dynamic>> 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<BaseStructureResult<UserInfo>> getUserInfo() async {
// var response = await RestDio.instanime.get('/auth/info/cur-user');
// return BaseStructureResult.fromJson(response, (response) => UserInfo.fromJson(response));
// }
}

View File

@ -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';
}

View File

@ -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<String, dynamic> srcJson) => _$AppVersionModelFromJson(srcJson);
Map<String, dynamic> toJson() => _$AppVersionModelToJson(this);
}

View File

@ -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<String, dynamic> srcJson) => _$BaseAppVersionFromJson(srcJson);
Map<String, dynamic> toJson() => _$BaseAppVersionToJson(this);
}

View File

@ -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<String, dynamic> srcJson) => _$BasePageFromJson(srcJson);
Map<String, dynamic> toJson() => _$BasePageToJson(this);
}

View File

@ -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<T> extends Object {
class BasePageData<T> extends Object {
@JsonKey(name: 'items')
List<T> items;
@JsonKey(name: 'total')
@JsonKey(name: 'totalCount')
int total;
BasePageData(this.items,this.total,);
BasePageData(
this.items,
this.total,
);
factory BasePageData.fromJson( Map<String, dynamic> json, T Function(dynamic json) fromJsonT) => _$BasePageDataFromJson(json, fromJsonT);
factory BasePageData.fromJson(Map<String, dynamic> json, T Function(dynamic json) fromJsonT) => _$BasePageDataFromJson(json, fromJsonT);
Map<String, dynamic> toJson(Object Function(T value) toJsonT) => _$BasePageDataToJson(this, toJsonT);
}

View File

@ -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<StartPage> {
}
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<AppVersionModel>? 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());

View File

@ -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';