-- ============================================================ -- 营运模块缺失表建表 SQL(远程库手动执行) -- 前缀示例 wxapp_,执行前全部替换为线上真实前缀。 -- 安全:使用 CREATE TABLE IF NOT EXISTS,重复执行不报错。 -- 来源:public/install/install.sql 的规范定义。 -- 说明:sms 表 COLLATE 已统一为 utf8mb4 以兼容 MySQL 5.7+。 -- ============================================================ CREATE TABLE IF NOT EXISTS `wxapp_card` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT 0 COMMENT '兑换会员ID(0未兑换)', `batch_no` varchar(30) NOT NULL DEFAULT '' COMMENT '批量生成批次号', `cardno` varchar(100) NOT NULL DEFAULT '' COMMENT '卡号', `password` varchar(100) NOT NULL DEFAULT '' COMMENT '密码', `amount` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '面值', `status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '状态 0未售1已售2已用', `use_time` int(11) NOT NULL DEFAULT 0 COMMENT '使用时间', `sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序', `create_at` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', `update_at` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间', `delete_at` int(11) NOT NULL DEFAULT 0 COMMENT '删除时间', PRIMARY KEY (`id`), KEY `idx_cardno` (`cardno`), KEY `idx_batch_no` (`batch_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='充值卡密'; CREATE TABLE IF NOT EXISTS `wxapp_prop` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(200) NOT NULL DEFAULT '' COMMENT '道具名称', `icon` varchar(255) NOT NULL DEFAULT '' COMMENT '图标', `price` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '价格', `description` text COMMENT '描述', `sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序', `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态', `create_at` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', `update_at` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间', `delete_at` int(11) NOT NULL DEFAULT 0 COMMENT '删除时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='道具中心'; CREATE TABLE IF NOT EXISTS `wxapp_shop` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(200) NOT NULL DEFAULT '' COMMENT '商品名称', `price` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '价格', `stock` int(11) NOT NULL DEFAULT 0 COMMENT '库存', `description` text COMMENT '描述', `sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序', `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态', `create_at` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', `update_at` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间', `delete_at` int(11) NOT NULL DEFAULT 0 COMMENT '删除时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='电子商务'; CREATE TABLE IF NOT EXISTS `wxapp_sms` ( `id` int NOT NULL AUTO_INCREMENT, `mobile` varchar(20) NOT NULL COMMENT '手机号', `code` varchar(10) NOT NULL COMMENT '验证码', `event` varchar(20) DEFAULT 'login' COMMENT '类型 login:登录 register:注册', `times` int DEFAULT '0' COMMENT '验证次数', `ip` varchar(50) DEFAULT NULL COMMENT '发送IP', `create_at` int DEFAULT '0', PRIMARY KEY (`id`), KEY `idx_mobile` (`mobile`), KEY `idx_times` (`times`), KEY `idx_create_at` (`create_at`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='短信日志表'; CREATE TABLE IF NOT EXISTS `wxapp_task` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(200) NOT NULL DEFAULT '' COMMENT '任务标题', `description` text COMMENT '任务描述', `reward_type` tinyint(1) NOT NULL DEFAULT 1 COMMENT '奖励类型', `reward_num` int(11) NOT NULL DEFAULT 0 COMMENT '奖励数量/道具ID', `prop_num` int(11) NOT NULL DEFAULT 1 COMMENT '道具数量(奖励类型为道具时生效)', `sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序', `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态', `create_at` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', `update_at` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间', `delete_at` int(11) NOT NULL DEFAULT 0 COMMENT '删除时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='站点任务'; CREATE TABLE IF NOT EXISTS `wxapp_member_prop` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `uid` int unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', `prop_id` int unsigned NOT NULL DEFAULT '0' COMMENT '道具ID', `num` int unsigned NOT NULL DEFAULT '1' COMMENT '数量', `create_at` int(11) NOT NULL DEFAULT '0' COMMENT '获得时间', PRIMARY KEY (`id`), KEY `idx_uid` (`uid`), KEY `idx_uid_prop` (`uid`,`prop_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户拥有道具'; CREATE TABLE IF NOT EXISTS `wxapp_member_task` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `uid` int unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', `task_id` int unsigned NOT NULL DEFAULT '0' COMMENT '任务ID', `reward_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '实际发放奖励类型', `reward_num` int(11) NOT NULL DEFAULT '0' COMMENT '实际发放数量', `create_at` int(11) NOT NULL DEFAULT '0' COMMENT '领取时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_uid_task` (`uid`,`task_id`), KEY `idx_uid` (`uid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户任务领取记录'; -- 以下两张已在原自愈覆盖(medal / score_log / score_rule), -- 一并补上保证完整,IF NOT EXISTS 不会冲突。 CREATE TABLE IF NOT EXISTS `wxapp_medal` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(200) NOT NULL DEFAULT '' COMMENT '勋章名称', `image` varchar(255) NOT NULL DEFAULT '' COMMENT '图片', `description` text COMMENT '描述', `sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序', `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态', `create_at` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', `update_at` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间', `delete_at` int(11) NOT NULL DEFAULT 0 COMMENT '删除时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='勋章中心'; CREATE TABLE IF NOT EXISTS `wxapp_member_medal` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `uid` int unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', `medal_id` int unsigned NOT NULL DEFAULT '0' COMMENT '勋章ID', `create_at` int(11) NOT NULL DEFAULT 0 COMMENT '获得时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_uid_medal` (`uid`,`medal_id`), KEY `idx_uid` (`uid`), KEY `idx_medal` (`medal_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户拥有勋章'; CREATE TABLE IF NOT EXISTS `wxapp_score_log` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '用户ID', `rule_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '关联规则ID', `type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '1收入2支出', `value` int(11) NOT NULL DEFAULT 0 COMMENT '变动值', `balance` int(11) NOT NULL DEFAULT 0 COMMENT '变动后余额', `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注', `create_at` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', PRIMARY KEY (`id`), KEY `idx_uid` (`uid`), KEY `idx_uid_create` (`uid`,`create_at`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='积分流水'; CREATE TABLE IF NOT EXISTS `wxapp_score_rule` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL DEFAULT '' COMMENT '规则名称', `action` varchar(50) NOT NULL DEFAULT '' COMMENT '触发动作标识(task_complete/signin/register等)', `type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '1获取2消费', `value` int(11) NOT NULL DEFAULT 0 COMMENT '变动值', `status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '状态 0禁用1启用', `sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序', `create_at` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', `update_at` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间', `delete_at` int(11) NOT NULL DEFAULT 0 COMMENT '删除时间', PRIMARY KEY (`id`), KEY `idx_action` (`action`), KEY `idx_status_sort` (`status`,`sort`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='积分规则';