更新消息设置
This commit is contained in:
@@ -118,14 +118,82 @@ class BodyDeviceController extends GetControllerEx<BodyDeviceModel> {
|
||||
return ApiResponse(code: -1, msg: "未知错误".tr); // Default return statement
|
||||
}
|
||||
|
||||
Future<ApiResponse> getDeviceList({String? key}) async {
|
||||
// Future<ApiResponse> getDeviceList({String? key}) async {
|
||||
// try {
|
||||
// ApiResponse apiResponse = ApiResponse(code: -1, msg: "设备.设备列表请求失败".tr);
|
||||
// String serviceAddress = ServiceConstant.service_address;
|
||||
// String serviceName = ServiceConstant.server_service;
|
||||
// String serviceApi = ServiceConstant.device_list;
|
||||
// String queryUrl =
|
||||
// "${serviceAddress}${serviceName}${serviceApi}?bindType=${model.type}${key != null ? '&key=$key' : ''}";
|
||||
// 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 response = await EasyDartModule.dio.get(queryUrl);
|
||||
// if (response != null) {
|
||||
// var responseData =
|
||||
// response.data is String ? jsonDecode(response.data) : response.data;
|
||||
// ApiResponse res =
|
||||
// ApiResponse.fromJson(responseData, (object) => object);
|
||||
// MyUtils.formatResponse(res, "设备.设备列表请求成功".tr, "设备.设备列表请求失败".tr);
|
||||
// if (res.code == HttpStatusCodes.ok) {
|
||||
// // bindDeviceNum.value = res.total!;
|
||||
// deviceList.value = res.data!;
|
||||
// updateAll();
|
||||
// return res;
|
||||
// }
|
||||
// } else {
|
||||
// return ApiResponse(code: -1, msg: "失败".tr);
|
||||
// }
|
||||
// return apiResponse;
|
||||
// } catch (e) {
|
||||
// EasyDartModule.logger.info("设备请求列表: $e");
|
||||
// DailyLogUtils.writeLog("设备请求列表: $e");
|
||||
// }
|
||||
// return ApiResponse(code: -1, msg: "未知错误".tr); // Default return statement
|
||||
// }
|
||||
|
||||
Future<ApiResponse> getDeviceList(
|
||||
{String? key, bool isAllDevice = false}) async {
|
||||
try {
|
||||
ApiResponse apiResponse = ApiResponse(code: -1, msg: "设备.设备列表请求失败".tr);
|
||||
String serviceAddress = ServiceConstant.service_address;
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.device_list;
|
||||
String queryUrl =
|
||||
"${serviceAddress}${serviceName}${serviceApi}?bindType=${model.type}${key != null ? '&key=$key' : ''}";
|
||||
|
||||
// 构建基础URL
|
||||
String baseUrl = "${serviceAddress}${serviceName}${serviceApi}";
|
||||
|
||||
// 根据 isAllDevice 参数决定是否添加 bindType 参数
|
||||
String queryParams = "";
|
||||
if (!isAllDevice) {
|
||||
queryParams = "?bindType=${model.type}";
|
||||
}
|
||||
|
||||
// 添加 key 参数
|
||||
if (key != null) {
|
||||
if (queryParams.isNotEmpty) {
|
||||
queryParams += "&key=$key";
|
||||
} else {
|
||||
queryParams = "?key=$key";
|
||||
}
|
||||
}
|
||||
|
||||
// 添加语言参数
|
||||
String? language = "";
|
||||
if (AppConstants().ent_type == APPPackageType.MHT.code) {
|
||||
if (mhLanguageController.selectLanguage != null) {
|
||||
@@ -136,13 +204,18 @@ class BodyDeviceController extends GetControllerEx<BodyDeviceModel> {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
}
|
||||
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
if (queryParams.isNotEmpty) {
|
||||
queryParams += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
queryParams = "?lang=$language";
|
||||
}
|
||||
}
|
||||
|
||||
// 拼接完整URL
|
||||
String queryUrl = baseUrl + queryParams;
|
||||
|
||||
var response = await EasyDartModule.dio.get(queryUrl);
|
||||
if (response != null) {
|
||||
var responseData =
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -17,7 +17,9 @@ LoginModel _$LoginModelFromJson(Map<String, dynamic> json) => LoginModel()
|
||||
..forceLogin = (json['forceLogin'] as num?)?.toInt()
|
||||
..isIos = json['isIos'] as bool?
|
||||
..isWeChatNotInstalled = json['isWeChatNotInstalled'] as bool?
|
||||
..register_agree = json['register_agree'] as bool?;
|
||||
..register_agree = json['register_agree'] as bool?
|
||||
..updatePhone = json['updatePhone'] as String?
|
||||
..updateCode = json['updateCode'] as String?;
|
||||
|
||||
Map<String, dynamic> _$LoginModelToJson(LoginModel instance) =>
|
||||
<String, dynamic>{
|
||||
@@ -32,4 +34,6 @@ Map<String, dynamic> _$LoginModelToJson(LoginModel instance) =>
|
||||
'isIos': instance.isIos,
|
||||
'isWeChatNotInstalled': instance.isWeChatNotInstalled,
|
||||
'register_agree': instance.register_agree,
|
||||
'updatePhone': instance.updatePhone,
|
||||
'updateCode': instance.updateCode,
|
||||
};
|
||||
|
||||
@@ -10,6 +10,8 @@ class CommonMessageSettingModel {
|
||||
int? setting = 0; //总设置 0 关闭 1 开启
|
||||
int? appSetting = 0; //app消息设置
|
||||
int? serviceSetting = 0; //服务号消息
|
||||
int? telSetting = 0;//电话语音提醒
|
||||
int? smsSetting = 0;//短信提醒
|
||||
int? tipSetting = 0; //设备放置说明
|
||||
int? deviceUpgradeSetting = 0; //设备升级提示
|
||||
int? deviceIssueSetting = 0; //设备故障提示
|
||||
|
||||
@@ -12,6 +12,8 @@ CommonMessageSettingModel _$CommonMessageSettingModelFromJson(
|
||||
..setting = (json['setting'] as num?)?.toInt()
|
||||
..appSetting = (json['appSetting'] as num?)?.toInt()
|
||||
..serviceSetting = (json['serviceSetting'] as num?)?.toInt()
|
||||
..telSetting = (json['telSetting'] as num?)?.toInt()
|
||||
..smsSetting = (json['smsSetting'] as num?)?.toInt()
|
||||
..tipSetting = (json['tipSetting'] as num?)?.toInt()
|
||||
..deviceUpgradeSetting = (json['deviceUpgradeSetting'] as num?)?.toInt()
|
||||
..deviceIssueSetting = (json['deviceIssueSetting'] as num?)?.toInt()
|
||||
@@ -23,6 +25,8 @@ Map<String, dynamic> _$CommonMessageSettingModelToJson(
|
||||
'setting': instance.setting,
|
||||
'appSetting': instance.appSetting,
|
||||
'serviceSetting': instance.serviceSetting,
|
||||
'telSetting': instance.telSetting,
|
||||
'smsSetting': instance.smsSetting,
|
||||
'tipSetting': instance.tipSetting,
|
||||
'deviceUpgradeSetting': instance.deviceUpgradeSetting,
|
||||
'deviceIssueSetting': instance.deviceIssueSetting,
|
||||
|
||||
@@ -5,9 +5,10 @@ part 'message_setting_controller.g.dart'; // 由json_serializable自动生成的
|
||||
|
||||
@JsonSerializable()
|
||||
class MessageSettingModel {
|
||||
int? setting = 0;//总设置 0 关闭 1 开启
|
||||
int? appSetting = 0;//app消息设置
|
||||
int? serviceSetting = 0;//服务号消息
|
||||
int? setting = 0; //总设置 0 关闭 1 开启
|
||||
int? appSetting = 0; //app消息设置
|
||||
int? serviceSetting = 0; //服务号消息
|
||||
List device_type_setting = [];
|
||||
|
||||
MessageSettingModel();
|
||||
|
||||
@@ -31,4 +32,9 @@ class MessageSettingController extends GetControllerEx<MessageSettingModel> {
|
||||
attr = GetModel(MessageSettingModel()).obs;
|
||||
}
|
||||
|
||||
RxMap<String, dynamic> messageType = RxMap<String, dynamic>();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
import 'package:EasyDartModule/EasyDartModule.dart';
|
||||
import 'package:dio/dio.dart' as dio;
|
||||
import 'package:ef/ef.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutterflow_ui/flutterflow_ui.dart';
|
||||
import 'package:fluwx/fluwx.dart';
|
||||
import 'package:get_storage/get_storage.dart';
|
||||
import 'package:img_picker/img_picker.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
@@ -10,6 +12,8 @@ import 'package:vbvs_app/common/color/appConstants.dart';
|
||||
import 'package:vbvs_app/common/color/app_uri_status.dart';
|
||||
import 'package:vbvs_app/common/util/DailyLogUtils.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
import 'package:vbvs_app/common/util/requestWithLog.dart';
|
||||
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||
import 'package:vbvs_app/controller/device/body_device_controller.dart';
|
||||
import 'package:vbvs_app/controller/home/home_controller.dart';
|
||||
import 'package:vbvs_app/controller/login/login_controller.dart';
|
||||
@@ -67,6 +71,8 @@ class UserInfoController extends GetControllerEx<UserInfoModel> {
|
||||
List device_bind_status = [];
|
||||
int device_bind_flag = 0; //0。未初始化 1.已初始化
|
||||
int initLocationpermission = 0; //未初始化
|
||||
FluwxCancelable? fluwxCancelable;
|
||||
final Fluwx fluwx = Fluwx();
|
||||
|
||||
Future<ApiResponse> uploadImg() async {
|
||||
EasyDartModule.logger.info("请求上传图片");
|
||||
@@ -129,20 +135,29 @@ class UserInfoController extends GetControllerEx<UserInfoModel> {
|
||||
}
|
||||
|
||||
//更新用户信息
|
||||
Future<ApiResponse> updateData() async {
|
||||
Future<ApiResponse> updateData({
|
||||
String? phone,
|
||||
String? email,
|
||||
String? code,
|
||||
}) async {
|
||||
EasyDartModule.logger.info("更新用户资料");
|
||||
DailyLogUtils.writeLog("更新用户资料");
|
||||
try {
|
||||
LoginController loginController = Get.find();
|
||||
ApiResponse apiResponse = ApiResponse(code: -1, msg: "保存失败".tr);
|
||||
UserModel user = model.user!;
|
||||
if (user.tmpNickName == null || user.tmpNickName!.isEmpty) {
|
||||
apiResponse.msg = "昵称为空".tr;
|
||||
return apiResponse;
|
||||
}
|
||||
// if (user.tmpNickName!.length >= 9) {
|
||||
// apiResponse.msg = "最长字符为8个字".tr;
|
||||
// return apiResponse;
|
||||
// }
|
||||
if ((phone != null && phone.isNotEmpty) ||
|
||||
(email != null && email.isNotEmpty)) {
|
||||
if (loginController.model.updateCode == null ||
|
||||
loginController.model.updateCode!.isEmpty) {
|
||||
apiResponse.msg = "请输验证码".tr;
|
||||
return apiResponse;
|
||||
}
|
||||
}
|
||||
String serviceAddress = ServiceConstant.service_address;
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.user_info;
|
||||
@@ -168,8 +183,15 @@ class UserInfoController extends GetControllerEx<UserInfoModel> {
|
||||
"nickName": user.tmpNickName,
|
||||
if (user.tmpHead != null && user.tmpHead!.isNotEmpty)
|
||||
"avatar": user.tmpHead,
|
||||
if (phone != null && phone.isNotEmpty) "phone": phone,
|
||||
if (email != null && email.isNotEmpty) "email": email,
|
||||
if (loginController.model.updateCode != null &&
|
||||
loginController.model.updateCode!.isNotEmpty)
|
||||
"verify": loginController.model.updateCode,
|
||||
if (code != null && code.isNotEmpty) "wxCode": code,
|
||||
if (code != null && code.isNotEmpty) "khCode": "theh",
|
||||
"merge": true,
|
||||
};
|
||||
|
||||
var response =
|
||||
await EasyDartModule.dio.put(queryUrl, data: jsonEncode(data));
|
||||
if (apiResponse != null) {
|
||||
@@ -178,6 +200,10 @@ class UserInfoController extends GetControllerEx<UserInfoModel> {
|
||||
ApiResponse res =
|
||||
ApiResponse.fromJson(responseData, (object) => object);
|
||||
MyUtils.formatResponse(res, "保存成功".tr, "保存失败".tr);
|
||||
await getUserInfo();
|
||||
model.user!.tmpNickName = model.user!.nick_name;
|
||||
model.user!.tmpHead = model.user!.avatar;
|
||||
updateAll();
|
||||
return res;
|
||||
} else {
|
||||
return ApiResponse(code: -1, msg: "服务器失败".tr);
|
||||
@@ -304,4 +330,40 @@ class UserInfoController extends GetControllerEx<UserInfoModel> {
|
||||
|
||||
return apiResponse;
|
||||
}
|
||||
|
||||
//解除微信绑定
|
||||
unBindWx(BuildContext context) async {
|
||||
String serviceAddress = ServiceConstant.service_address;
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.user_info;
|
||||
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
|
||||
try {
|
||||
final data = {
|
||||
"wxCode": "",
|
||||
"khCode": "",
|
||||
"merge": true,
|
||||
};
|
||||
final res = await requestWithLog(
|
||||
logTitle: "解除微信绑定",
|
||||
method: MyHttpMethod.put,
|
||||
queryUrl: queryUrl,
|
||||
data: data,
|
||||
onSuccess: (res) {
|
||||
TopSlideNotification.show(
|
||||
context,
|
||||
text: res.msg!,
|
||||
);
|
||||
},
|
||||
onFailure: (res) {
|
||||
TopSlideNotification.show(
|
||||
context,
|
||||
text: res.msg!,
|
||||
textColor: themeController.currentColor.sc9,
|
||||
);
|
||||
},
|
||||
);
|
||||
} catch (e) {
|
||||
ef.log("微信解绑失败-》$e");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user