|
@@ -774,9 +774,20 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
|
|
|
imUserId = getImUserId(id, "TEACHER");
|
|
|
}
|
|
|
|
|
|
+ String targetId = i.getTargetId();
|
|
|
+ String targetIdUserId;
|
|
|
+ if (targetId.contains(":STUDENT")) {
|
|
|
+ String[] split = targetId.split(":");
|
|
|
+ String userId = split[0];
|
|
|
+ String clientType = split[1];
|
|
|
+ targetIdUserId = getImUserId(userId, clientType);
|
|
|
+ } else {
|
|
|
+ targetIdUserId = getImUserId(targetId, "TEACHER");
|
|
|
+ }
|
|
|
+
|
|
|
privateImportMessage.setFromAccount(imUserId);
|
|
|
//设置接收人
|
|
|
- privateImportMessage.setToAccount(i.getTargetId());
|
|
|
+ privateImportMessage.setToAccount(targetIdUserId);
|
|
|
//设置随机数
|
|
|
privateImportMessage.setMsgRandom(new Random().nextInt());
|
|
|
|
|
@@ -1295,6 +1306,46 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void clearImportIm(List<ImHistoryMessage> info) {
|
|
|
+
|
|
|
+ for (int j = 0; j < info.size(); j++) {
|
|
|
+ ImHistoryMessage i = info.get(j);//判断消息类型
|
|
|
+ log.info("消息删除:{}", j);
|
|
|
+ Integer type = i.getTargetType();
|
|
|
+ try {
|
|
|
+ if (type == 1) {
|
|
|
+ //单聊会话
|
|
|
+ MessageWrapper.PrivateImportMessage privateImportMessage = new MessageWrapper.PrivateImportMessage();
|
|
|
+ //2:表示历史消息导入,消息不计入未读计数,且消息不会推送到终端
|
|
|
+ privateImportMessage.setSyncFromOldSystem(2);
|
|
|
+ //设置发送人
|
|
|
+ //根据发送者分场景讨论
|
|
|
+ String id = i.getFromUserId();
|
|
|
+ String imUserId;
|
|
|
+ if (id.contains(":STUDENT")) {
|
|
|
+ String[] split = id.split(":");
|
|
|
+ String userId = split[0];
|
|
|
+ String clientType = split[1];
|
|
|
+ imUserId = getImUserId(userId, clientType);
|
|
|
+ } else {
|
|
|
+ imUserId = getImUserId(id, "TEACHER");
|
|
|
+ }
|
|
|
+
|
|
|
+ String targetId = i.getTargetId();
|
|
|
+ try {
|
|
|
+ imGroupCoreService.deletePrivateRecentContact(imUserId,targetId);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("删除私聊最近联系人失败",e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.info("删除消息成功:{}", i);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("删除消息失败:{}",i, e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
private void groupTransfer(List<ImGroup> records) {
|
|
|
String fansIcon = sysConfigService.findConfigValue(SysConfigConstant.ICON_FANS_GROUP_DEFAULT);
|