Browse Source

fdp修改目录结果

newdev_shunjiawei
fdp 2 years ago
parent
commit
8bc7569526
  1. 20
      lib/data/models/user_Info.dart
  2. 31
      lib/data/services/network/api.dart
  3. 65
      lib/data/services/network/auth_interceptor.dart
  4. 45
      lib/data/services/network/dio_manager.dart
  5. 17
      lib/data/services/network/entity/base_entity.dart
  6. 9
      lib/data/services/network/entity/entity_factory.dart
  7. 4
      lib/data/services/network/nw_api.dart
  8. 8
      lib/data/services/network/nw_method.dart
  9. 6
      lib/modules/login/controllers/googleLogin.dart
  10. 15
      lib/modules/login/controllers/login_controller.dart
  11. 2
      lib/modules/settings/views/settings_view.dart
  12. 2
      pubspec.yaml

20
lib/modules/login/bindings/user_Info.dart → lib/data/models/user_Info.dart

@ -14,16 +14,16 @@ class User {
}
// 最终属性(不可变)
final String name;
final String uid;
final String avatar;
final String deviceid;
final String language;
final String token;
final String mail;
final String phone;
final String phonemac;
final String password;
String name;
String uid;
String avatar;
String deviceid;
String language;
String token;
String mail;
String phone;
String phonemac;
String password;
// final Int64 lastbettime;
// final Int64 createtime;
// final String wxopenid;

31
lib/data/services/network/api.dart

@ -0,0 +1,31 @@
import 'dio_manager.dart';
import 'nw_method.dart';
class Api {
// 登录
static login([params]) {
return DioManager().request(
NWMethod.post,
'/api/home/user_sgin',
params: params,
);
}
// 获取验证码
static getCode([params]) {
return DioManager().request(
NWMethod.post,
'/api/home/user_verification',
params: params,
);
}
// 获取阿里token
static getAliToken([params]) {
return DioManager().request(
NWMethod.post,
'/api/home/auth_alitoken',
params: params,
);
}
}

65
lib/data/services/network/auth_interceptor.dart

@ -0,0 +1,65 @@
// import 'package:dio/dio.dart';
// import 'package:flutter_easyloading/flutter_easyloading.dart';
// import 'package:get/get.dart' hide Response;
// import '../scenes/start/start_logic.dart';
// import 'entity/base_entity.dart';
// class AuthInterceptor extends Interceptor {
// final state = Get.find<StartLogic>().state;
// @override
// void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
// options.headers['Authorization'] = state.loginModel.token;
// handler.next(options);
// }
// @override
// void onResponse(Response response, ResponseInterceptorHandler handler) async {
// BaseEntity entity = BaseEntity.fromJson(response.data);
// if (entity.code == 0) {
// response.data = entity.data ?? {};
// handler.resolve(response);
// } else {
// response.data = null;
// handler.next(response);
// return EasyLoading.showError(entity.message ?? 'unknownError'.tr);
// }
// }
// @override
// void onError(DioException err, ErrorInterceptorHandler handler) {
// switch (err.type) {
// case DioExceptionType.cancel:
// {
// EasyLoading.showError('requestCancellation'.tr);
// }
// case DioExceptionType.connectionTimeout:
// {
// EasyLoading.showError('connectionTimeout'.tr);
// }
// case DioExceptionType.sendTimeout:
// {
// EasyLoading.showError('requestTimeout'.tr);
// }
// case DioExceptionType.receiveTimeout:
// {
// EasyLoading.showError('responseTimeout'.tr);
// }
// case DioExceptionType.badResponse:
// {
// try {
// String? errMsg = err.response?.statusMessage;
// EasyLoading.showError(errMsg ?? 'unknownError'.tr);
// } on Exception catch (_) {
// EasyLoading.showError('unknownError'.tr);
// }
// }
// default:
// {
// EasyLoading.showError(err.message ?? 'unknownError'.tr);
// }
// }
// handler.next(err);
// }
// }

45
lib/data/services/network/dio_manager.dart

@ -0,0 +1,45 @@
import 'package:dio/dio.dart';
import 'auth_interceptor.dart';
import 'nw_api.dart';
import 'nw_method.dart';
class DioManager {
static final DioManager _shared = DioManager._internal();
factory DioManager() => _shared;
late Dio dio;
DioManager._internal() {
BaseOptions options = BaseOptions(
baseUrl: NWApi.baseApi,
contentType: Headers.jsonContentType,
responseType: ResponseType.json,
connectTimeout: const Duration(seconds: 30),
receiveTimeout: const Duration(seconds: 30),
);
dio = Dio(options);
// dio.interceptors.add(AuthInterceptor());
}
// 请求,返回参数为 T
// method:请求方法,NWMethod.POST等
// path:请求地址
// params:请求参数
Future request<T>(
NWMethod method,
String path, {
Map? params,
Map<String, dynamic>? queryParameters,
}) async {
Response response = await dio.request(
path,
data: params,
queryParameters: queryParameters,
options: Options(method: nwMethodValues[method]),
);
return response.data;
}
}

17
lib/data/services/network/entity/base_entity.dart

@ -0,0 +1,17 @@
import 'entity_factory.dart';
class BaseEntity<T> {
int? code;
String? message;
T? data;
BaseEntity({this.code, this.message, this.data});
factory BaseEntity.fromJson(json) {
return BaseEntity(
code: json["code"],
message: json["msg"],
data: EntityFactory.generateOBJ<T>(json["data"]),
);
}
}

9
lib/data/services/network/entity/entity_factory.dart

@ -0,0 +1,9 @@
class EntityFactory {
static T? generateOBJ<T>(json) {
if (json == null) {
return null;
} else {
return json as T;
}
}
}

4
lib/data/services/network/nw_api.dart

@ -0,0 +1,4 @@
class NWApi {
// static const baseApi = "https://www.deapsound.com";
static const baseApi = "https://www.deapsound.com";
}

8
lib/data/services/network/nw_method.dart

@ -0,0 +1,8 @@
enum NWMethod { get, post, delete, put }
const nwMethodValues = {
NWMethod.get: "get",
NWMethod.post: "post",
NWMethod.delete: "delete",
NWMethod.put: "put"
};

6
lib/modules/login/controllers/googleLogin.dart

@ -18,10 +18,14 @@ class Google {
print('Future响应数据: $currentUser');
if (currentUser != null) {
// 这里处理您需要使用这个JWT令牌的逻辑,例如将它存储到本地存储中作为凭据。
email = currentUser.email;
displayName = currentUser.displayName;
id = currentUser.uid;
token = await currentUser.getIdToken();
print('Future响应数据tokenResult: $token');
// IdTokenResult token1 = await currentUser.getIdTokenResult();
// print('Future响应数据token1: $token1');
return true;
} else {

15
lib/modules/login/controllers/login_controller.dart

@ -8,8 +8,9 @@ import 'facebookLogin.dart';
import 'googleLogin.dart';
import 'weixinLogin.dart';
import '../entity/api.dart';
import '../bindings/user_Info.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../../../../data/models/user_Info.dart';
//import 'package:shared_preferences/shared_preferences.dart';
import 'package:get_storage/get_storage.dart';
enum LoginViewState {
welcome, // 欢迎页面
@ -18,7 +19,7 @@ enum LoginViewState {
class LoginController extends GetxController {
static LoginController get to => Get.find();
final GetStorage _storage = GetStorage();
// 状态管理
final _viewState = LoginViewState.welcome.obs;
final _isLoading = false.obs;
@ -365,8 +366,8 @@ class LoginController extends GetxController {
if (response != null) {
print("请求后台数据login回复数据=${response}");
final instance = await SharedPreferences.getInstance();
await instance.setString('loginInfo', jsonEncode(response));
// final instance = await GetStorage();
await _storage.write('loginInfo', jsonEncode(response));
// 2. 将响应数据转换为User对象
try {
print('响应数据: ${response.toString()}'); // 调试输出原始数据
@ -379,8 +380,8 @@ class LoginController extends GetxController {
print('用户初始化成功: ${user.name}');
// 存储到 SharedPreferences (仅存储用户数据)
final prefs = await SharedPreferences.getInstance();
await prefs.setString(
//final prefs = await GetStorage();
await _storage.write(
'user', jsonEncode(user.toJson())); // 使用 user.toJson()
Get.offAllNamed(Routes.pairing);

2
lib/modules/settings/views/settings_view.dart

@ -5,7 +5,7 @@ import 'dart:ui';
import '../controllers/settings_controller.dart';
import '../../../core/widgets/common_bottom_nav.dart';
import '../../../routes/app_routes.dart';
import '../../login/bindings/user_Info.dart';
import '../../../data/models/user_Info.dart';
class SettingsView extends GetView<SettingsController> {
const SettingsView({Key? key}) : super(key: key);

2
pubspec.yaml

@ -59,7 +59,7 @@ dependencies:
flutter_image_compress: ^2.4.0
# image_cropper: ^9.0.0
dio: ^5.8.0+1
shared_preferences: ^2.5.1
flutter_easyloading: ^3.0.5
dev_dependencies:
flutter_test:
sdk: flutter

Loading…
Cancel
Save