Przeglądaj źródła

IM腾讯云群组消息导入

haonan 2 lat temu
rodzic
commit
1208ccdc6a

+ 31 - 17
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java

@@ -7,6 +7,7 @@ import com.google.common.collect.Lists;
 import com.microsvc.toolkit.middleware.im.ImPluginContext;
 import com.microsvc.toolkit.middleware.im.message.GroupMemberWrapper;
 import com.microsvc.toolkit.middleware.im.message.MessageWrapper;
+import com.microsvc.toolkit.middleware.im.message.TencentRequest;
 import com.microsvc.toolkit.middleware.im.properties.ImConfigProperties;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
@@ -25,13 +26,7 @@ import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
 import com.yonge.cooleshow.biz.dal.enums.ImGroupType;
 import com.yonge.cooleshow.biz.dal.entity.StudentStar;
-import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
-import com.yonge.cooleshow.biz.dal.service.ImGroupMemberService;
-import com.yonge.cooleshow.biz.dal.service.ImGroupService;
-import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
-import com.yonge.cooleshow.biz.dal.service.StudentStarService;
-import com.yonge.cooleshow.biz.dal.service.SysUserService;
-import com.yonge.cooleshow.biz.dal.service.TeacherService;
+import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.wrapper.im.ImGroupWrapper;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.util.ThreadPool;
@@ -42,6 +37,7 @@ import io.rong.models.Result;
 import io.rong.models.group.GroupMember;
 import io.rong.models.group.GroupModel;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.math.RandomUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.redisson.api.RBucket;
 import org.redisson.api.RedissonClient;
@@ -617,11 +613,7 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
      */
     @Override
     public void importInfo(List<ImHistoryMessage> info) throws Exception {
-
-
-
         URL url = new URL("https://console.tim.qq.com/v4/im_open_login_svc/account_import");
-
         info.stream().forEach(i -> {
             //判断消息类型
             Integer type = i.getTargetType();
@@ -632,16 +624,38 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
             } else if (type == 3) {
                 //群组会话
                 MessageWrapper.GroupImportMessage groupImportMessage = new MessageWrapper.GroupImportMessage();
+                List<MessageWrapper.GroupImportMessageData> list = new ArrayList<>();
+                MessageWrapper.GroupImportMessageData data1 = new MessageWrapper.GroupImportMessageData();
+                List<TencentRequest.MessageBody> bodyList = new ArrayList<>();
                 //设置群组Id
                 groupImportMessage.setGroupId(i.getGroupId());
+                //设置发送人
+                data1.setFromAccount(i.getFromUserId());
+                //设置随机数
+                data1.setRandom(new Random().nextInt());
+                //设置发送时间
+                data1.setSendTime(Long.parseLong(i.getDateTime()));
+                bodyList.stream().forEach(item->{
+                            item.setMsgContent(i.getContent());
+                            item.setMsgType(i.getClassname());
+                        });
+                if (bodyList.stream().map(TencentRequest.MessageBody::getMsgType).collect(Collectors.toList()).get(0).equals("RC:TxtMsg")){
+                    bodyList.stream().forEach(item -> item.setMsgType("TIMTextElem"));
+                } else if (bodyList.stream().map(TencentRequest.MessageBody::getMsgType).collect(Collectors.toList()).get(0).equals("RC:ImgMsg")){
+                    //暂未支持图文对象
+                    bodyList.stream().forEach(item -> item.setMsgType("TIMCustomElem"));
+                }
 
-                //导入消息列表
-                List<MessageWrapper.GroupImportMessageData> data = new ArrayList<>();
-
-                //groupImportMessage.setMsgList();
-
+                data1.setTencentMessageBody(bodyList);
 
-                //imPluginContext.getPluginService().importGroupMessage();
+                list.add(data1);
+                //导入消息列表
+                groupImportMessage.setMsgList(list);
+                try {
+                    imPluginContext.getPluginService().importGroupMessage(groupImportMessage);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
 
 
             }