Bläddra i källkod

私聊防止重复

liujc 1 år sedan
förälder
incheckning
1e4e3bfa03

+ 22 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupServiceImpl.java

@@ -1262,8 +1262,21 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
                     //设置接收人
                     privateImportMessage.setToAccount(targetIdUserId);
                     //设置随机数
-                    privateImportMessage.setMsgRandom(new Random().nextInt());
+                    if (i.getMsgRandom() == null) {
+                        int nextInt = new Random().nextInt();
+                        privateImportMessage.setMsgRandom(nextInt);
+                        i.setMsgRandom(nextInt);
+                    } else {
+                        privateImportMessage.setMsgRandom(i.getMsgRandom());
+                    }
 
+                    if (i.getMsgSeq() == null) {
+                        int nextInt = new Random().nextInt();
+                        i.setMsgSeq(nextInt);
+                        privateImportMessage.setMsgSeq(nextInt);
+                    } else {
+                        privateImportMessage.setMsgSeq(i.getMsgSeq());
+                    }
                     //设置发送时间
                     String time = i.getDateTime();
                     SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -1271,7 +1284,13 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
                         Date date = df.parse(time);
                         long dateTime = date.getTime();
                         dateTime = dateTime / (1000);
-                        privateImportMessage.setMsgTimeStamp(dateTime);
+                        if (i.getMsgTimeStamp() == null) {
+                            privateImportMessage.setMsgTimeStamp(dateTime);
+                            i.setMsgTimeStamp(dateTime);
+                        } else {
+                            privateImportMessage.setMsgTimeStamp(i.getMsgTimeStamp());
+
+                        }
                     } catch (ParseException e) {
                         e.printStackTrace();
                     }
@@ -1316,6 +1335,7 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
                         imPluginContext.getPluginService().importPrivateMessage(privateImportMessage);
                         //为已导入数据更改标识
                         updateStatus(i,1);
+                        historyMessageService.updateMsg(i.getMsgUID(),i.getMsgSeq(),i.getMsgRandom(),i.getMsgTimeStamp());
                         log.info("导入私聊消息成功:{}", i);
                     } catch (Exception e) {
                         updateStatus(i,2);

+ 3 - 0
mec-common/audit-log/src/main/java/com/yonge/log/dal/model/HistoryMessage.java

@@ -46,6 +46,9 @@ public class HistoryMessage implements Serializable {
     private String appId;
 
     private String busChannel;
+    private Integer msgSeq;
+    private Integer msgRandom;
+    private Long msgTimeStamp;
 
     public String getFromUserId() {
         return fromUserId;

+ 3 - 0
mec-common/audit-log/src/main/java/com/yonge/log/service/HistoryMessageService.java

@@ -31,4 +31,7 @@ public interface HistoryMessageService extends BaseServiceWithMongo<String, Hist
     PageInfo<HistoryMessage> getImToTencent(long page, int size);
 
     void updateSyncFlag(String id, int syncFlag);
+
+    void updateMsg(String msgUID, Integer msgSeq, Integer msgRandom, Long msgTimeStamp);
+
 }

+ 14 - 0
mec-common/audit-log/src/main/java/com/yonge/log/service/impl/HistoryMessageServiceImpl.java

@@ -172,6 +172,20 @@ public class HistoryMessageServiceImpl extends BaseServiceImplWithMongo<String,
         mongoTemplate.updateMulti(query, update, HistoryMessage.class);
     }
 
+    @Override
+    public void updateMsg(String msgUID, Integer msgSeq, Integer msgRandom, Long msgTimeStamp) {
+
+        Criteria criteria = Criteria.where("_id").is(msgUID);
+        Query query = new Query(criteria);
+
+        Update update = new Update();
+        update.set("msgSeq", msgSeq); // 设置新的 status 值
+        update.set("msgRandom", msgRandom); // 设置新的 status 值
+        update.set("msgTimeStamp", msgTimeStamp); // 设置新的 status 值
+
+        mongoTemplate.updateMulti(query, update, HistoryMessage.class);
+    }
+
 
 //	public static void main(String[] args) throws Exception {
 //		doNioReadFile1(new File("/Users/chenxiaoyu/Documents/77fe9ce6-7d91-4568-afe3-9e8ac351e87f.zip"));