消息中心开发

April 28 , 2015

工作文档,关于消息模块的功能开发。

数据库设计

  • 消息内容信息表

    message_info:存放所有的消息模板的数据信息,其中的content使用JSON进行存储,在使用的时候进行键值对的匹配
    字段名称 字段类型 默认值 其他 说明
    id INT(11) PK AI NN 主键
    name VARCHAR(100) NN 消息名称
    type TINYINT(4) NN 消息通道类型,1-模板消息,2-短信,3-EC
    tenant_id INT(11) NN 商户ID
    template_id_short VARCHAR(100) 模板库中模板的编号,有“TM”和“OPENTMTM”等形式
    template_id VARCHAR(200) 模板ID,调用微信模板消息API时需要使用
    context LONGTEXT 内容json
    conf LONGTEXT 模板内容对应的本地解析数据
    ctm DATETIME NN 创建时间
    utm TIMESTAMP 自动存储当前时间 更新时间
  • 消息规则表

    message_rule:存放所有的消息调用规则
    字段名称 字段类型 默认值 其他 说明
    id INT(11) PK AI NN 主键
    title VARCHAR(100) NN 规则名称
    key VARCHAR(100) NN 规则关键字
    tenant_id INT(11) NN 商户ID
    info_id INT(11) NN 消息内容ID-message_info
    to_user VARCHAR(45) NN 接受人,1(用户),2(工作人员) eg:1,2
    work_id INT(11) 工作人员ID
    status TINYINT(4) 1 状态,1-有效,0-无效
    ctm DATETIME NN 创建时间
    utm TIMESTAMP 自动存储当前时间 更新时间
  • 消息工作人员接收表

    message_work_user:存放接收消息的工作人员信息
    字段名称 字段类型 默认值 其他 说明
    id INT(11) PK AI NN 主键
    tenant_id INT(11) NN 商户ID
    name VARCHAR(100) NN 用户姓名
    phone VARCHAR(50) NN 手机号码
    openid VARCHAR(500) NN
    key VARCHAR(500) NN 用于处理二维码扫描时候的唯一标识
    status TINYINT(4) 1 状态,1-有效,0-无效
    ctm DATETIME NN 创建时间
  • 发送消息表

    message_send:所有发送的消息信息
    字段名称 字段类型 默认值 其他 说明
    id INT(11) PK AI NN 主键
    tenant_id INT(11) NN 商户ID
    rule_id INT(11) NN 规则ID-message_rule
    info_id INT(11) NN 消息模板ID-message_info
    user_type TINYINT(4) NN 发送人性质,1-触发用户,2-工作人员
    msgid INT(11) 发送成功后返回的消息ID
    uid INT(11) 根据user_type判断,user_type=1时:wx_user_info中的ID,user_type=2时:message_work_user中的ID
    status TINYINT(4) 1 状态,1-成功,0-失败
    ctm DATETIME NN 发送时间
    stm TIMESTAMP 发送成功时间
  • SQL代码

CREATE TABLE `message_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL COMMENT '消息名称',
  `type` tinyint(4) NOT NULL COMMENT '消息通道类型,1-模板消息,2-短信,3-EC',
  `tenant_id` int(11) NOT NULL,
  `template_id_short` varchar(100) DEFAULT NULL COMMENT '模板库中模板的编号,有“TM”和“OPENTMTM”等形式',
  `template_id` varchar(100) DEFAULT NULL,
  `content` longtext COMMENT '内容json',
  `conf` longtext COMMENT '模板内容对应的本地解析数据',
  `ctm` datetime NOT NULL,
  `utm` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `message_rule` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '消息触发事件表',
  `title` varchar(100) NOT NULL,
  `key` varchar(100) NOT NULL COMMENT '规则关键字',
  `tenant_id` int(11) NOT NULL COMMENT '商户ID',
  `info_id` int(11) NOT NULL COMMENT '消息规则',
  `to_user` varchar(45) NOT NULL COMMENT '接受人,1(用户),2(工作人员) eg:1,2',
  `work_id` int(11) DEFAULT NULL,
  `status` tinyint(4) DEFAULT '1' COMMENT '状态,1-有效,0-无效',
  `ctm` datetime NOT NULL,
  `utm` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `message_send` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tenant_id` int(11) NOT NULL,
  `rule_id` int(11) NOT NULL COMMENT '规则ID-message_rule',
  `info_id` int(11) NOT NULL COMMENT '消息模板ID-message_info',
  `user_type` tinyint(4) NOT NULL COMMENT '发送人性质,1-触发用户,2-工作人员',
  `msgid` int(11) DEFAULT NULL COMMENT '发送成功后返回的消息ID',
  `uid` int(11) DEFAULT NULL COMMENT '根据user_type判断,user_type=1时:wx_user_info中的ID,user_type=2时:message_work_user中的ID',
  `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态,0-未发送,1-成功,2-发送中,3-发送失败',
  `ctm` datetime NOT NULL COMMENT '发送时间',
  `stm` timestamp NULL DEFAULT NULL COMMENT '发送成功时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `message_work_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tenant_id` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `phone` varchar(50) DEFAULT NULL,
  `openid` varchar(500) DEFAULT NULL,
  `key` varchar(500) DEFAULT NULL COMMENT '用于处理二维码扫描时候的唯一标识',
  `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态,1-有效,0-无效',
  `ctm` datetime NOT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

接口实现流程图

Alt text

游客评论区

#1 匿名游客 2015-05-16 21:17:29 / 回复

做个头像测试


#2 大魔王 2015-05-17 01:52:33 / 回复

测试成功


#3 小野aji人 2015-06-18 19:28:11 / 回复

虽然看不懂,但是顶一发(

#3-1 琴吹Emina 2015-06-23 09:57:23 / 回复

哇哦

#3-2 匿名游客 @#3-1 琴吹Emina 2016-06-21 22:15:48 / 回复

正在看博客的源码,测试下评论功能

#3-3 站长 @#3-2 匿名用户 2016-06-23 19:42:14 / 回复

好的,多谢支持,工作的关系,这个博客项目好长时间没更新了

#4 匿名游客 2015-06-27 14:37:00 / 回复

test


#5 大魔王 2015-06-27 14:56:19 / 回复

测试下邮箱的正则判断


发表评论

(请不要填写空的评论)
提交评论 使用QQ登录