项目持续更新中:

仿抖音短视频APP专栏

目录

保存系统消息到MongoDB

系统消息入库保存-关注

系统消息入库保存-点赞短视频

系统消息入库保存-评论与回复


保存系统消息到MongoDB

我们把mongoDB整合到Springboot之后,我们需要把映射层面做好。

首先在model创建一个新的对象层面,也就是一个新的包:

我们这里简写为mo

随后创建一个class,与我们当前业务对象保持一致:

package com.imooc.mo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;import java.util.Date;
import java.util.Map;@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@Document("message")
public class MessageMO {@Idprivate String id;//消息主键id@Field("fromUserId")private String fromUserId;//消息来自的用户id@Field("fromNickId")private String fromNickId;//消息来自的用户昵称@Field("fromFace")private String fromFace;//消息来自的用户头像@Field("toUserId")private String toUserId;//消息来自的用户id@Field("msgType")private Integer msgType;//消息类型 枚举@Field("msgContent")private Map msgContent;//消息内容@Field("createTime")private Date createTime;//消息创建时间
}

有了对象之后,就要争对对象进行操作,也就是我们的业务层:

接着就要实现:

我们以前使用的通用的mapper,在这里我们要和mongoDB做交互,我们这里使用的repository也是需要接口去构建的,我们在数据层中新建一个包,再添加一个:

我们可以把MessageRepository当成一个通用Mapper,因为它集成了很多的方法

import com.imooc.pojo.Users;
import com.imooc.repository.MessageRepository;
import com.imooc.service.MsgService;
import com.imooc.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.Date;
import java.util.Map;@Service
public class MsgServiceImpl implements MsgService {@Autowiredprivate MessageRepository messageRepository;@Autowiredprivate UserService userService;@Overridepublic void createMsg(String fromUserId,String toUserId,Integer type,Map msgContent){Users fromUser = userService.getUser(fromUserId);MessageMO messageMO = new MessageMO();messageMO.setFromUserId(fromUserId);messageMO.setFromNickId(fromUser.getNickname());messageMO.setFromFace(fromUser.getFace());messageMO.setToUserId(toUserId);messageMO.setMsgType(type);if(msgContent != null){messageMO.setMsgContent(msgContent);}messageMO.setCreateTime(new Date());messageRepository.save(messageMO);}}

这里就完成了我们业务层的编写。

系统消息入库保存-关注

接下来我们需要把调用的地方做一个完善,基于以下五种我们就要做一个消息的入库

在我们的doFollow关注结束之后,我们要去提示对方用户某某人关注了你

//系统消息:关注 msgService.createMsg(myId,vlogerId, MessageEnum.FOLLOW_YOU.type,  null );

我们这里关注的内容是不需要进行展示的,所以在这里只需要传入一个null

随后我们重新启动一下,做一个关注,

刷新一下打开mongoDB

这个就是我们的数据

mongoDB当字段为null时,该数据是不会存在的

系统消息入库保存-点赞短视频

当我们插入数据完成之后,系统也需要发送一条点赞短视频的消息

点赞短视频我们是需要把短视频的封面给得到的

所以我们在设置的时候要传入vlogCover

        //系统消息:点赞短视频Vlog vlog = this.getVlog(vlogId);Map msgContent = new HashMap();msgContent.put("vlogId",vlogId);msgContent.put("vlogCover",vlog.getCover());msgService.createMsg(userId,vlog.getVlogerId(),MessageEnum.LIKE_VLOG.type,msgContent);}
private  Vlog getVlog(String id){return vlogMapper.selectByPrimaryKey(id);
}

重新启动,测试:

点赞这个视频

随后我们到数据库中看一下

主要是看后方,此时是多了一个数据

系统消息入库保存-评论与回复

这里我们可以将评论和回复评论放在一起去处理

这里我们需要对public Vlog getVlog(String id)扩展 重新,写入接口

在这里就可以查询

     //系统消息:评论/回复Vlog vlog = vlogService.getVlog(commentBO.getVlogId());Map msgContent = new HashMap();msgContent.put("vlogId",vlog.getId());msgContent.put("vlogCover",vlog.getCover());msgContent.put("commentId",commentId);msgContent.put("commentContent",commentBO.getContent());Integer type= MessageEnum.COMMENT_VLOG.type;if(StringUtils.isNotBlank(commentBO.getFatherCommentId()) && !commentBO.getFatherCommentId().equalsIgnoreCase("0")){type = MessageEnum.REPLY_YOU.type;}msgService.createMsg(commentBO.getCommentUserId(),commentBO.getVlogerId(),type,msgContent);return commentVO;

接着我们重启测试:

接着到我们的mongoDB中查看:

此时我们可以发现这里的内容,对于前两天数据是空的

接着我们回复测试:

再来刷新:

这里就完成了我们系统消息对评论与回复的保存。

从零开始搭建仿抖音短视频APP-后端开发消息业务模块(1)相关推荐

  1. 从零开始搭建仿抖音短视频APP--后端开发粉丝业务模块(3)

    项目持续创作中: 仿抖音短视频APP专栏 目录 实现用户点赞视频 用户取消点赞 用户是否点赞视频的判断 实现用户点赞视频 用户在点赞我们的视频后,我们需要去实现一些相关的业务, 这里需要对应到数据库的 ...

  2. 从零开始搭建仿抖音短视频APP--后端开发粉丝业务模块(1)

    项目持续更新中: 仿抖音短视频APP专栏 目录 关注短视频博主 Redis技术妙用 取消关注博主 关注短视频博主 在我们的主页中,刷视频时是可以在头像下方进行一个关注 点击头像,进入对方的主页也是可以 ...

  3. 从零开始搭建仿抖音短视频APP-后端开发粉丝业务模块(2)

    项目持续更新中: 防抖音短视频APP项目专栏 目录 判断用户是否关注博主 我的关注列表 我的粉丝列表 实现互粉标记显示 判断用户是否关注博主 在这里我们对这个人进行关注之后,重新退出界面再次进入,并没 ...

  4. 从零快速搭建仿抖音短视频APP-后端开发粉丝业务模块(4)

    项目持续更新中: 仿抖音短视频APP专栏 目录 视频页点赞总数 用户页点赞视频列表展示 我的关注视频列表展示 互粉朋友视频瀑布列表展示 视频页点赞总数 在我们的点赞下面会有一个数字,代表点赞总数.我们 ...

  5. 从零开始搭建仿抖音短视频App-前后端开发模式,前端框架的选择、前端项目搭建

    目录 前后端开发模式 传统JavaWeb开发模式 前后端分离模式​编辑 前端框架的选择-UniApp介绍 内网互通原则 运行到iphone与Android 前后端开发模式 传统JavaWeb开发模式 ...

  6. 从零开始搭建仿抖音短视频APP-后端开发短视频业务模块(2)

    项目持续更新中: 仿抖音短视频APP 目录 实现数据层mybatis自定义mapper与sql 查询短视频列表api 实现下拉刷新和分页功能 实现数据层mybatis自定义mapper与sql 在数据 ...

  7. 从零开始搭建仿抖音短视频APP-后端开发短视频业务模块(3)

    项目持续更新中: 仿抖音短视频APP专栏 目录 视频详情页展示的数据层实现 视频详情页展示的api实现 短视频下载.复制连接.二维码展示 视频保存到相册 复制链接 二维码展示 实现转为私密或公开视频 ...

  8. 从零开始搭建仿抖音短视频APP-后端消息业务模块开发(2)-基础版完结篇

    项目持续更新中: 仿抖音短视频APP专栏 目录 系统消息入库保存 MongoDB分页查询系统消息列表 删除系统消息 系统消息入库保存 这里还剩下最后一个点赞评论没有完成 这里如果点赞了你的评论,你们视 ...

  9. 从零开始搭建仿抖音短视频APP-开发用户业务模块(3)

    项目持续更新中: 仿抖音短视频APP专栏 目录 注册登录-BO接受前端参数验证 对BO校验进行统一封装 开发用户是否存在 开发创建用户Service 实现短信注册登录与分布式会话 注册登录-BO接受前 ...

最新文章

  1. 有关rsync的一些语句
  2. linux下查看服务器性能,linux命令查看服务器性能
  3. JQuery整体简化学习
  4. 麦迪时刻的视频和图片
  5. 一般屏幕的3D模型是公开的吗?
  6. 小批量梯度下降算法步骤_TensorFlow从0到1 - 6 - 解锁梯度下降算法
  7. 《日志管理与分析权威指南》一2.3 良好日志记录的标准
  8. 智能指针的释放_看完这篇,别再说不会智能指针了
  9. 截流式合流制设计流量计算_截流式合流制截污管设计污水量的实测统计方法
  10. [转载]遗传算法介绍
  11. Android java和C的Socket通信demo(可用)
  12. 基于Javaee的影视创作论坛的设计与实现(含源文件)
  13. CAN总线的特点及J1939协议通信原理、内容和应用
  14. js计算100以内所有奇数的和
  15. 使用bat命令快速创建系统还原点的方法
  16. Snaker-flow介绍
  17. P1664 每日打卡心情好
  18. 开源可协作在线文档(ShowDoc)
  19. Spring实战(第四版)
  20. 【vue教程】来自JSpang 技术胖的视频

热门文章

  1. STM32 标准库+ESP8266+华为云物联网平台
  2. 基于Python的密码自助平台设计
  3. Spark读取文件,报错java.lang.ArrayIndexOutOfBoundsException
  4. 张恭庆院士:数学的意义(最全最牛的解释)
  5. Blackmagic Fusion Studio 17 for Mac(影视后期特效合成软件)需要 macOS 11.x系统内附安装教程
  6. 带备注的PPT使用演讲者模式操作说明(PPT2010)
  7. 微信小程序第一次培训
  8. JAVA毕业设计HTML5旅游网站计算机源码+lw文档+系统+调试部署+数据库
  9. css实现的卡片式渐变色卡html页面前端源码
  10. 微信小程序实用工具——渐变色按钮(一)