更新消息设置

This commit is contained in:
wyf
2025-12-05 17:37:01 +08:00
parent 1cc26aa46d
commit db51c42664
44 changed files with 7510 additions and 1059 deletions

View File

@@ -43,6 +43,9 @@ class LoginModel {
bool? register_agree = false; //是否同意协议
String? updatePhone; //更新绑定手机号
String? updateCode; //更新绑定验证码
LoginModel();
static LoginModel fromJson(Map<String, dynamic> json) =>
@@ -61,8 +64,6 @@ class LoginController extends GetControllerEx<LoginModel> {
attr = GetModel(LoginModel()).obs;
}
//登录
Future<ApiResponse> login(BuildContext context) async {
ApiResponse apiResponse = ApiResponse(code: -1, msg: "其他手机登录页.登录失败".tr);
@@ -197,8 +198,78 @@ class LoginController extends GetControllerEx<LoginModel> {
}
}
//微信登录
Future<void> wxLoginSendAuth(BuildContext context) async {
Future<ApiResponse> getUpdateTelCode(BuildContext context) async {
ApiResponse apiResponse = ApiResponse(code: -1, msg: "其他手机登录页.发送失败".tr);
try {
if (model.updatePhone == null || model.updatePhone!.isEmpty) {
apiResponse.msg = "其他手机登录页.请输入手机号".tr;
return apiResponse;
}
model.updatePhone = model.updatePhone!.trim();
if (!MyUtils.isValidPhoneNumber(model.updatePhone!) &&
!MyUtils.isValidEmail(model.updatePhone!)) {
apiResponse.msg = '其他手机登录页.不正确手机号'.tr;
return apiResponse;
}
String serviceAddress = ServiceConstant.service_address;
String serviceName = ServiceConstant.server_service;
String serviceApi = ServiceConstant.send_code;
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
String? language = "";
if (AppConstants().ent_type == APPPackageType.MHT.code) {
if (mhLanguageController.selectLanguage != null) {
language = mhLanguageController.selectLanguage.value!.language_code;
}
} else {
if (languageController.selectLanguage != null) {
language = languageController.selectLanguage.value!.language_code;
}
}
if (language != null && language.isNotEmpty) {
if (queryUrl.contains("?")) {
queryUrl += "&lang=$language";
} else {
queryUrl += "?lang=$language";
}
}
var data = {
"userName": model.updatePhone,
"type": 5,
};
if (AppConstants().ent_type == APPPackageType.HUANSHUI.code) {
data['code'] = "hzhskj";
}
var response =
await EasyDartModule.dio.post(queryUrl, data: jsonEncode(data));
if (response != null) {
var responseData =
response.data is String ? jsonDecode(response.data) : response.data;
ApiResponse res =
ApiResponse.fromJson(responseData, (object) => object);
if (res.code != HttpStatusCodes.ok) {
if (res.msg == null || res.msg!.isEmpty) {
res.msg = apiResponse.msg;
}
} else {
if (res.msg == null || res.msg!.isEmpty) {
res.msg = "其他手机登录页.发送成功".tr;
}
}
EasyDartModule.logger.info('msg:发送验证码成功');
return res;
} else {
EasyDartModule.logger.error('msg:发送验证码失败:${response}');
return ApiResponse(code: -1, msg: "失败".tr);
}
} catch (e) {
EasyDartModule.logger.error('msg:发送验证码失败:${e}');
return ApiResponse(code: -1, msg: "失败".tr);
}
}
//微信登录 auth 是否登录
Future<void> wxLoginSendAuth(BuildContext context,
{bool login = true}) async {
/*
1、目前移动应用上微信登录只提供原生的登录方式需要用户安装微信客户端才能配合使用。
2、对于Android应用建议总是显示微信登录按钮当用户手机没有安装微信客户端时请引导用户下载安装微信客户端。
@@ -218,13 +289,14 @@ class LoginController extends GetControllerEx<LoginModel> {
.authBy(
which: NormalAuth(
scope: 'snsapi_userinfo',
state: 'wechat_sdk_theh_wxlogin',
state: 'wechat_sdk_theh_wxlogin' +
'${DateTime.now().millisecondsSinceEpoch}',
))
.then((data) async {
//返回true表示成功或者false表示失败这边没有意义从login_controller页面构造函数监听中去处理
debugPrint('msg:$data');
EasyDartModule.logger.error('msg:$data');
if (data) {
if (data && login) {
//登陆成功
await dealBindProcess();
}
@@ -253,18 +325,29 @@ class LoginController extends GetControllerEx<LoginModel> {
if (apiResponse.code == HttpStatusCodes.ok) {
UserInfoController userInfoController = Get.find();
userInfoController.model.user = UserModel.fromJson(apiResponse.data);
if (userInfoController.model.user!.phone == null ||
userInfoController.model.user!.phone!.isEmpty) {
if (apiResponse.data['test'] != null &&
apiResponse.data['test'] == true) {
AppConstants.is_test_account = true;
} else {
AppConstants.is_test_account = false;
}
if ((userInfoController.model.user!.phone == null ||
userInfoController.model.user!.phone!.isEmpty) &&
(userInfoController.model.user!.email == null ||
userInfoController.model.user!.email!.isEmpty)) {
Map data = {
'img': "assets/img/bgNoImg.png",
};
await Get.toNamed("/auth_bind_tel", arguments: data);
}
if (userInfoController.model.user!.phone == null ||
userInfoController.model.user!.phone!.isEmpty) {
if ((userInfoController.model.user!.phone == null ||
userInfoController.model.user!.phone!.isEmpty) &&
(userInfoController.model.user!.email == null ||
userInfoController.model.user!.email!.isEmpty)) {
userInfoController.model.login = 0;
} else {
userInfoController.model.login = 1;
}
userInfoController.model.login = 1;
String token = apiResponse.rawResponse.headers['token']!.first;
EasyDartModule.dio.token = token;