pdlivexp/OneToOne/src/main/java/com/shayu/onetoone/manager/SendMessageManager.java
2023-10-10 18:30:44 +08:00

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;
}
}
}