update
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user