消息系统的设计
简介:
消息系统主要分为了两种
① 站内信
公告,私信(运营到用户),群组通信,全员信息
② 站外信
短信,邮件,微信提醒
例图:
数据库设计:
一、消息信息表 create table `news` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', `content` text NOT NULL COMMENT '消息内容', `type` tinyint(1) NOT NULL COMMENT '消息类型,1:公告,2:站内信,3:群组信,4:全员发送', `sender` int(11) unsigned NOT NULL COMMENT '发送者id', `senderName` varchar(80) NOT NULL DEFAULT '' COMMENT '发送者名称', `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1,发送,2,撤销', `createTime` int(11) unsigned NOT NULL, PRIMARY KEY (`id`), KEY index_c (`createTime`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='消息信息表'; |
用户消息表 create table `userNews` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', `isRead` tinyint NOT NULL DEFAULT 0 COMMENT '是否已经读取 0,未读:1,已读', `user_id` int unsigned NOT NULL COMMENT '消息所有者', `notify_id` int unsigned NOT NULL COMMENT '关联notify表的id', `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1,发送,2,撤销', `createTime` int(11) unsigned NOT NULL, PRIMARY KEY (`id`), KEY index_u_s_c (`user_id`, `status`, `createTime`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户消息表' |
分组关联表 create table `userGroup` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', `groupName` varchar(40) NOT NULL COMMENT '分组名', `groupId` int(11) unsigned NOT NULL DEFAULT 0, `user_id` int(11) unsigned NOT NULL COMMENT '消息所有者', `createTime` int(11) unsigned NOT NULL, PRIMARY KEY (`id`), KEY index_g (`groupId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户分组表' |
服务层设计:
新建一条公告
- 请求地址
- 请求类型
POST
新建一条私信
- 请求地址
- 请求类型
POST
新建一条群组消息
- 请求地址
- 请求类型
POST
新建一条全员消息
- 请求地址
- 请求类型
POST
获取用户未读消息数
- 请求地址
- 请求类型
POST
获取用户消息列表
- 请求地址
- 请求类型
POST
实时获取用户消息
- 请求地址
- 请求类型
POST
发送短信
- 请求地址
- 请求类型
POST
发送邮件
- 请求地址
- 请求类型
POST