IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 记录工作中一次站内信设计需求 -> 正文阅读

[Java知识库]记录工作中一次站内信设计需求

工作中遇到了这个需求,原来对这个需求不是很理解,后面经过了解和开发,对这个功能有了一些心得,记录一下,分享给需要参考的伙伴们,经验有限,仅针对自己遇到的需求做总结:
技术栈:java 、spring boot 、mybatis、MySQL

需求:后台发送站内信,用户能看到发送的站内信,站内信需能看到7天以内的记录
解析:

1.什么是站内信
站内信本次需求的含义就是后台发送信息,用户能在指定时间内看到这条消息,并且这条消息的有效期是7天;(仅针对本需求)
2.站内信对于用户是什么
站内信对于用户就是一条通知,一条记录,只是这个记录是以主动拉取的方式展现(推送方式暂未考虑,正常应该是做消息推送的方式,这里针对该需求)
3.站内信有何意义
站内信是针对用户的平台通知,不同于系统展示的推送信息

开展设计

1.表设计
简单描述:这里设计三张表,1为消息记录,2为消息内容记录,3为消息发送记录表(记录用户发送情况)
表一字段:
message_id--content_id--status--creat_date--send_type--send_time--send_name--is_show
消息ID--内容ID--状态--创建时间--发送类型--发送时间--发送者--是否展示

表二字段:
content_id--message_title--content--is_show--creat_date--update_date
内容id--消息标题--内容--是否展示--创建时间-更新时间

表三字段:

id--message_id--content_id--user_id--send_status--is_frist_show--creat_date--is_delete
--消息id--内容id--用户id--发送状态--是否首次展示--创建时间--是否删除

2.代码结构
step1.
? ? ? 后台发送站内信-发送类型分为手动输入、全部用户、excel导入三种方式,

? ? ?其中针对全部发送的记录仅在表三中生成一条记录,其他发送方式单独针对用户生成记录;


step2.
? ? ? 发送记录生成:发送一条站内信----》表一生成一条记录----》表二生成一条关联表一的记录---》表三生成一条关联表一表二的记录,并且针对发送全部站内信的仅生成一条记录,可以用自己定义的方式去标记,方便定性查询;


step3.

? ? ? ?客户端接收站内信,客户端用户登录后就能获取到发送的站内信信息,其中针对全部用户的信息的消息获取需要针对自己的设计去获取,PS:是否首次展示可以在用户获取到改消息时异步去处理,根据需求自定义是否需要回调,不需要回调如博主这样仅展示一次也可,需根据需求来设计;


?step4.

? ? ? ?发送状态管理,根据发送时间来执行状态管理,状态主要是针对后台使用,让管理者知道消息是否成功处理,其中注意发送时间的维护管理;

PS:当数据量上去后可以考虑非关系型数据,如ES和MongoDB等等,还可以考虑缓存的加入,同时也可以使用消息推送的方式发送站内信,具体方式看需要的体量,体量越大引入的方式也越复杂,设计也更需要下功夫,博主设计仅在百万量级的用户量级;

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 18:22:34  更:2022-04-22 18:24:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:31:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码