美文网首页
通知系统的设计(三)

通知系统的设计(三)

作者: 贾老师和他的朋友们 | 来源:发表于2016-10-24 18:05 被阅读76次

    对象设置和API

    行为分析

    管理员

    1、发布公告

    2、

    系统

    发起一个提醒,是由业务根据自己的情况产生的,产生的消息对应一个注册,至于发给全部(包括按标签)还是发给一个人(多个人),由业务自己确定。

    1、保存提醒信息,save(Notice notice)

    web

    1、websocket接收通知,新消息弹出,同时修改新消息数量。

    2、初始化,init(String uid),返回新消息总数,和最新的5条信息。

    3、查询信息,query(String uid, String status,String type, int page)

    4、显示信息,get(String id)

    5、用户读(设置状态),status(String id, String status)

    6、批量设置状态,batch(String fromStatus,String toStatus),把功能从未读->已读

    7、列出所有订阅内容。getSubscribe

    8、订阅(取消),subscribe(String uid, String subscribeId,int flag, int web, int weixin, int  sm)

    9、得到系统消息下所有分类 getNotifyCate

    package

    com.xx.common.notify

    domain---数据库对象

    bean---bean

    utils--工具类

    通用对象

    domain

         Bulletin--公告

         Notice--提醒

         Address-收信人

         Subscribe--订阅

    repsitory---db对象操作

         NoticeDao

                       save(Bulletin)

                       save(Notice)

         SubscribeDao

                       subscribe----订阅 

                       unsubscribe---取消订阅

    Web部分

    WebPush

    web推送到jms(activemq)的topic,web端通过activemq ajax 实现通知。这里不采用持久化订阅,只有在线的用户才能得到通知。因为第一次连接会调用init完成把之前没有得到的通知得到。

    WebPull

    web用户初始化时读取属性自己的信息公告信息。得到新消息总数,和最新的10条信息,更多信息通过get得到。

        init(uid)---读取公告信息,插入到自己的信息表中。

        get(uid)--读取私有信息。

    微信部分

    WeixinPush

    完成微信的推送功能,使用jms来实现,设两个queue

    queue 1:处理不指定用户的通知,订阅者完成微信的推送,需要先得到待发微信接收人,然后循环发送。对应方法:push(Bulletin bulletin)

    queue 2:处理指定用户的通知,订阅者完成微信的推送。对应方法:push(Notice)

    WeixinUtils

    完成微信订阅功能,微信登录后,要记录最后登录时间和登录次数。

    微信部分采用模板消息来实现。需要选择模板。

    APP部分

    todo

    相关文章

      网友评论

          本文标题:通知系统的设计(三)

          本文链接:https://www.haomeiwen.com/subject/yfxhuttx.html