消息红点提示
This commit is contained in:
@@ -8,6 +8,7 @@ import 'package:vbvs_app/common/color/ServiceConstant.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/model/api_response.dart';
|
||||
|
||||
part 'message_controller.g.dart'; // 由json_serializable自动生成的部分
|
||||
@@ -40,20 +41,21 @@ class MhMessageController extends GetControllerEx<MhMessageModel> {
|
||||
attr = GetModel(MhMessageModel()).obs;
|
||||
}
|
||||
|
||||
RxList messageList = [].obs;
|
||||
RxList bodyMessageList = [].obs;
|
||||
RxList systemMessageList = [].obs;
|
||||
|
||||
Future<ApiResponse> getMessageList({String? key}) async {
|
||||
Future<ApiResponse> getMessageList(String messageType) async {
|
||||
try {
|
||||
ApiResponse apiResponse = ApiResponse(code: -1, msg: "请求失败".tr);
|
||||
String serviceAddress = ServiceConstant.service_address;
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.message_list;
|
||||
String messageType = "app_system";
|
||||
if (model.type == 1) {
|
||||
messageType = "app_vsm";
|
||||
} else {
|
||||
messageType = "app_system";
|
||||
}
|
||||
// String messageType = "app_system";
|
||||
// if (model.type == 1) {
|
||||
// messageType = "app_vsm";
|
||||
// } else {
|
||||
// messageType = "app_system";
|
||||
// }
|
||||
String queryUrl =
|
||||
"${serviceAddress}${serviceName}${serviceApi}?type=${messageType}";
|
||||
String? language = "";
|
||||
@@ -75,8 +77,17 @@ class MhMessageController extends GetControllerEx<MhMessageModel> {
|
||||
ApiResponse.fromJson(responseData, (object) => object);
|
||||
MyUtils.formatResponse(res, "请求成功".tr, "请求失败".tr);
|
||||
if (res.code == HttpStatusCodes.ok) {
|
||||
// updateAll();
|
||||
// messageList.value = res.data;
|
||||
|
||||
if (res.code == HttpStatusCodes.ok) {
|
||||
if (messageType == "app_vsm") {
|
||||
bodyMessageList.assignAll(res.data ?? []);
|
||||
} else if (messageType == "app_system") {
|
||||
systemMessageList.assignAll(res.data ?? []);
|
||||
}
|
||||
}
|
||||
updateAll();
|
||||
messageList.value = res.data;
|
||||
return res;
|
||||
}
|
||||
} else {
|
||||
@@ -127,14 +138,14 @@ class MhMessageController extends GetControllerEx<MhMessageModel> {
|
||||
(e) => e['type'] == 'app_vsm',
|
||||
orElse: () => null,
|
||||
);
|
||||
model.body_message_read = vsmItem?['count'] ?? 0;
|
||||
model.body_message_read = (vsmItem?['count'] ?? 0) > 0 ? 1 : 0;
|
||||
|
||||
// 查找 type 为 app_system 的项
|
||||
var systemItem = dataList.firstWhere(
|
||||
(e) => e['type'] == 'app_system',
|
||||
orElse: () => null,
|
||||
);
|
||||
model.system_message_read = systemItem?['count'] ?? 0;
|
||||
model.system_message_read = (systemItem?['count'] ?? 0) > 0 ? 1 : 0;
|
||||
|
||||
updateAll();
|
||||
return res;
|
||||
@@ -195,4 +206,38 @@ class MhMessageController extends GetControllerEx<MhMessageModel> {
|
||||
return ApiResponse(code: -1, msg: "服务器.失败".tr);
|
||||
}
|
||||
}
|
||||
|
||||
// 全部消息已读
|
||||
|
||||
// / 更新消息为已读状态
|
||||
// / 如果传入 [mid],则更新指定消息;如果传入 [all] 为 true,则更新该类型的所有消息
|
||||
Future<void> updateMessageReadStatus(String messageType,
|
||||
{String? mid, bool all = false}) async {
|
||||
final serviceAddress = ServiceConstant.service_address;
|
||||
final serviceName = ServiceConstant.server_service;
|
||||
final serviceApi = ServiceConstant.message_read;
|
||||
|
||||
// 构建 query 参数
|
||||
String queryUrl =
|
||||
"$serviceAddress$serviceName$serviceApi?type=$messageType";
|
||||
if (all) {
|
||||
queryUrl += "&mid=ALL";
|
||||
} else if (mid != null && mid.isNotEmpty) {
|
||||
queryUrl += "&mid=$mid";
|
||||
}
|
||||
|
||||
await requestWithLog(
|
||||
logTitle: all ? '更新所有消息为已读' : '更新消息为已读',
|
||||
method: MyHttpMethod.post,
|
||||
queryUrl: queryUrl,
|
||||
onSuccess: (res) {
|
||||
if (res.code == HttpStatusCodes.ok) {
|
||||
getMessageList(messageType);
|
||||
}
|
||||
},
|
||||
onFailure: (res) {
|
||||
print('失败');
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user