Browse Source

no message

ios
ZHR007 4 months ago
parent
commit
47e676d168
9 changed files with 147 additions and 11 deletions
  1. 33
      lib/controller/global.dart
  2. 19
      lib/controller/mine/auth_controller.dart
  3. 15
      lib/controller/mine/user_controller.dart
  4. 31
      lib/model/mine/authentication_data.dart
  5. 4
      lib/model/mine/user_data.dart
  6. 2
      lib/network/api_urls.dart
  7. 7
      lib/network/user_api.dart
  8. 42
      lib/network/user_api.g.dart
  9. 5
      lib/pages/mine/auth_center_page.dart

33
lib/controller/global.dart

@ -0,0 +1,33 @@
// ignore_for_file: constant_identifier_names, non_constant_identifier_names
import 'dart:io';
import '../model/mine/user_data.dart';
class GlobalData {
String? qnToken;//uec接口的Token
String? userId;//id
UserData? userData;//
bool isLogout = false;//退
void logout() {
isLogout = true;
userId = null;
qnToken = null;
userData = null;
}
static GlobalData getInstance() {
_instance ??= GlobalData._init();
return _instance!;
}
GlobalData._init() {
if(Platform.isIOS){
// xAppId = "503258978847966412";
}
}
factory GlobalData() => getInstance();
static GlobalData get instance => getInstance();
static GlobalData? _instance;
}

19
lib/controller/mine/auth_controller.dart

@ -2,6 +2,7 @@ import 'dart:async';
import 'package:get/get.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import '../../network/user_api.dart';
import '../global.dart';
class AuthController extends GetxController {
final isLoading = false.obs;
@ -13,7 +14,6 @@ class AuthController extends GetxController {
final agree = false.obs;
// GetX依赖注入中获取UserApi实例
late UserApi _userApi;
@override
void onInit() {
super.onInit();
@ -26,9 +26,12 @@ class AuthController extends GetxController {
Future<void> _loadInitialData() async {
try {
isLoading.value = true;
final one = AuthCard( title: '手机绑定', desc: '防止账号丢失', index: 1, authed: true);
late bool realAuth = false;
if(GlobalData().userData?.realAuth != null){
realAuth = GlobalData().userData!.realAuth!;
}
dataList.assignAll([
one,
AuthCard( title: '手机绑定', desc: '防止账号丢失', index: 1, authed: true),
AuthCard( title: '真实头像', desc: '提高交友成功率', index: 2, authed: false),
AuthCard( title: '实名认证', desc: '提高交友成功率', index: 3, authed: false),
]);
@ -90,11 +93,17 @@ class AuthController extends GetxController {
}
try {
//
final response = await _userApi.login({});
final param = {
'miId': GlobalData().userData?.id,
'authenticationCode': 0,
'value': '${name.value},${idcard.value}',
};
final response = await _userApi.saveCertificationAudit(param);
//
if (response.data.isSuccess) {
GlobalData().userData?.realAuth = true;
SmartDialog.showToast('认证成功');
Get.back();
Get.back(result: {'index': 3});
} else {
SmartDialog.showToast(response.data.message);
}

15
lib/controller/mine/user_controller.dart

@ -2,9 +2,12 @@ import 'package:dating_touchme_app/im/im_manager.dart';
import 'package:dating_touchme_app/oss/oss_manager.dart';
import 'package:get/get.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import '../../model/mine/authentication_data.dart';
import '../../model/mine/user_data.dart';
import '../../network/user_api.dart';
import '../../pages/mine/user_info_page.dart';
import '../../pages/main/main_page.dart';
import '../global.dart';
class UserController extends GetxController {
@ -72,9 +75,15 @@ class UserController extends GetxController {
final response = await _userApi.getMarriageInformationDetail();
if (response.data.isSuccess) {
// data是否为null或者是空对象
final information = response.data.data;
if (information == null || information.id.isEmpty || information.genderCode.isNaN || information.birthYear == null) {
final information = response.data.data!;
if (information.id.isNotEmpty) {
final result = await _userApi.getCertificationList(information.id);
List<AuthenticationData> list = result.data.data!;
final record = list.firstWhere((item) => item.authenticationCode == 0);
information.realAuth = record.status == 1;
}
GlobalData().userData = information;
if (information.id.isEmpty || information.genderCode.isNaN || information.birthYear == null) {
//
SmartDialog.showToast('转到完善信息');
//

31
lib/model/mine/authentication_data.dart

@ -0,0 +1,31 @@
class AuthenticationData {
final int? authenticationCode;
final String? authenticationName;
final String? miId;
final int? status;
AuthenticationData({
this.authenticationCode,
this.authenticationName,
this.miId,
this.status,
});
factory AuthenticationData.fromJson(Map<String, dynamic> json) {
return AuthenticationData(
authenticationCode: json['authenticationCode'] as int?,
authenticationName: json['authenticationName'] as String?,
miId: json['miId'] as String?,
status: json['status'] as int?,
);
}
Map<String, dynamic> toJson() {
return {
'authenticationCode': authenticationCode,
'authenticationName': authenticationName,
'miId': miId,
'status': status,
};
}
}

4
lib/model/mine/user_data.dart

@ -59,6 +59,7 @@ class UserData {
final String? hometownProvinceName;
final String? hometownCityCode;
final String? hometownCityName;
bool? realAuth;
UserData({
required this.id,
@ -120,6 +121,7 @@ class UserData {
this.hometownProvinceName,
this.hometownCityCode,
this.hometownCityName,
this.realAuth,
});
// JSON映射创建实例
@ -184,6 +186,7 @@ class UserData {
hometownProvinceName: json['hometownProvinceName'],
hometownCityCode: json['hometownCityCode'],
hometownCityName: json['hometownCityName'],
realAuth: json['realAuth'],
);
}
@ -249,6 +252,7 @@ class UserData {
'hometownProvinceName': hometownProvinceName,
'hometownCityCode': hometownCityCode,
'hometownCityName': hometownCityName,
'realAuth': realAuth,
};
}

2
lib/network/api_urls.dart

@ -12,7 +12,7 @@ class ApiUrls {
static const String getHxUserToken = 'dating-agency-chat-audio/user/get/hx/user/token';
static const String getApplyTempAuth = 'dating-agency-uec/get/apply-temp-auth';
static const String saveCertificationAudit = 'dating-agency-service/user/save/certification/audit';
static const String getCertificationList = '/dating-agency-service/user/get/certification/item/all/list';
//
static const String getMarriageList = 'dating-agency-service/user/page/dongwo/marriage-information';

7
lib/network/user_api.dart

@ -7,6 +7,8 @@ import 'package:dating_touchme_app/network/api_urls.dart';
import 'package:retrofit/retrofit.dart';
import 'package:dio/dio.dart';
import '../model/mine/authentication_data.dart';
part 'user_api.g.dart';
@RestApi(baseUrl: '')
@ -41,6 +43,11 @@ abstract class UserApi {
@Body() Map<String, dynamic> data,
);
@GET(ApiUrls.getCertificationList)
Future<HttpResponse<BaseResponse<List<AuthenticationData>>>> getCertificationList(
@Query('miId') String miId,
);
@GET(ApiUrls.getHxUserToken)
Future<HttpResponse<BaseResponse<String>>> getHxUserToken();

42
lib/network/user_api.g.dart

@ -220,6 +220,48 @@ class _UserApi implements UserApi {
return httpResponse;
}
@override
Future<HttpResponse<BaseResponse<List<AuthenticationData>>>>
getCertificationList(String miId) async {
final _extra = <String, dynamic>{};
final queryParameters = <String, dynamic>{r'miId': miId};
final _headers = <String, dynamic>{};
const Map<String, dynamic>? _data = null;
final _options =
_setStreamType<HttpResponse<BaseResponse<List<AuthenticationData>>>>(
Options(method: 'GET', headers: _headers, extra: _extra)
.compose(
_dio.options,
'/dating-agency-service/user/get/certification/item/all/list',
queryParameters: queryParameters,
data: _data,
)
.copyWith(
baseUrl: _combineBaseUrls(_dio.options.baseUrl, baseUrl),
),
);
final _result = await _dio.fetch<Map<String, dynamic>>(_options);
late BaseResponse<List<AuthenticationData>> _value;
try {
_value = BaseResponse<List<AuthenticationData>>.fromJson(
_result.data!,
(json) => json is List<dynamic>
? json
.map<AuthenticationData>(
(i) =>
AuthenticationData.fromJson(i as Map<String, dynamic>),
)
.toList()
: List.empty(),
);
} on Object catch (e, s) {
errorLogger?.logError(e, s, _options);
rethrow;
}
final httpResponse = HttpResponse(_value, _result);
return httpResponse;
}
@override
Future<HttpResponse<BaseResponse<String>>> getHxUserToken() async {
final _extra = <String, dynamic>{};

5
lib/pages/mine/auth_center_page.dart

@ -111,12 +111,13 @@ class AuthCenterPage extends StatelessWidget {
)
],
),
).onTap((){
).onTap(() async{
if(!item.authed){
if(item.index == 2){
Get.to(() => EditInfoPage());
} else if(item.index == 3){
Get.to(() => RealNamePage());
final result = await Get.to(() => RealNamePage());
print(result);
}
}
});

Loading…
Cancel
Save