950 lines
15 KiB
Markdown
950 lines
15 KiB
Markdown
# 后端API接口文档
|
||
|
||
## 1. 接口概述
|
||
|
||
### 1.1 基本信息
|
||
- **项目名称**: vizee电商后端服务
|
||
- **技术栈**: Go + Gin + GORM + MySQL
|
||
- **API版本**: v1
|
||
- **Base URL**:
|
||
- 开发环境: `http://localhost:8080/api/v1`
|
||
- 测试环境: `配置中`
|
||
- 生产环境: `配置中`
|
||
|
||
### 1.2 通用说明
|
||
- **数据格式**: JSON
|
||
- **字符编码**: UTF-8
|
||
- **认证方式**: JWT Token
|
||
- **时间格式**: ISO 8601 (YYYY-MM-DDTHH:mm:ss.SSSZ)
|
||
|
||
### 1.3 通用响应格式
|
||
|
||
**成功响应**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {}
|
||
}
|
||
```
|
||
|
||
**错误响应**:
|
||
```json
|
||
{
|
||
"code": 400,
|
||
"message": "错误信息描述",
|
||
"data": null
|
||
}
|
||
```
|
||
|
||
### 1.4 状态码说明
|
||
| 状态码 | 说明 |
|
||
|--------|------|
|
||
| 200 | 成功 |
|
||
| 400 | 请求参数错误 |
|
||
| 401 | 未授权,需要登录 |
|
||
| 403 | 禁止访问 |
|
||
| 404 | 资源不存在 |
|
||
| 500 | 服务器内部错误 |
|
||
|
||
---
|
||
|
||
## 2. 认证接口
|
||
|
||
### 2.1 用户登录
|
||
|
||
**接口地址**: `POST /auth/login`
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"email": "user@example.com",
|
||
"password": "password123"
|
||
}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "登录成功",
|
||
"data": {
|
||
"token": "eyJhbGciOiJIUzI1NiIs...",
|
||
"user": {
|
||
"id": 1,
|
||
"email": "user@example.com",
|
||
"nickname": "用户昵称",
|
||
"avatar": "头像URL",
|
||
"created_at": "2024-01-01T00:00:00Z"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### 2.2 用户注册
|
||
|
||
**接口地址**: `POST /auth/register`
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"email": "user@example.com",
|
||
"password": "password123",
|
||
"nickname": "用户昵称"
|
||
}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "注册成功",
|
||
"data": {
|
||
"user_id": 1
|
||
}
|
||
}
|
||
```
|
||
|
||
### 2.3 微信登录
|
||
|
||
**接口地址**: `POST /auth/wechat/login`
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"code": "微信登录code"
|
||
}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "登录成功",
|
||
"data": {
|
||
"token": "eyJhbGciOiJIUzI1NiIs...",
|
||
"user": {
|
||
"id": 1,
|
||
"openid": "微信openid",
|
||
"nickname": "微信昵称",
|
||
"avatar": "微信头像"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 3. 用户接口
|
||
|
||
### 3.1 获取用户信息
|
||
|
||
**接口地址**: `GET /users/profile`
|
||
|
||
**请求头**:
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"id": 1,
|
||
"email": "user@example.com",
|
||
"nickname": "用户昵称",
|
||
"avatar": "头像URL",
|
||
"phone": "手机号",
|
||
"gender": 1,
|
||
"points": 100,
|
||
"created_at": "2024-01-01T00:00:00Z"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 3.2 更新用户信息
|
||
|
||
**接口地址**: `PUT /users/profile`
|
||
|
||
**请求头**:
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"nickname": "新昵称",
|
||
"avatar": "新头像URL",
|
||
"phone": "手机号",
|
||
"gender": 1
|
||
}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "更新成功",
|
||
"data": null
|
||
}
|
||
```
|
||
|
||
### 3.3 获取用户地址列表
|
||
|
||
**接口地址**: `GET /users/addresses`
|
||
|
||
**请求头**:
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": [
|
||
{
|
||
"id": 1,
|
||
"name": "收货人",
|
||
"phone": "13800138000",
|
||
"province": "广东省",
|
||
"city": "深圳市",
|
||
"district": "南山区",
|
||
"detail": "详细地址",
|
||
"is_default": true
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 3.4 添加收货地址
|
||
|
||
**接口地址**: `POST /users/addresses`
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"name": "收货人",
|
||
"phone": "13800138000",
|
||
"province": "广东省",
|
||
"city": "深圳市",
|
||
"district": "南山区",
|
||
"detail": "详细地址",
|
||
"is_default": false
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 4. 商品接口
|
||
|
||
### 4.1 获取商品列表
|
||
|
||
**接口地址**: `GET /products`
|
||
|
||
**请求参数**:
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 否 | 页码,默认1 |
|
||
| page_size | int | 否 | 每页数量,默认20 |
|
||
| category_id | int | 否 | 分类ID |
|
||
| keyword | string | 否 | 搜索关键词 |
|
||
| sort | string | 否 | 排序方式:price_asc/price_desc/sales/new |
|
||
| min_price | float | 否 | 最低价格 |
|
||
| max_price | float | 否 | 最高价格 |
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"list": [
|
||
{
|
||
"id": 1,
|
||
"name": "商品名称",
|
||
"cover": "封面图URL",
|
||
"price": 99.00,
|
||
"original_price": 199.00,
|
||
"sales": 1000,
|
||
"stock": 500,
|
||
"rating": 4.8,
|
||
"comment_count": 100
|
||
}
|
||
],
|
||
"pagination": {
|
||
"page": 1,
|
||
"page_size": 20,
|
||
"total": 100
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### 4.2 获取商品详情
|
||
|
||
**接口地址**: `GET /products/:id`
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"id": 1,
|
||
"name": "商品名称",
|
||
"cover": "封面图URL",
|
||
"images": ["图片1", "图片2"],
|
||
"price": 99.00,
|
||
"original_price": 199.00,
|
||
"sales": 1000,
|
||
"stock": 500,
|
||
"rating": 4.8,
|
||
"comment_count": 100,
|
||
"description": "商品描述",
|
||
"detail": "商品详情HTML",
|
||
"category": {
|
||
"id": 1,
|
||
"name": "分类名称"
|
||
},
|
||
"skus": [
|
||
{
|
||
"id": 1,
|
||
"name": "规格名称",
|
||
"price": 99.00,
|
||
"stock": 100,
|
||
"image": "规格图片"
|
||
}
|
||
],
|
||
"specs": [
|
||
{
|
||
"name": "颜色",
|
||
"values": ["红色", "蓝色"]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
### 4.3 获取商品评价
|
||
|
||
**接口地址**: `GET /products/:id/comments`
|
||
|
||
**请求参数**:
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 否 | 页码 |
|
||
| page_size | int | 否 | 每页数量 |
|
||
| rating | int | 否 | 评分筛选:1-5 |
|
||
| has_image | bool | 否 | 是否有图 |
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"stats": {
|
||
"total": 100,
|
||
"rating_5": 80,
|
||
"rating_4": 15,
|
||
"rating_3": 3,
|
||
"rating_2": 1,
|
||
"rating_1": 1,
|
||
"avg_rating": 4.8
|
||
},
|
||
"list": [
|
||
{
|
||
"id": 1,
|
||
"user": {
|
||
"nickname": "用户昵称",
|
||
"avatar": "头像URL"
|
||
},
|
||
"rating": 5,
|
||
"content": "评价内容",
|
||
"images": ["图片1", "图片2"],
|
||
"created_at": "2024-01-01T00:00:00Z"
|
||
}
|
||
],
|
||
"pagination": {
|
||
"page": 1,
|
||
"page_size": 10,
|
||
"total": 100
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 5. 分类接口
|
||
|
||
### 5.1 获取分类列表
|
||
|
||
**接口地址**: `GET /categories`
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": [
|
||
{
|
||
"id": 1,
|
||
"name": "艺术手工",
|
||
"icon": "图标URL",
|
||
"sort": 1,
|
||
"children": [
|
||
{
|
||
"id": 11,
|
||
"name": "陶艺",
|
||
"parent_id": 1
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 6. 购物车接口
|
||
|
||
### 6.1 获取购物车
|
||
|
||
**接口地址**: `GET /cart`
|
||
|
||
**请求头**:
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"items": [
|
||
{
|
||
"id": 1,
|
||
"product_id": 1,
|
||
"sku_id": 1,
|
||
"product_name": "商品名称",
|
||
"sku_name": "规格名称",
|
||
"image": "图片URL",
|
||
"price": 99.00,
|
||
"quantity": 2,
|
||
"stock": 100,
|
||
"selected": true
|
||
}
|
||
],
|
||
"total_price": 198.00,
|
||
"total_count": 2
|
||
}
|
||
}
|
||
```
|
||
|
||
### 6.2 添加到购物车
|
||
|
||
**接口地址**: `POST /cart`
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"product_id": 1,
|
||
"sku_id": 1,
|
||
"quantity": 1
|
||
}
|
||
```
|
||
|
||
### 6.3 更新购物车数量
|
||
|
||
**接口地址**: `PUT /cart/:id`
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"quantity": 2
|
||
}
|
||
```
|
||
|
||
### 6.4 删除购物车商品
|
||
|
||
**接口地址**: `DELETE /cart/:id`
|
||
|
||
### 6.5 清空购物车
|
||
|
||
**接口地址**: `DELETE /cart/clear`
|
||
|
||
---
|
||
|
||
## 7. 订单接口
|
||
|
||
### 7.1 创建订单
|
||
|
||
**接口地址**: `POST /orders`
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"address_id": 1,
|
||
"items": [
|
||
{
|
||
"product_id": 1,
|
||
"sku_id": 1,
|
||
"quantity": 2
|
||
}
|
||
],
|
||
"coupon_id": 1,
|
||
"remark": "备注信息"
|
||
}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "下单成功",
|
||
"data": {
|
||
"order_id": "ORD20240101123456",
|
||
"total_amount": 198.00,
|
||
"pay_amount": 188.00
|
||
}
|
||
}
|
||
```
|
||
|
||
### 7.2 获取订单列表
|
||
|
||
**接口地址**: `GET /orders`
|
||
|
||
**请求参数**:
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 否 | 页码 |
|
||
| page_size | int | 否 | 每页数量 |
|
||
| status | string | 否 | 订单状态:pending/paid/shipped/completed/cancelled |
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"list": [
|
||
{
|
||
"id": "ORD20240101123456",
|
||
"status": "paid",
|
||
"status_text": "已支付",
|
||
"total_amount": 198.00,
|
||
"pay_amount": 188.00,
|
||
"items": [
|
||
{
|
||
"product_name": "商品名称",
|
||
"sku_name": "规格名称",
|
||
"image": "图片URL",
|
||
"price": 99.00,
|
||
"quantity": 2
|
||
}
|
||
],
|
||
"created_at": "2024-01-01T00:00:00Z"
|
||
}
|
||
],
|
||
"pagination": {
|
||
"page": 1,
|
||
"page_size": 10,
|
||
"total": 50
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### 7.3 获取订单详情
|
||
|
||
**接口地址**: `GET /orders/:id`
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"id": "ORD20240101123456",
|
||
"status": "paid",
|
||
"status_text": "已支付",
|
||
"total_amount": 198.00,
|
||
"pay_amount": 188.00,
|
||
"shipping_fee": 10.00,
|
||
"discount_amount": 20.00,
|
||
"address": {
|
||
"name": "收货人",
|
||
"phone": "13800138000",
|
||
"province": "广东省",
|
||
"city": "深圳市",
|
||
"district": "南山区",
|
||
"detail": "详细地址"
|
||
},
|
||
"items": [
|
||
{
|
||
"product_name": "商品名称",
|
||
"sku_name": "规格名称",
|
||
"image": "图片URL",
|
||
"price": 99.00,
|
||
"quantity": 2
|
||
}
|
||
],
|
||
"created_at": "2024-01-01T00:00:00Z",
|
||
"paid_at": "2024-01-01T00:05:00Z"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 7.4 取消订单
|
||
|
||
**接口地址**: `POST /orders/:id/cancel`
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"reason": "取消原因"
|
||
}
|
||
```
|
||
|
||
### 7.5 确认收货
|
||
|
||
**接口地址**: `POST /orders/:id/confirm`
|
||
|
||
---
|
||
|
||
## 8. 支付接口
|
||
|
||
### 8.1 创建支付
|
||
|
||
**接口地址**: `POST /pay/create`
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"order_id": "ORD20240101123456",
|
||
"pay_type": "wechat"
|
||
}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"pay_params": {
|
||
"timeStamp": "1234567890",
|
||
"nonceStr": "random_string",
|
||
"package": "prepay_id=xxx",
|
||
"signType": "MD5",
|
||
"paySign": "signature"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### 8.2 支付回调
|
||
|
||
**接口地址**: `POST /pay/callback`
|
||
|
||
**说明**: 由支付平台调用,处理支付结果
|
||
|
||
---
|
||
|
||
## 9. 退款接口
|
||
|
||
### 9.1 申请退款
|
||
|
||
**接口地址**: `POST /refunds`
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"order_id": "ORD20240101123456",
|
||
"reason": "退款原因",
|
||
"description": "详细说明",
|
||
"images": ["图片1", "图片2"]
|
||
}
|
||
```
|
||
|
||
### 9.2 获取退款列表
|
||
|
||
**接口地址**: `GET /refunds`
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"list": [
|
||
{
|
||
"id": 1,
|
||
"order_id": "ORD20240101123456",
|
||
"status": "pending",
|
||
"status_text": "待审核",
|
||
"amount": 188.00,
|
||
"reason": "退款原因",
|
||
"created_at": "2024-01-01T00:00:00Z"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
### 9.3 取消退款申请
|
||
|
||
**接口地址**: `POST /refunds/:id/cancel`
|
||
|
||
---
|
||
|
||
## 10. Banner接口
|
||
|
||
### 10.1 获取Banner列表
|
||
|
||
**接口地址**: `GET /banners`
|
||
|
||
**请求参数**:
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| position | string | 否 | 位置:home/category |
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": [
|
||
{
|
||
"id": 1,
|
||
"title": "Banner标题",
|
||
"image": "图片URL",
|
||
"link": "跳转链接",
|
||
"sort": 1
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 11. 优惠券接口
|
||
|
||
### 11.1 获取优惠券列表
|
||
|
||
**接口地址**: `GET /coupons`
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": [
|
||
{
|
||
"id": 1,
|
||
"name": "优惠券名称",
|
||
"type": "discount",
|
||
"discount": 0.9,
|
||
"min_amount": 100.00,
|
||
"max_discount": 50.00,
|
||
"start_time": "2024-01-01T00:00:00Z",
|
||
"end_time": "2024-12-31T23:59:59Z",
|
||
"total_count": 1000,
|
||
"received_count": 500,
|
||
"is_received": false
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 11.2 领取优惠券
|
||
|
||
**接口地址**: `POST /coupons/:id/receive`
|
||
|
||
### 11.3 获取我的优惠券
|
||
|
||
**接口地址**: `GET /coupons/my`
|
||
|
||
**请求参数**:
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| status | string | 否 | unused/used/expired |
|
||
|
||
---
|
||
|
||
## 12. 文件上传接口
|
||
|
||
### 12.1 上传图片
|
||
|
||
**接口地址**: `POST /upload/image`
|
||
|
||
**请求头**:
|
||
```
|
||
Content-Type: multipart/form-data
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**请求参数**:
|
||
- file: 图片文件(支持jpg、png、gif,最大5MB)
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "上传成功",
|
||
"data": {
|
||
"url": "https://cdn.example.com/images/xxx.jpg"
|
||
}
|
||
}
|
||
```
|
||
|
||
**说明**:
|
||
- 图片自动压缩优化
|
||
- 自动生成缩略图
|
||
- 设置正确的Content-Type和Content-Disposition
|
||
- 返回OSS访问URL
|
||
|
||
---
|
||
|
||
## 13. 统计接口(管理端)
|
||
|
||
### 13.1 获取销售统计
|
||
|
||
**接口地址**: `GET /admin/stats/sales`
|
||
|
||
**请求头**:
|
||
```
|
||
Authorization: Bearer {admin_token}
|
||
```
|
||
|
||
**请求参数**:
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| start_date | string | 是 | 开始日期 |
|
||
| end_date | string | 是 | 结束日期 |
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"total_amount": 100000.00,
|
||
"total_orders": 1000,
|
||
"avg_order_amount": 100.00,
|
||
"daily_stats": [
|
||
{
|
||
"date": "2024-01-01",
|
||
"amount": 1000.00,
|
||
"orders": 10
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 14. 错误码说明
|
||
|
||
| 错误码 | 说明 |
|
||
|--------|------|
|
||
| 10001 | 参数错误 |
|
||
| 10002 | 用户不存在 |
|
||
| 10003 | 密码错误 |
|
||
| 10004 | Token无效 |
|
||
| 10005 | Token过期 |
|
||
| 20001 | 商品不存在 |
|
||
| 20002 | 库存不足 |
|
||
| 20003 | 商品已下架 |
|
||
| 30001 | 订单不存在 |
|
||
| 30002 | 订单状态错误 |
|
||
| 30003 | 订单已取消 |
|
||
| 40001 | 支付失败 |
|
||
| 40002 | 退款失败 |
|
||
| 50001 | 文件上传失败 |
|
||
| 50002 | 文件类型不支持 |
|
||
| 50003 | 文件大小超限 |
|
||
|
||
---
|
||
|
||
## 15. 开发调试
|
||
|
||
### 15.1 本地环境配置
|
||
|
||
**配置文件**: `server/configs/config.yaml`
|
||
|
||
```yaml
|
||
server:
|
||
port: 8080
|
||
mode: debug
|
||
|
||
database:
|
||
host: localhost
|
||
port: 3306
|
||
username: root
|
||
password: password
|
||
database: dianshang
|
||
|
||
jwt:
|
||
secret: your-secret-key
|
||
expire: 7200
|
||
|
||
oss:
|
||
endpoint: oss-cn-shenzhen.aliyuncs.com
|
||
access_key_id: your-access-key-id
|
||
access_key_secret: your-access-key-secret
|
||
bucket: your-bucket-name
|
||
```
|
||
|
||
### 15.2 API调试工具
|
||
- Postman
|
||
- Apifox
|
||
- Swagger UI (开发中)
|
||
|
||
### 15.3 测试账号
|
||
- **普通用户**: test@example.com / 123456
|
||
- **管理员**: admin@example.com / admin123
|
||
|
||
---
|
||
|
||
## 16. 注意事项
|
||
|
||
### 16.1 请求限制
|
||
- 同一IP每分钟最多60次请求
|
||
- 文件上传大小限制5MB
|
||
- 批量操作最多100条
|
||
|
||
### 16.2 数据安全
|
||
- 敏感信息传输使用HTTPS
|
||
- 密码使用bcrypt加密
|
||
- Token有效期2小时
|
||
- 软删除数据需显式过滤
|
||
|
||
### 16.3 性能优化
|
||
- 列表接口支持分页
|
||
- 使用Redis缓存热点数据
|
||
- 数据库连接池优化
|
||
- 图片CDN加速
|
||
|
||
### 16.4 数据库规范
|
||
- GORM预加载需显式过滤软删除数据
|
||
- SKU价格优先级:SKU价格 > 商品价格
|
||
- 订单数据按用户隔离存储
|
||
- 所有时间字段使用UTC时间
|
||
|
||
---
|
||
|
||
**文档版本**: v1.0
|
||
**创建日期**: 2024-11-19
|
||
**最后更新**: 2024-11-19
|
||
**维护团队**: 后端开发组
|