143 lines
5.8 KiB
Java
143 lines
5.8 KiB
Java
package com.shayu.onetoone.manager;
|
|
|
|
import com.shayu.onetoone.bean.MessageConsumeConfigBean;
|
|
import com.shayu.onetoone.listener.OnSendMessageListener;
|
|
import com.yunbao.common.bean.HttpCallbackModel;
|
|
import com.yunbao.common.http.base.HttpCallback;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
import java.util.UUID;
|
|
|
|
public class SendMessageManager {
|
|
private static final Map<String, SendData> cache = new HashMap<>();
|
|
|
|
public static void sendMessageForAudio(String toUid,OnSendMessageListener listener){
|
|
SendData sendData = new SendData(Integer.parseInt(toUid),
|
|
1,
|
|
"not",
|
|
"录音消息",
|
|
"1",
|
|
1);
|
|
send(sendData, listener);
|
|
}
|
|
public static void sendMessageForText(String toUid, String text, OnSendMessageListener messageListener) {
|
|
SendData sendData = new SendData(Integer.parseInt(toUid),
|
|
1,
|
|
"not",
|
|
text,
|
|
"1",
|
|
1);
|
|
send(sendData, messageListener);
|
|
}
|
|
|
|
private static void send(SendData sendData, OnSendMessageListener messageListener) {
|
|
OTONetManager.getInstance(null)
|
|
.sendMessage(sendData.toUid,
|
|
sendData.type,
|
|
sendData.giftId,
|
|
sendData.content,
|
|
sendData.time,
|
|
sendData.online,
|
|
"before",
|
|
new HttpCallback<HttpCallbackModel>() {
|
|
@Override
|
|
public void onSuccess(HttpCallbackModel data) {
|
|
if (data.getCode() != 0) {
|
|
OTONetManager.getInstance(null)
|
|
.getMessageConsumeConfig(sendData.toUid + "", new HttpCallback<MessageConsumeConfigBean>() {
|
|
@Override
|
|
public void onSuccess(MessageConsumeConfigBean data) {
|
|
String msg;
|
|
if (sendData.type == 2) {
|
|
msg = data.getVideoPrice() + "";
|
|
} else if (sendData.type == 5) {
|
|
msg = data.getMp3Price() + "";
|
|
} else {
|
|
msg = data.getPrice() + "";
|
|
}
|
|
messageListener.onError(OnSendMessageListener.STATUS_NOT_PRICE, msg);
|
|
}
|
|
|
|
@Override
|
|
public void onError(String error) {
|
|
|
|
}
|
|
});
|
|
} else {
|
|
String token = UUID.randomUUID().toString();
|
|
cache.put(token, sendData);
|
|
messageListener.onSuccess(token);
|
|
}
|
|
|
|
}
|
|
|
|
@Override
|
|
public void onError(String error) {
|
|
messageListener.onError(OnSendMessageListener.STATUS_ERROR, error);
|
|
}
|
|
}
|
|
);
|
|
}
|
|
|
|
public static void onCallSuccess(String token, OnSendMessageListener listener) {
|
|
if (cache.containsKey(token)) {
|
|
SendData sendData = cache.get(token);
|
|
assert sendData != null;
|
|
OTONetManager.getInstance(null)
|
|
.sendMessage(sendData.toUid,
|
|
sendData.type,
|
|
sendData.giftId,
|
|
sendData.content,
|
|
sendData.time,
|
|
sendData.online,
|
|
"after",
|
|
new HttpCallback<HttpCallbackModel>() {
|
|
@Override
|
|
public void onSuccess(HttpCallbackModel sd) {
|
|
if (sd.getCode() != 0) {
|
|
listener.onSuccess(sd.getMsg());
|
|
} else {
|
|
cache.remove(token);
|
|
listener.onSuccess(null);
|
|
}
|
|
|
|
}
|
|
|
|
@Override
|
|
public void onError(String error) {
|
|
listener.onError(OnSendMessageListener.STATUS_ERROR, error);
|
|
}
|
|
}
|
|
);
|
|
} else {
|
|
if (listener != null) {
|
|
listener.onError(OnSendMessageListener.STATUS_ERROR, "消息发送异常");
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void cancel(String token) {
|
|
cache.remove(token);
|
|
}
|
|
|
|
public static class SendData {
|
|
private int toUid;
|
|
private int type;
|
|
private String giftId;
|
|
private String content;
|
|
private String time;
|
|
private int online;
|
|
|
|
public SendData(int toUid, int type, String giftId, String content, String time, int online) {
|
|
this.toUid = toUid;
|
|
this.type = type;
|
|
this.giftId = giftId;
|
|
this.content = content;
|
|
this.time = time;
|
|
this.online = online;
|
|
}
|
|
}
|
|
|
|
}
|