浏览代码

用户初次进来发送系统消息

wukai 1 年之前
父节点
当前提交
58968a57ba

+ 29 - 0
doc-admin/src/main/java/com/doc/web/controller/system/SysLoginController.java

@@ -1,6 +1,8 @@
 package com.doc.web.controller.system;
 
 import com.doc.biz.service.IDocSpaceService;
+import com.doc.chat.domain.ChatMsg;
+import com.doc.chat.service.IChatMsgService;
 import com.doc.common.constant.Constants;
 import com.doc.common.core.domain.AjaxResult;
 import com.doc.common.core.domain.entity.SysMenu;
@@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 
@@ -37,6 +40,8 @@ public class SysLoginController {
     @Resource
     private IDocSpaceService docSpaceService;
 
+    @Resource
+    private IChatMsgService msgService;
 
     /**
      * 登录方法
@@ -74,6 +79,30 @@ public class SysLoginController {
         //做个冗余,登录获取用户信息时初始化空间
         docSpaceService.initUserSpace(user);
 
+        //查询用户是否没有聊天记录,如果没有则发送欢迎消息
+        List<ChatMsg> list = msgService.selectFriendList(SecurityUtils.getUserId());
+        if (list.size() == 0) {
+            List<String> contents = new ArrayList<>();
+            contents.add("尊敬的用户,欢迎使用聚合智慧文档管理系统!本系统为用户提供了高效、安全、便捷的文件管理体验,包括实时消息发送和接收、文件上传和下载、分享、编辑、预览及协作编辑等功能。");
+            String content = "实时协作:团队成员可以同时编辑和修改同一文档,实时查看和讨论修改内容,从而节省沟通时间、减少信息衰减、提高协作效率。";
+            content += "<br/><br/><br/>版本控制:提供完善的版本控制功,记录文档每次修改并生成新版本号,方便用户追溯修改过程,确保文档可追溯性和可审计性。";
+            content += "<br/><br/><br/>全文检索:提供高效而强大的全文检索功能,使您能够根据关键字快速、轻松地查找并定位所需的文件内容。";
+            content += "<br/><br/><br/>便捷分享:完工率分享文档,邀请团队成员协作,共同编辑修改,促进团队协作和知识共享,提高团队能力和创造力。";
+            content += "<br/><br/><br/>即时通信:即时通信支持一对一消息收发和实时在线交流,保障私密性,并可融合第三方短信系统以扩展通讯方式。";
+            content += "<br/><br/><br/>文件内容提取:自动判断文件格式,并对PDF文件内容自动提取、图片文字OCR提取、EXCEL、WORD内容解析以及其他文档类文件内容读取、存储、检索。";
+            content += "<br/><br/><br/>一键扫描:通过内部扫描仪设备,执行文档扫描操作,并自动将扫描文件上传至文档中心,扫描文档无需在本地进行存储或拷贝等操作。";
+            contents.add(content);
+            
+            contents.forEach(s -> {
+                ChatMsg msg = new ChatMsg();
+                msg.setMsgType("2");
+                msg.setToId(user.getUserId());
+                msg.setContent(s);
+                msgService.sendSysMsg(msg);
+            });
+
+        }
+
         return ajax;
     }
 

+ 7 - 0
doc-biz/src/main/java/com/doc/chat/service/IChatMsgService.java

@@ -83,4 +83,11 @@ public interface IChatMsgService {
      * @return 结果
      */
     int send(ChatMsg msg);
+
+    /**
+     * 发送系统消息
+     * @param msg 消息
+     * @return 结果
+     */
+    int sendSysMsg(ChatMsg msg);
 }

+ 16 - 0
doc-biz/src/main/java/com/doc/chat/service/impl/ChatMsgServiceImpl.java

@@ -158,6 +158,22 @@ public class ChatMsgServiceImpl implements IChatMsgService {
     }
 
     /**
+     * 发送消息
+     *
+     * @param msg 消息对象
+     */
+    @Override
+    public int sendSysMsg(ChatMsg msg) {
+        msg.setFromId(1L);
+        if (msg.getFromId().equals(msg.getToId())) {
+            return 0;
+        }
+        msg.setCreateTime(new Date());
+        stringRedisTemplate.convertAndSend(CacheConstants.CHANNEL, JSON.toJSONString(msg));
+        return insertChatMsg(msg);
+    }
+
+    /**
      * 设置用户及文件信息
      *
      * @param msgList 消息列表

+ 1 - 1
doc-biz/src/main/resources/mapper/chat/ChatMsgMapper.xml

@@ -47,7 +47,7 @@
         FROM chat_msg
         WHERE from_id = #{user_id} OR to_id = #{user_id}
         GROUP BY id_index)
-        ORDER BY create_time desc
+        ORDER BY create_time desc,msg_id desc
     </select>
 
     <insert id="insertChatMsg" parameterType="ChatMsg" useGeneratedKeys="true" keyProperty="msgId">