站内信设计方案,关于站内信下线

作者:计算机知识

站内信:网址运转人士能够向单个(单发)或多个(群发)用户推送新闻,站内信其实正是向数据库中插入一条条记录。

站内信数据库设计:

果不其然,这篇作品被四七个朋友转发到自己这边,同时朋友圈也被刷屏了。

  • 一、背景
    • 站内信的安排基调
  • 二、要求描述
  • 三、系统规划
    • 功用设计
  • 四、系统流程
    • 发送站内信
    • 赢得站内信列表
    • 收获未读站内信数量
    • 批量已阅
    • 成套已阅
    • 批量剔除
    • 总体去除
  • 五、数据库设计
    • 站内信内容表
    • 站内信发送表
    • 消息来源表
  • 六、API设计
    • 发送站内信:POST /v1/message
    • 获得站内信列表:GET /v1/message User-Id: xxx
    • 收获未读站内信数量:GET /v1/message/unread_count
    • 得到单个站内信内容:GET /v1/message/:id
    • 已阅、批量已阅站内信:PUT /v1/read_messages/:messageIds
    • 站内信设计方案,关于站内信下线。一体已阅 PUT:/v1/read_all_messages
    • 剔除、批量删除站内信:PUT /v1/delete_messages/:messageIds
    • 凡事删除站内信:PUT /v1/delete_all_messages
    • 收获音信来源列表:GET /v1/module
  • 7、测试注意点
  • 八、优化
  • 9、关键成效点布置
    • 右上角的Logo行为
    • 隐蔽浏览器进程条
  • 参照文书档案
  • 参谋产品

数据库设计:

message【站内信发件箱表】{每一次运维人士发送一条站内信(无论是单发或是群发)就能在发件箱表中加多一条记下}

 bwin必赢亚州 1

 表字段:ID、SendID、RecID、MessageID、Statue、DateTime

messagetext【站内信发件内容表】{每一回运营职员发送站内信的源委就能保留到站内信发件内容表中}

bwin必赢亚州 2

bwin必赢亚州 ,表字段:ID、Title、Message、PData

messageuserinfo【站内信接收箱表】{用户站内信收件箱}

bwin必赢亚州 3

表字段:ID、SendID、RecID、MessageID、Statue、DateTime

 

新闻接收表:receive

骨子里本身对那事没怎么想说的,笔者不得不说有几个人明白大家有站内信那几个意义,有稍许人在近期三年用过这么些成效,又有个别许人记得站内信从哪里发又从何地读么?官方并开首一点说,当年的站内信是因为大家还没做聊天功效;但新兴大家的闲话效能做起来以往(就算做的不完美),站内信已经没人用了,你问作者怎么领会的——废话,今后法定骚扰用户都不用站内信用小秘书了好咩~2333


政工逻辑:在营业职员发送了一条站内信后,当用户再一次登陆时就能够刷新历史站内信,而那么些不活跃的用户就不会更新站内信。

地方:运转职员向某些(单发)或多个(群发)用户发送站内信

加多发件内容:向messagetext站内信发件内容表中增添一条内容记录 {这里先增添messagetext站内信发件内容表发生一条记下,前边message站内信发件箱表中才有MessageID能够提到}

增多发件人发件记录:向message站内信发件箱表中增加一条发送记录 {备注:如若是单发RecID则是点名用户的UserID,假若是群发RecID则是0。(0意味全部用户)}

用户登入时刷新与和睦有关的站内信,并将数据拉长到messageuserinfo站内信接收箱表

  1. 查询条件:【发件人不是投机】并且【收件人是团结仍然收件人是全体人】并且【本身收件表中不存在的记录】

    select m.id from Message as m where (m.recid='所有人' or m.recid='自己的ID') and m.sendid!='自己的ID' and m.MessageID not in (select u.messageid from MessageUserInfo as u  where u.recid='自己的ID')
    

      

  2. 将有关的站内信消息加多到自身的收件表中,并标志未读。

    1.   将方面【查询条件】中询问出来的id消息用做查询message站内信发件箱表的条件

      select * from message  where id=上面的m.id
      

        

    2. 将获取到message站内信发件箱表数码拉长到messageuserinfo站内信接收箱表

  3. 询问出本身的站内信记录

    select u.ID,u.RecID,m.Title,m.Message,u.Statue,m.PDate from messageuserinfo as u join messagetext as m on u.MessageID = m.ID where u.RecID='自己的ID'
    

      

     

| 字段          | 类型        | 注释                            |

对此这种连鸡肋都算不上的效益,你说怎么还留着?

一、背景

时下使用运行平台的用户进行关联时,愈来愈多的是重视微信和邮件布告,而运营平台作为贰个完好的成品,也供给能够进行之中联系的壹种服务

  • 站内信。

| -------------- | ------------ | ------------------------------- |

此间插一句,用户的情绪实际蛮意外的。人人的客户端里的确糅杂了广大效应,变得臃肿和错综相连。用户说:你特么能否删点东西。

站内信的规划基调

站内信的设计基调取决于用户怎样使用站内信:

  1. 用户不会守着运营平台那个页面,等待音信文告,查看音讯内容,然后跳转到要操作的页面。
    1. 也就是说站内信不是首先输入,站内信的实时性意义也非常小。
    2. 同广大交道网址分裂(照片墙,新浪,今日头条等),用户会守在张罗网址的主页面,不断刷新新剧情,同时检查新消息(主假设私有私信、外人的恢复生机等,也并非是为着检查体系通报新闻)
  2. 用户会依据邮件公告,决定是还是不是要进来运营平台张开操作
  3. 若是邮件极其多,比方同时有八个工单需求用户管理,用户也会在工单平台提供的“作者的待办”页面举办富有职业。
  4. 若果邮件被误删了,未有邮件链接直接进去要操作的模块
    1. 那即是说照旧经过索要链接/单号的主意,前往钦赐页面
    2. 可能直接在有关模块进行搜寻

地点的叙述都意味用户基本不会使用站内信,那么在什么的场所会使用站内信呢?

  1. 不发邮件,只发站内信的新闻公告,比方全站通告、编辑操作、Comment操作等
  2. 当现实模块没有详细的操作记录时,能够通过查看站内信的发出时间

当前唯有产品音信通知,新闻展现也平昔不进展分拣聚合,现在扩展全站通告、mention、like、comment等等级次序的站内信时,就须要思念按类型举办音信聚合了。

| id            | int          | 自增长id                        |

OK,我们删了....然后被人说要关张了~~

2、须求描述

站内信经常要求减轻三个供给:

  1. 用户对用户的站内信,管理员对用户的站内信:即一对壹出殡和埋葬
  2. 管理员对多用户、用户组、全站的站内信:即壹对多发送

(还有1种是用户对产品的站内信,举例对有些模块的反映、疑问之类的)

咱俩方今的急需是:

  1. 组织者对多用户发送站内信
    1. 对用户真正不做校验
    2. 对标题长度、内容长度实行限定(分别是四十四个字节、1五十个字节,对应普通话字符17个、四十八个)
    3. 对收件人的拼音长度进行界定(最长420个字节)
  2. 用户能够查看自身的站内信
    1. 按“全部、已读、未读”过滤
    2. 按新闻来源分类:工单平台、财富管理、自动装机、漏洞平台、故障平台。。。
  3. 用户能够去除、批量删除站内信
  4. 用户能够已阅、批量已阅、全体标识为已读 站内信
  5. 运营平台页面最上部的音信Logo
    1. 展现未读信息数,抢先9玖显示 99
    2. 鼠标放上去,会有下拉框,显示近年来10条未读音信(显示“时间”,“音讯来源”,“标题”)
    3. 下拉框的平底有四个按键:“更多”,加载更加多未读音信;“查看全部”,跳转到站内信列表页面(最棒另开二个窗口)
    4. 点击下拉框里的未读新闻,通过弹出框体现详细的情况;然后在未读列表里删除该记录,在数据Curry标志为已读,新闻Logo的未读音信数量减壹
  6. 组织者页面:
    1. 更新用户
    2. 删除新闻
    3. 总结数据
    4. 增加module
    5. 扩大站内信类型
    6. 出殡全站音信

| state          | tinyint      | 消息状态                        |

话说回来,我们提供了站内信1键下载的效益。

3、系统规划

| newsid        | int          | 外键关联新闻表                  |

代码是暴虐的,文字是温热的。那多少个尘封的年轻纪念,照旧备份起来相比好。

功用设计

功能 接口 详情
发送站内信 POST /v1/message 校验module_name,校验title content receiver_name 长度
获取站内信列表 GET /
统计信息 暂无

| receiveTime    | datatime    | 收信时间                        |

肆、系统流程

新闻状态分别为:未读,已读;

发送站内信

  1. 读取POST请求的request body
  2. 校验长度
  3. 插入数据库
  4. 返回

本文由bwin必赢发布,转载请注明来源

关键词: 日记本 异地多活 设计