feat(config): 初始化项目配置文件
- 添加 application.yml 主配置文件,配置 Spring、Druid、MyBatis-Plus 等基础设置 - 添加 application-dev.yml 开发环境配置,配置数据源及 PingPong 沙箱参数 - 添加数据库建表及配置说明文档(README.md、README_DATABASE.md、README_PRODUCT.md) - 添加商品表结构定义及示例数据说明 - 添加支付相关枚举类 RecordType 和充值信息 DTO RechargeDTO - 添加日志文件 mt-pay.2025-12-19.log 用于记录系统启动异常信息
This commit is contained in:
139
mt-pay/database/README_PRODUCT.md
Normal file
139
mt-pay/database/README_PRODUCT.md
Normal file
@@ -0,0 +1,139 @@
|
||||
# 商品表结构说明
|
||||
|
||||
## 表名规范
|
||||
|
||||
所有表名使用 `mt_` 前缀,如:
|
||||
- `mt_product` - 商品表
|
||||
- `mt_product_sku` - 商品SKU表
|
||||
|
||||
## 表结构
|
||||
|
||||
### 1. mt_product(商品表)
|
||||
|
||||
**字段说明:**
|
||||
|
||||
| 字段名 | 类型 | 说明 | 备注 |
|
||||
|--------|------|------|------|
|
||||
| id | BIGINT | 商品ID | 主键,自增 |
|
||||
| name | VARCHAR(255) | 商品名称 | 必填 |
|
||||
| price | DECIMAL(12,2) | 商品价格 | 基础价格,默认0.00 |
|
||||
| main_image | VARCHAR(4000) | 主图URL | 可选 |
|
||||
| status | VARCHAR(20) | 商品状态 | ACTIVE-上架,INACTIVE-下架,DELETED-已删除 |
|
||||
| shop_id | BIGINT | 店铺ID | 必填,关联店铺 |
|
||||
| create_time | DATETIME | 创建时间 | 自动填充 |
|
||||
| update_time | DATETIME | 更新时间 | 自动更新 |
|
||||
|
||||
**索引:**
|
||||
- 主键:`id`
|
||||
- 普通索引:`shop_id`、`status`、`create_time`
|
||||
|
||||
**排序规则:**
|
||||
- 使用 `utf8mb4_general_ci` 排序规则
|
||||
|
||||
### 2. mt_product_sku(商品SKU表)
|
||||
|
||||
**字段说明:**
|
||||
|
||||
| 字段名 | 类型 | 说明 | 备注 |
|
||||
|--------|------|------|------|
|
||||
| id | BIGINT | SKU ID | 主键,自增 |
|
||||
| product_id | BIGINT | 商品ID | 外键,关联mt_product |
|
||||
| sku | VARCHAR(2000) | SKU编码 | 必填 |
|
||||
| price | DECIMAL(12,2) | 价格 | 必填 |
|
||||
| currency | VARCHAR(3) | 货币 | ISO 4217代码,默认USD |
|
||||
| stock | INT | 库存数量 | 默认0 |
|
||||
| sales_attrs | LONGTEXT | 销售属性 | JSON格式,如:[{"name":"颜色","value":"红色"}] |
|
||||
| sku_image | VARCHAR(4000) | SKU图片URL | 可选 |
|
||||
| weight | DECIMAL(10,2) | 重量 | 单位:克 |
|
||||
| size | VARCHAR(200) | 大小/尺寸 | JSON格式,如:{"length":10,"width":5,"height":3} |
|
||||
| specification | VARCHAR(2000) | 规格 | 文本描述 |
|
||||
| status | VARCHAR(20) | SKU状态 | ACTIVE-启用,INACTIVE-禁用 |
|
||||
| create_time | DATETIME | 创建时间 | 自动填充 |
|
||||
| update_time | DATETIME | 更新时间 | 自动更新 |
|
||||
|
||||
**索引:**
|
||||
- 主键:`id`
|
||||
- 普通索引:`product_id`、`status`
|
||||
- 外键:`product_id` → `mt_product.id`(级联删除)
|
||||
|
||||
## 数据示例
|
||||
|
||||
### 商品示例
|
||||
|
||||
```sql
|
||||
INSERT INTO `mt_product` (`name`, `price`, `main_image`, `status`, `shop_id`)
|
||||
VALUES ('Macaron 马卡龙礼盒装', 20.00, 'https://example.com/image.jpg', 'ACTIVE', 1);
|
||||
```
|
||||
|
||||
### SKU示例
|
||||
|
||||
```sql
|
||||
-- SKU 1:粉色6枚装
|
||||
INSERT INTO `mt_product_sku` (
|
||||
`product_id`, `sku`, `price`, `currency`, `stock`,
|
||||
`sales_attrs`, `sku_image`, `weight`, `size`, `specification`, `status`
|
||||
) VALUES (
|
||||
1, 'SKU001', 18.00, 'USD', 50,
|
||||
'[{"name":"颜色","value":"粉色"},{"name":"规格","value":"6枚装"}]',
|
||||
'https://example.com/pink-6pcs.jpg', 500.00,
|
||||
'{"length":20,"width":15,"height":5}',
|
||||
'6枚装马卡龙礼盒', 'ACTIVE'
|
||||
);
|
||||
|
||||
-- SKU 2:蓝色12枚装
|
||||
INSERT INTO `mt_product_sku` (
|
||||
`product_id`, `sku`, `price`, `currency`, `stock`,
|
||||
`sales_attrs`, `sku_image`, `weight`, `size`, `specification`, `status`
|
||||
) VALUES (
|
||||
1, 'SKU002', 20.00, 'USD', 100,
|
||||
'[{"name":"颜色","value":"蓝色"},{"name":"规格","value":"12枚装"}]',
|
||||
'https://example.com/blue-12pcs.jpg', 800.00,
|
||||
'{"length":25,"width":20,"height":8}',
|
||||
'12枚装马卡龙礼盒', 'ACTIVE'
|
||||
);
|
||||
```
|
||||
|
||||
## JSON字段格式说明
|
||||
|
||||
### sales_attrs(销售属性)
|
||||
|
||||
```json
|
||||
[
|
||||
{"name": "颜色", "value": "粉色"},
|
||||
{"name": "规格", "value": "6枚装"}
|
||||
]
|
||||
```
|
||||
|
||||
### size(尺寸)
|
||||
|
||||
```json
|
||||
{
|
||||
"length": 20,
|
||||
"width": 15,
|
||||
"height": 5,
|
||||
"unit": "cm"
|
||||
}
|
||||
```
|
||||
|
||||
## 执行SQL
|
||||
|
||||
```bash
|
||||
# 在MySQL中执行
|
||||
mysql -u用户名 -p密码 数据库名 < mt_product_schema.sql
|
||||
```
|
||||
|
||||
或在MySQL客户端中:
|
||||
|
||||
```sql
|
||||
SOURCE /path/to/mt_product_schema.sql;
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **字符集**:使用 `utf8mb4` 字符集,支持emoji和特殊字符
|
||||
2. **排序规则**:使用 `utf8mb4_unicode_ci`
|
||||
3. **存储引擎**:使用 `InnoDB`,支持事务和外键
|
||||
4. **外键约束**:删除商品时会级联删除所有SKU
|
||||
5. **SKU字段**:`sku` 字段最大2000字符,不再设置唯一索引(可根据业务需求决定是否唯一)
|
||||
6. **JSON字段**:`sales_attrs` 和 `size` 字段存储JSON格式数据,需要应用层进行解析
|
||||
|
||||
Reference in New Issue
Block a user