message_dialog_model.dart
4.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
import 'package:audioplayers/audioplayers.dart';
import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
import 'package:one_key/constant/constant.dart';
import 'package:one_key/models/message.dart';
import 'package:one_key/net/base_resp.dart';
import 'package:one_key/net/dio_util.dart';
import 'package:one_key/net/http_url.dart';
import 'package:one_key/utils/dialog_util.dart';
// import 'package:audioplayers/audio_cache.dart';
// import 'package:audioplayers/audioplayers.dart';
import 'package:one_key/utils/utils.dart';
class MessageDialogModel extends ChangeNotifier {
final _player = AudioPlayer();
bool showMessageDialog = false;
List<Message> messages = []; //所有消息用于展示
List<Message> unMessagesOnline = []; //未读在线预定
List<Message> unMessagesOrder = []; //未读提前点餐
// void init() {
// _player.load("tts_online.mp3");
// }
/// 播放
void play(String message_type) {
switch (message_type) {
case "10": //在线预订
_player.play("tts_online.mp3");
break;
case "11": //取消在线预订
_player.play("tts_cancel.mp3");
break;
case "12":
//在线买单消息 去处理 跳转在线买单处理页面
_player.play("tts_pre_pay.mp3");
break;
case "13":
//在线买单消息 去查看 跳转在线买单详情页面
_player.play("tts_pay.mp3");
break;
case "14":
//发票详情页面跳转
_player.play("tts_invoice.mp3");
break;
case "1": //提前点餐
_player.play("tts_order.mp3");
break;
case "-1": //>3
_player.play("tts_all.mp3");
break;
}
}
//添加一条信息
addMessage(BuildContext context, Message message) {
LogUtil.v(message.toString());
play(message.message_type);
messages.add(message);
if (!showMessageDialog) {
DialogUtil.showMessageDialog(context);
} else {
notifyListeners();
}
}
//移除一条信息
removeMessage(String mid) {
messages.removeWhere((message) => message.id == mid);
notifyListeners();
}
//获取未处理在线预订消息
getUntreatedMsg(BuildContext context, Map<String, String> params,
VoidCallback callback) async {
BaseResp<List> baseResp = await DioUtil()
.request<List>(context, Method.get, HttpUrl.get_message_list,
showLoading: false, data: params)
.catchError((error) {
print(error.toString());
});
List<Message> messagesTemp = [];
if (baseResp != null && baseResp.code == Constant.status_success) {
messagesTemp = baseResp.data.map<Message>((value) {
return Message.fromJson(value);
}).toList();
messagesTemp.removeWhere((message) {
if (message.message_type.toString() == "10") {
if (message.status == "4") {
//取消预定
///此状态移除,不展示
return true;
}
}
return false;
});
if (params["type_id"] == '10') {
unMessagesOnline = messagesTemp;
messages.addAll(unMessagesOnline);
} else if (params["type_id"] == '1') {
unMessagesOrder = messagesTemp;
messages = unMessagesOrder;
}
// messages.addAll(messagesTemp);
callback();
// if (messages.isNotEmpty) {
// //播放声音
// if (messages.length > 1) {
// play("-1");
// } else {
// for (Message message in messages) {
// play(message.message_type);
// }
// }
// }
}
}
//设置消息状态
setMessageStatus(BuildContext context, Map<String, String> params) async {
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.get, HttpUrl.set_message_status,
data: params, showLoading: false)
.catchError((error) {
print(error.toString());
});
if (baseResp.code == Constant.status_success) {
} else {
Utils.showToast(baseResp.msg);
}
}
}