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 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() { @Override public void onSuccess(HttpCallbackModel data) { if (data.getCode() != 0) { OTONetManager.getInstance(null) .getMessageConsumeConfig(sendData.toUid + "", new HttpCallback() { @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() { @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; } } }