消息系统的设计

简介:

消息系统主要分为了两种

① 站内信

    公告,私信(运营到用户),群组通信,全员信息

② 站外信

    短信,邮件,微信提醒

例图:

数据库设计:

一、消息信息表

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='用户分组表'


服务层设计:

新建一条公告

  1. 请求地址

  2. 请求类型
    POST

新建一条私信

  1. 请求地址

  2. 请求类型
    POST

新建一条群组消息

  1. 请求地址

  2. 请求类型
    POST

新建一条全员消息

  1. 请求地址

  2. 请求类型
    POST

获取用户未读消息数

  1. 请求地址

  2. 请求类型
    POST

获取用户消息列表

  1. 请求地址

  2. 请求类型
    POST

实时获取用户消息

  1. 请求地址

  2. 请求类型
    POST

发送短信

  1. 请求地址

  2. 请求类型
    POST

发送邮件

  1. 请求地址

  2. 请求类型
    POST
原文地址:https://www.cnblogs.com/tangchuanyang/p/6004106.html