Files
gouki fe5bed0668
Publish Mini Program Dev Version / publish (push) Failing after 11s
Build and Publish Server / build (push) Successful in 2m54s
feat(wish-tree): 许愿树页面微调七项
1. 背景图 aspectFill 撑满全屏,挂载点坐标按裁剪比例重算,便签不再落在图外
2. 写下心愿按钮单行不换行,缩小尺寸
3. 移除页面内许愿树标题/数量/最近心愿,点击便签弹出便签式详情卡
4. 默认请求100条:最新50条挂树,其余以弹幕形式缓缓飘过
5. MAKE A WISH 下方增加顶级位置轮播(购买后24小时内展示),点击弹出金色便签详情,与普通便签区分
6. 多棵树分屏轮播(swiper),背景图从服务器获取,带指示点
7. 后端:WishTree新增image字段,Wish新增isTop运行时标记,图片用go:embed内嵌随二进制部署,/images路由提供访问
2026-08-09 20:58:32 +00:00

110 lines
5.5 KiB
SQL

-- 用户表
CREATE TABLE IF NOT EXISTS users (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
open_id VARCHAR(64) NOT NULL UNIQUE COMMENT '微信OpenID',
union_id VARCHAR(64) DEFAULT '' COMMENT '微信UnionID',
nickname VARCHAR(64) DEFAULT '' COMMENT '昵称',
avatar VARCHAR(255) DEFAULT '' COMMENT '头像',
gender TINYINT DEFAULT 0 COMMENT '性别 0:未知 1:男 2:女',
phone VARCHAR(20) DEFAULT '' COMMENT '手机号',
email VARCHAR(100) DEFAULT '' COMMENT '邮箱',
status TINYINT DEFAULT 1 COMMENT '状态 1:正常 0:禁用',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_open_id (open_id),
INDEX idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
-- 用户资料表
CREATE TABLE IF NOT EXISTS user_profiles (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user_id BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
real_name VARCHAR(32) DEFAULT '' COMMENT '真实姓名',
birthday VARCHAR(10) DEFAULT '' COMMENT '生日 YYYY-MM-DD',
birth_time VARCHAR(8) DEFAULT '' COMMENT '出生时间 HH:mm:ss',
gender TINYINT DEFAULT 0 COMMENT '性别',
zodiac VARCHAR(10) DEFAULT '' COMMENT '生肖',
constellation VARCHAR(20) DEFAULT '' COMMENT '星座',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_user_id (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户资料表';
-- 订单表
CREATE TABLE IF NOT EXISTS orders (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
order_no VARCHAR(32) NOT NULL UNIQUE COMMENT '订单号',
user_id BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
type VARCHAR(20) NOT NULL COMMENT '订单类型 wish:许愿 vip:会员',
product_id BIGINT UNSIGNED DEFAULT 0 COMMENT '商品ID',
product_name VARCHAR(100) DEFAULT '' COMMENT '商品名称',
amount INT NOT NULL DEFAULT 0 COMMENT '金额(分)',
status VARCHAR(20) DEFAULT 'pending' COMMENT '状态 pending:待支付 paid:已支付 cancelled:已取消 refunded:已退款',
pay_time TIMESTAMP NULL COMMENT '支付时间',
expire_time TIMESTAMP NULL COMMENT '过期时间',
remark VARCHAR(255) DEFAULT '' COMMENT '备注',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_order_no (order_no),
INDEX idx_user_id (user_id),
INDEX idx_status (status),
INDEX idx_type (type)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单表';
-- 许愿树表
CREATE TABLE IF NOT EXISTS wish_trees (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL COMMENT '名称',
description VARCHAR(255) DEFAULT '' COMMENT '描述',
type VARCHAR(20) DEFAULT 'pine' COMMENT '树类型 pine:松树 sakura:樱花 bamboo:竹子',
image VARCHAR(255) DEFAULT '' COMMENT '背景图地址',
max_wishes INT DEFAULT 100 COMMENT '最大许愿条数',
sort INT DEFAULT 0 COMMENT '排序',
status TINYINT DEFAULT 1 COMMENT '状态',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='许愿树表';
-- 许愿表
CREATE TABLE IF NOT EXISTS wishes (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user_id BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
tree_id BIGINT UNSIGNED NOT NULL COMMENT '许愿树ID',
content VARCHAR(500) NOT NULL COMMENT '许愿内容',
type VARCHAR(20) DEFAULT 'free' COMMENT '类型 free:免费 paid:付费',
position INT DEFAULT 0 COMMENT '位置',
status TINYINT DEFAULT 1 COMMENT '状态 1:正常 0:隐藏/删除',
is_robot TINYINT DEFAULT 0 COMMENT '是否机器人发布',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_user_id (user_id),
INDEX idx_tree_id (tree_id),
INDEX idx_status (status),
INDEX idx_type (type)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='许愿表';
-- 许愿商品表
CREATE TABLE IF NOT EXISTS wish_products (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL COMMENT '商品名称',
description VARCHAR(255) DEFAULT '' COMMENT '描述',
price INT NOT NULL DEFAULT 0 COMMENT '价格(分)',
duration INT DEFAULT 7 COMMENT '展示时长(天)',
position INT DEFAULT 0 COMMENT '优先位置',
status TINYINT DEFAULT 1 COMMENT '状态',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='许愿商品表';
-- 插入默认许愿树
INSERT IGNORE INTO wish_trees (id, name, description, type, image, max_wishes, sort) VALUES
(1, '祈福树', '许下美好愿望,祈福平安顺遂', 'pine', '/images/trees/tree-1.jpg', 100, 0),
(2, '姻缘树', '祈求姻缘美满,爱情甜蜜', 'sakura', '/images/trees/tree-1.jpg', 50, 1),
(3, '事业树', '祈愿事业顺利,步步高升', 'bamboo', '/images/trees/tree-1.jpg', 80, 2);
-- 插入默认许愿商品
INSERT IGNORE INTO wish_products (id, name, description, price, duration, position) VALUES
(1, '普通许愿条', '基础许愿条,展示7天', 100, 7, 0),
(2, '精品许愿条', '精品许愿条,展示30天,优先位置', 500, 30, 10),
(3, '至尊许愿条', '至尊许愿条,展示90天,置顶显示', 2000, 90, 100);