基于Jeecgboot前后端分离的聊天功能集成(二)

简介: 基于Jeecgboot前后端分离的聊天功能集成(二)

因为本项目不需要electron组件,所以相关这条个组件的内容都先去掉

token是采用jeecgboot机制,所以相关内容也要做调整

因为部门与人员都是用现有的表,所以相应前端内容也要做调整

1、所有userid相关都要修改成username

比如:ChatListUtils部分修改如下:

export const ChatListUtils = {
  listKey: "_chatList",
  setChatList: function(userName, chatList) {
    localStorage.setItem(userName + this.listKey, JSON.stringify(chatList));
  },
  //从缓存中获取已经保存的会话
  getChatList: function(userName) {
    let str = localStorage.getItem(userName + this.listKey);
    if (!str) {
      return [];
    }
    console.log("getChatList", str);
    return JSON.parse(str);
  },

2、对于群组与个人chat ,因为id不一样,所以也要做判断处理

比如resetChatList  这个部分修改如下:

resetChatList: function(self, user, host, type) {
    console.log("resetChatList user=",user);  
    console.log("resetChatList self.$store.state.im=",self.$store.state.im);  
    let chatList = this.getChatList(self.$store.state.im.imuser.username);
    // 删除当前用户已经有的会话
    let newChatList = chatList.filter(function(element) {
      return String(element.id) !== String(user.username);
    });
    let avatar = user.avatar;
    let chat=null;
    if (type === "1") { //若是群聊
      // 重新添加会话,放到第一个
      chat = new Chat(
        user.id,
        user.name,
        avatar,
        0,
        "",
        user.phone,
        user.email,
        type
      );
    } else {
      // 重新添加会话,放到第一个
      chat = new Chat(
      user.username,
      user.realname,
      avatar,
      0,
      "",
      user.phone,
      user.email,
      type
      );
    }
    console.log("resetChatList chat=",chat);  
    newChatList.unshift(chat);
    console.log("resetChatList newChatList=",newChatList); 
    // 存储到localStorage 的 chatList
    this.setChatList(self.$store.state.im.imuser.username, chatList);
    self.$store.commit("setChatList", newChatList);
    return chat;
  }

3、部门这部分前端修改较少,主要是后端的修改

4、文件上传需要修改成jeecgboot模式

upload-tool文件的下面部分做调整

action: conf.getHostUrl() + "/sys/common/upload",
      headers: {
        "Access-Control-Allow-Origin": "*",
        "X-Access-Token": StoreUtils.getAccessToken(),
      }

同时返回信息修改如下

handleSuccess(res, file) {
      let self = this;
      if (res.success) {
        let path = res.message;
        let fileName = file.name;
        // 文件后缀
        let suffix = fileName.substring(
          fileName.lastIndexOf(".") + 1,
          fileName.length
        );
相关文章
|
4天前
|
缓存 NoSQL Java
Spring Boot中集成Redis实现缓存功能
Spring Boot中集成Redis实现缓存功能
|
12天前
|
安全 Java Maven
在 Spring Boot 中实现邮件发送功能可以通过集成 Spring Boot 提供的邮件发送支持来完成
在 Spring Boot 中实现邮件发送功能可以通过集成 Spring Boot 提供的邮件发送支持来完成
22 2
|
13天前
|
前端开发 安全 数据库
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
|
2月前
在jeecgboot中集成bpmn-process-designer流程设计器
在jeecgboot中集成bpmn-process-designer流程设计器
68 0
|
2月前
|
前端开发
基于jeecgboot流程管理平台的自定义业务表单集成方法
基于jeecgboot流程管理平台的自定义业务表单集成方法
59 0
|
2月前
|
前端开发 API
基于Jeecgboot前后端分离的聊天功能集成(一)
基于Jeecgboot前后端分离的聊天功能集成(一)
61 0
|
2月前
|
分布式计算 DataWorks MaxCompute
DataWorks产品使用合集之在DataWorks中,将数据集成功能将AnalyticDB for MySQL中的数据实时同步到MaxCompute中如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
49 0
|
2月前
|
机器学习/深度学习 人工智能 TensorFlow
安卓中的人工智能:集成机器学习功能
【4月更文挑战第14天】在数字化时代,人工智能与机器学习正驱动安卓平台的技术革新。谷歌的ML Kit和TensorFlow Lite为开发者提供了便捷的集成工具,使得应用能实现图像识别、文本转换等功能,提升用户体验。尽管面临数据隐私和安全性的挑战,但随着技术进步,更强大的AI功能将预示着移动端的未来,为开发者创造更多创新机遇。
|
2月前
【ripro美化】全站美化包WordPress RiPro主题二开美化版sucaihu-childV1.9(功能集成到后台)
1、【宝塔】删除ripro文件,上传最新ripro版本,然后上传压缩包内的ripro里面的对应文件到ripro主题对应内覆盖(找到对应路径单个文件去覆盖)。 2、然后上传ripro-chlid子主题美化包到/wp-content/themes路径下 3、注意顺序 原版–>美化包–>后台启用子主题(已启用请忽略)。
53 0
【ripro美化】全站美化包WordPress RiPro主题二开美化版sucaihu-childV1.9(功能集成到后台)
|
2月前
|
机器学习/深度学习 PyTorch TensorFlow
iOS设备功能和框架: 什么是 Core ML?如何在应用中集成机器学习模型?
iOS设备功能和框架: 什么是 Core ML?如何在应用中集成机器学习模型?
71 0