求助,站内信功能的流程图
相关推荐
站内信的数据库设计
“站内信”有两个基本功能 一:点到点的消息传送。用户给用户发送站内信,管理员给用户发送站内信。二:点到面的消息传送。管理员给用户(指定满足某一条件的用户群)群发消息。 但根据不同的情况,有不同的设计模式
通知中心设计:邮件、短信、Push与站内信
本文探讨了统一通知中心的设计与实现策略。作为业务系统的消息枢纽,通知中心通过集中管理各类消息渠道(短信、邮件、Push等),解决了业务增长带来的消息混乱问题。文章详细介绍了其核心架构,包括消息接入、风控预处理、智能路由等关键流程,并强调了技术选型要点。同时指出可观测性设计(指标监控、日志追踪、数据分析)对优化运营效果的重要性。该方案既能提升用户体验,又能降低开发维护成本,是应对复杂消息场景的有效解决方案。
站内信设计方案.pdf
站内信设计⽅案 ⼀、背景 当前使⽤运维平台的⽤户进⾏沟通时,更多的是依赖微信和邮件通知,⽽运维平台作为⼀个整体的产品,也需要能够进⾏内部沟通的⼀种服 务 - 站内信。 站内信的设计基调 站内信的设计基调取决于⽤户如何使⽤站内信: 1. ⽤户不会守着运维平台这个页⾯,等待消息通知,查看消息内容,然后跳转到要操作的页⾯。 1. 也就是说站内信不是第⼀⼊⼝,站内信的实时性意义也不⼤。 2. 同很多社交⽹站不同(Facebook,知乎,微博等),⽤户会守在社交⽹站的主页⾯,不断刷新新内容,同时检查新消息(主要 是个⼈私信、别⼈的回复等,也绝不是为了检查系统通知消息) 2. ⽤户会根据邮件通知,决定是否要进⼊运维平台进⾏操作 3. 如果邮件特别多,例如同时有多个⼯单需要⽤户处理,⽤户也会在⼯单平台提供的"我的待办"页⾯进⾏所有⼯作。 4. 如果邮件被误删了,没有邮件链接直接进⼊要操作的模块 1. 那么或者通过索要链接/单号的⽅式,前往指定页⾯ 2. 或者直接在相关模块进⾏搜索 上⾯的描述都意味着⽤户基本不会使⽤站内信,那么在什么样的场合会使⽤站内信呢? 1. 不发邮件,只发站内信的消息通知,例如全站通知、编辑操作、Comment操作等 2. 当具体模块没有详细的操作记录时,可以通过查看站内信的发⽣时间 当前只有产品消息通知,消息展⽰也没有进⾏归类聚合,以后增加全站通知、mention、like、comment等类型的站内信时,就需要考虑按 类型进⾏消息聚合了。 ⼆、需求描述 站内信通常需要解决两个需求: 1. ⽤户对⽤户的站内信,管理员对⽤户的站内信:即⼀对⼀发送 2. 管理员对多⽤户、⽤户组、全站的站内信:即⼀对多发送 (还有⼀种是⽤户对产品的站内信,例如对某个模块的反馈、疑问之类的) 我们⽬前的需求是: 1. 管理员对多⽤户发送站内信 1. 对⽤户真实性不做校验 2. 对标题长度、内容长度进⾏限制(分别是45个字节、150个字节,对应中⽂字符15个、50个) 3. 对收件⼈的拼⾳长度进⾏限制(最长50个字节) 2. ⽤户可以查看⾃⼰的站内信 1. 按"全部、已读、未读"过滤 2. 按消息来源分类:⼯单平台、资源管理、⾃动装机、漏洞平台、故障平台。。。 3. ⽤户可以删除、批量删除站内信 4. ⽤户可以已阅、批量已阅、全部标记为已读 站内信 5. 运维平台页⾯顶部的消息图标 1. 展⽰未读消息数,超过99显⽰ 99+ 2. ⿏标放上去,会有下拉框,展⽰最近10条未读消息(展⽰"时间","消息来源","标题") 3. 下拉框的底部有两个按钮:"更多",加载更多未读消息;"查看全部",跳转到站内信列表页⾯(最好另开⼀个窗⼝) 4. 点击下拉框⾥的未读消息,通过弹出框展⽰详情;然后在未读列表⾥删除该记录,在数据库⾥标记为已读,消息图标的未读消息 数量减⼀ 6. 管理员页⾯: 1. 更新⽤户 2. 删除消息 3. 统计数据 4. 增加module 5. 增加站内信类型 6. 发送全站消息 三、系统设计 功能设计 功能 功能 接⼝ 接⼝ 详情 详情 发送站内信 POST /v1/message 校验module_name,校验title content receiver_name 长度 获取站内信列表 GET / 统计信息 暂⽆ 四、系统流程 发送站内信 1. 读取POST请求的request body 2. 校验长度 3. 插⼊数据库 4. 返回 获取站内信列表 1. 调⽤⼦模块,插⼊发送给全站或我所属⽤户组的站内信 2. 根据查询条件,返回数据库数据 获取未读站内信数量 1. 调⽤⼦模块,插⼊发送给全站或我所属⽤户组的站内信 2. 返回数量 批量已阅 1. 检查messageId是不是属于当前⽤户 2. inbox_message表⾥把 read 置为1,修改update_time 全部已阅 1. update inbox_message set "read"=1, "update_time"=now where "receiver_name"=currentUser() and "read" = 0 批量删除 1. 检查messageId是不是属于当前⽤户 2. inbox_message表⾥把 deleted 置为1,修改update_time 全部删除 1. update inbox_message set "deleted"=1, "update_time"=now where "receiver_name"=currentUser() and "deleted" = 0 五、数据库设计 站内信内容表 Field Field Type Type Null Null Key Key Default Default Extra Extr
分享网站群发站内信数据库表设计
“站内信”不同于电子邮件,电子邮件通过专门的邮件服务器发送、保存。而“站内信”是系统内的消息,说白了,“站内信”的实现,就是通过数据库插入记录来实现的。 “站内信”有两个基本功能。一:点到点的消息传送。用户给用户发送站内信;管理员给用户发送站内信。二:点到面的消息传送。管理员给用户(指定满足某一条件的用户群)群发消息。点到点的消息传送很容易实现,本文不再详述。下面将根据不同的情况,来说说“站内信”的群发是如何实现的。 第一种情况,站内的用户是少量级别的。(几十到上百) 这种情况,由于用户的数量非常少,因此,没有必要过多的考虑数据库的优化,采用简单的表格,对系统的设计也来的简单,后期
laravel-Notifications-站内信简单实例
laravel5.3站内信,站内通知操作。开箱看代码。简单实例;


非技术区
