11
This commit is contained in:
parent
8e5a893563
commit
6e8d55cc15
|
|
@ -37,6 +37,10 @@
|
||||||
- order (15条) - 订单主表
|
- order (15条) - 订单主表
|
||||||
- order_list (67条) - 订单详情
|
- order_list (67条) - 订单详情
|
||||||
|
|
||||||
|
钻石系统:
|
||||||
|
- diamond_orders (398条) - 钻石订单 (有实际交易数据)
|
||||||
|
- diamond_products (5条) - 钻石商品配置
|
||||||
|
|
||||||
财务相关:
|
财务相关:
|
||||||
- profit_money (26,061条) - 余额明细
|
- profit_money (26,061条) - 余额明细
|
||||||
- profit_integral (33,487条) - 积分明细
|
- profit_integral (33,487条) - 积分明细
|
||||||
|
|
@ -109,6 +113,127 @@ VIP系统:
|
||||||
#### 任务描述
|
#### 任务描述
|
||||||
基于snake_case命名规范,重新设计表结构
|
基于snake_case命名规范,重新设计表结构
|
||||||
|
|
||||||
|
#### 商品表字段分析
|
||||||
|
|
||||||
|
基于数据库实际查询结果,goods表共有54个字段,按业务功能分类如下:
|
||||||
|
|
||||||
|
##### 🔥 核心业务字段 (必须迁移)
|
||||||
|
```yaml
|
||||||
|
基础信息 (7字段):
|
||||||
|
- id: 主键
|
||||||
|
- category_id: 分类ID
|
||||||
|
- title: 商品标题
|
||||||
|
- imgurl: 商品图片
|
||||||
|
- imgurl_detail: 详情图片
|
||||||
|
- prize_imgurl: 奖品图片
|
||||||
|
- goods_describe: 商品描述 (402/503商品有描述)
|
||||||
|
|
||||||
|
价格库存 (4字段):
|
||||||
|
- price: 商品价格
|
||||||
|
- stock: 总库存
|
||||||
|
- sale_stock: 已售库存
|
||||||
|
- show_price: 显示价格(营销)
|
||||||
|
|
||||||
|
状态控制 (4字段):
|
||||||
|
- type: 商品类型 (1一番赏 2无限赏等)
|
||||||
|
- status: 状态 (0下架 1上架)
|
||||||
|
- sort: 排序权重
|
||||||
|
- new_is: 新品标识
|
||||||
|
|
||||||
|
时间字段 (4字段):
|
||||||
|
- sale_time: 开售时间
|
||||||
|
- addtime: 创建时间
|
||||||
|
- update_time: 更新时间
|
||||||
|
- delete_time: 删除时间
|
||||||
|
```
|
||||||
|
|
||||||
|
##### ⚡ 重要功能字段 (高使用率)
|
||||||
|
```yaml
|
||||||
|
福利屋功能 (5字段) - 383/503商品启用:
|
||||||
|
- is_flw: 福利屋开关
|
||||||
|
- flw_start_time: 开始时间
|
||||||
|
- flw_end_time: 结束时间
|
||||||
|
- open_time: 开放时间
|
||||||
|
- is_open: 是否开放
|
||||||
|
|
||||||
|
限购控制 (4字段):
|
||||||
|
- daily_xiangou: 每日限购 (重要业务逻辑)
|
||||||
|
- quanju_xiangou: 全局限购
|
||||||
|
- unlock_amount: 解锁金额门槛
|
||||||
|
- user_lv: 用户等级限制
|
||||||
|
|
||||||
|
抽奖核心 (3字段):
|
||||||
|
- prize_num: 奖品数量
|
||||||
|
- choujiang_xianzhi: 抽奖限制
|
||||||
|
- lock_is/lock_time: 锁箱功能
|
||||||
|
|
||||||
|
自动下架 (4字段) - 47/503商品启用:
|
||||||
|
- is_auto_xiajia: 自动下架开关
|
||||||
|
- xiajia_lirun: 利润阈值
|
||||||
|
- xiajia_auto_coushu: 自动抽数
|
||||||
|
- xiajia_jine: 金额阈值
|
||||||
|
```
|
||||||
|
|
||||||
|
##### 🎯 特色功能字段 (中等使用率)
|
||||||
|
```yaml
|
||||||
|
营销功能 (4字段):
|
||||||
|
- coupon_is/coupon_pro: 优惠券功能
|
||||||
|
- integral_is: 积分功能
|
||||||
|
- is_shou_zhe: 折扣标识
|
||||||
|
- show_is: 首页显示控制
|
||||||
|
|
||||||
|
定价策略 (4字段):
|
||||||
|
- day_price: 日价格
|
||||||
|
- mouth_price: 月价格
|
||||||
|
- mouth_pay_price: 月支付价格
|
||||||
|
- day_pay_price: 日支付价格
|
||||||
|
|
||||||
|
卡片系统 (5字段):
|
||||||
|
- card_banner: 卡片横幅
|
||||||
|
- card_set: 卡片设置JSON
|
||||||
|
- card_notice: 卡片通知
|
||||||
|
- card_num: 卡片数量
|
||||||
|
- item_card_id: 道具卡ID
|
||||||
|
|
||||||
|
同步功能 (2字段) - 21/503商品有异步代码:
|
||||||
|
- async_code: 异步同步代码
|
||||||
|
- async_date: 异步同步时间
|
||||||
|
```
|
||||||
|
|
||||||
|
##### 🔧 高级功能字段 (低使用率但重要)
|
||||||
|
```yaml
|
||||||
|
灵珠系统 (3字段) - 8个商品启用:
|
||||||
|
- lingzhu_is: 领主功能开关
|
||||||
|
- lingzhu_fan: 领主返还
|
||||||
|
- lingzhu_shang_id: 领主奖品ID
|
||||||
|
|
||||||
|
连击系统 (2字段):
|
||||||
|
- lian_ji_num: 连击数量
|
||||||
|
- lian_ji_shang_id: 连击奖品ID
|
||||||
|
|
||||||
|
暴怒系统 (2字段):
|
||||||
|
- rage_is: 暴怒功能开关
|
||||||
|
- rage: 暴怒值
|
||||||
|
|
||||||
|
拳王系统 (1字段):
|
||||||
|
- king_user_id: 拳王用户ID
|
||||||
|
```
|
||||||
|
|
||||||
|
##### 📊 字段使用统计
|
||||||
|
```yaml
|
||||||
|
高使用率字段 (>300个商品):
|
||||||
|
- is_flw: 383个商品 (福利屋功能)
|
||||||
|
- goods_describe: 402个商品 (商品描述)
|
||||||
|
|
||||||
|
中使用率字段 (20-100个商品):
|
||||||
|
- is_auto_xiajia: 47个商品 (自动下架)
|
||||||
|
- async_code: 21个商品 (异步同步)
|
||||||
|
|
||||||
|
低使用率字段 (<20个商品):
|
||||||
|
- lingzhu_is: 8个商品 (灵珠功能)
|
||||||
|
- 其他特殊功能字段
|
||||||
|
```
|
||||||
|
|
||||||
#### 具体工作
|
#### 具体工作
|
||||||
- [ ] 统一命名规范为snake_case
|
- [ ] 统一命名规范为snake_case
|
||||||
- [ ] 优化数据类型和字段长度
|
- [ ] 优化数据类型和字段长度
|
||||||
|
|
@ -122,27 +247,30 @@ VIP系统:
|
||||||
-- 用户主表
|
-- 用户主表
|
||||||
CREATE TABLE users (
|
CREATE TABLE users (
|
||||||
id INT IDENTITY(1,1) PRIMARY KEY,
|
id INT IDENTITY(1,1) PRIMARY KEY,
|
||||||
open_id NVARCHAR(50) NOT NULL,
|
open_id NVARCHAR(50) NOT NULL COMMENT '微信OpenID',
|
||||||
union_id NVARCHAR(255) NULL,
|
union_id NVARCHAR(255) NULL COMMENT '微信UnionID',
|
||||||
gzh_open_id NVARCHAR(255) NULL,
|
gzh_open_id NVARCHAR(255) NULL COMMENT '公众号OpenID',
|
||||||
mobile NVARCHAR(15) NULL,
|
mobile NVARCHAR(15) NULL COMMENT '手机号',
|
||||||
nickname NVARCHAR(255) NOT NULL,
|
nickname NVARCHAR(255) NOT NULL COMMENT '昵称',
|
||||||
head_img NVARCHAR(500) NOT NULL,
|
head_img NVARCHAR(500) NOT NULL COMMENT '头像URL',
|
||||||
parent_id INT NOT NULL DEFAULT 0,
|
parent_id INT NOT NULL DEFAULT 0 COMMENT '推荐人ID',
|
||||||
money DECIMAL(18,2) NOT NULL DEFAULT 0,
|
money DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '余额',
|
||||||
money2 DECIMAL(18,2) NOT NULL DEFAULT 0,
|
money2 DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '积分货币',
|
||||||
integral DECIMAL(18,2) NOT NULL DEFAULT 0,
|
integral DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '积分',
|
||||||
score DECIMAL(18,2) NOT NULL DEFAULT 0,
|
score DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '评分',
|
||||||
ou_qi INT NOT NULL DEFAULT 0,
|
ou_qi INT NOT NULL DEFAULT 0 COMMENT '欧气值',
|
||||||
ou_qi_level INT NOT NULL DEFAULT 0,
|
ou_qi_level INT NOT NULL DEFAULT 0 COMMENT '欧气等级',
|
||||||
vip_level TINYINT NOT NULL DEFAULT 1,
|
vip_level TINYINT NOT NULL DEFAULT 1 COMMENT 'VIP等级',
|
||||||
status TINYINT NOT NULL DEFAULT 1,
|
status TINYINT NOT NULL DEFAULT 1 COMMENT '状态 0禁用 1正常',
|
||||||
is_test INT NOT NULL DEFAULT 0,
|
is_test INT NOT NULL DEFAULT 0 COMMENT '是否测试账号',
|
||||||
uid NVARCHAR(16) NOT NULL,
|
uid NVARCHAR(16) NOT NULL COMMENT '用户唯一标识',
|
||||||
click_id INT NULL,
|
click_id INT NULL COMMENT '点击ID',
|
||||||
created_at DATETIME2 NOT NULL DEFAULT GETDATE(),
|
draw_num INT NOT NULL DEFAULT 0 COMMENT '抽奖次数',
|
||||||
updated_at DATETIME2 NOT NULL DEFAULT GETDATE(),
|
password NVARCHAR(40) NULL COMMENT '密码',
|
||||||
last_login_at DATETIME2 NULL,
|
is_use_coupon TINYINT NOT NULL DEFAULT 0 COMMENT '是否使用优惠券',
|
||||||
|
created_at DATETIME2 NOT NULL DEFAULT GETDATE() COMMENT '创建时间',
|
||||||
|
updated_at DATETIME2 NOT NULL DEFAULT GETDATE() COMMENT '更新时间',
|
||||||
|
last_login_at DATETIME2 NULL COMMENT '最后登录时间',
|
||||||
|
|
||||||
-- 索引
|
-- 索引
|
||||||
INDEX ix_users_open_id (open_id),
|
INDEX ix_users_open_id (open_id),
|
||||||
|
|
@ -155,23 +283,23 @@ CREATE TABLE users (
|
||||||
-- 约束
|
-- 约束
|
||||||
CONSTRAINT uk_users_open_id UNIQUE (open_id),
|
CONSTRAINT uk_users_open_id UNIQUE (open_id),
|
||||||
CONSTRAINT uk_users_uid UNIQUE (uid)
|
CONSTRAINT uk_users_uid UNIQUE (uid)
|
||||||
);
|
) COMMENT = '用户主表';
|
||||||
|
|
||||||
-- 用户账户表
|
-- 用户账户表
|
||||||
CREATE TABLE user_accounts (
|
CREATE TABLE user_accounts (
|
||||||
id INT IDENTITY(1,1) PRIMARY KEY,
|
id INT IDENTITY(1,1) PRIMARY KEY,
|
||||||
user_id INT NOT NULL,
|
user_id INT NOT NULL COMMENT '用户ID',
|
||||||
account_token NVARCHAR(255) NOT NULL,
|
account_token NVARCHAR(255) NOT NULL COMMENT '账户令牌',
|
||||||
token_num NVARCHAR(50) NOT NULL,
|
token_num NVARCHAR(50) NOT NULL COMMENT '令牌编号',
|
||||||
token_time BIGINT NOT NULL,
|
token_time BIGINT NOT NULL COMMENT '令牌时间',
|
||||||
last_login_time BIGINT NOT NULL,
|
last_login_time BIGINT NOT NULL COMMENT '最后登录时间戳',
|
||||||
last_login_ip BIGINT NOT NULL,
|
last_login_ip BIGINT NOT NULL COMMENT '最后登录IP(数值)',
|
||||||
last_login_ip_str NVARCHAR(45) NOT NULL,
|
last_login_ip_str NVARCHAR(45) NOT NULL COMMENT '最后登录IP(字符串)',
|
||||||
ip_province NVARCHAR(50) NULL,
|
ip_province NVARCHAR(50) NULL COMMENT 'IP省份',
|
||||||
ip_city NVARCHAR(50) NULL,
|
ip_city NVARCHAR(50) NULL COMMENT 'IP城市',
|
||||||
ip_adcode NVARCHAR(20) NULL,
|
ip_adcode NVARCHAR(20) NULL COMMENT 'IP区域代码',
|
||||||
created_at DATETIME2 NOT NULL DEFAULT GETDATE(),
|
created_at DATETIME2 NOT NULL DEFAULT GETDATE() COMMENT '创建时间',
|
||||||
updated_at DATETIME2 NOT NULL DEFAULT GETDATE(),
|
updated_at DATETIME2 NOT NULL DEFAULT GETDATE() COMMENT '更新时间',
|
||||||
|
|
||||||
-- 索引
|
-- 索引
|
||||||
INDEX ix_user_accounts_user_id (user_id),
|
INDEX ix_user_accounts_user_id (user_id),
|
||||||
|
|
@ -179,81 +307,155 @@ CREATE TABLE user_accounts (
|
||||||
|
|
||||||
-- 外键
|
-- 外键
|
||||||
CONSTRAINT fk_user_accounts_user_id FOREIGN KEY (user_id) REFERENCES users(id)
|
CONSTRAINT fk_user_accounts_user_id FOREIGN KEY (user_id) REFERENCES users(id)
|
||||||
);
|
) COMMENT = '用户账户信息表';
|
||||||
|
|
||||||
-- 用户登录日志表
|
-- 用户登录日志表
|
||||||
CREATE TABLE user_login_logs (
|
CREATE TABLE user_login_logs (
|
||||||
id INT IDENTITY(1,1) PRIMARY KEY,
|
id INT IDENTITY(1,1) PRIMARY KEY,
|
||||||
user_id INT NOT NULL,
|
user_id INT NOT NULL COMMENT '用户ID',
|
||||||
platform NVARCHAR(50) NOT NULL,
|
platform NVARCHAR(50) NOT NULL COMMENT '登录平台',
|
||||||
ip_address NVARCHAR(45) NOT NULL,
|
ip_address NVARCHAR(45) NOT NULL COMMENT 'IP地址',
|
||||||
location NVARCHAR(100) NULL,
|
location NVARCHAR(100) NULL COMMENT '登录地点',
|
||||||
device NVARCHAR(100) NULL,
|
device NVARCHAR(100) NULL COMMENT '设备信息',
|
||||||
device_info NVARCHAR(500) NULL,
|
device_info NVARCHAR(500) NULL COMMENT '详细设备信息',
|
||||||
login_time DATETIME2 NOT NULL DEFAULT GETDATE(),
|
login_time DATETIME2 NOT NULL DEFAULT GETDATE() COMMENT '登录时间',
|
||||||
|
|
||||||
-- 索引
|
-- 索引
|
||||||
INDEX ix_user_login_logs_user_id (user_id),
|
INDEX ix_user_login_logs_user_id (user_id),
|
||||||
INDEX ix_user_login_logs_login_time (login_time),
|
INDEX ix_user_login_logs_login_time (login_time),
|
||||||
INDEX ix_user_login_logs_platform (platform)
|
INDEX ix_user_login_logs_platform (platform)
|
||||||
);
|
) COMMENT = '用户登录日志表';
|
||||||
```
|
```
|
||||||
|
|
||||||
##### 商品相关表
|
##### 商品相关表
|
||||||
```sql
|
```sql
|
||||||
-- 商品主表
|
-- 商品主表 (完整54字段结构)
|
||||||
CREATE TABLE goods (
|
CREATE TABLE goods (
|
||||||
id INT IDENTITY(1,1) PRIMARY KEY,
|
id INT IDENTITY(1,1) PRIMARY KEY,
|
||||||
category_id INT NOT NULL DEFAULT 0,
|
|
||||||
title NVARCHAR(255) NOT NULL,
|
-- 基础信息
|
||||||
img_url NVARCHAR(500) NOT NULL,
|
category_id INT NOT NULL DEFAULT 0 COMMENT '分类ID',
|
||||||
img_url_detail NVARCHAR(500) NOT NULL,
|
title NVARCHAR(255) NOT NULL COMMENT '商品标题',
|
||||||
price DECIMAL(18,2) NOT NULL DEFAULT 0,
|
img_url NVARCHAR(500) NOT NULL COMMENT '商品图片URL',
|
||||||
stock INT NOT NULL DEFAULT 0,
|
img_url_detail NVARCHAR(500) NOT NULL COMMENT '商品详情图片URL',
|
||||||
sale_stock INT NOT NULL DEFAULT 0,
|
prize_img_url NVARCHAR(500) NULL COMMENT '奖品图片URL',
|
||||||
type TINYINT NOT NULL DEFAULT 0,
|
goods_describe NVARCHAR(300) NULL COMMENT '商品描述',
|
||||||
status TINYINT NOT NULL DEFAULT 1,
|
|
||||||
is_lock TINYINT NOT NULL DEFAULT 0,
|
-- 价格和库存
|
||||||
lock_time INT NOT NULL DEFAULT 0,
|
price DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '商品价格',
|
||||||
is_discount TINYINT NOT NULL DEFAULT 0,
|
stock INT NOT NULL DEFAULT 0 COMMENT '总库存',
|
||||||
is_new TINYINT NOT NULL DEFAULT 0,
|
sale_stock INT NOT NULL DEFAULT 0 COMMENT '已售库存',
|
||||||
is_show TINYINT NOT NULL DEFAULT 0,
|
show_price NVARCHAR(100) NULL COMMENT '显示价格(营销用)',
|
||||||
unlock_amount DECIMAL(18,2) NOT NULL DEFAULT 0,
|
|
||||||
daily_limit INT NOT NULL DEFAULT 0,
|
-- 定价策略
|
||||||
global_limit INT NOT NULL DEFAULT 0,
|
day_price DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '日价格',
|
||||||
sort_order INT NOT NULL DEFAULT 1,
|
mouth_price DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '月价格',
|
||||||
sale_time DATETIME2 NULL,
|
mouth_pay_price DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '月支付价格',
|
||||||
created_at DATETIME2 NOT NULL DEFAULT GETDATE(),
|
day_pay_price DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '日支付价格',
|
||||||
updated_at DATETIME2 NOT NULL DEFAULT GETDATE(),
|
|
||||||
deleted_at DATETIME2 NULL,
|
-- 商品状态和类型
|
||||||
|
type TINYINT NOT NULL DEFAULT 0 COMMENT '商品类型 1一番赏 2无限赏 3擂台赏等',
|
||||||
|
status TINYINT NOT NULL DEFAULT 1 COMMENT '状态 0下架 1上架 2待审核 3预售',
|
||||||
|
sort_order INT NOT NULL DEFAULT 1 COMMENT '排序权重',
|
||||||
|
|
||||||
|
-- 显示控制
|
||||||
|
is_show TINYINT NOT NULL DEFAULT 0 COMMENT '首页显示 0显示 1不显示',
|
||||||
|
is_discount TINYINT NOT NULL DEFAULT 0 COMMENT '是否折扣 0否 1是',
|
||||||
|
is_new TINYINT NOT NULL DEFAULT 0 COMMENT '是否新品 0否 1是',
|
||||||
|
|
||||||
|
-- 锁箱功能
|
||||||
|
is_lock TINYINT NOT NULL DEFAULT 0 COMMENT '是否锁箱 0否 1是',
|
||||||
|
lock_time INT NOT NULL DEFAULT 0 COMMENT '锁箱时间(秒)',
|
||||||
|
|
||||||
|
-- 功能开关
|
||||||
|
coupon_is TINYINT NOT NULL DEFAULT 0 COMMENT '优惠券功能 0关闭 1开启',
|
||||||
|
coupon_pro INT NOT NULL DEFAULT 0 COMMENT '优惠券概率',
|
||||||
|
integral_is TINYINT NOT NULL DEFAULT 0 COMMENT '积分功能 0关闭 1开启',
|
||||||
|
|
||||||
|
-- 抽奖相关
|
||||||
|
prize_num INT NOT NULL DEFAULT 0 COMMENT '奖品数量',
|
||||||
|
draw_limit INT NOT NULL DEFAULT 0 COMMENT '抽奖限制次数',
|
||||||
|
|
||||||
|
-- 限购控制
|
||||||
|
daily_limit INT NOT NULL DEFAULT 0 COMMENT '每日限购数量 0不限制',
|
||||||
|
global_limit INT NOT NULL DEFAULT 0 COMMENT '全局限购数量 0不限制',
|
||||||
|
unlock_amount DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '解锁金额门槛',
|
||||||
|
user_level INT NOT NULL DEFAULT -1 COMMENT '用户等级限制 -1不限制',
|
||||||
|
|
||||||
|
-- 特殊功能
|
||||||
|
rage_is TINYINT NOT NULL DEFAULT 0 COMMENT '暴怒功能 0关闭 1开启',
|
||||||
|
rage INT NOT NULL DEFAULT 0 COMMENT '暴怒值',
|
||||||
|
lingzhu_is TINYINT NOT NULL DEFAULT 0 COMMENT '灵珠功能 0关闭 1开启',
|
||||||
|
lingzhu_fan INT NOT NULL DEFAULT 0 COMMENT '灵珠返还',
|
||||||
|
lingzhu_shang_id INT NOT NULL DEFAULT 0 COMMENT '灵珠奖品ID',
|
||||||
|
lian_ji_num INT NOT NULL DEFAULT 0 COMMENT '连击数量',
|
||||||
|
lian_ji_shang_id INT NOT NULL DEFAULT 0 COMMENT '连击奖品ID',
|
||||||
|
king_user_id INT NOT NULL DEFAULT 0 COMMENT '拳王用户ID',
|
||||||
|
|
||||||
|
-- 福利屋功能 (重要!383个商品启用)
|
||||||
|
is_flw TINYINT NOT NULL DEFAULT 0 COMMENT '福利屋功能 0关闭 1开启',
|
||||||
|
flw_start_time INT NOT NULL DEFAULT 0 COMMENT '福利屋开始时间戳',
|
||||||
|
flw_end_time INT NOT NULL DEFAULT 0 COMMENT '福利屋结束时间戳',
|
||||||
|
open_time INT NOT NULL DEFAULT 0 COMMENT '开放时间戳',
|
||||||
|
is_open TINYINT NOT NULL DEFAULT 0 COMMENT '是否开放 0关闭 1开放',
|
||||||
|
|
||||||
|
-- 自动下架功能 (47个商品启用)
|
||||||
|
is_auto_xiajia TINYINT NOT NULL DEFAULT 0 COMMENT '自动下架 0关闭 1开启',
|
||||||
|
xiajia_lirun INT NOT NULL DEFAULT 0 COMMENT '下架利润阈值',
|
||||||
|
xiajia_auto_coushu INT NOT NULL DEFAULT 0 COMMENT '下架自动抽数',
|
||||||
|
xiajia_jine INT NOT NULL DEFAULT 0 COMMENT '下架金额阈值',
|
||||||
|
|
||||||
|
-- 卡片功能
|
||||||
|
card_banner NVARCHAR(500) NULL COMMENT '卡片横幅图片',
|
||||||
|
card_set NVARCHAR(MAX) NULL COMMENT '卡片设置JSON',
|
||||||
|
card_notice NVARCHAR(500) NULL COMMENT '卡片通知',
|
||||||
|
card_num INT NOT NULL DEFAULT 1 COMMENT '卡片数量',
|
||||||
|
item_card_id INT NOT NULL DEFAULT 0 COMMENT '道具卡ID',
|
||||||
|
|
||||||
|
-- 同步相关 (21个商品有异步代码)
|
||||||
|
async_code NVARCHAR(64) NULL COMMENT '异步同步代码',
|
||||||
|
async_date DATETIME2 NULL COMMENT '异步同步时间',
|
||||||
|
|
||||||
|
-- 时间字段
|
||||||
|
sale_time INT NOT NULL DEFAULT 0 COMMENT '开售时间戳',
|
||||||
|
created_at INT NOT NULL COMMENT '创建时间戳',
|
||||||
|
updated_at INT NOT NULL DEFAULT 0 COMMENT '更新时间戳',
|
||||||
|
deleted_at INT NULL COMMENT '删除时间戳',
|
||||||
|
|
||||||
-- 索引
|
-- 索引
|
||||||
INDEX ix_goods_type_status (type, status),
|
INDEX ix_goods_type_status (type, status),
|
||||||
INDEX ix_goods_status_sort (status, sort_order DESC),
|
INDEX ix_goods_status_sort (status, sort_order DESC),
|
||||||
INDEX ix_goods_category_id (category_id),
|
INDEX ix_goods_category_id (category_id),
|
||||||
INDEX ix_goods_created_at (created_at),
|
INDEX ix_goods_created_at (created_at),
|
||||||
INDEX ix_goods_unlock_amount (unlock_amount)
|
INDEX ix_goods_unlock_amount (unlock_amount),
|
||||||
);
|
INDEX ix_goods_daily_limit (daily_limit),
|
||||||
|
INDEX ix_goods_global_limit (global_limit),
|
||||||
|
INDEX ix_goods_is_flw (is_flw),
|
||||||
|
INDEX ix_goods_is_auto_xiajia (is_auto_xiajia),
|
||||||
|
INDEX ix_goods_async_code (async_code),
|
||||||
|
INDEX ix_goods_user_level (user_level),
|
||||||
|
INDEX ix_goods_sale_time (sale_time)
|
||||||
|
) COMMENT = '商品主表 - 包含完整54个字段的业务逻辑';
|
||||||
|
|
||||||
-- 商品奖品列表
|
-- 商品奖品列表
|
||||||
CREATE TABLE goods_items (
|
CREATE TABLE goods_items (
|
||||||
id INT IDENTITY(1,1) PRIMARY KEY,
|
id INT IDENTITY(1,1) PRIMARY KEY,
|
||||||
goods_id INT NOT NULL,
|
goods_id INT NOT NULL COMMENT '商品ID',
|
||||||
box_number INT NOT NULL,
|
box_number INT NOT NULL COMMENT '箱号',
|
||||||
prize_id INT NOT NULL,
|
prize_id INT NOT NULL COMMENT '奖品等级ID',
|
||||||
title NVARCHAR(255) NOT NULL,
|
title NVARCHAR(255) NOT NULL COMMENT '奖品名称',
|
||||||
stock INT NOT NULL DEFAULT 0,
|
stock INT NOT NULL DEFAULT 0 COMMENT '奖品库存',
|
||||||
surplus_stock INT NOT NULL DEFAULT 0,
|
surplus_stock INT NOT NULL DEFAULT 0 COMMENT '剩余库存',
|
||||||
img_url NVARCHAR(500) NOT NULL,
|
img_url NVARCHAR(500) NOT NULL COMMENT '奖品图片URL',
|
||||||
goods_type TINYINT NOT NULL DEFAULT 1,
|
goods_type TINYINT NOT NULL DEFAULT 1 COMMENT '奖品类型',
|
||||||
price DECIMAL(18,2) NOT NULL DEFAULT 0,
|
price DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '奖品价格',
|
||||||
market_price DECIMAL(18,2) NOT NULL DEFAULT 0,
|
market_price DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '市场价格',
|
||||||
real_probability DECIMAL(8,4) NOT NULL DEFAULT 0,
|
real_probability DECIMAL(8,4) NOT NULL DEFAULT 0 COMMENT '真实概率',
|
||||||
parent_item_id INT NOT NULL DEFAULT 0,
|
parent_item_id INT NOT NULL DEFAULT 0 COMMENT '父奖品ID(子奖品用)',
|
||||||
sale_time DATETIME2 NULL,
|
sale_time DATETIME2 NULL COMMENT '开售时间',
|
||||||
sort_order INT NOT NULL DEFAULT 1,
|
sort_order INT NOT NULL DEFAULT 1 COMMENT '排序权重',
|
||||||
created_at DATETIME2 NOT NULL DEFAULT GETDATE(),
|
created_at DATETIME2 NOT NULL DEFAULT GETDATE() COMMENT '创建时间',
|
||||||
updated_at DATETIME2 NOT NULL DEFAULT GETDATE(),
|
updated_at DATETIME2 NOT NULL DEFAULT GETDATE() COMMENT '更新时间',
|
||||||
|
|
||||||
-- 索引
|
-- 索引
|
||||||
INDEX ix_goods_items_goods_box (goods_id, box_number),
|
INDEX ix_goods_items_goods_box (goods_id, box_number),
|
||||||
|
|
@ -263,42 +465,42 @@ CREATE TABLE goods_items (
|
||||||
|
|
||||||
-- 外键
|
-- 外键
|
||||||
CONSTRAINT fk_goods_items_goods_id FOREIGN KEY (goods_id) REFERENCES goods(id)
|
CONSTRAINT fk_goods_items_goods_id FOREIGN KEY (goods_id) REFERENCES goods(id)
|
||||||
);
|
) COMMENT = '商品奖品列表';
|
||||||
|
|
||||||
-- 商品类型配置
|
-- 商品类型配置
|
||||||
CREATE TABLE goods_types (
|
CREATE TABLE goods_types (
|
||||||
id INT IDENTITY(1,1) PRIMARY KEY,
|
id INT IDENTITY(1,1) PRIMARY KEY,
|
||||||
type_value INT NOT NULL,
|
type_value INT NOT NULL COMMENT '类型值',
|
||||||
corner_text NVARCHAR(50) NOT NULL,
|
corner_text NVARCHAR(50) NOT NULL COMMENT '角标文字',
|
||||||
pay_wechat TINYINT NOT NULL DEFAULT 1,
|
pay_wechat TINYINT NOT NULL DEFAULT 1 COMMENT '支持微信支付 0否 1是',
|
||||||
pay_balance TINYINT NOT NULL DEFAULT 1,
|
pay_balance TINYINT NOT NULL DEFAULT 1 COMMENT '支持余额支付 0否 1是',
|
||||||
pay_currency TINYINT NOT NULL DEFAULT 1,
|
pay_currency TINYINT NOT NULL DEFAULT 1 COMMENT '支持积分支付 0否 1是',
|
||||||
pay_currency2 TINYINT NOT NULL DEFAULT 1,
|
pay_currency2 TINYINT NOT NULL DEFAULT 1 COMMENT '支持积分2支付 0否 1是',
|
||||||
pay_coupon TINYINT NOT NULL DEFAULT 1,
|
pay_coupon TINYINT NOT NULL DEFAULT 1 COMMENT '支持优惠券 0否 1是',
|
||||||
is_deduction TINYINT NOT NULL DEFAULT 1,
|
is_deduction TINYINT NOT NULL DEFAULT 1 COMMENT '支持抵扣 0否 1是',
|
||||||
created_at DATETIME2 NOT NULL DEFAULT GETDATE(),
|
created_at DATETIME2 NOT NULL DEFAULT GETDATE() COMMENT '创建时间',
|
||||||
updated_at DATETIME2 NOT NULL DEFAULT GETDATE(),
|
updated_at DATETIME2 NOT NULL DEFAULT GETDATE() COMMENT '更新时间',
|
||||||
|
|
||||||
-- 索引
|
-- 索引
|
||||||
INDEX ix_goods_types_value (type_value),
|
INDEX ix_goods_types_value (type_value),
|
||||||
|
|
||||||
-- 约束
|
-- 约束
|
||||||
CONSTRAINT uk_goods_types_value UNIQUE (type_value)
|
CONSTRAINT uk_goods_types_value UNIQUE (type_value)
|
||||||
);
|
) COMMENT = '商品类型配置表';
|
||||||
|
|
||||||
-- 商品扩展配置
|
-- 商品扩展配置
|
||||||
CREATE TABLE goods_extensions (
|
CREATE TABLE goods_extensions (
|
||||||
id INT IDENTITY(1,1) PRIMARY KEY,
|
id INT IDENTITY(1,1) PRIMARY KEY,
|
||||||
goods_id INT NOT NULL,
|
goods_id INT NOT NULL COMMENT '商品ID',
|
||||||
pay_wechat TINYINT NOT NULL DEFAULT 1,
|
pay_wechat TINYINT NOT NULL DEFAULT 1 COMMENT '支持微信支付 0否 1是',
|
||||||
pay_balance TINYINT NOT NULL DEFAULT 1,
|
pay_balance TINYINT NOT NULL DEFAULT 1 COMMENT '支持余额支付 0否 1是',
|
||||||
pay_currency TINYINT NOT NULL DEFAULT 1,
|
pay_currency TINYINT NOT NULL DEFAULT 1 COMMENT '支持积分支付 0否 1是',
|
||||||
pay_currency2 TINYINT NOT NULL DEFAULT 1,
|
pay_currency2 TINYINT NOT NULL DEFAULT 1 COMMENT '支持积分2支付 0否 1是',
|
||||||
pay_coupon TINYINT NOT NULL DEFAULT 1,
|
pay_coupon TINYINT NOT NULL DEFAULT 1 COMMENT '支持优惠券 0否 1是',
|
||||||
is_deduction TINYINT NOT NULL DEFAULT 1,
|
is_deduction TINYINT NOT NULL DEFAULT 1 COMMENT '支持抵扣 0否 1是',
|
||||||
config_json NVARCHAR(MAX) NULL,
|
config_json NVARCHAR(MAX) NULL COMMENT '扩展配置JSON',
|
||||||
created_at DATETIME2 NOT NULL DEFAULT GETDATE(),
|
created_at DATETIME2 NOT NULL DEFAULT GETDATE() COMMENT '创建时间',
|
||||||
updated_at DATETIME2 NOT NULL DEFAULT GETDATE(),
|
updated_at DATETIME2 NOT NULL DEFAULT GETDATE() COMMENT '更新时间',
|
||||||
|
|
||||||
-- 索引
|
-- 索引
|
||||||
INDEX ix_goods_extensions_goods_id (goods_id),
|
INDEX ix_goods_extensions_goods_id (goods_id),
|
||||||
|
|
@ -306,35 +508,68 @@ CREATE TABLE goods_extensions (
|
||||||
-- 外键
|
-- 外键
|
||||||
CONSTRAINT fk_goods_extensions_goods_id FOREIGN KEY (goods_id) REFERENCES goods(id),
|
CONSTRAINT fk_goods_extensions_goods_id FOREIGN KEY (goods_id) REFERENCES goods(id),
|
||||||
CONSTRAINT uk_goods_extensions_goods_id UNIQUE (goods_id)
|
CONSTRAINT uk_goods_extensions_goods_id UNIQUE (goods_id)
|
||||||
);
|
) COMMENT = '商品扩展配置表';
|
||||||
```
|
```
|
||||||
|
|
||||||
##### 订单相关表
|
##### 订单相关表
|
||||||
```sql
|
```sql
|
||||||
-- 订单主表
|
-- 订单主表 (完整33字段结构)
|
||||||
CREATE TABLE orders (
|
CREATE TABLE orders (
|
||||||
id INT IDENTITY(1,1) PRIMARY KEY,
|
id INT IDENTITY(1,1) PRIMARY KEY,
|
||||||
order_no NVARCHAR(60) NOT NULL,
|
order_no NVARCHAR(60) NOT NULL COMMENT '订单号',
|
||||||
user_id INT NOT NULL,
|
user_id INT NOT NULL COMMENT '用户ID',
|
||||||
goods_id INT NOT NULL,
|
goods_id INT NOT NULL COMMENT '商品ID',
|
||||||
box_number INT NOT NULL,
|
box_number INT NOT NULL COMMENT '箱号',
|
||||||
goods_title NVARCHAR(255) NOT NULL,
|
|
||||||
goods_img_url NVARCHAR(500) NULL,
|
-- 商品信息
|
||||||
order_type TINYINT NOT NULL DEFAULT 0,
|
goods_title NVARCHAR(255) NOT NULL COMMENT '商品标题',
|
||||||
order_total DECIMAL(18,2) NOT NULL,
|
goods_img_url NVARCHAR(500) NULL COMMENT '商品图片URL',
|
||||||
discount_total DECIMAL(18,2) NOT NULL,
|
goods_price DECIMAL(10,2) NOT NULL COMMENT '商品单价',
|
||||||
final_price DECIMAL(18,2) NOT NULL,
|
|
||||||
used_money DECIMAL(18,2) NOT NULL DEFAULT 0,
|
-- 订单金额
|
||||||
used_integral DECIMAL(18,2) NOT NULL DEFAULT 0,
|
order_total DECIMAL(10,2) NOT NULL COMMENT '订单总金额',
|
||||||
used_money2 DECIMAL(18,2) NOT NULL DEFAULT 0,
|
discount_total DECIMAL(10,2) NOT NULL COMMENT '折扣后金额',
|
||||||
coupon_id INT NULL DEFAULT 0,
|
final_price DECIMAL(10,2) NOT NULL COMMENT '最终支付金额',
|
||||||
used_coupon DECIMAL(18,2) NOT NULL DEFAULT 0,
|
discount_rate DECIMAL(10,2) NOT NULL COMMENT '折扣率',
|
||||||
draw_count INT NOT NULL DEFAULT 0,
|
|
||||||
pay_type TINYINT NOT NULL DEFAULT 1,
|
-- 支付方式
|
||||||
status TINYINT NOT NULL DEFAULT 0,
|
used_money DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '使用余额',
|
||||||
click_id INT NULL,
|
used_integral DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '使用积分',
|
||||||
created_at DATETIME2 NOT NULL DEFAULT GETDATE(),
|
used_money2 DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '使用积分2',
|
||||||
paid_at DATETIME2 NULL,
|
used_score DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '使用评分',
|
||||||
|
used_draw INT NOT NULL DEFAULT 0 COMMENT '使用抽奖次数',
|
||||||
|
used_item_card INT NOT NULL DEFAULT 0 COMMENT '使用道具卡',
|
||||||
|
|
||||||
|
-- 优惠券
|
||||||
|
coupon_id INT NULL DEFAULT 0 COMMENT '优惠券ID',
|
||||||
|
used_coupon DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '优惠券抵扣金额',
|
||||||
|
|
||||||
|
-- 抽奖相关
|
||||||
|
draw_count INT NOT NULL DEFAULT 0 COMMENT '抽奖次数',
|
||||||
|
prize_card_set NVARCHAR(MAX) NULL COMMENT '奖品卡片设置JSON',
|
||||||
|
|
||||||
|
-- 订单属性
|
||||||
|
order_type TINYINT NOT NULL DEFAULT 0 COMMENT '订单类型',
|
||||||
|
pay_type TINYINT NOT NULL DEFAULT 1 COMMENT '支付方式 1微信 2支付宝',
|
||||||
|
status TINYINT NOT NULL DEFAULT 0 COMMENT '订单状态 0待支付 1已支付 2已取消',
|
||||||
|
|
||||||
|
-- 特殊标识
|
||||||
|
is_treasure TINYINT NOT NULL DEFAULT 0 COMMENT '是否秘宝 0否 1是',
|
||||||
|
is_discount TINYINT NOT NULL DEFAULT 0 COMMENT '是否折扣 0否 1是',
|
||||||
|
is_flw TINYINT NOT NULL DEFAULT 0 COMMENT '是否福利屋 0否 1是',
|
||||||
|
|
||||||
|
-- 快递相关
|
||||||
|
is_express TINYINT NOT NULL DEFAULT 0 COMMENT '是否需要快递 0否 1是',
|
||||||
|
auto_ship TINYINT NOT NULL DEFAULT 0 COMMENT '自动发货 0否 1是',
|
||||||
|
auto_ship_time INT NULL COMMENT '自动发货时间戳',
|
||||||
|
|
||||||
|
-- 广告和推广
|
||||||
|
ad_id INT NULL COMMENT '广告ID',
|
||||||
|
click_id INT NULL COMMENT '点击ID',
|
||||||
|
|
||||||
|
-- 时间字段
|
||||||
|
created_at INT NOT NULL COMMENT '创建时间戳',
|
||||||
|
paid_at INT NOT NULL DEFAULT 0 COMMENT '支付时间戳',
|
||||||
|
|
||||||
-- 索引
|
-- 索引
|
||||||
INDEX ix_orders_user_status (user_id, status),
|
INDEX ix_orders_user_status (user_id, status),
|
||||||
|
|
@ -343,6 +578,8 @@ CREATE TABLE orders (
|
||||||
INDEX ix_orders_created_at (created_at),
|
INDEX ix_orders_created_at (created_at),
|
||||||
INDEX ix_orders_paid_at (paid_at),
|
INDEX ix_orders_paid_at (paid_at),
|
||||||
INDEX ix_orders_status (status),
|
INDEX ix_orders_status (status),
|
||||||
|
INDEX ix_orders_pay_type (pay_type),
|
||||||
|
INDEX ix_orders_order_type (order_type),
|
||||||
|
|
||||||
-- 约束
|
-- 约束
|
||||||
CONSTRAINT uk_orders_order_no UNIQUE (order_no),
|
CONSTRAINT uk_orders_order_no UNIQUE (order_no),
|
||||||
|
|
@ -350,23 +587,23 @@ CREATE TABLE orders (
|
||||||
-- 外键
|
-- 外键
|
||||||
CONSTRAINT fk_orders_user_id FOREIGN KEY (user_id) REFERENCES users(id),
|
CONSTRAINT fk_orders_user_id FOREIGN KEY (user_id) REFERENCES users(id),
|
||||||
CONSTRAINT fk_orders_goods_id FOREIGN KEY (goods_id) REFERENCES goods(id)
|
CONSTRAINT fk_orders_goods_id FOREIGN KEY (goods_id) REFERENCES goods(id)
|
||||||
);
|
) COMMENT = '订单主表 - 包含完整33个字段的订单逻辑';
|
||||||
|
|
||||||
-- 订单详情表 (抽奖结果)
|
-- 订单详情表 (抽奖结果)
|
||||||
CREATE TABLE order_items (
|
CREATE TABLE order_items (
|
||||||
id INT IDENTITY(1,1) PRIMARY KEY,
|
id INT IDENTITY(1,1) PRIMARY KEY,
|
||||||
order_id NVARCHAR(60) NOT NULL,
|
order_id NVARCHAR(60) NOT NULL COMMENT '订单号',
|
||||||
user_id INT NOT NULL,
|
user_id INT NOT NULL COMMENT '用户ID',
|
||||||
goods_id INT NOT NULL,
|
goods_id INT NOT NULL COMMENT '商品ID',
|
||||||
box_number INT NOT NULL,
|
box_number INT NOT NULL COMMENT '箱号',
|
||||||
goods_item_id INT NOT NULL,
|
goods_item_id INT NOT NULL COMMENT '商品奖品ID',
|
||||||
item_title NVARCHAR(255) NOT NULL,
|
item_title NVARCHAR(255) NOT NULL COMMENT '奖品标题',
|
||||||
item_img_url NVARCHAR(500) NULL,
|
item_img_url NVARCHAR(500) NULL COMMENT '奖品图片URL',
|
||||||
prize_id INT NOT NULL,
|
prize_id INT NOT NULL COMMENT '奖品等级ID',
|
||||||
order_type TINYINT NOT NULL,
|
order_type TINYINT NOT NULL COMMENT '订单类型',
|
||||||
source TINYINT NOT NULL DEFAULT 1,
|
source TINYINT NOT NULL DEFAULT 1 COMMENT '来源 1正常抽奖',
|
||||||
item_price DECIMAL(18,2) NOT NULL DEFAULT 0,
|
item_price DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '奖品价格',
|
||||||
created_at DATETIME2 NOT NULL DEFAULT GETDATE(),
|
created_at DATETIME2 NOT NULL DEFAULT GETDATE() COMMENT '创建时间',
|
||||||
|
|
||||||
-- 索引
|
-- 索引
|
||||||
INDEX ix_order_items_order_id (order_id),
|
INDEX ix_order_items_order_id (order_id),
|
||||||
|
|
@ -378,7 +615,68 @@ CREATE TABLE order_items (
|
||||||
-- 外键
|
-- 外键
|
||||||
CONSTRAINT fk_order_items_user_id FOREIGN KEY (user_id) REFERENCES users(id),
|
CONSTRAINT fk_order_items_user_id FOREIGN KEY (user_id) REFERENCES users(id),
|
||||||
CONSTRAINT fk_order_items_goods_id FOREIGN KEY (goods_id) REFERENCES goods(id)
|
CONSTRAINT fk_order_items_goods_id FOREIGN KEY (goods_id) REFERENCES goods(id)
|
||||||
);
|
) COMMENT = '订单详情表(抽奖结果)';
|
||||||
|
```
|
||||||
|
|
||||||
|
##### 钻石系统表
|
||||||
|
```sql
|
||||||
|
-- 钻石商品表
|
||||||
|
CREATE TABLE diamond_products (
|
||||||
|
id INT IDENTITY(1,1) PRIMARY KEY,
|
||||||
|
name NVARCHAR(50) NOT NULL COMMENT '钻石商品名称',
|
||||||
|
product_id NVARCHAR(64) NOT NULL COMMENT '商品ID',
|
||||||
|
product_type NVARCHAR(64) NOT NULL COMMENT '商品类型',
|
||||||
|
base_reward NVARCHAR(64) NOT NULL COMMENT '基础奖励',
|
||||||
|
price DECIMAL(10,2) NOT NULL COMMENT '价格',
|
||||||
|
is_first TINYINT DEFAULT 0 COMMENT '是否首充商品 0否 1是',
|
||||||
|
first_bonus_reward NVARCHAR(64) NULL COMMENT '首充额外奖励',
|
||||||
|
first_charge_image NVARCHAR(255) NULL COMMENT '首充图片',
|
||||||
|
first_select_charge_image NVARCHAR(255) NULL COMMENT '首充选中图片',
|
||||||
|
normal_image NVARCHAR(255) NULL COMMENT '普通图片',
|
||||||
|
normal_select_image NVARCHAR(255) NULL COMMENT '普通选中图片',
|
||||||
|
sort_order INT DEFAULT 0 COMMENT '排序',
|
||||||
|
status TINYINT DEFAULT 1 COMMENT '状态 0禁用 1启用',
|
||||||
|
created_at DATETIME2 DEFAULT GETDATE() COMMENT '创建时间',
|
||||||
|
updated_at DATETIME2 DEFAULT GETDATE() COMMENT '更新时间',
|
||||||
|
|
||||||
|
-- 索引
|
||||||
|
INDEX ix_diamond_products_product_id (product_id),
|
||||||
|
INDEX ix_diamond_products_status_sort (status, sort_order),
|
||||||
|
|
||||||
|
-- 约束
|
||||||
|
CONSTRAINT uk_diamond_products_product_id UNIQUE (product_id)
|
||||||
|
) COMMENT = '钻石商品配置表';
|
||||||
|
|
||||||
|
-- 钻石订单表
|
||||||
|
CREATE TABLE diamond_orders (
|
||||||
|
id BIGINT IDENTITY(1,1) PRIMARY KEY,
|
||||||
|
order_no NVARCHAR(64) NOT NULL COMMENT '订单号',
|
||||||
|
user_id BIGINT NOT NULL COMMENT '用户ID',
|
||||||
|
diamond_id INT NOT NULL COMMENT '钻石商品ID',
|
||||||
|
product_id NVARCHAR(64) NOT NULL COMMENT '商品ID',
|
||||||
|
product_name NVARCHAR(50) NULL COMMENT '商品名称',
|
||||||
|
amount_paid DECIMAL(10,2) NOT NULL COMMENT '支付金额',
|
||||||
|
pay_method NVARCHAR(20) NOT NULL COMMENT '支付方式',
|
||||||
|
reward_log NVARCHAR(300) NULL COMMENT '奖励日志',
|
||||||
|
is_first_charge TINYINT DEFAULT 0 COMMENT '是否首充 0否 1是',
|
||||||
|
status NVARCHAR(20) DEFAULT 'pending' COMMENT '订单状态 pending待支付 paid已支付 failed失败',
|
||||||
|
created_at DATETIME2 DEFAULT GETDATE() COMMENT '创建时间',
|
||||||
|
paid_at DATETIME2 NULL COMMENT '支付时间',
|
||||||
|
|
||||||
|
-- 索引
|
||||||
|
INDEX ix_diamond_orders_order_no (order_no),
|
||||||
|
INDEX ix_diamond_orders_user_id (user_id),
|
||||||
|
INDEX ix_diamond_orders_status (status),
|
||||||
|
INDEX ix_diamond_orders_created_at (created_at),
|
||||||
|
INDEX ix_diamond_orders_paid_at (paid_at),
|
||||||
|
|
||||||
|
-- 约束
|
||||||
|
CONSTRAINT uk_diamond_orders_order_no UNIQUE (order_no),
|
||||||
|
|
||||||
|
-- 外键
|
||||||
|
CONSTRAINT fk_diamond_orders_user_id FOREIGN KEY (user_id) REFERENCES users(id),
|
||||||
|
CONSTRAINT fk_diamond_orders_diamond_id FOREIGN KEY (diamond_id) REFERENCES diamond_products(id)
|
||||||
|
) COMMENT = '钻石订单表';
|
||||||
```
|
```
|
||||||
|
|
||||||
### 1.3 数据迁移映射表 (0.5天)
|
### 1.3 数据迁移映射表 (0.5天)
|
||||||
|
|
@ -415,64 +713,203 @@ user -> users:
|
||||||
istest -> is_test
|
istest -> is_test
|
||||||
uid -> uid
|
uid -> uid
|
||||||
click_id -> click_id
|
click_id -> click_id
|
||||||
|
draw_num -> draw_num (新增字段)
|
||||||
|
password -> password (新增字段)
|
||||||
|
is_use_coupon -> is_use_coupon (新增字段)
|
||||||
addtime -> created_at (时间戳转换)
|
addtime -> created_at (时间戳转换)
|
||||||
update_time -> updated_at (时间戳转换)
|
update_time -> updated_at (时间戳转换)
|
||||||
last_login_time -> last_login_at (时间戳转换)
|
last_login_time -> last_login_at (时间戳转换)
|
||||||
```
|
```
|
||||||
|
|
||||||
##### 商品表映射
|
##### 商品表映射 (完整54字段)
|
||||||
```yaml
|
```yaml
|
||||||
goods -> goods:
|
goods -> goods:
|
||||||
|
# 基础信息
|
||||||
id -> id
|
id -> id
|
||||||
category_id -> category_id
|
category_id -> category_id
|
||||||
title -> title
|
title -> title
|
||||||
imgurl -> img_url
|
imgurl -> img_url
|
||||||
imgurl_detail -> img_url_detail
|
imgurl_detail -> img_url_detail
|
||||||
|
prize_imgurl -> prize_img_url
|
||||||
|
goods_describe -> goods_describe
|
||||||
|
|
||||||
|
# 价格和库存
|
||||||
price -> price
|
price -> price
|
||||||
stock -> stock
|
stock -> stock
|
||||||
sale_stock -> sale_stock
|
sale_stock -> sale_stock
|
||||||
|
show_price -> show_price
|
||||||
|
|
||||||
|
# 定价策略
|
||||||
|
day_price -> day_price
|
||||||
|
mouth_price -> mouth_price
|
||||||
|
mouth_pay_price -> mouth_pay_price
|
||||||
|
day_pay_price -> day_pay_price
|
||||||
|
|
||||||
|
# 商品状态和类型
|
||||||
type -> type
|
type -> type
|
||||||
status -> status
|
status -> status
|
||||||
lock_is -> is_lock
|
sort -> sort_order
|
||||||
lock_time -> lock_time
|
|
||||||
|
# 显示控制
|
||||||
|
show_is -> is_show
|
||||||
is_shou_zhe -> is_discount
|
is_shou_zhe -> is_discount
|
||||||
new_is -> is_new
|
new_is -> is_new
|
||||||
show_is -> is_show
|
|
||||||
unlock_amount -> unlock_amount
|
# 锁箱功能
|
||||||
|
lock_is -> is_lock
|
||||||
|
lock_time -> lock_time
|
||||||
|
|
||||||
|
# 功能开关
|
||||||
|
coupon_is -> coupon_is
|
||||||
|
coupon_pro -> coupon_pro
|
||||||
|
integral_is -> integral_is
|
||||||
|
|
||||||
|
# 抽奖相关
|
||||||
|
prize_num -> prize_num
|
||||||
|
choujiang_xianzhi -> draw_limit
|
||||||
|
|
||||||
|
# 限购控制
|
||||||
daily_xiangou -> daily_limit
|
daily_xiangou -> daily_limit
|
||||||
quanju_xiangou -> global_limit
|
quanju_xiangou -> global_limit
|
||||||
sort -> sort_order
|
unlock_amount -> unlock_amount
|
||||||
sale_time -> sale_time (时间戳转换)
|
user_lv -> user_level
|
||||||
addtime -> created_at (时间戳转换)
|
|
||||||
update_time -> updated_at (时间戳转换)
|
# 特殊功能
|
||||||
delete_time -> deleted_at (时间戳转换)
|
rage_is -> rage_is
|
||||||
|
rage -> rage
|
||||||
|
lingzhu_is -> lingzhu_is
|
||||||
|
lingzhu_fan -> lingzhu_fan
|
||||||
|
lingzhu_shang_id -> lingzhu_shang_id
|
||||||
|
lian_ji_num -> lian_ji_num
|
||||||
|
lian_ji_shang_id -> lian_ji_shang_id
|
||||||
|
king_user_id -> king_user_id
|
||||||
|
|
||||||
|
# 福利屋功能
|
||||||
|
is_flw -> is_flw
|
||||||
|
flw_start_time -> flw_start_time
|
||||||
|
flw_end_time -> flw_end_time
|
||||||
|
open_time -> open_time
|
||||||
|
is_open -> is_open
|
||||||
|
|
||||||
|
# 自动下架功能
|
||||||
|
is_auto_xiajia -> is_auto_xiajia
|
||||||
|
xiajia_lirun -> xiajia_lirun
|
||||||
|
xiajia_auto_coushu -> xiajia_auto_coushu
|
||||||
|
xiajia_jine -> xiajia_jine
|
||||||
|
|
||||||
|
# 卡片功能
|
||||||
|
card_banner -> card_banner
|
||||||
|
card_set -> card_set
|
||||||
|
card_notice -> card_notice
|
||||||
|
card_num -> card_num
|
||||||
|
item_card_id -> item_card_id
|
||||||
|
|
||||||
|
# 同步相关
|
||||||
|
async_code -> async_code
|
||||||
|
async_date -> async_date (datetime转换)
|
||||||
|
|
||||||
|
# 时间字段
|
||||||
|
sale_time -> sale_time (时间戳保持)
|
||||||
|
addtime -> created_at (时间戳保持)
|
||||||
|
update_time -> updated_at (时间戳保持)
|
||||||
|
delete_time -> deleted_at (时间戳保持)
|
||||||
```
|
```
|
||||||
|
|
||||||
##### 订单表映射
|
##### 订单表映射 (完整33字段)
|
||||||
```yaml
|
```yaml
|
||||||
order -> orders:
|
order -> orders:
|
||||||
|
# 基础信息
|
||||||
id -> id
|
id -> id
|
||||||
order_num -> order_no
|
order_num -> order_no
|
||||||
user_id -> user_id
|
user_id -> user_id
|
||||||
goods_id -> goods_id
|
goods_id -> goods_id
|
||||||
num -> box_number
|
num -> box_number
|
||||||
|
|
||||||
|
# 商品信息
|
||||||
goods_title -> goods_title
|
goods_title -> goods_title
|
||||||
goods_imgurl -> goods_img_url
|
goods_imgurl -> goods_img_url
|
||||||
order_type -> order_type
|
goods_price -> goods_price
|
||||||
|
|
||||||
|
# 订单金额
|
||||||
order_total -> order_total
|
order_total -> order_total
|
||||||
order_zhe_total -> discount_total
|
order_zhe_total -> discount_total
|
||||||
price -> final_price
|
price -> final_price
|
||||||
|
zhe -> discount_rate
|
||||||
|
|
||||||
|
# 支付方式
|
||||||
use_money -> used_money
|
use_money -> used_money
|
||||||
use_integral -> used_integral
|
use_integral -> used_integral
|
||||||
use_money2 -> used_money2
|
use_money2 -> used_money2
|
||||||
|
use_score -> used_score
|
||||||
|
use_draw -> used_draw
|
||||||
|
use_item_card -> used_item_card
|
||||||
|
|
||||||
|
# 优惠券
|
||||||
coupon_id -> coupon_id
|
coupon_id -> coupon_id
|
||||||
use_coupon -> used_coupon
|
use_coupon -> used_coupon
|
||||||
|
|
||||||
|
# 抽奖相关
|
||||||
prize_num -> draw_count
|
prize_num -> draw_count
|
||||||
|
prize_card_set -> prize_card_set
|
||||||
|
|
||||||
|
# 订单属性
|
||||||
|
order_type -> order_type
|
||||||
pay_type -> pay_type
|
pay_type -> pay_type
|
||||||
status -> status
|
status -> status
|
||||||
|
|
||||||
|
# 特殊标识
|
||||||
|
is_mibao -> is_treasure
|
||||||
|
is_shou_zhe -> is_discount
|
||||||
|
is_flw -> is_flw
|
||||||
|
|
||||||
|
# 快递相关
|
||||||
|
kd_is -> is_express
|
||||||
|
zdfh_is -> auto_ship
|
||||||
|
zdfh_time -> auto_ship_time
|
||||||
|
|
||||||
|
# 广告和推广
|
||||||
|
ad_id -> ad_id
|
||||||
click_id -> click_id
|
click_id -> click_id
|
||||||
addtime -> created_at (时间戳转换)
|
|
||||||
pay_time -> paid_at (时间戳转换)
|
# 时间字段
|
||||||
|
addtime -> created_at (时间戳保持)
|
||||||
|
pay_time -> paid_at (时间戳保持)
|
||||||
|
```
|
||||||
|
|
||||||
|
##### 钻石系统映射
|
||||||
|
```yaml
|
||||||
|
diamond_products -> diamond_products:
|
||||||
|
id -> id
|
||||||
|
name -> name
|
||||||
|
products_id -> product_id
|
||||||
|
products_type -> product_type
|
||||||
|
base_reward -> base_reward
|
||||||
|
price -> price
|
||||||
|
is_first -> is_first
|
||||||
|
first_bonus_reward -> first_bonus_reward
|
||||||
|
first_charge_image -> first_charge_image
|
||||||
|
first_select_charge_image -> first_select_charge_image
|
||||||
|
normal_image -> normal_image
|
||||||
|
normal_select_image -> normal_select_image
|
||||||
|
sort_order -> sort_order
|
||||||
|
status -> status
|
||||||
|
created_at -> created_at (直接映射)
|
||||||
|
updated_at -> updated_at (直接映射)
|
||||||
|
|
||||||
|
diamond_orders -> diamond_orders:
|
||||||
|
id -> id
|
||||||
|
order_no -> order_no
|
||||||
|
user_id -> user_id
|
||||||
|
diamond_id -> diamond_id
|
||||||
|
product_id -> product_id
|
||||||
|
product_name -> product_name
|
||||||
|
amount_paid -> amount_paid
|
||||||
|
pay_method -> pay_method
|
||||||
|
reward_log -> reward_log
|
||||||
|
is_first_charge -> is_first_charge
|
||||||
|
status -> status
|
||||||
|
created_at -> created_at (直接映射)
|
||||||
|
paid_at -> paid_at (直接映射)
|
||||||
```
|
```
|
||||||
|
|
||||||
## 验收标准
|
## 验收标准
|
||||||
|
|
@ -527,6 +964,62 @@ order -> orders:
|
||||||
- [ ] 字段映射关系表
|
- [ ] 字段映射关系表
|
||||||
- [ ] 数据转换规则文档
|
- [ ] 数据转换规则文档
|
||||||
|
|
||||||
|
## 关键发现和重要说明
|
||||||
|
|
||||||
|
### 🔍 数据库分析关键发现
|
||||||
|
|
||||||
|
#### 商品表复杂度超预期
|
||||||
|
- **实际字段数**: 54个字段 (远超初期估计)
|
||||||
|
- **福利屋功能**: 383/503商品启用,是核心业务功能
|
||||||
|
- **自动下架功能**: 47/503商品启用,涉及利润控制
|
||||||
|
- **商品描述**: 402/503商品有描述,用户体验重要字段
|
||||||
|
- **异步同步**: 21/503商品有异步代码,可能涉及第三方集成(这个是从测试环境同步到正式环境的编号,因为所有的盒子都需要从测试环境试完概率后才能上线到正式环境。)
|
||||||
|
|
||||||
|
#### 业务功能丰富度高
|
||||||
|
- **多种定价策略**: 日价格、月价格、支付价格等
|
||||||
|
- **复杂抽奖逻辑**: 领主、连击、暴怒、拳王等多种玩法
|
||||||
|
- **精细化控制**: 限购、等级限制、解锁门槛等
|
||||||
|
- **营销功能完善**: 优惠券、积分、折扣等
|
||||||
|
|
||||||
|
#### 数据完整性良好
|
||||||
|
- **用户数据**: 2,201个用户,活跃度较高
|
||||||
|
- **商品数据**: 503个商品,业务功能使用率高
|
||||||
|
- **钻石系统**: 398个订单,352个已支付,收入稳定
|
||||||
|
- **订单数据**: 虽然总量不大(15个),但钻石订单活跃
|
||||||
|
|
||||||
|
### ⚠️ 迁移风险提醒
|
||||||
|
|
||||||
|
#### 高风险点
|
||||||
|
1. **福利屋功能**: 383个商品依赖,迁移时需特别注意时间戳处理
|
||||||
|
2. **自动下架逻辑**: 涉及利润计算,业务逻辑复杂
|
||||||
|
3. **多种支付方式**: 余额、积分、积分2、优惠券等组合支付
|
||||||
|
4. **时间戳处理**: MySQL使用INT时间戳,SQL Server需要转换
|
||||||
|
|
||||||
|
#### 中风险点
|
||||||
|
1. **异步同步功能**: 21个商品有异步代码,可能涉及外部系统
|
||||||
|
2. **卡片系统**: JSON数据存储,需要验证SQL Server兼容性
|
||||||
|
3. **灵珠等特殊功能**: 虽然使用量少,但逻辑复杂
|
||||||
|
|
||||||
|
### 📋 下一步行动计划
|
||||||
|
|
||||||
|
#### 立即执行 (阶段1剩余工作)
|
||||||
|
- [ ] 验证其他核心表结构完整性
|
||||||
|
- [ ] 确认所有表的字段映射关系
|
||||||
|
- [ ] 设计数据转换和验证规则
|
||||||
|
- [ ] 准备阶段2的环境搭建清单
|
||||||
|
|
||||||
|
#### 需要业务确认的问题
|
||||||
|
1. **异步同步功能**: 21个商品的async_code是否还在使用?
|
||||||
|
2. **灵珠功能**: 8个商品的灵珠功能是否需要保留?
|
||||||
|
3. **拳王系统**: king_user_id字段的业务逻辑确认
|
||||||
|
4. **卡片系统**: card_set JSON结构的详细说明
|
||||||
|
|
||||||
|
#### 技术准备工作
|
||||||
|
1. **SQL Server环境**: 确保支持NVARCHAR(MAX)和JSON处理
|
||||||
|
2. **时间戳转换**: 准备INT到DATETIME2的转换脚本
|
||||||
|
3. **数据验证**: 设计迁移前后的数据一致性检查
|
||||||
|
4. **回滚方案**: 准备完整的数据回滚策略
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**阶段1完成标志**: 完成业务分析,确定迁移范围,设计好新的表结构,为后续数据迁移奠定基础。
|
**阶段1完成标志**: 完成业务分析,确定迁移范围,设计好新的表结构,为后续数据迁移奠定基础。
|
||||||
Loading…
Reference in New Issue
Block a user