feat: 防打扰 功能预留

This commit is contained in:
eggmanQQQ
2024-11-04 16:30:26 +08:00
parent 117d1148fa
commit 32359831b5
2 changed files with 58 additions and 36 deletions

View File

@@ -329,53 +329,62 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi
* ********************** implements ModuleProxy *********************
*/
@Override
public boolean sendMessage(IMMessage message) {
if (!isAllowSendMessage(message)) {
public boolean sendMessage(IMMessage imMessage) {
if (!isAllowSendMessage(imMessage)) {
return false;
}
//todo do 消息防打扰, 发送消息前 请求接口
// IMCustomModel.get().isSend(imMessage.getSessionId())
// .doOnSuccess(s -> {
appendTeamMemberPush(imMessage);
IMMessage message = changeToRobotMsg(imMessage);
Map<String, Object> payload = new HashMap<>();
payload.put("skiptype", PushMessageHandler.PAYLOAD_SKIPTYPE_PRIVATE_MSG);
try {
JSONObject dataObj = new JSONObject();
dataObj.putOpt("uid", message.getFromAccount()).putOpt("content", message.getContent());
payload.put("data", dataObj);
} catch (JSONException e) {
e.printStackTrace();
}
appendTeamMemberPush(message);
message = changeToRobotMsg(message);
Map<String, Object> payload = new HashMap<>();
payload.put("skiptype", PushMessageHandler.PAYLOAD_SKIPTYPE_PRIVATE_MSG);
try {
JSONObject dataObj = new JSONObject();
dataObj.putOpt("uid", message.getFromAccount()).putOpt("content", message.getContent());
payload.put("data", dataObj);
} catch (JSONException e) {
e.printStackTrace();
}
payload.put("vivoField", vivoField());
payload.put("hwField", hwField(message));
message.setPushPayload(payload);
payload.put("vivoField", vivoField());
payload.put("hwField", hwField(message));
message.setPushPayload(payload);
final IMMessage msg = message;
appendPushConfig(message);
// send message to server and save to db
IMMessage finalMessage = message;
NIMClient.getService(MsgService.class).sendMessage(message, false).setCallback(new RequestCallback<Void>() {
@Override
public void onSuccess(Void param) {
final IMMessage msg = message;
appendPushConfig(message);
// send message to server and save to db
IMMessage finalMessage = message;
NIMClient.getService(MsgService.class).sendMessage(message, false).setCallback(new RequestCallback<Void>() {
@Override
public void onSuccess(Void param) {
}
}
@Override
public void onFailed(int code) {
sendFailWithBlackList(code, msg);
}
@Override
public void onFailed(int code) {
sendFailWithBlackList(code, msg);
}
@Override
public void onException(Throwable exception) {
@Override
public void onException(Throwable exception) {
}
});
}
});
messageListPanel.onMsgSend(message);
if (aitManager != null) {
aitManager.reset();
}
// })
// .doOnError(throwable -> {
// SingleToastUtil.showToast(throwable.getMessage());
// })
// .subscribe();
messageListPanel.onMsgSend(message);
if (aitManager != null) {
aitManager.reset();
}
return true;
}

View File

@@ -30,6 +30,11 @@ public class IMCustomModel extends BaseMvpModel {
.compose(RxHelper.handleBeanData())
.compose(RxHelper.handleSchedulers());
}
public Single<String> isSend(String receiverUid) {
return api.isSend(receiverUid)
.compose(RxHelper.handleStringData())
.compose(RxHelper.handleSchedulers());
}
private interface Api {
/**
@@ -38,5 +43,13 @@ public class IMCustomModel extends BaseMvpModel {
*/
@GET("/privateChat/limit")
Single<ServiceResult<PrivateChatLimitInfo>> getPrivateChatLimit(@Query("receiverUid") String receiverUid);
/**
* 获取是否可以发送私聊
* @return
*/
@GET("/privateChat/limit")
Single<ServiceResult<String>> isSend(@Query("receiverUid") String receiverUid);
}
}