Forráskód Böngészése

update file-service chat module

reghao 1 hete
szülő
commit
7e74a79664

+ 3 - 3
file/file-service/src/main/java/cn/reghao/tnb/file/app/zchat/db/mapper/TextMessageMapper.java → file/file-service/src/main/java/cn/reghao/tnb/file/app/zchat/db/mapper/ChatTransferMapper.java

@@ -1,7 +1,7 @@
 package cn.reghao.tnb.file.app.zchat.db.mapper;
 
 import cn.reghao.jutil.jdk.web.db.BaseMapper;
-import cn.reghao.tnb.file.app.zchat.model.po.message.TextMessage;
+import cn.reghao.tnb.file.app.zchat.model.po.message.ChatTransfer;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -9,6 +9,6 @@ import org.apache.ibatis.annotations.Mapper;
  * @date 2022-04-18 18:00:31
  */
 @Mapper
-public interface TextMessageMapper extends BaseMapper<TextMessage> {
-    TextMessage findByMessageId(long messageId);
+public interface ChatTransferMapper extends BaseMapper<ChatTransfer> {
+    ChatTransfer findByMessageId(long messageId);
 }

+ 3 - 0
file/file-service/src/main/java/cn/reghao/tnb/file/app/zchat/db/mapper/FileMessageMapper.java

@@ -4,6 +4,8 @@ import cn.reghao.jutil.jdk.web.db.BaseMapper;
 import cn.reghao.tnb.file.app.zchat.model.po.message.FileMessage;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * @author reghao
  * @date 2022-04-20 15:30:47
@@ -11,4 +13,5 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface FileMessageMapper extends BaseMapper<FileMessage> {
     FileMessage findByMessageId(long messageId);
+    List<FileMessage> findByMessageIds(List<Long> messageIds);
 }

+ 2 - 0
file/file-service/src/main/java/cn/reghao/tnb/file/app/zchat/model/constant/ChatMsgType.java

@@ -16,6 +16,8 @@ public enum ChatMsgType {
     docExcel(6, "excel 文档"),
     docPdf(7, "pdf 文档"),
     chatRecord(8, "聊天记录"),
+    chatTransfer(9, "转帐"),
+    chatHongbao(10, "红包"),
     attachment(99, "附件");
 
     private final Integer code;

+ 5 - 2
file/file-service/src/main/java/cn/reghao/tnb/file/app/zchat/model/po/message/TextMessage.java → file/file-service/src/main/java/cn/reghao/tnb/file/app/zchat/model/po/message/ChatTransfer.java

@@ -10,11 +10,14 @@ import lombok.NoArgsConstructor;
  */
 @NoArgsConstructor
 @Getter
-public class TextMessage extends BaseObject<Integer> {
+public class ChatTransfer extends BaseObject<Integer> {
     private long messageId;
+    private double amount;
+    private int status;
+
     private String content;
 
-    public TextMessage(long messageId, String content) {
+    public ChatTransfer(long messageId, String content) {
         this.messageId = messageId;
         this.content = content;
     }

+ 6 - 2
file/file-service/src/main/java/cn/reghao/tnb/file/app/zchat/model/po/message/FileMessage.java

@@ -13,11 +13,15 @@ import lombok.Setter;
 @Getter
 @Setter
 public class FileMessage extends BaseObject<Integer> {
-    private Integer fileType;
     private long messageId;
+    private String objectId;
+    private String objectUrl;
+    private Integer fileType;
+    private String filename;
+    private long size;
+
     private String uploadId;
     private Integer channelCode;
-    private String filename;
     private Integer width;
     private Integer height;
 

+ 7 - 7
file/file-service/src/main/java/cn/reghao/tnb/file/app/zchat/service/ChatMessageService.java

@@ -13,7 +13,7 @@ import cn.reghao.tnb.file.app.zchat.model.po.chat.ChatDialogue;
 import cn.reghao.tnb.file.app.zchat.model.po.chat.ChatMessage;
 import cn.reghao.tnb.file.app.zchat.model.po.message.CodeBlockMessage;
 import cn.reghao.tnb.file.app.zchat.model.po.message.FileMessage;
-import cn.reghao.tnb.file.app.zchat.model.po.message.TextMessage;
+import cn.reghao.tnb.file.app.zchat.model.po.message.ChatTransfer;
 import cn.reghao.tnb.message.api.model.resp.EvtTalkRevokeResp;
 import cn.reghao.tnb.user.api.dto.ContactDetail;
 import cn.reghao.tnb.user.api.iface.UserContactService;
@@ -40,18 +40,18 @@ public class ChatMessageService {
 
     private final ChatDialogueMapper chatDialogueMapper;
     private final ChatMessageMapper chatMessageMapper;
-    private final TextMessageMapper textMessageMapper;
+    private final ChatTransferMapper chatTransferMapper;
     private final CodeBlockMessageMapper codeBlockMessageMapper;
     private final FileMessageMapper fileMessageMapper;
     private final SnowFlake snowFlake;
     private final EventService eventService;
 
     public ChatMessageService(ChatDialogueMapper chatDialogueMapper, ChatMessageMapper chatMessageMapper,
-                              TextMessageMapper textMessageMapper, CodeBlockMessageMapper codeBlockMessageMapper,
+                              ChatTransferMapper chatTransferMapper, CodeBlockMessageMapper codeBlockMessageMapper,
                               FileMessageMapper fileMessageMapper, EventService eventService) {
         this.chatDialogueMapper = chatDialogueMapper;
         this.chatMessageMapper = chatMessageMapper;
-        this.textMessageMapper = textMessageMapper;
+        this.chatTransferMapper = chatTransferMapper;
         this.codeBlockMessageMapper = codeBlockMessageMapper;
         this.fileMessageMapper = fileMessageMapper;
         this.snowFlake = new SnowFlake(1L, 1L);
@@ -71,12 +71,12 @@ public class ChatMessageService {
         chatMessageMapper.save(chatMessage);
 
         String text = textMsg.getText();
-        TextMessage textMessage = new TextMessage(messageId, text);
-        textMessageMapper.save(textMessage);
+        ChatTransfer chatTransfer = new ChatTransfer(messageId, text);
+        chatTransferMapper.save(chatTransfer);
 
         ContactDetail contactDetail = contactService.getContactDetail(loginUser);
         ChatRecord chatRecord = new ChatRecord(chatMessage, contactDetail);
-        chatRecord.setContent(textMessage.getContent());
+        chatRecord.setContent(chatTransfer.getContent());
         eventService.sendMessageEvent(chatType, loginUser, receiverId, chatRecord);
     }
 

+ 6 - 9
file/file-service/src/main/java/cn/reghao/tnb/file/app/zchat/service/ChatRecordService.java

@@ -1,9 +1,6 @@
 package cn.reghao.tnb.file.app.zchat.service;
 
 import cn.reghao.file.api.iface.OssService;
-import cn.reghao.jutil.jdk.web.db.Page;
-import cn.reghao.jutil.jdk.web.db.PageList;
-import cn.reghao.tnb.auth.api.dto.AccountInfo;
 import cn.reghao.tnb.auth.api.iface.AccountQuery;
 import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.tnb.common.db.PageScroll;
@@ -19,7 +16,7 @@ import cn.reghao.tnb.file.app.zchat.model.po.chat.ChatDialogue;
 import cn.reghao.tnb.file.app.zchat.model.po.chat.ChatMessage;
 import cn.reghao.tnb.file.app.zchat.model.po.message.CodeBlockMessage;
 import cn.reghao.tnb.file.app.zchat.model.po.message.FileMessage;
-import cn.reghao.tnb.file.app.zchat.model.po.message.TextMessage;
+import cn.reghao.tnb.file.app.zchat.model.po.message.ChatTransfer;
 import cn.reghao.tnb.file.app.zchat.model.vo.UserAvatar;
 import cn.reghao.tnb.user.api.iface.UserContactService;
 import lombok.extern.slf4j.Slf4j;
@@ -48,16 +45,16 @@ public class ChatRecordService {
 
     private ChatDialogueMapper chatDialogueMapper;
     private final ChatMessageMapper chatMessageMapper;
-    private final TextMessageMapper textMessageMapper;
+    private final ChatTransferMapper chatTransferMapper;
     private final CodeBlockMessageMapper codeBlockMessageMapper;
     private final FileMessageMapper fileMessageMapper;
 
     public ChatRecordService(ChatDialogueMapper chatDialogueMapper, ChatMessageMapper chatMessageMapper,
-                             TextMessageMapper textMessageMapper, CodeBlockMessageMapper codeBlockMessageMapper,
+                             ChatTransferMapper chatTransferMapper, CodeBlockMessageMapper codeBlockMessageMapper,
                              FileMessageMapper fileMessageMapper) {
         this.chatDialogueMapper = chatDialogueMapper;
         this.chatMessageMapper = chatMessageMapper;
-        this.textMessageMapper = textMessageMapper;
+        this.chatTransferMapper = chatTransferMapper;
         this.codeBlockMessageMapper = codeBlockMessageMapper;
         this.fileMessageMapper = fileMessageMapper;
     }
@@ -138,8 +135,8 @@ public class ChatRecordService {
         if (revoke) {
             //
         } else if (msgType == MsgType.text.getCode()) {
-            TextMessage textMessage = textMessageMapper.findByMessageId(messageId1);
-            chatRecord.setContent(textMessage.getContent());
+            ChatTransfer chatTransfer = chatTransferMapper.findByMessageId(messageId1);
+            chatRecord.setContent(chatTransfer.getContent());
         } else if (msgType == MsgType.media.getCode()) {
             FileMessage fileMessage = fileMessageMapper.findByMessageId(messageId1);
             String uploadId = fileMessage.getUploadId();

+ 25 - 0
file/file-service/src/main/resources/mapper/chat/ChatFileMapper.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="cn.reghao.tnb.file.app.zchat.db.mapper.FileMessageMapper">
+    <insert id="save" useGeneratedKeys="true" keyProperty="id">
+        insert into chat_file_message
+        (`message_id`,`object_id`,`object_url`,`file_type`,`filename`,`size`)
+        values 
+        (#{messageId},#{objectId},#{objectUrl},#{fileType},#{filename},#{size})
+    </insert>
+
+    <select id="findByMessageId" resultType="cn.reghao.tnb.file.app.zchat.model.po.message.FileMessage">
+        select *
+        from chat_chat_file
+        where message_id=#{messageId}
+    </select>
+    <select id="findByMessageIds" resultType="cn.reghao.tnb.file.app.zchat.model.po.message.FileMessage">
+        select *
+        from chat_chat_file
+        where message_id in
+        <foreach collection="list" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </select>
+</mapper>

+ 4 - 4
file/file-service/src/main/resources/mapper/chat/TextMessageMapper.xml → file/file-service/src/main/resources/mapper/chat/ChatTransferMapper.xml

@@ -1,15 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
-<mapper namespace="cn.reghao.tnb.file.app.zchat.db.mapper.TextMessageMapper">
+<mapper namespace="cn.reghao.tnb.file.app.zchat.db.mapper.ChatTransferMapper">
     <insert id="save" useGeneratedKeys="true" keyProperty="id">
         insert into chat_text_message
-        (`id`,`deleted`,`create_time`,`update_time`,`record_id`,`content`)
+        (`message_id`,`amount`,`status`)
         values 
-        (#{id},#{deleted},#{createTime},#{updateTime},#{recordId},#{content})
+        (#{message},#{amount},#{status})
     </insert>
 
-    <select id="findByRecordId" resultType="cn.reghao.tnb.file.app.zchat.model.po.message.TextMessage">
+    <select id="findByRecordId" resultType="cn.reghao.tnb.file.app.zchat.model.po.message.ChatTransfer">
         select *
         from chat_text_message
         where record_id=#{recordId}

+ 0 - 17
file/file-service/src/main/resources/mapper/chat/FileMessageMapper.xml

@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-<mapper namespace="cn.reghao.tnb.file.app.zchat.db.mapper.FileMessageMapper">
-    <insert id="save" useGeneratedKeys="true" keyProperty="id">
-        insert into chat_file_message
-        (`file_type`,`record_id`,`upload_id`,`channel_code`,`filename`,`width`,`height`)
-        values 
-        (#{fileType},#{recordId},#{uploadId},#{channelCode},#{filename},#{width},#{height})
-    </insert>
-
-    <select id="findByRecordId" resultType="cn.reghao.tnb.file.app.zchat.model.po.message.FileMessage">
-        select *
-        from chat_file_message
-        where record_id=#{recordId}
-    </select>
-</mapper>

+ 33 - 1
file/file-service/src/test/java/ChatTest.java

@@ -1,5 +1,10 @@
+import cn.reghao.jutil.jdk.converter.DateTimeConverter;
 import cn.reghao.jutil.jdk.string.SnowFlake;
+import cn.reghao.oss.api.dto.ServerInfo;
+import cn.reghao.oss.api.dto.rest.UploadFileRet;
+import cn.reghao.oss.sdk.OssClient;
 import cn.reghao.tnb.file.app.FileApplication;
+import cn.reghao.tnb.file.app.model.dto.UploadFile;
 import cn.reghao.tnb.file.app.zchat.db.mapper.ChatDialogueMapper;
 import cn.reghao.tnb.file.app.zchat.db.mapper.ChatMessageMapper;
 import cn.reghao.tnb.file.app.zchat.model.constant.ChatMsgType;
@@ -11,6 +16,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.ActiveProfiles;
 
+import java.io.File;
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
@@ -32,7 +39,18 @@ public class ChatTest {
     int chatType = 1;
     @Test
     public void chatTest() {
-        chatTest1();
+        //chatTest1();
+
+        long timestamp = System.currentTimeMillis() - 3600*1000*48;
+        LocalDateTime start = DateTimeConverter.localDateTime(timestamp);
+
+        int step = 5;
+        List<ChatMessage> list = chatMessageMapper.findAll();
+        for (ChatMessage chatMessage : list) {
+            chatMessage.setCreateTime(start);
+            start = start.plusSeconds(step);
+            chatMessageMapper.update(chatMessage);
+        }
     }
 
     @Autowired
@@ -228,4 +246,18 @@ public class ChatTest {
 
         System.out.println("成功灌入 1000 条包含文本、图片、音视频及各种办公文档的混合压力测试消息!");
     }
+
+    private void chatTest2() throws Exception {
+        String endpoint = "https://reghao.cn";
+        String ak = "PmvonhHI";
+        String sk = "28aQEK7wJ6U5m7E1u7";
+        OssClient ossClient = new OssClient(endpoint, ak, sk);
+
+        ServerInfo serverInfo = ossClient.getServerInfo(101);
+        String path = "";
+        File file = new File(path);
+        UploadFileRet uploadFileRet = ossClient.putObject(serverInfo, file);
+
+        String uploadId = uploadFileRet.getUploadId();
+    }
 }