-- ======================================== -- yanzhu-module-mp 建表 SQL -- 数据库: MySQL 8.0+ -- 微信公众号模块 -- ======================================== SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ======================================== -- 公众号核心表 -- ======================================== -- ---------------------------- -- Table structure for mp_account -- ---------------------------- DROP TABLE IF EXISTS `mp_account`; CREATE TABLE `mp_account` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', `name` varchar(64) NOT NULL COMMENT '公众号名称', `account` varchar(64) NOT NULL COMMENT '公众号账号', `app_id` varchar(64) NOT NULL COMMENT '公众号 appid', `app_secret` varchar(128) NOT NULL COMMENT '公众号密钥', `token` varchar(128) NOT NULL COMMENT '公众号 token', `aes_key` varchar(128) DEFAULT NULL COMMENT '消息加解密密钥', `qr_code_url` varchar(256) DEFAULT NULL COMMENT '二维码图片 URL', `remark` varchar(256) DEFAULT NULL COMMENT '备注', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', PRIMARY KEY (`id`), UNIQUE KEY `uk_app_id` (`app_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公众号账号'; -- ---------------------------- -- Table structure for mp_user -- ---------------------------- DROP TABLE IF EXISTS `mp_user`; CREATE TABLE `mp_user` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', `openid` varchar(64) NOT NULL COMMENT '粉丝标识', `union_id` varchar(64) DEFAULT NULL COMMENT '微信生态唯一标识', `subscribe_status` tinyint NOT NULL COMMENT '关注状态', `subscribe_time` datetime DEFAULT NULL COMMENT '关注时间', `unsubscribe_time` datetime DEFAULT NULL COMMENT '取消关注时间', `nickname` varchar(64) DEFAULT NULL COMMENT '昵称', `head_image_url` varchar(256) DEFAULT NULL COMMENT '头像地址', `language` varchar(32) DEFAULT NULL COMMENT '语言', `country` varchar(32) DEFAULT NULL COMMENT '国家', `province` varchar(32) DEFAULT NULL COMMENT '省份', `city` varchar(32) DEFAULT NULL COMMENT '城市', `remark` varchar(64) DEFAULT NULL COMMENT '备注', `tag_ids` text COMMENT '标签编号数组', `account_id` bigint NOT NULL COMMENT '公众号账号的编号', `app_id` varchar(64) NOT NULL COMMENT '公众号 appId', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', PRIMARY KEY (`id`), KEY `idx_openid` (`openid`), KEY `idx_account_id` (`account_id`), KEY `idx_union_id` (`union_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='微信公众号粉丝'; -- ---------------------------- -- Table structure for mp_tag -- ---------------------------- DROP TABLE IF EXISTS `mp_tag`; CREATE TABLE `mp_tag` ( `id` bigint NOT NULL COMMENT '主键', `tag_id` bigint NOT NULL COMMENT '公众号标签 id', `name` varchar(32) NOT NULL COMMENT '标签名', `count` int DEFAULT NULL COMMENT '此标签下粉丝数', `account_id` bigint NOT NULL COMMENT '公众号账号的编号', `app_id` varchar(64) NOT NULL COMMENT '公众号 appId', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', PRIMARY KEY (`id`), KEY `idx_account_id` (`account_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公众号标签'; -- ---------------------------- -- Table structure for mp_menu -- ---------------------------- DROP TABLE IF EXISTS `mp_menu`; CREATE TABLE `mp_menu` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', `account_id` bigint NOT NULL COMMENT '公众号账号的编号', `app_id` varchar(64) NOT NULL COMMENT '公众号 appId', `name` varchar(32) NOT NULL COMMENT '菜单名称', `menu_key` varchar(64) DEFAULT NULL COMMENT '菜单标识', `parent_id` bigint DEFAULT NULL COMMENT '父菜单编号', `type` varchar(16) DEFAULT NULL COMMENT '按钮类型', `url` varchar(256) DEFAULT NULL COMMENT '网页链接', `mini_program_app_id` varchar(32) DEFAULT NULL COMMENT '小程序的 appId', `mini_program_page_path` varchar(128) DEFAULT NULL COMMENT '小程序的页面路径', `article_id` varchar(64) DEFAULT NULL COMMENT '跳转图文的媒体编号', `reply_message_type` varchar(16) DEFAULT NULL COMMENT '消息类型', `reply_content` text COMMENT '回复的消息内容', `reply_media_id` varchar(64) DEFAULT NULL COMMENT '回复的媒体 id', `reply_media_url` varchar(256) DEFAULT NULL COMMENT '回复的媒体 URL', `reply_title` varchar(128) DEFAULT NULL COMMENT '回复的标题', `reply_description` varchar(256) DEFAULT NULL COMMENT '回复的描述', `reply_thumb_media_id` varchar(64) DEFAULT NULL COMMENT '回复的缩略图的媒体 id', `reply_thumb_media_url` varchar(256) DEFAULT NULL COMMENT '回复的缩略图的媒体 URL', `reply_articles` text COMMENT '回复的图文消息数组', `reply_music_url` varchar(256) DEFAULT NULL COMMENT '回复的音乐链接', `reply_hq_music_url` varchar(256) DEFAULT NULL COMMENT '回复的高质量音乐链接', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', PRIMARY KEY (`id`), KEY `idx_account_id` (`account_id`), KEY `idx_parent_id` (`parent_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公众号菜单'; -- ---------------------------- -- Table structure for mp_message -- ---------------------------- DROP TABLE IF EXISTS `mp_message`; CREATE TABLE `mp_message` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `msg_id` bigint DEFAULT NULL COMMENT '微信公众号消息 id', `account_id` bigint NOT NULL COMMENT '公众号账号的 ID', `app_id` varchar(64) NOT NULL COMMENT '公众号 appid', `user_id` bigint DEFAULT NULL COMMENT '公众号粉丝的编号', `openid` varchar(64) DEFAULT NULL COMMENT '公众号粉丝标志', `type` varchar(16) NOT NULL COMMENT '消息类型', `send_from` int DEFAULT NULL COMMENT '消息来源', `content` text COMMENT '消息内容', `media_id` varchar(64) DEFAULT NULL COMMENT '媒体文件的编号', `media_url` varchar(256) DEFAULT NULL COMMENT '媒体文件的 URL', `recognition` varchar(512) DEFAULT NULL COMMENT '语音识别后文本', `format` varchar(16) DEFAULT NULL COMMENT '语音格式', `title` varchar(128) DEFAULT NULL COMMENT '标题', `description` varchar(256) DEFAULT NULL COMMENT '描述', `thumb_media_id` varchar(64) DEFAULT NULL COMMENT '缩略图的媒体 id', `thumb_media_url` varchar(256) DEFAULT NULL COMMENT '缩略图的媒体 URL', `url` varchar(256) DEFAULT NULL COMMENT '点击图文消息跳转链接', `location_x` double DEFAULT NULL COMMENT '地理位置维度', `location_y` double DEFAULT NULL COMMENT '地理位置经度', `scale` double DEFAULT NULL COMMENT '地图缩放大小', `label` varchar(128) DEFAULT NULL COMMENT '详细地址', `articles` text COMMENT '图文消息数组', `music_url` varchar(256) DEFAULT NULL COMMENT '音乐链接', `hq_music_url` varchar(256) DEFAULT NULL COMMENT '高质量音乐链接', `event` varchar(32) DEFAULT NULL COMMENT '事件类型', `event_key` varchar(128) DEFAULT NULL COMMENT '事件 Key', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', PRIMARY KEY (`id`), KEY `idx_account_id` (`account_id`), KEY `idx_user_id` (`user_id`), KEY `idx_msg_id` (`msg_id`), KEY `idx_create_time` (`create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公众号消息'; -- ---------------------------- -- Table structure for mp_message_template -- ---------------------------- DROP TABLE IF EXISTS `mp_message_template`; CREATE TABLE `mp_message_template` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `account_id` bigint NOT NULL COMMENT '公众号账号的编号', `app_id` varchar(64) NOT NULL COMMENT '公众号 appId', `template_id` varchar(64) NOT NULL COMMENT '公众号模板 ID', `title` varchar(64) NOT NULL COMMENT '标题', `content` text COMMENT '模板内容', `example` text COMMENT '模板示例', `primary_industry` varchar(32) DEFAULT NULL COMMENT '模板所属行业的一级行业', `deputy_industry` varchar(32) DEFAULT NULL COMMENT '模板所属行业的二级行业', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', PRIMARY KEY (`id`), KEY `idx_account_id` (`account_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公众号模版消息'; -- ---------------------------- -- Table structure for mp_material -- ---------------------------- DROP TABLE IF EXISTS `mp_material`; CREATE TABLE `mp_material` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `account_id` bigint NOT NULL COMMENT '公众号账号的编号', `app_id` varchar(64) NOT NULL COMMENT '公众号 appId', `media_id` varchar(64) NOT NULL COMMENT '公众号素材 id', `type` varchar(16) NOT NULL COMMENT '文件类型', `permanent` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否永久', `url` varchar(256) DEFAULT NULL COMMENT '文件服务器的 URL', `name` varchar(64) DEFAULT NULL COMMENT '名字', `mp_url` varchar(256) DEFAULT NULL COMMENT '公众号文件 URL', `title` varchar(128) DEFAULT NULL COMMENT '视频素材的标题', `introduction` varchar(256) DEFAULT NULL COMMENT '视频素材的描述', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', PRIMARY KEY (`id`), KEY `idx_account_id` (`account_id`), KEY `idx_media_id` (`media_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公众号素材'; -- ---------------------------- -- Table structure for mp_auto_reply -- ---------------------------- DROP TABLE IF EXISTS `mp_auto_reply`; CREATE TABLE `mp_auto_reply` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `account_id` bigint NOT NULL COMMENT '公众号账号的编号', `app_id` varchar(64) NOT NULL COMMENT '公众号 appId', `type` tinyint NOT NULL COMMENT '回复类型', `request_keyword` varchar(32) DEFAULT NULL COMMENT '请求的关键字', `request_match` tinyint DEFAULT NULL COMMENT '请求的关键字的匹配', `request_message_type` varchar(16) DEFAULT NULL COMMENT '请求的消息类型', `response_message_type` varchar(16) DEFAULT NULL COMMENT '回复的消息类型', `response_content` text COMMENT '回复的消息内容', `response_media_id` varchar(64) DEFAULT NULL COMMENT '回复的媒体 id', `response_media_url` varchar(256) DEFAULT NULL COMMENT '回复的媒体 URL', `response_title` varchar(128) DEFAULT NULL COMMENT '回复的标题', `response_description` varchar(256) DEFAULT NULL COMMENT '回复的描述', `response_thumb_media_id` varchar(64) DEFAULT NULL COMMENT '回复的缩略图的媒体 id', `response_thumb_media_url` varchar(256) DEFAULT NULL COMMENT '回复的缩略图的媒体 URL', `response_articles` text COMMENT '回复的图文消息', `response_music_url` varchar(256) DEFAULT NULL COMMENT '回复的音乐链接', `response_hq_music_url` varchar(256) DEFAULT NULL COMMENT '回复的高质量音乐链接', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', PRIMARY KEY (`id`), KEY `idx_account_id` (`account_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公众号消息自动回复'; SET FOREIGN_KEY_CHECKS = 1;