liujc 1 år sedan
förälder
incheckning
03b8d1189b

+ 3 - 3
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/ImGroupController.java

@@ -118,7 +118,7 @@ public class ImGroupController extends BaseController {
 
     @ApiOperation("IM导入消息")
     @PostMapping(value = "/ImportIM")
-    public void ImportIM() throws Exception {
+    public void ImportIM(String groupId) throws Exception {
         List<ImHistoryMessage> info;
         //计算总数据量
         double count = imGroupService.queryCount();
@@ -137,8 +137,8 @@ public class ImGroupController extends BaseController {
 
     @GetMapping(value = "/groupTransfer")
     @ApiOperation("群导入")
-    public void groupTransfer() {
-        imGroupService.groupTransfer();
+    public void groupTransfer(String groupId) {
+        imGroupService.groupTransfer(groupId);
     }
 
     @GetMapping(value = "/importUser")

+ 9 - 3
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/ImGroupController.java

@@ -15,6 +15,7 @@ import com.yonge.toolset.utils.validator.ValidationKit;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -118,7 +119,12 @@ public class ImGroupController extends BaseController {
 
     @ApiOperation("IM导入消息")
     @PostMapping(value = "/ImportIM")
-    public void ImportIM() throws Exception {
+    public void ImportIM(String groupId) throws Exception {
+        if (StringUtils.isNotBlank(groupId)) {
+            List<ImHistoryMessage> info = imGroupService.getImHistoryMessageByGroupId(groupId);
+            imGroupService.importInfo(info);
+            return;
+        }
         List<ImHistoryMessage> info;
         //计算总数据量
         double count = imGroupService.queryCount();
@@ -137,8 +143,8 @@ public class ImGroupController extends BaseController {
 
     @GetMapping(value = "/groupTransfer")
     @ApiOperation("群导入")
-    public void groupTransfer() {
-        imGroupService.groupTransfer();
+    public void groupTransfer(String groupId) {
+        imGroupService.groupTransfer(groupId);
     }
 
     @GetMapping(value = "/importUser")

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImGroupDao.java

@@ -38,5 +38,7 @@ public interface ImGroupDao extends BaseMapper<ImGroup> {
 
     //更新状态
     void updateStatus(@Param("info") List<ImHistoryMessage> info);
+
+    List<ImHistoryMessage> getImHistoryMessageByGroupId(@Param("groupId") String groupId);
 }
 

+ 3 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupService.java

@@ -183,7 +183,7 @@ public interface ImGroupService extends IService<ImGroup> {
     /**
      * 群迁移,融云->腾讯
      */
-    void groupTransfer();
+    void groupTransfer(String groupId);
 
     void joinImGroup(String roomId, BasicUserInfo userInfo, String serverProvider, List<Long> studentIds) throws Exception;
 
@@ -207,5 +207,7 @@ public interface ImGroupService extends IService<ImGroup> {
     RTCRoomPluginService getRTCRoomPluginService(String serviceProvider);
 
     Boolean updateImGroup(ImGroup imGroup);
+
+    List<ImHistoryMessage> getImHistoryMessageByGroupId(String groupId);
 }
 

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

@@ -718,113 +718,114 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
     public void importInfo(List<ImHistoryMessage> info) throws Exception {
 
         info.forEach(i -> {
-            //判断消息类型
-            Integer type = i.getTargetType();
-            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");
-                }
-
-                privateImportMessage.setFromAccount(imUserId);
-                //设置接收人
-                privateImportMessage.setToAccount(i.getTargetId());
-                //设置随机数
-                privateImportMessage.setMsgRandom(new Random().nextInt());
+            try {
+                //判断消息类型
+                Integer type = i.getTargetType();
+                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 time = i.getDateTime();
-                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                try {
-                    Date date = df.parse(time);
-                    long dateTime = date.getTime();
-                    dateTime = dateTime / (1000);
-                    privateImportMessage.setMsgTimeStamp(dateTime);
-                } catch (ParseException e) {
-                    e.printStackTrace();
-                }
+                    privateImportMessage.setFromAccount(imUserId);
+                    //设置接收人
+                    privateImportMessage.setToAccount(i.getTargetId());
+                    //设置随机数
+//                    privateImportMessage.setMsgRandom(new Random().nextInt());
 
-                //设置body
-                TencentRequest.MessageBody body = new TencentRequest.MessageBody();
-                List<TencentRequest.MessageBody> list = new ArrayList<>();
-
-                JSONObject jsonObject = JSONObject.parseObject(i.getContent());
-                if (i.getClassname().equals("RC:TxtMsg")) {
-                    //文本
-                    TencentRequest.MessageBody body1 = CustomerServiceBatchSendingServiceImpl.getTimTextElem(jsonObject.getString("content"));
-                    list.add(body1);
-                } else if (i.getClassname().equals("RC:ImgMsg")) {
-                    //图片
-                    TencentRequest.MessageBody body1 = CustomerServiceBatchSendingServiceImpl.getTimImageElem(jsonObject.getString("imageUri"));
-                    list.add(body1);
-                } else if (i.getClassname().equals("RC:GIFMsg")) {
-                    //GIf
-                    String remoteUrl = jsonObject.getString("remoteUrl");
-                    int gifDataSize = jsonObject.getInteger("gifDataSize");
-                    int width = jsonObject.getInteger("width");
-                    int height = jsonObject.getInteger("height");
-                    TencentRequest.MessageBody body1 = getTimGifElem(remoteUrl,gifDataSize,width,height);
-                    list.add(body1);
-                } else if (i.getClassname().equals("RC:HQVCMsg")){
-                    //语音
-                    String remoteUrl = jsonObject.getString("remoteUrl");
-                    int duration = jsonObject.getInteger("duration");
-                    TencentRequest.MessageBody body1 = getTimSoundElem(remoteUrl,duration);
-                    list.add(body1);
-                } else if(i.getClassname().equals("RC:FileMsg")){
-                    //文件
-                    String fileUrl = jsonObject.getString("fileUrl");
-                    String size = jsonObject.getString("size");
-                    String name = jsonObject.getString("name");
-
-                    TencentRequest.MessageBody body1 = getTimFileElem(fileUrl,size,name);
-                    list.add(body1);
-                } else if(i.getClassname().equals("RC:SightMsg")){
-                    //视频
-                    String sightUrl = jsonObject.getString("sightUrl");
-                    String size = jsonObject.getString("size");
-                    int duration = jsonObject.getInteger("duration");
-                    String content = jsonObject.getString("content");
-                    TencentRequest.MessageBody body1 = null;
+                    //设置发送时间
+                    String time = i.getDateTime();
+                    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                     try {
-                        body1 = getTimVideoFileElem(sightUrl,size,duration,content);
-                    } catch (IOException e) {
+                        Date date = df.parse(time);
+                        long dateTime = date.getTime();
+                        dateTime = dateTime / (1000);
+                        privateImportMessage.setMsgTimeStamp(dateTime);
+                    } catch (ParseException e) {
                         e.printStackTrace();
                     }
-                    list.add(body1);
-                } else if(i.getClassname().equals("RC:LBSMsg")) {
-                    //位置
-                    double latitude = jsonObject.getDouble("latitude");
-                    double longitude = jsonObject.getDouble("longitude");
-                    String poi = jsonObject.getString("poi");
-                    TencentRequest.MessageBody body1 = getTimLocationElem(latitude, longitude, poi);
-                    list.add(body1);
-                } else if (i.getClassname().equals("RC:ImgTextMsg")){
-                    //图文
-                    TencentRequest.MessageBody body1 = CustomerServiceBatchSendingServiceImpl.getTimTextElem(jsonObject.getString("content"));
-                    TencentRequest.MessageBody body2 = CustomerServiceBatchSendingServiceImpl.getTimImageElem(jsonObject.getString("imageUri"));
-                    list.add(body1);
-                    list.add(body2);
-                } else {
-                    return;
-                }
+
+                    //设置body
+                    TencentRequest.MessageBody body = new TencentRequest.MessageBody();
+                    List<TencentRequest.MessageBody> list = new ArrayList<>();
+
+                    JSONObject jsonObject = JSONObject.parseObject(i.getContent());
+                    if (i.getClassname().equals("RC:TxtMsg")) {
+                        //文本
+                        TencentRequest.MessageBody body1 = CustomerServiceBatchSendingServiceImpl.getTimTextElem(jsonObject.getString("content"));
+                        list.add(body1);
+                    } else if (i.getClassname().equals("RC:ImgMsg")) {
+                        //图片
+                        TencentRequest.MessageBody body1 = CustomerServiceBatchSendingServiceImpl.getTimImageElem(jsonObject.getString("imageUri"));
+                        list.add(body1);
+                    } else if (i.getClassname().equals("RC:GIFMsg")) {
+                        //GIf
+                        String remoteUrl = jsonObject.getString("remoteUrl");
+                        int gifDataSize = jsonObject.getInteger("gifDataSize");
+                        int width = jsonObject.getInteger("width");
+                        int height = jsonObject.getInteger("height");
+                        TencentRequest.MessageBody body1 = getTimGifElem(remoteUrl,gifDataSize,width,height);
+                        list.add(body1);
+                    } else if (i.getClassname().equals("RC:HQVCMsg")){
+                        //语音
+                        String remoteUrl = jsonObject.getString("remoteUrl");
+                        int duration = jsonObject.getInteger("duration");
+                        TencentRequest.MessageBody body1 = getTimSoundElem(remoteUrl,duration);
+                        list.add(body1);
+                    } else if(i.getClassname().equals("RC:FileMsg")){
+                        //文件
+                        String fileUrl = jsonObject.getString("fileUrl");
+                        String size = jsonObject.getString("size");
+                        String name = jsonObject.getString("name");
+
+                        TencentRequest.MessageBody body1 = getTimFileElem(fileUrl,size,name);
+                        list.add(body1);
+                    } else if(i.getClassname().equals("RC:SightMsg")){
+                        //视频
+                        String sightUrl = jsonObject.getString("sightUrl");
+                        String size = jsonObject.getString("size");
+                        int duration = jsonObject.getInteger("duration");
+                        String content = jsonObject.getString("content");
+                        TencentRequest.MessageBody body1 = null;
+                        try {
+                            body1 = getTimVideoFileElem(sightUrl,size,duration,content);
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                        }
+                        list.add(body1);
+                    } else if(i.getClassname().equals("RC:LBSMsg")) {
+                        //位置
+                        double latitude = jsonObject.getDouble("latitude");
+                        double longitude = jsonObject.getDouble("longitude");
+                        String poi = jsonObject.getString("poi");
+                        TencentRequest.MessageBody body1 = getTimLocationElem(latitude, longitude, poi);
+                        list.add(body1);
+                    } else if (i.getClassname().equals("RC:ImgTextMsg")){
+                        //图文
+                        TencentRequest.MessageBody body1 = CustomerServiceBatchSendingServiceImpl.getTimTextElem(jsonObject.getString("content"));
+                        TencentRequest.MessageBody body2 = CustomerServiceBatchSendingServiceImpl.getTimImageElem(jsonObject.getString("imageUri"));
+                        list.add(body1);
+                        list.add(body2);
+                    } else {
+                        return;
+                    }
 
                /* body.setMsgType(i.getClassname());
                 body.setMsgContent(i.getContent());*/
 
-                /*list.add(body);*/
+                    /*list.add(body);*/
                /* list.stream().forEach(item->{
                     item.setMsgContent(i.getContent());
                     item.setMsgType(i.getClassname());
@@ -837,124 +838,124 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
                     //图文对象
                     list.forEach(item -> item.setMsgType("TIMImageElem"));
                 }*/
-                privateImportMessage.setTencentMessageBody(list);
-                try {
-                    imPluginContext.getPluginService().importPrivateMessage(privateImportMessage);
-                    //为已导入数据更改标识
-                    imGroupService.updateStatus(info);
-                } catch (Exception e) {
-                    log.error("导入私聊IM消息失败 msg:{}",list,e);
-                }
-            } 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());
-                //设置发送人
-                String imUserId;
-                String id = i.getFromUserId();
-                //根据发送者分场景讨论
-                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");
-                }
+                    privateImportMessage.setTencentMessageBody(list);
+                    try {
+                        imPluginContext.getPluginService().importPrivateMessage(privateImportMessage);
+                        //为已导入数据更改标识
+                        imGroupService.updateStatus(info);
+                    } catch (Exception e) {
+                        log.error("导入私聊IM消息失败 msg:{}",list,e);
+                    }
+                } 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());
+                    //设置发送人
+                    String imUserId;
+                    String id = i.getFromUserId();
+                    //根据发送者分场景讨论
+                    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");
+                    }
 
 
-                data1.setFromAccount(imUserId);
-                //设置随机数
-                data1.setRandom(new Random().nextInt());
-                //设置发送时间
+                    data1.setFromAccount(imUserId);
+                    //设置随机数
+                    data1.setRandom(new Random().nextInt());
+                    //设置发送时间
 
-                String time = i.getDateTime();
-                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                try {
-                    Date date = df.parse(time);
-                    long dateTime = date.getTime();
-                    dateTime = dateTime / (1000);
-                    data1.setSendTime(dateTime);
-                } catch (ParseException e) {
-                    e.printStackTrace();
-                }
+                    String time = i.getDateTime();
+                    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    try {
+                        Date date = df.parse(time);
+                        long dateTime = date.getTime();
+                        dateTime = dateTime / (1000);
+                        data1.setSendTime(dateTime);
+                    } catch (ParseException e) {
+                        e.printStackTrace();
+                    }
                 /*bodyList.stream().forEach(item->{
                             item.setMsgContent(i.getContent());
                             item.setMsgType(i.getClassname());
                         });*/
-                JSONObject jsonObject = JSONObject.parseObject(i.getContent());
-                if (i.getClassname().equals("RC:TxtMsg")) {
-                    //文本
-                    TencentRequest.MessageBody body1 = CustomerServiceBatchSendingServiceImpl.getTimTextElem(jsonObject.getString("content"));
-                    bodyList.add(body1);
-                } else if (i.getClassname().equals("RC:ImgMsg")) {
-                    //图片  GIf
-                    TencentRequest.MessageBody body1 = CustomerServiceBatchSendingServiceImpl.getTimImageElem(jsonObject.getString("imageUri"));
-                    bodyList.add(body1);
-                } else if (i.getClassname().equals("RC:GIFMsg")) {
-                    //GIf
-                    String remoteUrl = jsonObject.getString("remoteUrl");
-                    int gifDataSize = jsonObject.getInteger("gifDataSize");
-                    int width = jsonObject.getInteger("width");
-                    int height = jsonObject.getInteger("height");
-                    TencentRequest.MessageBody body1 = getTimGifElem(remoteUrl,gifDataSize,width,height);
-                    bodyList.add(body1);
-                } else if (i.getClassname().equals("RC:HQVCMsg")){
-                    //语音
-                    String remoteUrl = jsonObject.getString("remoteUrl");
-                    int duration = jsonObject.getInteger("duration");
-                    TencentRequest.MessageBody body1 = getTimSoundElem(remoteUrl,duration);
-                    bodyList.add(body1);
-                } else if(i.getClassname().equals("RC:FileMsg")){
-                    //文件
-                    String fileUrl = jsonObject.getString("fileUrl");
-                    String size = jsonObject.getString("size");
-                    String name = jsonObject.getString("name");
-
-                    TencentRequest.MessageBody body1 = getTimFileElem(fileUrl,size,name);
-                    bodyList.add(body1);
-                } else if(i.getClassname().equals("RC:SightMsg")){
-                    //视频
-                    String sightUrl = jsonObject.getString("sightUrl");
-                    String size = jsonObject.getString("size");
-                    int duration = jsonObject.getInteger("duration");
-                    String content = jsonObject.getString("content");
-                    TencentRequest.MessageBody body1 = null;
-                    try {
-                        body1 = getTimVideoFileElem(sightUrl,size,duration,content);
-                    } catch (IOException e) {
-                        e.printStackTrace();
+                    JSONObject jsonObject = JSONObject.parseObject(i.getContent());
+                    if (i.getClassname().equals("RC:TxtMsg")) {
+                        //文本
+                        TencentRequest.MessageBody body1 = CustomerServiceBatchSendingServiceImpl.getTimTextElem(jsonObject.getString("content"));
+                        bodyList.add(body1);
+                    } else if (i.getClassname().equals("RC:ImgMsg")) {
+                        //图片  GIf
+                        TencentRequest.MessageBody body1 = CustomerServiceBatchSendingServiceImpl.getTimImageElem(jsonObject.getString("imageUri"));
+                        bodyList.add(body1);
+                    } else if (i.getClassname().equals("RC:GIFMsg")) {
+                        //GIf
+                        String remoteUrl = jsonObject.getString("remoteUrl");
+                        int gifDataSize = jsonObject.getInteger("gifDataSize");
+                        int width = jsonObject.getInteger("width");
+                        int height = jsonObject.getInteger("height");
+                        TencentRequest.MessageBody body1 = getTimGifElem(remoteUrl,gifDataSize,width,height);
+                        bodyList.add(body1);
+                    } else if (i.getClassname().equals("RC:HQVCMsg")){
+                        //语音
+                        String remoteUrl = jsonObject.getString("remoteUrl");
+                        int duration = jsonObject.getInteger("duration");
+                        TencentRequest.MessageBody body1 = getTimSoundElem(remoteUrl,duration);
+                        bodyList.add(body1);
+                    } else if(i.getClassname().equals("RC:FileMsg")){
+                        //文件
+                        String fileUrl = jsonObject.getString("fileUrl");
+                        String size = jsonObject.getString("size");
+                        String name = jsonObject.getString("name");
+
+                        TencentRequest.MessageBody body1 = getTimFileElem(fileUrl,size,name);
+                        bodyList.add(body1);
+                    } else if(i.getClassname().equals("RC:SightMsg")){
+                        //视频
+                        String sightUrl = jsonObject.getString("sightUrl");
+                        String size = jsonObject.getString("size");
+                        int duration = jsonObject.getInteger("duration");
+                        String content = jsonObject.getString("content");
+                        TencentRequest.MessageBody body1 = null;
+                        try {
+                            body1 = getTimVideoFileElem(sightUrl,size,duration,content);
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                        }
+                        bodyList.add(body1);
+                    } else if(i.getClassname().equals("RC:LBSMsg")) {
+                        //位置
+                        double latitude = jsonObject.getDouble("latitude");
+                        double longitude = jsonObject.getDouble("longitude");
+                        String poi = jsonObject.getString("poi");
+                        TencentRequest.MessageBody body1 = getTimLocationElem(latitude, longitude, poi);
+                        bodyList.add(body1);
+                    } else if (i.getClassname().equals("RC:ImgTextMsg")){
+                        //图文
+                        TencentRequest.MessageBody body1 = CustomerServiceBatchSendingServiceImpl.getTimTextElem(jsonObject.getString("content"));
+                        TencentRequest.MessageBody body2 = CustomerServiceBatchSendingServiceImpl.getTimImageElem(jsonObject.getString("imageUri"));
+                        bodyList.add(body1);
+                        bodyList.add(body2);
+                    } else if (i.getClassname().equals("RC:CombineMsg")){
+                        //合并转发
+                        String remoteUrl = jsonObject.getString("remoteUrl");
+                        int conversationType = jsonObject.getInteger("conversationType");
+                        getTimRelayElem();
+                    } else {
+                        return;
                     }
-                    bodyList.add(body1);
-                } else if(i.getClassname().equals("RC:LBSMsg")) {
-                    //位置
-                    double latitude = jsonObject.getDouble("latitude");
-                    double longitude = jsonObject.getDouble("longitude");
-                    String poi = jsonObject.getString("poi");
-                    TencentRequest.MessageBody body1 = getTimLocationElem(latitude, longitude, poi);
-                    bodyList.add(body1);
-                } else if (i.getClassname().equals("RC:ImgTextMsg")){
-                    //图文
-                    TencentRequest.MessageBody body1 = CustomerServiceBatchSendingServiceImpl.getTimTextElem(jsonObject.getString("content"));
-                    TencentRequest.MessageBody body2 = CustomerServiceBatchSendingServiceImpl.getTimImageElem(jsonObject.getString("imageUri"));
-                    bodyList.add(body1);
-                    bodyList.add(body2);
-                } else if (i.getClassname().equals("RC:CombineMsg")){
-                    //合并转发
-                    String remoteUrl = jsonObject.getString("remoteUrl");
-                    int conversationType = jsonObject.getInteger("conversationType");
-                    getTimRelayElem();
-                } else {
-                    return;
-                }
                 /*body.setMsgContent(i.getContent());
                 body.setMsgType(i.getClassname());*/
 
-                //文本对象
+                    //文本对象
                 /*if (bodyList.stream().map(TencentRequest.MessageBody::getMsgType).collect(Collectors.toList()).get(0).equals("RC:TxtMsg")) {
                     bodyList.forEach(item -> item.setMsgType("TIMTextElem"));
                 } else if (bodyList.stream().map(TencentRequest.MessageBody::getMsgType).collect(Collectors.toList()).get(0).equals("RC:ImgMsg")) {
@@ -962,19 +963,23 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
                     bodyList.forEach(item -> item.setMsgType("TIMCustomElem"));
                 }*/
 
-                data1.setTencentMessageBody(bodyList);
+                    data1.setTencentMessageBody(bodyList);
 
-                list.add(data1);
-                //导入消息列表
-                groupImportMessage.setMsgList(list);
-                try {
-                    imPluginContext.getPluginService().importGroupMessage(groupImportMessage);
-                    //为已导入数据更改标识
-                    imGroupService.updateStatus(info);
-                } catch (Exception e) {
-                    log.error("导入群组IM消息失败 msg:{}",list,e);
+                    list.add(data1);
+                    //导入消息列表
+                    groupImportMessage.setMsgList(list);
+                    try {
+                        imPluginContext.getPluginService().importGroupMessage(groupImportMessage);
+                        //为已导入数据更改标识
+                        imGroupService.updateStatus(info);
+                    } catch (Exception e) {
+                        log.error("导入群组IM消息失败 msg:{}",list,e);
+                    }
                 }
+            } catch (Exception e) {
+                log.error("导入失败,{}",i,e);
             }
+
         });
     }
 
@@ -1152,20 +1157,26 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
      * 群迁移
      */
     @Override
-    public void groupTransfer() {
-//        int page = 1;
-//        int size = 100;
-//        List<ImGroup> imGroups = this.lambdaQuery().orderByDesc(ImGroup::getCreateTime)
-//                .last("limit " + ((page - 1) * size) + "," + size).list();
-//        while (!imGroups.isEmpty()) {
-//            groupTransfer(imGroups);
-//
-//            page++;
-//            imGroups = this.lambdaQuery().orderByDesc(ImGroup::getCreateTime)
-//                    .last("limit " + ((page - 1) * size) + "," + size).list();
-//        }
-        ImGroup byId = this.getById("9f677fcd-9d80-4db0-8beb-0ff04e6a98f6FAN");
-        groupTransfer(Collections.singletonList(byId));
+    public void groupTransfer(String groupId) {
+        if (StringUtils.isNotBlank(groupId)) {
+            ImGroup byId = this.getById(groupId);
+            groupTransfer(Collections.singletonList(byId));
+            return;
+        }
+        int page = 1;
+        int size = 100;
+        List<ImGroup> imGroups = this.lambdaQuery().orderByDesc(ImGroup::getCreateTime)
+                .last("limit " + ((page - 1) * size) + "," + size).list();
+        while (!imGroups.isEmpty()) {
+            groupTransfer(imGroups);
+
+            page++;
+            imGroups = this.lambdaQuery().orderByDesc(ImGroup::getCreateTime)
+                    .last("limit " + ((page - 1) * size) + "," + size).list();
+            if (CollectionUtils.isNotEmpty(imGroups)) {
+                groupTransfer(imGroups);
+            }
+        }
     }
 
     @Override
@@ -1257,6 +1268,12 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         return true;
     }
 
+    @Override
+    public List<ImHistoryMessage> getImHistoryMessageByGroupId(String groupId) {
+        return getDao().getImHistoryMessageByGroupId(groupId);
+
+    }
+
 
     private void groupTransfer(List<ImGroup> records) {
         String fansIcon = sysConfigService.findConfigValue(SysConfigConstant.ICON_FANS_GROUP_DEFAULT);
@@ -1327,6 +1344,7 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
                 }
             } catch (Exception e) {
                 log.error(String.format("群迁移加入群聊失败:%s", e.getMessage()));
+                log.error("群迁移加入群聊失败",e);
             }
         }
     }

+ 4 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/ImGroupMapper.xml

@@ -142,4 +142,8 @@
             #{item.groupUserIds,jdbcType=VARCHAR},#{item.appId,jdbcType=VARCHAR})
         </foreach>
     </insert>
+
+    <select id="getImHistoryMessageByGroupId" resultType="com.yonge.cooleshow.biz.dal.entity.ImHistoryMessage">
+        select * from im_history_message where GroupId_ = #{groupId} and status_ = 0 order by  dateTime_
+    </select>
 </mapper>