|
|
@@ -0,0 +1,1917 @@
|
|
|
+# Cross-border E-commerce OMS 后端完整设计文档
|
|
|
+
|
|
|
+**技术栈:** Spring Boot 3.x + Java 17 + MySQL 8.0 + JPA/Hibernate
|
|
|
+**版本:** 1.0.0
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 目录
|
|
|
+
|
|
|
+1. [数据库设计](#1-数据库设计)
|
|
|
+2. [API接口文档](#2-api接口文档)
|
|
|
+3. [枚举值定义](#3-枚举值定义)
|
|
|
+4. [业务闭环设计](#4-业务闭环设计)
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 1. 数据库设计
|
|
|
+
|
|
|
+### 1.1 命名规范
|
|
|
+
|
|
|
+| 类型 | 规范 | 示例 |
|
|
|
+|------|------|------|
|
|
|
+| 表名 | 小写下划线分隔,单数 | `order`, `order_item` |
|
|
|
+| 主键 | `id` BIGINT AUTO_INCREMENT | 自增ID |
|
|
|
+| 外键 | `{table}_id` BIGINT | 关联主键ID |
|
|
|
+| 索引 | `idx_{table}_{column}` | `idx_order_status` |
|
|
|
+| 唯一索引 | `uk_{table}_{column}` | `uk_order_no` |
|
|
|
+| 时间 | DATETIME | 无毫秒精度 |
|
|
|
+| 软删除 | `deleted` TINYINT(1) DEFAULT 0 | 0=正常, 1=删除 |
|
|
|
+| 租户 | `tenant_id` VARCHAR(64) DEFAULT 'DEFAULT' | 多租户隔离 |
|
|
|
+| 审计字段 | `created_at`, `updated_at`, `created_by`, `updated_by` | 所有业务表 |
|
|
|
+
|
|
|
+### 1.2 ENUM枚举值
|
|
|
+
|
|
|
+| 枚举类别 | 值 |
|
|
|
+|---------|-----|
|
|
|
+| order_status | CREATED, PAID, ALLOCATED, SHIPPED, DELIVERED, COMPLETED, CANCELLED, REFUNDED |
|
|
|
+| shipping_status | UNSHIPPED, PARTIALLY_SHIPPED, SHIPPED, IN_TRANSIT, DELIVERED, RETURNED |
|
|
|
+| payment_status | UNPAID, PAID, PARTIALLY_REFUNDED, REFUNDED |
|
|
|
+| refund_status | NONE, PARTIAL_REFUND, FULL_REFUND |
|
|
|
+| after_sale_type | REFUND_ONLY, RESEND, RETURN_REFUND, COMPENSATION |
|
|
|
+| after_sale_audit_status | PENDING, APPROVED, REJECTED |
|
|
|
+| after_sale_refund_status | NONE, UNREFUNDED, REFUNDING, REFUNDED, RESEND |
|
|
|
+| purchase_order_status | DRAFT, PENDING_APPROVAL, APPROVED, PARTIAL_ARRIVAL, COMPLETED, CLOSED |
|
|
|
+| supplier_status | ACTIVE, INACTIVE, BLACKLISTED |
|
|
|
+| supplier_rating | A, B, C, D |
|
|
|
+| warehouse_type | DOMESTIC, OVERSEAS, BONDED |
|
|
|
+| channel_status | ACTIVE, INACTIVE, ERROR |
|
|
|
+| token_status | VALID, EXPIRED, INVALID |
|
|
|
+| sync_status | IDLE, SYNCING, ERROR |
|
|
|
+| product_status | DRAFT, ON_SALE, OFF_SALE, DELETED |
|
|
|
+| sku_status | ACTIVE, INACTIVE |
|
|
|
+| user_role | ADMIN, MANAGER, OPERATOR, PROCUREMENT, WAREHOUSE, FINANCE, CUSTOMER_SERVICE |
|
|
|
+| ticket_type | COMPLAINT, REFUND, CONSULT, SHIPPING, OTHER |
|
|
|
+| ticket_status | OPEN, IN_PROGRESS, RESOLVED, CLOSED |
|
|
|
+| ticket_priority | LOW, MEDIUM, HIGH, URGENT |
|
|
|
+| iqc_result | PENDING, PASSED, FAILED |
|
|
|
+| promotion_status | DRAFT, ACTIVE, PAUSED, ENDED |
|
|
|
+| coupon_status | DRAFT, ACTIVE, PAUSED, EXPIRED |
|
|
|
+| invoice_type | VAT, PLAIN, SPECIAL |
|
|
|
+| invoice_status | DRAFT, ISSUED, VOID |
|
|
|
+| settlement_status | PENDING, PARTIAL_PAID, PAID |
|
|
|
+| payment_method | CREDIT_CARD, PAYPAL, BANK_TRANSFER, WALLET |
|
|
|
+| refund_method | ORIGINAL, WALLET, BANK |
|
|
|
+| billing_type | BY_WEIGHT, BY_PIECE, FLAT |
|
|
|
+| inventory_change_source | ORDER_ALLOCATION, PURCHASE_ARRIVAL, RETURN_IN, RETURN_OUT, ADJUSTMENT, SHIPMENT, TRANSFER |
|
|
|
+| inventory_change_type | INCREMENT, DECREMENT, LOCK, UNLOCK |
|
|
|
+| visitor_status | BROWSING, CHATTING, ORDERING, WAITING |
|
|
|
+| chat_session_status | WAITING, ONGOING, ENDED |
|
|
|
+| chat_message_role | visitor, ai, agent, system |
|
|
|
+| ai_trigger_type | KEYWORD, INTENT, FALLBACK, GREETING |
|
|
|
+| ai_match_mode | EXACT, CONTAIN, REGEX |
|
|
|
+| return_handle_result | INBOUND, REJECT, DESTROY |
|
|
|
+| employee_status | ACTIVE, INACTIVE, RESIGNED |
|
|
|
+| department_status | ACTIVE, INACTIVE |
|
|
|
+| api_key_status | ACTIVE, INACTIVE, EXPIRED |
|
|
|
+| org_user_status | ACTIVE, INACTIVE, LOCKED |
|
|
|
+| notification_type | ORDER, REFUND, INVENTORY, SYSTEM |
|
|
|
+
|
|
|
+### 1.3 表结构
|
|
|
+
|
|
|
+#### 1.3.1 组织架构
|
|
|
+
|
|
|
+```sql
|
|
|
+-- 用户表
|
|
|
+CREATE TABLE sys_user (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ username VARCHAR(128) NOT NULL COMMENT '用户名',
|
|
|
+ password_hash VARCHAR(256) NOT NULL COMMENT '密码哈希',
|
|
|
+ email VARCHAR(256) COMMENT '邮箱',
|
|
|
+ phone VARCHAR(64) COMMENT '手机号',
|
|
|
+ avatar VARCHAR(512) COMMENT '头像URL',
|
|
|
+ name VARCHAR(128) NOT NULL COMMENT '姓名',
|
|
|
+ role VARCHAR(32) NOT NULL COMMENT '角色',
|
|
|
+ role_label VARCHAR(64) COMMENT '角色标签',
|
|
|
+ workspace VARCHAR(128) COMMENT '工作区',
|
|
|
+ department_id BIGINT COMMENT '部门ID',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE' COMMENT '状态',
|
|
|
+ last_login_at DATETIME COMMENT '最后登录时间',
|
|
|
+ last_login_ip VARCHAR(64) COMMENT '最后登录IP',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_sys_user_username (username)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统用户表';
|
|
|
+
|
|
|
+-- 部门表
|
|
|
+CREATE TABLE sys_department (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ name VARCHAR(128) NOT NULL COMMENT '部门名称',
|
|
|
+ parent_id BIGINT COMMENT '父部门ID',
|
|
|
+ leader_id BIGINT COMMENT '负责人ID',
|
|
|
+ leader_name VARCHAR(128) COMMENT '负责人姓名',
|
|
|
+ description VARCHAR(512) COMMENT '部门描述',
|
|
|
+ sort_order INT NOT NULL DEFAULT 0 COMMENT '排序',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE' COMMENT '状态',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='部门表';
|
|
|
+
|
|
|
+-- 角色权限表
|
|
|
+CREATE TABLE sys_role (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ name VARCHAR(128) NOT NULL COMMENT '角色名称',
|
|
|
+ description VARCHAR(512) COMMENT '角色描述',
|
|
|
+ permissions JSON COMMENT '权限列表',
|
|
|
+ bound_user_count INT NOT NULL DEFAULT 0 COMMENT '绑定用户数',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE' COMMENT '状态',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统角色表';
|
|
|
+
|
|
|
+-- API Key表
|
|
|
+CREATE TABLE sys_api_key (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ name VARCHAR(128) NOT NULL COMMENT 'Key名称',
|
|
|
+ system VARCHAR(64) NOT NULL COMMENT '所属系统',
|
|
|
+ scope VARCHAR(512) COMMENT '权限范围',
|
|
|
+ key_value VARCHAR(256) NOT NULL COMMENT 'Key值',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE' COMMENT '状态',
|
|
|
+ expire_at DATETIME COMMENT '过期时间',
|
|
|
+ last_used_at DATETIME COMMENT '最后使用时间',
|
|
|
+ ip_whitelist VARCHAR(512) COMMENT 'IP白名单',
|
|
|
+ remark VARCHAR(1024) COMMENT '备注',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='API密钥表';
|
|
|
+
|
|
|
+-- 操作日志表
|
|
|
+CREATE TABLE sys_operation_log (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ module VARCHAR(64) NOT NULL COMMENT '模块',
|
|
|
+ type VARCHAR(64) NOT NULL COMMENT '操作类型',
|
|
|
+ object_id VARCHAR(64) COMMENT '对象ID',
|
|
|
+ actor VARCHAR(128) NOT NULL COMMENT '操作人',
|
|
|
+ actor_role VARCHAR(64) COMMENT '操作人角色',
|
|
|
+ action VARCHAR(256) NOT NULL COMMENT '操作描述',
|
|
|
+ result VARCHAR(64) COMMENT '操作结果',
|
|
|
+ source_ip VARCHAR(64) COMMENT '来源IP',
|
|
|
+ before_value TEXT COMMENT '变更前值',
|
|
|
+ after_value TEXT COMMENT '变更后值',
|
|
|
+ remark TEXT COMMENT '备注',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统操作日志表';
|
|
|
+
|
|
|
+-- 消息通知表
|
|
|
+CREATE TABLE sys_notification (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ user_id BIGINT NOT NULL COMMENT '用户ID',
|
|
|
+ type VARCHAR(32) NOT NULL COMMENT '通知类型',
|
|
|
+ title VARCHAR(256) NOT NULL COMMENT '通知标题',
|
|
|
+ content TEXT COMMENT '通知内容',
|
|
|
+ is_read TINYINT(1) NOT NULL DEFAULT 0 COMMENT '已读标记',
|
|
|
+ read_at DATETIME COMMENT '阅读时间',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统通知表';
|
|
|
+
|
|
|
+-- 消息模板表
|
|
|
+CREATE TABLE sys_message_template (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ name VARCHAR(128) NOT NULL COMMENT '模板名称',
|
|
|
+ type VARCHAR(32) NOT NULL COMMENT '模板类型',
|
|
|
+ channel VARCHAR(64) NOT NULL COMMENT '渠道',
|
|
|
+ content TEXT NOT NULL COMMENT '模板内容',
|
|
|
+ variables JSON COMMENT '变量列表',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE' COMMENT '状态',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='消息模板表';
|
|
|
+
|
|
|
+-- 审批流程表
|
|
|
+CREATE TABLE sys_approval_flow (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ name VARCHAR(128) NOT NULL COMMENT '流程名称',
|
|
|
+ type VARCHAR(64) NOT NULL COMMENT '流程类型',
|
|
|
+ nodes JSON NOT NULL COMMENT '流程节点',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE' COMMENT '状态',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='审批流程表';
|
|
|
+```
|
|
|
+
|
|
|
+#### 1.3.2 商品中心
|
|
|
+
|
|
|
+```sql
|
|
|
+-- 商品类目表
|
|
|
+CREATE TABLE product_category (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ name VARCHAR(128) NOT NULL COMMENT '类目名称',
|
|
|
+ parent_id VARCHAR(64) COMMENT '父类目ID',
|
|
|
+ level INT NOT NULL DEFAULT 0 COMMENT '层级',
|
|
|
+ path VARCHAR(512) COMMENT '路径',
|
|
|
+ sort_order INT NOT NULL DEFAULT 0 COMMENT '排序',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE' COMMENT '状态',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商品类目表';
|
|
|
+
|
|
|
+-- 商品SPU表
|
|
|
+CREATE TABLE product (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ spu VARCHAR(128) NOT NULL COMMENT 'SPU编码',
|
|
|
+ title VARCHAR(256) NOT NULL COMMENT '商品标题',
|
|
|
+ subtitle VARCHAR(512) COMMENT '副标题',
|
|
|
+ category_id BIGINT NOT NULL COMMENT '类目ID',
|
|
|
+ brand VARCHAR(128) COMMENT '品牌',
|
|
|
+ tags JSON COMMENT '标签列表',
|
|
|
+ description TEXT COMMENT '商品描述',
|
|
|
+ specs JSON COMMENT '规格列表',
|
|
|
+ translations JSON COMMENT '翻译列表',
|
|
|
+ channel_status VARCHAR(32) NOT NULL DEFAULT 'INACTIVE' COMMENT '渠道状态',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'DRAFT' COMMENT '商品状态',
|
|
|
+ owner VARCHAR(128) COMMENT '负责人',
|
|
|
+ sku_count INT NOT NULL DEFAULT 0 COMMENT 'SKU数量',
|
|
|
+ image VARCHAR(512) COMMENT '主图URL',
|
|
|
+ images JSON COMMENT '图片列表',
|
|
|
+ videos JSON COMMENT '视频列表',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_product_spu (spu)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商品SPU表';
|
|
|
+
|
|
|
+-- 商品SKU表
|
|
|
+CREATE TABLE product_sku (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ product_id BIGINT NOT NULL COMMENT '商品ID',
|
|
|
+ sku VARCHAR(128) NOT NULL COMMENT 'SKU编码',
|
|
|
+ spec_combo VARCHAR(512) NOT NULL COMMENT '规格组合',
|
|
|
+ barcode VARCHAR(128) COMMENT '条形码',
|
|
|
+ cost_price DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '成本价',
|
|
|
+ suggest_price DECIMAL(20,4) COMMENT '建议零售价',
|
|
|
+ weight DECIMAL(10,3) COMMENT '重量(克)',
|
|
|
+ length DECIMAL(10,2) COMMENT '长度(cm)',
|
|
|
+ width DECIMAL(10,2) COMMENT '宽度(cm)',
|
|
|
+ height DECIMAL(10,2) COMMENT '高度(cm)',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE' COMMENT 'SKU状态',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_product_sku_combo (product_id, sku)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商品SKU表';
|
|
|
+
|
|
|
+-- 渠道映射表
|
|
|
+CREATE TABLE channel_mapping (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ product_id BIGINT NOT NULL COMMENT '商品ID',
|
|
|
+ sku_id BIGINT NOT NULL COMMENT 'SKU ID',
|
|
|
+ channel_id BIGINT NOT NULL COMMENT '渠道ID',
|
|
|
+ internal_sku VARCHAR(128) NOT NULL COMMENT '内部SKU',
|
|
|
+ channel_sku VARCHAR(256) NOT NULL COMMENT '渠道SKU',
|
|
|
+ shop_name VARCHAR(256) COMMENT '店铺名称',
|
|
|
+ channel_category VARCHAR(256) COMMENT '渠道类目',
|
|
|
+ mapping_status VARCHAR(32) NOT NULL DEFAULT 'PENDING' COMMENT '映射状态',
|
|
|
+ validate_status VARCHAR(32) NOT NULL DEFAULT 'PENDING' COMMENT '校验状态',
|
|
|
+ last_sync_at DATETIME COMMENT '最后同步时间',
|
|
|
+ last_validate_result VARCHAR(512) COMMENT '最后校验结果',
|
|
|
+ channel_title VARCHAR(512) COMMENT '渠道商品标题',
|
|
|
+ channel_description TEXT COMMENT '渠道商品描述',
|
|
|
+ channel_price DECIMAL(20,4) COMMENT '渠道价格',
|
|
|
+ channel_image VARCHAR(512) COMMENT '渠道商品图片',
|
|
|
+ attribute_mappings JSON COMMENT '属性映射',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_mapping_channel_sku (channel_id, internal_sku)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='渠道商品映射表';
|
|
|
+
|
|
|
+-- 定价规则表
|
|
|
+CREATE TABLE pricing_rule (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ sku_id BIGINT NOT NULL COMMENT 'SKU ID',
|
|
|
+ product_title VARCHAR(256) NOT NULL COMMENT '商品标题',
|
|
|
+ currency VARCHAR(8) NOT NULL DEFAULT 'USD' COMMENT '币种',
|
|
|
+ base_price DECIMAL(20,4) NOT NULL COMMENT '基础价格',
|
|
|
+ channel_price DECIMAL(20,4) COMMENT '渠道价格',
|
|
|
+ discount_price DECIMAL(20,4) COMMENT '折扣价格',
|
|
|
+ channel_adjust_rule VARCHAR(128) COMMENT '渠道调价规则',
|
|
|
+ exchange_source VARCHAR(64) COMMENT '汇率来源',
|
|
|
+ warehouse_id BIGINT COMMENT '仓库ID',
|
|
|
+ safe_stock_threshold INT COMMENT '安全库存阈值',
|
|
|
+ warning_recipients VARCHAR(512) COMMENT '预警接收人',
|
|
|
+ effective_time DATETIME NOT NULL COMMENT '生效时间',
|
|
|
+ expire_time DATETIME COMMENT '失效时间',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE' COMMENT '规则状态',
|
|
|
+ modified_by VARCHAR(64) COMMENT '修改人',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='定价规则表';
|
|
|
+```
|
|
|
+
|
|
|
+#### 1.3.3 渠道中心
|
|
|
+
|
|
|
+```sql
|
|
|
+-- 渠道表
|
|
|
+CREATE TABLE channel (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ channel_code VARCHAR(64) NOT NULL COMMENT '渠道编码',
|
|
|
+ channel_name VARCHAR(128) NOT NULL COMMENT '渠道名称',
|
|
|
+ shop_name VARCHAR(256) COMMENT '店铺名称',
|
|
|
+ app_key VARCHAR(256) COMMENT '应用Key',
|
|
|
+ app_secret VARCHAR(256) COMMENT '应用密钥',
|
|
|
+ access_token VARCHAR(512) COMMENT '访问令牌',
|
|
|
+ refresh_token VARCHAR(512) COMMENT '刷新令牌',
|
|
|
+ token_expire_at DATETIME COMMENT '令牌过期时间',
|
|
|
+ token_status VARCHAR(32) NOT NULL DEFAULT 'INVALID' COMMENT '令牌状态',
|
|
|
+ webhook_url VARCHAR(512) COMMENT 'Webhook地址',
|
|
|
+ webhook_secret VARCHAR(256) COMMENT 'Webhook密钥',
|
|
|
+ sync_enabled TINYINT(1) NOT NULL DEFAULT 1 COMMENT '同步启用状态',
|
|
|
+ sync_status VARCHAR(32) NOT NULL DEFAULT 'IDLE' COMMENT '同步状态',
|
|
|
+ last_sync_at DATETIME COMMENT '最后同步时间',
|
|
|
+ error_message VARCHAR(1024) COMMENT '错误信息',
|
|
|
+ default_warehouse_id VARCHAR(64) COMMENT '默认仓库ID',
|
|
|
+ remark VARCHAR(1024) COMMENT '备注',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_channel_code (channel_code)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='销售渠道表';
|
|
|
+```
|
|
|
+
|
|
|
+#### 1.3.4 仓库物流
|
|
|
+
|
|
|
+```sql
|
|
|
+-- 仓库表
|
|
|
+CREATE TABLE warehouse (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ name VARCHAR(128) NOT NULL COMMENT '仓库名称',
|
|
|
+ type VARCHAR(32) NOT NULL COMMENT '仓库类型',
|
|
|
+ address VARCHAR(512) NOT NULL COMMENT '仓库地址',
|
|
|
+ contact VARCHAR(128) COMMENT '联系人',
|
|
|
+ phone VARCHAR(64) COMMENT '联系电话',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE' COMMENT '仓库状态',
|
|
|
+ manager VARCHAR(128) COMMENT '仓库管理员',
|
|
|
+ remark VARCHAR(1024) COMMENT '备注',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='仓库表';
|
|
|
+
|
|
|
+-- 物流商表
|
|
|
+CREATE TABLE logistics_provider (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ name VARCHAR(128) NOT NULL COMMENT '物流商名称',
|
|
|
+ channels JSON COMMENT '支持的渠道列表',
|
|
|
+ billing_type VARCHAR(32) NOT NULL COMMENT '计费方式',
|
|
|
+ tracking_url VARCHAR(512) COMMENT '追踪URL模板',
|
|
|
+ contact VARCHAR(128) COMMENT '联系人',
|
|
|
+ phone VARCHAR(64) COMMENT '联系电话',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE' COMMENT '物流商状态',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='物流商表';
|
|
|
+
|
|
|
+-- 运费模板表
|
|
|
+CREATE TABLE shipping_template (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ name VARCHAR(128) NOT NULL COMMENT '模板名称',
|
|
|
+ carrier_id BIGINT NOT NULL COMMENT '物流商ID',
|
|
|
+ carrier_name VARCHAR(128) NOT NULL COMMENT '物流商名称',
|
|
|
+ billing_type VARCHAR(32) NOT NULL COMMENT '计费方式',
|
|
|
+ first_weight DECIMAL(10,3) NOT NULL DEFAULT 0 COMMENT '首重',
|
|
|
+ first_cost DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '首费',
|
|
|
+ continue_weight DECIMAL(10,3) NOT NULL DEFAULT 0 COMMENT '续重',
|
|
|
+ continue_cost DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '续费',
|
|
|
+ remote_surcharge DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '偏远附加费',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE' COMMENT '模板状态',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='运费模板表';
|
|
|
+
|
|
|
+-- 退件表
|
|
|
+CREATE TABLE return_package (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ return_no VARCHAR(64) NOT NULL COMMENT '退件编号',
|
|
|
+ original_tracking_no VARCHAR(256) COMMENT '原运单号',
|
|
|
+ reason VARCHAR(1024) COMMENT '退件原因',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'PENDING' COMMENT '处理状态',
|
|
|
+ warehouse_id BIGINT NOT NULL COMMENT '仓库ID',
|
|
|
+ handle_result VARCHAR(32) COMMENT '处理结果',
|
|
|
+ images JSON COMMENT '图片列表',
|
|
|
+ remark VARCHAR(1024) COMMENT '备注',
|
|
|
+ handler_id BIGINT COMMENT '处理人ID',
|
|
|
+ handler_name VARCHAR(128) COMMENT '处理人姓名',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_return_no (return_no)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='退件表';
|
|
|
+```
|
|
|
+
|
|
|
+#### 1.3.5 库存中心
|
|
|
+
|
|
|
+```sql
|
|
|
+-- 库存表
|
|
|
+CREATE TABLE inventory (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ sku_id BIGINT NOT NULL COMMENT 'SKU ID',
|
|
|
+ product_title VARCHAR(256) NOT NULL COMMENT '商品标题',
|
|
|
+ warehouse_id BIGINT NOT NULL COMMENT '仓库ID',
|
|
|
+ available INT NOT NULL DEFAULT 0 COMMENT '可用库存',
|
|
|
+ locked INT NOT NULL DEFAULT 0 COMMENT '锁定库存',
|
|
|
+ inbound INT NOT NULL DEFAULT 0 COMMENT '在途库存',
|
|
|
+ safe_stock INT NOT NULL DEFAULT 0 COMMENT '安全库存',
|
|
|
+ warning_status VARCHAR(32) NOT NULL DEFAULT 'NORMAL' COMMENT '预警状态',
|
|
|
+ last_change_at DATETIME COMMENT '最后变动时间',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_inventory_sku_warehouse (sku_id, warehouse_id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='库存表';
|
|
|
+
|
|
|
+-- 库存流水表
|
|
|
+CREATE TABLE inventory_log (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ sku_id BIGINT NOT NULL COMMENT 'SKU ID',
|
|
|
+ warehouse_id BIGINT NOT NULL COMMENT '仓库ID',
|
|
|
+ source VARCHAR(64) NOT NULL COMMENT '变动来源',
|
|
|
+ related_order_id BIGINT COMMENT '关联订单ID',
|
|
|
+ related_order_no VARCHAR(64) COMMENT '关联订单号',
|
|
|
+ operator VARCHAR(128) NOT NULL COMMENT '操作人',
|
|
|
+ change_type VARCHAR(32) NOT NULL COMMENT '变动类型',
|
|
|
+ quantity INT NOT NULL COMMENT '变动数量',
|
|
|
+ before_qty INT NOT NULL COMMENT '变动前数量',
|
|
|
+ after_qty INT NOT NULL COMMENT '变动后数量',
|
|
|
+ reason VARCHAR(512) COMMENT '变动原因',
|
|
|
+ remark VARCHAR(1024) COMMENT '备注',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='库存流水表';
|
|
|
+```
|
|
|
+
|
|
|
+#### 1.3.6 供应商采购
|
|
|
+
|
|
|
+```sql
|
|
|
+-- 供应商表
|
|
|
+CREATE TABLE supplier (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ name VARCHAR(128) NOT NULL COMMENT '供应商名称',
|
|
|
+ company_name VARCHAR(256) COMMENT '公司名称',
|
|
|
+ contact VARCHAR(128) COMMENT '联系人',
|
|
|
+ phone VARCHAR(64) COMMENT '联系电话',
|
|
|
+ email VARCHAR(256) COMMENT '邮箱',
|
|
|
+ address VARCHAR(512) COMMENT '地址',
|
|
|
+ bank_info VARCHAR(512) COMMENT '银行信息',
|
|
|
+ tax_no VARCHAR(128) COMMENT '税号',
|
|
|
+ contract_no VARCHAR(128) COMMENT '合同编号',
|
|
|
+ settlement_type VARCHAR(32) NOT NULL DEFAULT 'CREDIT' COMMENT '结算方式',
|
|
|
+ rating VARCHAR(16) COMMENT '评级',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE' COMMENT '供应商状态',
|
|
|
+ related_sku_count INT NOT NULL DEFAULT 0 COMMENT '关联SKU数量',
|
|
|
+ remark VARCHAR(1024) COMMENT '备注',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='供应商表';
|
|
|
+
|
|
|
+-- 供货能力表
|
|
|
+CREATE TABLE supply_capability (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ supplier_id BIGINT NOT NULL COMMENT '供应商ID',
|
|
|
+ sku_id BIGINT NOT NULL COMMENT 'SKU ID',
|
|
|
+ product_title VARCHAR(256) NOT NULL COMMENT '商品标题',
|
|
|
+ lead_time INT NOT NULL DEFAULT 0 COMMENT '交期(天)',
|
|
|
+ moq INT NOT NULL DEFAULT 1 COMMENT '最小起订量',
|
|
|
+ unit VARCHAR(32) NOT NULL DEFAULT 'PCS' COMMENT '单位',
|
|
|
+ tier_prices JSON COMMENT '阶梯价格',
|
|
|
+ is_default TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否默认',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE' COMMENT '状态',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='供货能力表';
|
|
|
+
|
|
|
+-- 采购单表
|
|
|
+CREATE TABLE purchase_order (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ po_no VARCHAR(64) NOT NULL COMMENT '采购单号',
|
|
|
+ supplier_id BIGINT NOT NULL COMMENT '供应商ID',
|
|
|
+ warehouse_id BIGINT NOT NULL COMMENT '仓库ID',
|
|
|
+ sku_count INT NOT NULL DEFAULT 0 COMMENT 'SKU数量',
|
|
|
+ amount DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '采购金额',
|
|
|
+ currency VARCHAR(8) NOT NULL DEFAULT 'CNY' COMMENT '币种',
|
|
|
+ tax_amount DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '税额',
|
|
|
+ freight DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '运费',
|
|
|
+ expected_date DATE COMMENT '预计到货日期',
|
|
|
+ arrival_progress VARCHAR(32) NOT NULL DEFAULT 'PENDING' COMMENT '到货进度',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'DRAFT' COMMENT '采购单状态',
|
|
|
+ remark VARCHAR(1024) COMMENT '备注',
|
|
|
+ creator_id BIGINT NOT NULL COMMENT '创建人ID',
|
|
|
+ creator_name VARCHAR(128) COMMENT '创建人姓名',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_po_no (po_no)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购单表';
|
|
|
+
|
|
|
+-- 采购单明细表
|
|
|
+CREATE TABLE purchase_order_item (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ purchase_order_id BIGINT NOT NULL COMMENT '采购单ID',
|
|
|
+ sku_id BIGINT NOT NULL COMMENT 'SKU ID',
|
|
|
+ sku VARCHAR(128) NOT NULL COMMENT 'SKU编码',
|
|
|
+ product_title VARCHAR(256) NOT NULL COMMENT '商品标题',
|
|
|
+ qty INT NOT NULL COMMENT '采购数量',
|
|
|
+ price DECIMAL(20,4) NOT NULL COMMENT '采购单价',
|
|
|
+ subtotal DECIMAL(20,4) NOT NULL COMMENT '小计金额',
|
|
|
+ arrived_qty INT NOT NULL DEFAULT 0 COMMENT '已到货数量',
|
|
|
+ qualified_qty INT NOT NULL DEFAULT 0 COMMENT '合格数量',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购单明细表';
|
|
|
+
|
|
|
+-- 到货确认表
|
|
|
+CREATE TABLE purchase_arrival (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ purchase_order_id BIGINT NOT NULL COMMENT '采购单ID',
|
|
|
+ arrival_no VARCHAR(64) NOT NULL COMMENT '到货单号',
|
|
|
+ arrived_at DATETIME NOT NULL COMMENT '到货时间',
|
|
|
+ warehouse_id BIGINT NOT NULL COMMENT '仓库ID',
|
|
|
+ operator_id BIGINT NOT NULL COMMENT '操作人ID',
|
|
|
+ operator_name VARCHAR(128) COMMENT '操作人姓名',
|
|
|
+ remark VARCHAR(1024) COMMENT '备注',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'ARRIVED' COMMENT '状态',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_arrival_no (arrival_no)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='到货确认表';
|
|
|
+
|
|
|
+-- 到货明细表
|
|
|
+CREATE TABLE purchase_arrival_item (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ arrival_id BIGINT NOT NULL COMMENT '到货单ID',
|
|
|
+ purchase_order_item_id BIGINT NOT NULL COMMENT '采购单明细ID',
|
|
|
+ sku_id BIGINT NOT NULL COMMENT 'SKU ID',
|
|
|
+ expected_qty INT NOT NULL COMMENT '预期数量',
|
|
|
+ actual_qty INT NOT NULL COMMENT '实际数量',
|
|
|
+ qualified_qty INT NOT NULL DEFAULT 0 COMMENT '合格数量',
|
|
|
+ unqualified_qty INT NOT NULL DEFAULT 0 COMMENT '不合格数量',
|
|
|
+ iqc_status VARCHAR(32) NOT NULL DEFAULT 'PENDING' COMMENT '质检状态',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='到货明细表';
|
|
|
+
|
|
|
+-- IQC表
|
|
|
+CREATE TABLE iqc (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ iqc_no VARCHAR(64) NOT NULL COMMENT '质检单号',
|
|
|
+ supplier_id BIGINT NOT NULL COMMENT '供应商ID',
|
|
|
+ arrival_id BIGINT NOT NULL COMMENT '到货单ID',
|
|
|
+ arrival_no VARCHAR(64) NOT NULL COMMENT '到货单号',
|
|
|
+ standard VARCHAR(256) COMMENT '质检标准',
|
|
|
+ qualified_qty INT NOT NULL DEFAULT 0 COMMENT '合格数量',
|
|
|
+ unqualified_qty INT NOT NULL DEFAULT 0 COMMENT '不合格数量',
|
|
|
+ result VARCHAR(32) NOT NULL DEFAULT 'PENDING' COMMENT '质检结果',
|
|
|
+ inspector_id BIGINT COMMENT '质检员ID',
|
|
|
+ inspector_name VARCHAR(128) COMMENT '质检员姓名',
|
|
|
+ inspect_time DATETIME COMMENT '质检时间',
|
|
|
+ remark VARCHAR(1024) COMMENT '备注',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_iqc_no (iqc_no)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='来料质检表';
|
|
|
+
|
|
|
+-- 备货计划表
|
|
|
+CREATE TABLE replenishment_plan (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ sku_id BIGINT NOT NULL COMMENT 'SKU ID',
|
|
|
+ product_title VARCHAR(256) NOT NULL COMMENT '商品标题',
|
|
|
+ warehouse_id BIGINT COMMENT '仓库ID',
|
|
|
+ avg_daily_sales DECIMAL(12,4) NOT NULL DEFAULT 0 COMMENT '日均销量',
|
|
|
+ safe_stock INT NOT NULL DEFAULT 0 COMMENT '安全库存',
|
|
|
+ current_stock INT NOT NULL DEFAULT 0 COMMENT '当前库存',
|
|
|
+ on_the_way INT NOT NULL DEFAULT 0 COMMENT '在途库存',
|
|
|
+ suggested_qty INT NOT NULL DEFAULT 0 COMMENT '建议补货量',
|
|
|
+ suggested_supplier_id VARCHAR(64) COMMENT '建议供应商ID',
|
|
|
+ suggested_supplier_name VARCHAR(128) COMMENT '建议供应商名称',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'PENDING' COMMENT '计划状态',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='备货计划表';
|
|
|
+
|
|
|
+-- 采购需求表
|
|
|
+CREATE TABLE purchase_request (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ request_no VARCHAR(64) NOT NULL COMMENT '需求单号',
|
|
|
+ applicant_id BIGINT NOT NULL COMMENT '申请人ID',
|
|
|
+ applicant_name VARCHAR(128) NOT NULL COMMENT '申请人姓名',
|
|
|
+ sku_id BIGINT NOT NULL COMMENT 'SKU ID',
|
|
|
+ sku VARCHAR(128) NOT NULL COMMENT 'SKU编码',
|
|
|
+ qty INT NOT NULL COMMENT '需求数量',
|
|
|
+ reason VARCHAR(1024) COMMENT '需求原因',
|
|
|
+ urgency VARCHAR(32) NOT NULL DEFAULT 'NORMAL' COMMENT '紧急程度',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'PENDING' COMMENT '需求状态',
|
|
|
+ related_order_id BIGINT COMMENT '关联订单ID',
|
|
|
+ remark VARCHAR(1024) COMMENT '备注',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_request_no (request_no)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购需求表';
|
|
|
+```
|
|
|
+
|
|
|
+#### 1.3.7 订单中心
|
|
|
+
|
|
|
+```sql
|
|
|
+-- 订单表
|
|
|
+CREATE TABLE orders (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ order_no VARCHAR(64) NOT NULL COMMENT '订单号',
|
|
|
+ channel_order_no VARCHAR(128) COMMENT '渠道订单号',
|
|
|
+ channel_id BIGINT NOT NULL COMMENT '渠道ID',
|
|
|
+ order_status VARCHAR(32) NOT NULL DEFAULT 'CREATED' COMMENT '订单状态',
|
|
|
+ shipping_status VARCHAR(32) NOT NULL DEFAULT 'UNSHIPPED' COMMENT '发货状态',
|
|
|
+ payment_status VARCHAR(32) NOT NULL DEFAULT 'UNPAID' COMMENT '支付状态',
|
|
|
+ refund_status VARCHAR(32) NOT NULL DEFAULT 'NONE' COMMENT '退款状态',
|
|
|
+ exception_tag VARCHAR(64) COMMENT '异常标签',
|
|
|
+ priority VARCHAR(32) NOT NULL DEFAULT 'NORMAL' COMMENT '优先级',
|
|
|
+ paid_at DATETIME COMMENT '支付时间',
|
|
|
+ shipped_at DATETIME COMMENT '发货时间',
|
|
|
+ delivered_at DATETIME COMMENT '签收时间',
|
|
|
+ buyer_id VARCHAR(64) COMMENT '买家ID',
|
|
|
+ buyer VARCHAR(128) COMMENT '买家昵称',
|
|
|
+ buyer_email VARCHAR(256) COMMENT '买家邮箱',
|
|
|
+ buyer_phone VARCHAR(64) COMMENT '买家电话',
|
|
|
+ buyer_country VARCHAR(64) COMMENT '买家国家',
|
|
|
+ buyer_level VARCHAR(32) COMMENT '买家等级',
|
|
|
+ buyer_tags JSON COMMENT '买家标签',
|
|
|
+ buyer_register_time DATETIME COMMENT '注册时间',
|
|
|
+ buyer_order_count INT NOT NULL DEFAULT 0 COMMENT '历史订单数',
|
|
|
+ buyer_total_spent DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '历史消费金额',
|
|
|
+ receiver_name VARCHAR(128) NOT NULL COMMENT '收货人姓名',
|
|
|
+ receiver_phone VARCHAR(64) NOT NULL COMMENT '收货人电话',
|
|
|
+ receiver_country VARCHAR(64) NOT NULL COMMENT '收货国家',
|
|
|
+ receiver_state VARCHAR(128) COMMENT '收货省份',
|
|
|
+ receiver_city VARCHAR(128) COMMENT '收货城市',
|
|
|
+ receiver_district VARCHAR(128) COMMENT '收货区县',
|
|
|
+ receiver_postal_code VARCHAR(32) COMMENT '收货邮编',
|
|
|
+ receiver_address VARCHAR(512) NOT NULL COMMENT '详细地址',
|
|
|
+ receiver_address_lang VARCHAR(64) COMMENT '地址语言',
|
|
|
+ latitude DECIMAL(10,7) COMMENT '纬度',
|
|
|
+ longitude DECIMAL(10,7) COMMENT '经度',
|
|
|
+ transaction_id VARCHAR(128) COMMENT '交易流水号',
|
|
|
+ payment_method VARCHAR(64) COMMENT '支付方式',
|
|
|
+ payment_time DATETIME COMMENT '支付时间',
|
|
|
+ currency VARCHAR(8) NOT NULL DEFAULT 'USD' COMMENT '订单币种',
|
|
|
+ exchange_rate DECIMAL(20,6) NOT NULL DEFAULT 1 COMMENT '汇率',
|
|
|
+ order_amount DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '商品金额',
|
|
|
+ order_amount_cny DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '人民币金额',
|
|
|
+ tax_amount DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '税额',
|
|
|
+ shipping_fee DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '运费',
|
|
|
+ discount_amount DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '折扣金额',
|
|
|
+ coupon_code VARCHAR(128) COMMENT '优惠券编码',
|
|
|
+ coupon_discount DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '优惠券折扣',
|
|
|
+ actual_paid DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '实付金额',
|
|
|
+ refund_amount DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '退款金额',
|
|
|
+ shipping_method VARCHAR(64) COMMENT '配送方式',
|
|
|
+ carrier_id BIGINT COMMENT '物流商ID',
|
|
|
+ carrier_name VARCHAR(128) COMMENT '物流商名称',
|
|
|
+ tracking_no VARCHAR(256) COMMENT '运单号',
|
|
|
+ tracking_url VARCHAR(512) COMMENT '追踪URL',
|
|
|
+ warehouse_id BIGINT COMMENT '仓库ID',
|
|
|
+ warehouse_location VARCHAR(128) COMMENT '库位',
|
|
|
+ estimated_delivery DATE COMMENT '预计送达日期',
|
|
|
+ weight DECIMAL(10,3) COMMENT '重量(kg)',
|
|
|
+ length DECIMAL(10,2) COMMENT '长度(cm)',
|
|
|
+ width DECIMAL(10,2) COMMENT '宽度(cm)',
|
|
|
+ height DECIMAL(10,2) COMMENT '高度(cm)',
|
|
|
+ utm_source VARCHAR(128) COMMENT 'UTM来源',
|
|
|
+ utm_medium VARCHAR(128) COMMENT 'UTM媒介',
|
|
|
+ utm_campaign VARCHAR(128) COMMENT 'UTM广告系列',
|
|
|
+ utm_content VARCHAR(256) COMMENT 'UTM内容',
|
|
|
+ utm_term VARCHAR(256) COMMENT 'UTM关键词',
|
|
|
+ referrer_url VARCHAR(1024) COMMENT ' referrer来源',
|
|
|
+ landing_page VARCHAR(512) COMMENT '落地页',
|
|
|
+ ip VARCHAR(64) COMMENT 'IP地址',
|
|
|
+ ip_country VARCHAR(64) COMMENT 'IP归属国',
|
|
|
+ device VARCHAR(64) COMMENT '设备类型',
|
|
|
+ browser VARCHAR(64) COMMENT '浏览器',
|
|
|
+ os VARCHAR(64) COMMENT '操作系统',
|
|
|
+ parent_order_id BIGINT COMMENT '母订单ID',
|
|
|
+ merge_order_id BIGINT COMMENT '合并订单ID',
|
|
|
+ related_order_id BIGINT COMMENT '关联订单ID',
|
|
|
+ original_order_id BIGINT COMMENT '原订单ID(补发用)',
|
|
|
+ handler_id BIGINT COMMENT '处理人ID',
|
|
|
+ handler_name VARCHAR(128) COMMENT '处理人姓名',
|
|
|
+ handler_group VARCHAR(64) COMMENT '处理组',
|
|
|
+ order_tags JSON COMMENT '订单标签',
|
|
|
+ internal_remark TEXT COMMENT '内部备注',
|
|
|
+ buyer_remark TEXT COMMENT '买家备注',
|
|
|
+ item_count INT NOT NULL DEFAULT 0 COMMENT '商品数量',
|
|
|
+ total_amount DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '订单总金额',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_order_no (order_no)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='订单主表';
|
|
|
+
|
|
|
+-- 订单明细表
|
|
|
+CREATE TABLE order_item (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ order_id BIGINT NOT NULL COMMENT '订单ID',
|
|
|
+ product_id BIGINT NOT NULL COMMENT '商品ID',
|
|
|
+ sku_id BIGINT NOT NULL COMMENT 'SKU ID',
|
|
|
+ sku VARCHAR(128) NOT NULL COMMENT 'SKU编码',
|
|
|
+ product_title VARCHAR(256) NOT NULL COMMENT '商品标题',
|
|
|
+ product_image VARCHAR(512) COMMENT '商品图片',
|
|
|
+ category_id VARCHAR(64) COMMENT '类目ID',
|
|
|
+ category_name VARCHAR(128) COMMENT '类目名称',
|
|
|
+ specs JSON COMMENT '规格信息',
|
|
|
+ barcode VARCHAR(128) COMMENT '条形码',
|
|
|
+ qty INT NOT NULL COMMENT '数量',
|
|
|
+ price DECIMAL(20,4) NOT NULL COMMENT '单价',
|
|
|
+ cost_price DECIMAL(20,4) NOT NULL COMMENT '成本价',
|
|
|
+ profit DECIMAL(20,4) COMMENT '利润',
|
|
|
+ profit_rate DECIMAL(8,4) COMMENT '利润率',
|
|
|
+ subtotal DECIMAL(20,4) NOT NULL COMMENT '小计金额',
|
|
|
+ weight DECIMAL(10,3) COMMENT '重量',
|
|
|
+ available INT NOT NULL DEFAULT 0 COMMENT '可用库存',
|
|
|
+ locked INT NOT NULL DEFAULT 0 COMMENT '锁定库存',
|
|
|
+ in_transit INT NOT NULL DEFAULT 0 COMMENT '在途库存',
|
|
|
+ reserved_qty INT NOT NULL DEFAULT 0 COMMENT '预留数量',
|
|
|
+ shipped_qty INT NOT NULL DEFAULT 0 COMMENT '已发货数量',
|
|
|
+ returned_qty INT NOT NULL DEFAULT 0 COMMENT '已退货数量',
|
|
|
+ gift_flag TINYINT(1) NOT NULL DEFAULT 0 COMMENT '赠品标记',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='订单明细表';
|
|
|
+
|
|
|
+-- 订单状态事件表
|
|
|
+CREATE TABLE order_status_event (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ order_id BIGINT NOT NULL COMMENT '订单ID',
|
|
|
+ status VARCHAR(64) NOT NULL COMMENT '状态',
|
|
|
+ time DATETIME NOT NULL COMMENT '时间',
|
|
|
+ title VARCHAR(256) NOT NULL COMMENT '标题',
|
|
|
+ summary VARCHAR(1024) COMMENT '摘要',
|
|
|
+ type VARCHAR(64) NOT NULL COMMENT '类型',
|
|
|
+ operator VARCHAR(128) COMMENT '操作人',
|
|
|
+ operator_role VARCHAR(64) COMMENT '操作人角色',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='订单状态事件表';
|
|
|
+
|
|
|
+-- 订单操作日志表
|
|
|
+CREATE TABLE order_operation_log (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ order_id BIGINT COMMENT '订单ID',
|
|
|
+ module VARCHAR(64) NOT NULL COMMENT '模块',
|
|
|
+ type VARCHAR(64) NOT NULL COMMENT '操作类型',
|
|
|
+ object_id VARCHAR(64) COMMENT '对象ID',
|
|
|
+ time DATETIME NOT NULL COMMENT '操作时间',
|
|
|
+ title VARCHAR(256) NOT NULL COMMENT '操作标题',
|
|
|
+ content TEXT COMMENT '操作内容',
|
|
|
+ operator VARCHAR(128) NOT NULL COMMENT '操作人',
|
|
|
+ operator_role VARCHAR(64) COMMENT '操作人角色',
|
|
|
+ result VARCHAR(64) COMMENT '操作结果',
|
|
|
+ source_ip VARCHAR(64) COMMENT '来源IP',
|
|
|
+ before_value TEXT COMMENT '变更前值',
|
|
|
+ after_value TEXT COMMENT '变更后值',
|
|
|
+ remark TEXT COMMENT '备注',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='订单操作日志表';
|
|
|
+
|
|
|
+-- 发货单表
|
|
|
+CREATE TABLE shipping_order (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ shipment_no VARCHAR(64) NOT NULL COMMENT '发货单号',
|
|
|
+ order_id BIGINT NOT NULL COMMENT '订单ID',
|
|
|
+ order_no VARCHAR(64) NOT NULL COMMENT '订单号',
|
|
|
+ warehouse_id BIGINT NOT NULL COMMENT '仓库ID',
|
|
|
+ items JSON NOT NULL COMMENT '发货商品明细',
|
|
|
+ sku_count INT NOT NULL DEFAULT 0 COMMENT 'SKU数量',
|
|
|
+ expected_qty INT NOT NULL DEFAULT 0 COMMENT '预期数量',
|
|
|
+ actual_qty INT NOT NULL DEFAULT 0 COMMENT '实际数量',
|
|
|
+ carrier_id BIGINT COMMENT '物流商ID',
|
|
|
+ carrier_name VARCHAR(128) COMMENT '物流商名称',
|
|
|
+ tracking_no VARCHAR(256) COMMENT '运单号',
|
|
|
+ shipping_status VARCHAR(32) NOT NULL DEFAULT 'PENDING_PICK' COMMENT '发货状态',
|
|
|
+ return_status VARCHAR(32) NOT NULL DEFAULT 'NOT_RETURNED' COMMENT '回传状态',
|
|
|
+ return_tracking_no VARCHAR(256) COMMENT '退件运单号',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ shipped_at DATETIME COMMENT '发货时间',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_shipment_no (shipment_no)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='发货单表';
|
|
|
+```
|
|
|
+
|
|
|
+#### 1.3.8 售后中心
|
|
|
+
|
|
|
+```sql
|
|
|
+-- 售后表
|
|
|
+CREATE TABLE after_sale (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ after_sale_no VARCHAR(64) NOT NULL COMMENT '售后单号',
|
|
|
+ order_id BIGINT NOT NULL COMMENT '订单ID',
|
|
|
+ order_no VARCHAR(64) NOT NULL COMMENT '订单号',
|
|
|
+ buyer_id VARCHAR(64) COMMENT '买家ID',
|
|
|
+ buyer VARCHAR(128) NOT NULL COMMENT '买家姓名',
|
|
|
+ type VARCHAR(32) NOT NULL COMMENT '售后类型',
|
|
|
+ amount DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '申请金额',
|
|
|
+ audit_status VARCHAR(32) NOT NULL DEFAULT 'PENDING' COMMENT '审核状态',
|
|
|
+ refund_status VARCHAR(32) NOT NULL DEFAULT 'NONE' COMMENT '退款状态',
|
|
|
+ reason VARCHAR(1024) NOT NULL COMMENT '申请原因',
|
|
|
+ responsibility VARCHAR(64) COMMENT '责任方',
|
|
|
+ refund_amount DECIMAL(20,4) COMMENT '实际退款金额',
|
|
|
+ refund_method VARCHAR(64) COMMENT '退款方式',
|
|
|
+ return_tracking_no VARCHAR(256) COMMENT '退货运单号',
|
|
|
+ return_carrier VARCHAR(128) COMMENT '退货物流商',
|
|
|
+ resend_warehouse_id BIGINT COMMENT '补发仓库ID',
|
|
|
+ resend_sku_id BIGINT COMMENT '补发SKU ID',
|
|
|
+ resend_order_id BIGINT COMMENT '补发订单ID',
|
|
|
+ audit_remark TEXT COMMENT '审核备注',
|
|
|
+ images JSON COMMENT '图片列表',
|
|
|
+ handler_id BIGINT COMMENT '处理人ID',
|
|
|
+ handler_name VARCHAR(128) COMMENT '处理人姓名',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_after_sale_no (after_sale_no)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='售后表';
|
|
|
+```
|
|
|
+
|
|
|
+#### 1.3.9 财务中心
|
|
|
+
|
|
|
+```sql
|
|
|
+-- 收款表
|
|
|
+CREATE TABLE finance_payment (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ order_id BIGINT COMMENT '订单ID',
|
|
|
+ payment_no VARCHAR(64) NOT NULL COMMENT '收款单号',
|
|
|
+ channel_order_no VARCHAR(128) COMMENT '渠道订单号',
|
|
|
+ channel_id BIGINT NOT NULL COMMENT '渠道ID',
|
|
|
+ shop_name VARCHAR(256) COMMENT '店铺名称',
|
|
|
+ currency VARCHAR(8) NOT NULL COMMENT '币种',
|
|
|
+ amount DECIMAL(20,4) NOT NULL COMMENT '收款金额',
|
|
|
+ fee DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '手续费',
|
|
|
+ pay_method VARCHAR(64) COMMENT '支付方式',
|
|
|
+ pay_time DATETIME COMMENT '支付时间',
|
|
|
+ transaction_no VARCHAR(128) COMMENT '交易流水号',
|
|
|
+ reconcile_status VARCHAR(32) NOT NULL DEFAULT 'PENDING' COMMENT '对账状态',
|
|
|
+ reconcile_time DATETIME COMMENT '对账时间',
|
|
|
+ remark VARCHAR(1024) COMMENT '备注',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_payment_no (payment_no)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='收款表';
|
|
|
+
|
|
|
+-- 退款表
|
|
|
+CREATE TABLE finance_refund (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ order_id BIGINT NOT NULL COMMENT '订单ID',
|
|
|
+ refund_no VARCHAR(64) NOT NULL COMMENT '退款单号',
|
|
|
+ channel_id BIGINT NOT NULL COMMENT '渠道ID',
|
|
|
+ channel_order_no VARCHAR(128) COMMENT '渠道订单号',
|
|
|
+ currency VARCHAR(8) NOT NULL COMMENT '币种',
|
|
|
+ refund_amount DECIMAL(20,4) NOT NULL COMMENT '退款金额',
|
|
|
+ refund_method VARCHAR(64) COMMENT '退款方式',
|
|
|
+ refund_time DATETIME COMMENT '退款时间',
|
|
|
+ refund_status VARCHAR(32) NOT NULL DEFAULT 'PENDING' COMMENT '退款状态',
|
|
|
+ channel_refund_no VARCHAR(128) COMMENT '渠道退款单号',
|
|
|
+ reason VARCHAR(1024) COMMENT '退款原因',
|
|
|
+ remark VARCHAR(1024) COMMENT '备注',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_refund_no (refund_no)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='退款表';
|
|
|
+
|
|
|
+-- 供应商结算表
|
|
|
+CREATE TABLE supplier_settlement (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ settlement_no VARCHAR(64) NOT NULL COMMENT '结算单号',
|
|
|
+ supplier_id BIGINT NOT NULL COMMENT '供应商ID',
|
|
|
+ period VARCHAR(32) NOT NULL COMMENT '结算周期',
|
|
|
+ purchase_order_ids JSON COMMENT '关联采购单ID列表',
|
|
|
+ payable_amount DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '应付金额',
|
|
|
+ paid_amount DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '已付金额',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'PENDING' COMMENT '结算状态',
|
|
|
+ paid_at DATETIME COMMENT '支付时间',
|
|
|
+ remark VARCHAR(1024) COMMENT '备注',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_settlement_no (settlement_no)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='供应商结算表';
|
|
|
+
|
|
|
+-- 发票表
|
|
|
+CREATE TABLE invoice (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ invoice_no VARCHAR(64) NOT NULL COMMENT '发票号',
|
|
|
+ invoice_type VARCHAR(32) NOT NULL COMMENT '发票类型',
|
|
|
+ order_id BIGINT COMMENT '订单ID',
|
|
|
+ buyer_name VARCHAR(256) NOT NULL COMMENT '购买方名称',
|
|
|
+ buyer_tax_no VARCHAR(128) COMMENT '购买方税号',
|
|
|
+ seller_name VARCHAR(256) NOT NULL COMMENT '销售方名称',
|
|
|
+ amount DECIMAL(20,4) NOT NULL COMMENT '发票金额',
|
|
|
+ tax_rate DECIMAL(8,4) NOT NULL COMMENT '税率',
|
|
|
+ tax_amount DECIMAL(20,4) NOT NULL COMMENT '税额',
|
|
|
+ invoice_date DATE NOT NULL COMMENT '开票日期',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'DRAFT' COMMENT '发票状态',
|
|
|
+ remark VARCHAR(1024) COMMENT '备注',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_invoice_no (invoice_no)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='发票表';
|
|
|
+```
|
|
|
+
|
|
|
+#### 1.3.10 客服中心
|
|
|
+
|
|
|
+```sql
|
|
|
+-- 工单表
|
|
|
+CREATE TABLE ticket (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ ticket_no VARCHAR(64) NOT NULL COMMENT '工单编号',
|
|
|
+ title VARCHAR(256) NOT NULL COMMENT '工单标题',
|
|
|
+ type VARCHAR(32) NOT NULL COMMENT '工单类型',
|
|
|
+ priority VARCHAR(32) NOT NULL DEFAULT 'MEDIUM' COMMENT '优先级',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'OPEN' COMMENT '工单状态',
|
|
|
+ creator VARCHAR(128) NOT NULL COMMENT '创建人',
|
|
|
+ assignee_id BIGINT COMMENT '受理人ID',
|
|
|
+ assignee_name VARCHAR(128) COMMENT '受理人姓名',
|
|
|
+ related_order_id BIGINT COMMENT '关联订单ID',
|
|
|
+ related_order_no VARCHAR(64) COMMENT '关联订单号',
|
|
|
+ content TEXT NOT NULL COMMENT '工单内容',
|
|
|
+ images JSON COMMENT '图片列表',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_ticket_no (ticket_no)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='工单表';
|
|
|
+
|
|
|
+-- 满意度评价表
|
|
|
+CREATE TABLE satisfaction (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ order_id BIGINT NOT NULL COMMENT '订单ID',
|
|
|
+ order_no VARCHAR(64) NOT NULL COMMENT '订单号',
|
|
|
+ channel_id BIGINT NOT NULL COMMENT '渠道ID',
|
|
|
+ source VARCHAR(64) COMMENT '来源',
|
|
|
+ buyer VARCHAR(128) COMMENT '买家',
|
|
|
+ product_title VARCHAR(256) COMMENT '商品标题',
|
|
|
+ rating INT NOT NULL COMMENT '评分',
|
|
|
+ content TEXT COMMENT '评价内容',
|
|
|
+ reply TEXT COMMENT '回复内容',
|
|
|
+ handle_status VARCHAR(32) NOT NULL DEFAULT 'PENDING' COMMENT '处理状态',
|
|
|
+ cs_id BIGINT COMMENT '客服ID',
|
|
|
+ cs_name VARCHAR(128) COMMENT '客服姓名',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='满意度评价表';
|
|
|
+```
|
|
|
+
|
|
|
+#### 1.3.11 AI客服
|
|
|
+
|
|
|
+```sql
|
|
|
+-- AI渠道配置表
|
|
|
+CREATE TABLE ai_channel (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ name VARCHAR(128) NOT NULL COMMENT '渠道名称',
|
|
|
+ code VARCHAR(64) NOT NULL COMMENT '渠道编码',
|
|
|
+ icon VARCHAR(64) COMMENT '图标',
|
|
|
+ enabled TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否启用',
|
|
|
+ robot_name VARCHAR(128) COMMENT '机器人名称',
|
|
|
+ robot_enabled TINYINT(1) NOT NULL DEFAULT 1 COMMENT '机器人是否启用',
|
|
|
+ auto_transfer_threshold INT NOT NULL DEFAULT 300 COMMENT '自动转人工阈值(秒)',
|
|
|
+ priority INT NOT NULL DEFAULT 0 COMMENT '优先级',
|
|
|
+ welcome_message TEXT COMMENT '欢迎语',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id),
|
|
|
+ UNIQUE KEY uk_ai_channel_code (code)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='AI渠道配置表';
|
|
|
+
|
|
|
+-- 知识库分类表
|
|
|
+CREATE TABLE knowledge_category (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ name VARCHAR(128) NOT NULL COMMENT '分类名称',
|
|
|
+ parent_id VARCHAR(64) COMMENT '父分类ID',
|
|
|
+ sort_order INT NOT NULL DEFAULT 0 COMMENT '排序',
|
|
|
+ count INT NOT NULL DEFAULT 0 COMMENT '条目数量',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='知识库分类表';
|
|
|
+
|
|
|
+-- 知识库表
|
|
|
+CREATE TABLE knowledge_base (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ category_id BIGINT NOT NULL COMMENT '分类ID',
|
|
|
+ category_name VARCHAR(128) NOT NULL COMMENT '分类名称',
|
|
|
+ keywords JSON COMMENT '关键词列表',
|
|
|
+ question VARCHAR(512) NOT NULL COMMENT '问题',
|
|
|
+ answer TEXT NOT NULL COMMENT '回答',
|
|
|
+ clicks INT NOT NULL DEFAULT 0 COMMENT '点击次数',
|
|
|
+ ai_score DECIMAL(5,2) NOT NULL DEFAULT 0 COMMENT 'AI评分',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'ENABLED' COMMENT '状态',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='知识库表';
|
|
|
+
|
|
|
+-- 自动回复规则表
|
|
|
+CREATE TABLE auto_reply_rule (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ name VARCHAR(128) NOT NULL COMMENT '规则名称',
|
|
|
+ priority INT NOT NULL DEFAULT 0 COMMENT '优先级',
|
|
|
+ trigger_type VARCHAR(32) NOT NULL COMMENT '触发类型',
|
|
|
+ keywords JSON COMMENT '关键词列表',
|
|
|
+ match_mode VARCHAR(32) NOT NULL DEFAULT 'CONTAIN' COMMENT '匹配模式',
|
|
|
+ responses JSON NOT NULL COMMENT '回复列表',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'ENABLED' COMMENT '规则状态',
|
|
|
+ hit_count INT NOT NULL DEFAULT 0 COMMENT '命中次数',
|
|
|
+ accuracy DECIMAL(5,2) NOT NULL DEFAULT 0 COMMENT '准确率',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='自动回复规则表';
|
|
|
+
|
|
|
+-- AI会话表
|
|
|
+CREATE TABLE chat_session (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ visitor_id BIGINT NOT NULL COMMENT '访客ID',
|
|
|
+ visitor_name VARCHAR(128) COMMENT '访客名称',
|
|
|
+ visitor_avatar VARCHAR(512) COMMENT '访客头像',
|
|
|
+ channel_id BIGINT NOT NULL COMMENT '渠道ID',
|
|
|
+ shop_name VARCHAR(256) COMMENT '店铺名称',
|
|
|
+ ai_handled TINYINT(1) NOT NULL DEFAULT 1 COMMENT 'AI处理标记',
|
|
|
+ agent_id BIGINT COMMENT '客服ID',
|
|
|
+ agent_name VARCHAR(128) COMMENT '客服名称',
|
|
|
+ satisfaction INT COMMENT '满意度评分',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'WAITING' COMMENT '会话状态',
|
|
|
+ source VARCHAR(64) COMMENT '来源',
|
|
|
+ device VARCHAR(64) COMMENT '设备',
|
|
|
+ location VARCHAR(128) COMMENT '位置',
|
|
|
+ intent VARCHAR(128) COMMENT '意图',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ ended_at DATETIME COMMENT '结束时间',
|
|
|
+ last_message_at DATETIME NOT NULL COMMENT '最后消息时间',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='AI会话表';
|
|
|
+
|
|
|
+-- AI消息表
|
|
|
+CREATE TABLE chat_message (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ session_id BIGINT NOT NULL COMMENT '会话ID',
|
|
|
+ role VARCHAR(32) NOT NULL COMMENT '发送者角色',
|
|
|
+ content TEXT NOT NULL COMMENT '消息内容',
|
|
|
+ attachments JSON COMMENT '附件列表',
|
|
|
+ timestamp DATETIME NOT NULL COMMENT '发送时间',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='AI消息表';
|
|
|
+
|
|
|
+-- 客服绩效表
|
|
|
+CREATE TABLE service_performance (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ agent_id BIGINT NOT NULL COMMENT '客服ID',
|
|
|
+ agent_name VARCHAR(128) NOT NULL COMMENT '客服名称',
|
|
|
+ agent_avatar VARCHAR(512) COMMENT '客服头像',
|
|
|
+ department VARCHAR(128) COMMENT '部门',
|
|
|
+ handle_count INT NOT NULL DEFAULT 0 COMMENT '处理数量',
|
|
|
+ ai_assist_count INT NOT NULL DEFAULT 0 COMMENT 'AI辅助次数',
|
|
|
+ avg_response_time DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '平均响应时间(秒)',
|
|
|
+ avg_first_response_time DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '平均首次响应时间(秒)',
|
|
|
+ satisfaction DECIMAL(5,2) NOT NULL DEFAULT 0 COMMENT '满意度',
|
|
|
+ solve_rate DECIMAL(5,2) NOT NULL DEFAULT 0 COMMENT '解决率',
|
|
|
+ date DATE NOT NULL COMMENT '统计日期',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='客服绩效表';
|
|
|
+```
|
|
|
+
|
|
|
+#### 1.3.12 营销中心
|
|
|
+
|
|
|
+```sql
|
|
|
+-- 促销活动表
|
|
|
+CREATE TABLE promotion (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ name VARCHAR(128) NOT NULL COMMENT '活动名称',
|
|
|
+ type VARCHAR(32) NOT NULL COMMENT '活动类型',
|
|
|
+ channel_id BIGINT NOT NULL COMMENT '渠道ID',
|
|
|
+ shop_name VARCHAR(256) COMMENT '店铺名称',
|
|
|
+ start_time DATETIME NOT NULL COMMENT '开始时间',
|
|
|
+ end_time DATETIME NOT NULL COMMENT '结束时间',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'DRAFT' COMMENT '活动状态',
|
|
|
+ discount VARCHAR(64) COMMENT '折扣信息',
|
|
|
+ min_amount DECIMAL(20,4) COMMENT '最低消费金额',
|
|
|
+ products JSON COMMENT '参与商品列表',
|
|
|
+ remark VARCHAR(1024) COMMENT '备注',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='促销活动表';
|
|
|
+
|
|
|
+-- 优惠券表
|
|
|
+CREATE TABLE coupon (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ name VARCHAR(128) NOT NULL COMMENT '优惠券名称',
|
|
|
+ coupon_type VARCHAR(32) NOT NULL COMMENT '优惠券类型',
|
|
|
+ value DECIMAL(20,4) NOT NULL COMMENT '优惠值',
|
|
|
+ min_amount DECIMAL(20,4) NOT NULL DEFAULT 0 COMMENT '最低消费金额',
|
|
|
+ total_count INT NOT NULL DEFAULT 0 COMMENT '发放总量',
|
|
|
+ used_count INT NOT NULL DEFAULT 0 COMMENT '已使用数量',
|
|
|
+ used_rate DECIMAL(5,2) NOT NULL DEFAULT 0 COMMENT '使用率',
|
|
|
+ valid_start DATETIME NOT NULL COMMENT '有效期开始',
|
|
|
+ valid_end DATETIME NOT NULL COMMENT '有效期结束',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'DRAFT' COMMENT '优惠券状态',
|
|
|
+ channels JSON COMMENT '可用渠道列表',
|
|
|
+ remark VARCHAR(1024) COMMENT '备注',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ created_by VARCHAR(64) COMMENT '创建人',
|
|
|
+ updated_by VARCHAR(64) COMMENT '更新人',
|
|
|
+ deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除标记',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='优惠券表';
|
|
|
+
|
|
|
+-- 价格监控表
|
|
|
+CREATE TABLE price_watch (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ sku_id BIGINT NOT NULL COMMENT 'SKU ID',
|
|
|
+ product_title VARCHAR(256) NOT NULL COMMENT '商品标题',
|
|
|
+ channel_id BIGINT NOT NULL COMMENT '渠道ID',
|
|
|
+ shop_name VARCHAR(256) COMMENT '店铺名称',
|
|
|
+ local_price DECIMAL(20,4) NOT NULL COMMENT '本地价格',
|
|
|
+ competitor_price DECIMAL(20,4) NOT NULL COMMENT '竞品价格',
|
|
|
+ price_diff DECIMAL(20,4) NOT NULL COMMENT '价格差异',
|
|
|
+ competitor_name VARCHAR(128) COMMENT '竞品名称',
|
|
|
+ competitor_url VARCHAR(512) COMMENT '竞品链接',
|
|
|
+ last_update DATETIME NOT NULL COMMENT '最后更新时间',
|
|
|
+ alert_status VARCHAR(32) NOT NULL DEFAULT 'NORMAL' COMMENT '预警状态',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='价格监控表';
|
|
|
+
|
|
|
+-- 供应商绩效表
|
|
|
+CREATE TABLE supplier_performance (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ supplier_id BIGINT NOT NULL COMMENT '供应商ID',
|
|
|
+ supplier_name VARCHAR(128) NOT NULL COMMENT '供应商名称',
|
|
|
+ contact VARCHAR(128) COMMENT '联系人',
|
|
|
+ phone VARCHAR(64) COMMENT '联系电话',
|
|
|
+ delivery_rate DECIMAL(5,2) NOT NULL DEFAULT 0 COMMENT '交货率',
|
|
|
+ quality_rate DECIMAL(5,2) NOT NULL DEFAULT 0 COMMENT '质量合格率',
|
|
|
+ response_time DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '响应时间(小时)',
|
|
|
+ return_rate DECIMAL(5,2) NOT NULL DEFAULT 0 COMMENT '退货率',
|
|
|
+ price_score DECIMAL(5,2) NOT NULL DEFAULT 0 COMMENT '价格评分',
|
|
|
+ overall_score DECIMAL(5,2) NOT NULL DEFAULT 0 COMMENT '综合评分',
|
|
|
+ rating_level VARCHAR(16) COMMENT '评级',
|
|
|
+ status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE' COMMENT '状态',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='供应商绩效表';
|
|
|
+```
|
|
|
+
|
|
|
+#### 1.3.13 报表中心
|
|
|
+
|
|
|
+```sql
|
|
|
+-- 库存周转表
|
|
|
+CREATE TABLE inventory_turnover (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
+ sku_id BIGINT NOT NULL COMMENT 'SKU ID',
|
|
|
+ product_title VARCHAR(256) NOT NULL COMMENT '商品标题',
|
|
|
+ warehouse_id BIGINT NOT NULL COMMENT '仓库ID',
|
|
|
+ turnover_days INT NOT NULL DEFAULT 0 COMMENT '周转天数',
|
|
|
+ sales_qty INT NOT NULL DEFAULT 0 COMMENT '销售数量',
|
|
|
+ avg_stock DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '平均库存',
|
|
|
+ alert_status VARCHAR(32) NOT NULL DEFAULT 'NORMAL' COMMENT '预警状态',
|
|
|
+ date DATE NOT NULL COMMENT '统计日期',
|
|
|
+ tenant_id VARCHAR(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '租户ID',
|
|
|
+ created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ PRIMARY KEY (id)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='库存周转表';
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 2. API接口文档
|
|
|
+
|
|
|
+**Base URL:** `/api/v1`
|
|
|
+**认证:** Bearer Token (JWT)
|
|
|
+**Content-Type:** `application/json`
|
|
|
+**分页:** page + size,默认 page=0, size=20
|
|
|
+
|
|
|
+### 2.1 通用响应格式
|
|
|
+
|
|
|
+```json
|
|
|
+{
|
|
|
+ "code": 200,
|
|
|
+ "message": "success",
|
|
|
+ "data": {},
|
|
|
+ "errors": [],
|
|
|
+ "timestamp": "2026-04-20T10:30:00",
|
|
|
+ "path": "/api/v1/orders"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+**分页响应:**
|
|
|
+```json
|
|
|
+{
|
|
|
+ "code": 200,
|
|
|
+ "message": "success",
|
|
|
+ "data": {
|
|
|
+ "content": [],
|
|
|
+ "totalElements": 100,
|
|
|
+ "totalPages": 5,
|
|
|
+ "size": 20,
|
|
|
+ "number": 0,
|
|
|
+ "first": true,
|
|
|
+ "last": false,
|
|
|
+ "numberOfElements": 20
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+**错误响应:**
|
|
|
+```json
|
|
|
+{
|
|
|
+ "code": 400,
|
|
|
+ "message": "参数错误",
|
|
|
+ "errors": [
|
|
|
+ {"field": "amount", "message": "金额必须大于0"}
|
|
|
+ ]
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+### 2.2 认证模块 `/auth`
|
|
|
+
|
|
|
+#### POST /auth/login
|
|
|
+登录
|
|
|
+```json
|
|
|
+// Request
|
|
|
+{
|
|
|
+ "username": "admin",
|
|
|
+ "password": "password123"
|
|
|
+}
|
|
|
+
|
|
|
+// Response 200
|
|
|
+{
|
|
|
+ "token": "eyJhbGciOiJIUzI1NiJ9...",
|
|
|
+ "expiresIn": 86400,
|
|
|
+ "user": {
|
|
|
+ "id": "u001",
|
|
|
+ "username": "admin",
|
|
|
+ "name": "管理员",
|
|
|
+ "role": "ADMIN",
|
|
|
+ "roleLabel": "超级管理员",
|
|
|
+ "workspace": "全栈",
|
|
|
+ "avatar": "https://..."
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+#### GET /auth/me
|
|
|
+获取当前用户信息
|
|
|
+
|
|
|
+#### POST /auth/logout
|
|
|
+登出
|
|
|
+
|
|
|
+#### POST /auth/refresh-token
|
|
|
+刷新Token
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 2.3 订单模块 `/orders`
|
|
|
+
|
|
|
+#### GET /orders
|
|
|
+订单列表
|
|
|
+```json
|
|
|
+// Query Parameters
|
|
|
+{
|
|
|
+ "page": 0,
|
|
|
+ "size": 20,
|
|
|
+ "orderNo": "OMS-20260420-001",
|
|
|
+ "channelId": "ch001",
|
|
|
+ "orderStatus": "PAID",
|
|
|
+ "paymentStatus": "PAID",
|
|
|
+ "shippingStatus": "UNSHIPPED",
|
|
|
+ "buyerCountry": "US",
|
|
|
+ "startDate": "2026-04-01",
|
|
|
+ "endDate": "2026-04-20",
|
|
|
+ "sort": "createdAt,desc"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+#### GET /orders/{id}
|
|
|
+订单详情
|
|
|
+
|
|
|
+#### POST /orders
|
|
|
+创建订单
|
|
|
+
|
|
|
+#### PUT /orders/{id}
|
|
|
+更新订单
|
|
|
+
|
|
|
+#### POST /orders/{id}/status
|
|
|
+更新订单状态
|
|
|
+```json
|
|
|
+// Request
|
|
|
+{
|
|
|
+ "status": "ALLOCATED",
|
|
|
+ "remark": "仓库已分配"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+#### POST /orders/{id}/allocate
|
|
|
+分配仓库(同时锁定库存)
|
|
|
+```json
|
|
|
+// Request
|
|
|
+{
|
|
|
+ "warehouseId": "wh001",
|
|
|
+ "warehouseLocation": "A-01-03"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 2.4 售后模块 `/after-sales`
|
|
|
+
|
|
|
+#### GET /after-sales
|
|
|
+售后列表
|
|
|
+
|
|
|
+#### GET /after-sales/{id}
|
|
|
+售后详情
|
|
|
+
|
|
|
+#### POST /after-sales
|
|
|
+创建售后单
|
|
|
+
|
|
|
+#### PUT /after-sales/{id}
|
|
|
+更新售后单
|
|
|
+
|
|
|
+#### POST /after-sales/{id}/audit
|
|
|
+审核售后
|
|
|
+```json
|
|
|
+// Request
|
|
|
+{
|
|
|
+ "action": "APPROVE",
|
|
|
+ "remark": "审核通过"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+#### POST /after-sales/{id}/refund
|
|
|
+发起退款
|
|
|
+
|
|
|
+#### POST /after-sales/{id}/receive
|
|
|
+确认退货入库
|
|
|
+
|
|
|
+#### POST /after-sales/{id}/resend
|
|
|
+生成补发单
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 2.5 库存模块 `/inventory`
|
|
|
+
|
|
|
+#### GET /inventory
|
|
|
+库存列表
|
|
|
+
|
|
|
+#### PUT /inventory/{id}
|
|
|
+更新库存
|
|
|
+
|
|
|
+#### POST /inventory/{id}/lock
|
|
|
+锁定库存
|
|
|
+
|
|
|
+#### POST /inventory/{id}/unlock
|
|
|
+解锁库存
|
|
|
+
|
|
|
+#### GET /inventory-logs
|
|
|
+库存流水记录
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 2.6 采购模块 `/purchase-orders`
|
|
|
+
|
|
|
+#### GET /purchase-orders
|
|
|
+采购单列表
|
|
|
+
|
|
|
+#### GET /purchase-orders/{id}
|
|
|
+采购单详情
|
|
|
+
|
|
|
+#### POST /purchase-orders
|
|
|
+创建采购单
|
|
|
+
|
|
|
+#### POST /purchase-orders/{id}/arrival
|
|
|
+确认到货
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 2.7 商品模块 `/products`
|
|
|
+
|
|
|
+#### GET /products
|
|
|
+商品列表
|
|
|
+
|
|
|
+#### GET /products/{id}
|
|
|
+商品详情
|
|
|
+
|
|
|
+#### POST /products
|
|
|
+创建商品
|
|
|
+
|
|
|
+#### PUT /products/{id}
|
|
|
+更新商品
|
|
|
+
|
|
|
+#### DELETE /products/{id}
|
|
|
+删除商品
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 2.8 财务模块 `/finance`
|
|
|
+
|
|
|
+#### GET /finance/payments
|
|
|
+收款列表
|
|
|
+
|
|
|
+#### POST /finance/payments/reconcile
|
|
|
+对账确认
|
|
|
+
|
|
|
+#### GET /finance/refunds
|
|
|
+退款列表
|
|
|
+
|
|
|
+#### POST /finance/refunds/{id}/execute
|
|
|
+执行退款
|
|
|
+
|
|
|
+#### GET /finance/settlements
|
|
|
+供应商结算列表
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 2.9 AI客服模块 `/crm/ai`
|
|
|
+
|
|
|
+#### GET /crm/ai/stats
|
|
|
+工作台统计
|
|
|
+
|
|
|
+#### GET /crm/ai/visitors
|
|
|
+在线访客
|
|
|
+
|
|
|
+#### GET /crm/ai/sessions
|
|
|
+会话列表
|
|
|
+
|
|
|
+#### GET /crm/ai/sessions/{id}
|
|
|
+会话详情
|
|
|
+
|
|
|
+#### POST /crm/ai/sessions/{id}/messages
|
|
|
+发送消息
|
|
|
+
|
|
|
+#### POST /crm/ai/sessions/{id}/transfer
|
|
|
+转人工
|
|
|
+
|
|
|
+#### GET /crm/ai/knowledge/categories
|
|
|
+知识库分类
|
|
|
+
|
|
|
+#### GET /crm/ai/knowledge/items
|
|
|
+知识库条目
|
|
|
+
|
|
|
+#### POST /crm/ai/knowledge/items
|
|
|
+创建知识条目
|
|
|
+
|
|
|
+#### POST /crm/ai/auto-reply/rules
|
|
|
+自动回复规则
|
|
|
+
|
|
|
+#### GET /crm/ai/performance
|
|
|
+客服绩效
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 3. 枚举值定义
|
|
|
+
|
|
|
+### 3.1 订单状态 (order_status)
|
|
|
+| 值 | 说明 |
|
|
|
+|----|------|
|
|
|
+| CREATED | 已创建 |
|
|
|
+| PAID | 已支付 |
|
|
|
+| ALLOCATED | 已分配仓库 |
|
|
|
+| SHIPPED | 已发货 |
|
|
|
+| DELIVERED | 已签收 |
|
|
|
+| COMPLETED | 已完成 |
|
|
|
+| CANCELLED | 已取消 |
|
|
|
+| REFUNDED | 已退款 |
|
|
|
+
|
|
|
+### 3.2 发货状态 (shipping_status)
|
|
|
+| 值 | 说明 |
|
|
|
+|----|------|
|
|
|
+| UNSHIPPED | 未发货 |
|
|
|
+| PARTIALLY_SHIPPED | 部分发货 |
|
|
|
+| SHIPPED | 已发货 |
|
|
|
+| IN_TRANSIT | 运输中 |
|
|
|
+| DELIVERED | 已签收 |
|
|
|
+| RETURNED | 已退货 |
|
|
|
+
|
|
|
+### 3.3 支付状态 (payment_status)
|
|
|
+| 值 | 说明 |
|
|
|
+|----|------|
|
|
|
+| UNPAID | 未支付 |
|
|
|
+| PAID | 已支付 |
|
|
|
+| PARTIALLY_REFUNDED | 部分退款 |
|
|
|
+| REFUNDED | 已退款 |
|
|
|
+
|
|
|
+### 3.4 售后类型 (after_sale_type)
|
|
|
+| 值 | 说明 |
|
|
|
+|----|------|
|
|
|
+| REFUND_ONLY | 仅退款 |
|
|
|
+| RESEND | 补发 |
|
|
|
+| RETURN_REFUND | 退货退款 |
|
|
|
+| COMPENSATION | 赔付 |
|
|
|
+
|
|
|
+### 3.5 售后审核状态 (after_sale_audit_status)
|
|
|
+| 值 | 说明 |
|
|
|
+|----|------|
|
|
|
+| PENDING | 待审核 |
|
|
|
+| APPROVED | 已通过 |
|
|
|
+| REJECTED | 已拒绝 |
|
|
|
+
|
|
|
+### 3.6 售后退款状态 (after_sale_refund_status)
|
|
|
+| 值 | 说明 |
|
|
|
+|----|------|
|
|
|
+| NONE | 无退款 |
|
|
|
+| UNREFUNDED | 未退款 |
|
|
|
+| REFUNDING | 退款中 |
|
|
|
+| REFUNDED | 已退款 |
|
|
|
+| RESEND | 已补发 |
|
|
|
+
|
|
|
+### 3.7 采购单状态 (purchase_order_status)
|
|
|
+| 值 | 说明 |
|
|
|
+|----|------|
|
|
|
+| DRAFT | 草稿 |
|
|
|
+| PENDING_APPROVAL | 待审批 |
|
|
|
+| APPROVED | 已审批 |
|
|
|
+| PARTIAL_ARRIVAL | 部分到货 |
|
|
|
+| COMPLETED | 已完成 |
|
|
|
+| CLOSED | 已关闭 |
|
|
|
+
|
|
|
+### 3.8 库存变动来源 (inventory_change_source)
|
|
|
+| 值 | 说明 |
|
|
|
+|----|------|
|
|
|
+| ORDER_ALLOCATION | 订单分配 |
|
|
|
+| PURCHASE_ARRIVAL | 采购到货 |
|
|
|
+| RETURN_IN | 退货入库 |
|
|
|
+| RETURN_OUT | 退货出库 |
|
|
|
+| ADJUSTMENT | 库存调整 |
|
|
|
+| SHIPMENT | 发货出库 |
|
|
|
+| TRANSFER | 仓库调拨 |
|
|
|
+
|
|
|
+### 3.9 用户角色 (user_role)
|
|
|
+| 值 | 说明 |
|
|
|
+|----|------|
|
|
|
+| ADMIN | 超级管理员 |
|
|
|
+| MANAGER | 经理 |
|
|
|
+| OPERATOR | 运营 |
|
|
|
+| PROCUREMENT | 采购 |
|
|
|
+| WAREHOUSE | 仓库 |
|
|
|
+| FINANCE | 财务 |
|
|
|
+| CUSTOMER_SERVICE | 客服 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 4. 业务闭环设计
|
|
|
+
|
|
|
+### 4.1 订单生命周期闭环
|
|
|
+
|
|
|
+```
|
|
|
+1. 订单创建 (CREATE)
|
|
|
+ └─ orders.order_status = CREATED
|
|
|
+
|
|
|
+2. 支付确认 (PAID)
|
|
|
+ ├─ finance_payment.reconcile_status = CONFIRMED
|
|
|
+ ├─ orders.payment_status = PAID
|
|
|
+ ├─ orders.order_status = PAID
|
|
|
+ └─ orders.paid_at = NOW()
|
|
|
+
|
|
|
+3. 仓库分配 (ALLOCATED)
|
|
|
+ ├─ orders.warehouse_id = xxx
|
|
|
+ ├─ orders.order_status = ALLOCATED
|
|
|
+ ├─ inventory.available -= qty (锁定)
|
|
|
+ ├─ inventory.locked += qty
|
|
|
+ ├─ inventory_log.source = ORDER_ALLOCATION
|
|
|
+ └─ order_status_event 记录状态变更
|
|
|
+
|
|
|
+4. 发货 (SHIPPED)
|
|
|
+ ├─ shipping_order.shipping_status = SHIPPED
|
|
|
+ ├─ shipping_order.tracking_no = xxx
|
|
|
+ ├─ orders.shipping_status = SHIPPED
|
|
|
+ ├─ orders.tracking_no = xxx
|
|
|
+ ├─ orders.shipped_at = NOW()
|
|
|
+ ├─ inventory.locked -= qty (释放锁定)
|
|
|
+ ├─ inventory.in_transit += qty
|
|
|
+ └─ inventory_log.source = SHIPMENT
|
|
|
+
|
|
|
+5. 签收 (DELIVERED)
|
|
|
+ ├─ orders.shipping_status = DELIVERED
|
|
|
+ ├─ orders.delivered_at = NOW()
|
|
|
+ └─ order_status_event 记录状态变更
|
|
|
+
|
|
|
+6. 完成 (COMPLETED)
|
|
|
+ ├─ orders.order_status = COMPLETED
|
|
|
+ └─ 触发满意度评价邀请
|
|
|
+
|
|
|
+7. 退款 (REFUNDED)
|
|
|
+ ├─ orders.refund_status = FULL_REFUND
|
|
|
+ ├─ orders.refund_amount = xxx
|
|
|
+ ├─ orders.order_status = REFUNDED
|
|
|
+ ├─ inventory.available += qty (回退库存)
|
|
|
+ ├─ inventory.locked -= qty
|
|
|
+ ├─ inventory_log.source = RETURN_IN
|
|
|
+ └─ finance_refund.status = COMPLETED
|
|
|
+
|
|
|
+8. 补发 (RESEND)
|
|
|
+ ├─ after_sale.resend_order_id = new_order_id
|
|
|
+ ├─ 创建新订单 (original_order_id = 原始订单ID)
|
|
|
+ ├─ 新订单走正常流程
|
|
|
+ └─ inventory.locked -= qty (补发锁定转实际出库)
|
|
|
+```
|
|
|
+
|
|
|
+### 4.2 采购入库闭环
|
|
|
+
|
|
|
+```
|
|
|
+1. 备货计划生成
|
|
|
+ └─ replenishment_plan.suggested_qty = 安全库存计算
|
|
|
+
|
|
|
+2. 采购单创建
|
|
|
+ ├─ purchase_order.status = DRAFT
|
|
|
+ └─ purchase_order_item 包含 SKU/数量/单价
|
|
|
+
|
|
|
+3. 到货确认
|
|
|
+ ├─ purchase_arrival 创建到货记录
|
|
|
+ ├─ purchase_order_item.arrived_qty += qty
|
|
|
+ ├─ purchase_order.status = PARTIAL_ARRIVAL
|
|
|
+ ├─ inventory.inbound -= qty (在途减少)
|
|
|
+ ├─ inventory.available += qty (可用增加)
|
|
|
+ └─ inventory_log.source = PURCHASE_ARRIVAL
|
|
|
+
|
|
|
+4. IQC 质检 (可选)
|
|
|
+ ├─ iqc.qualified_qty / unqualified_qty
|
|
|
+ ├─ 不合格品: inventory.available -= 不合格数量
|
|
|
+ └─ 不合格品走退货流程
|
|
|
+
|
|
|
+5. 采购单完成
|
|
|
+ └─ status = COMPLETED
|
|
|
+```
|
|
|
+
|
|
|
+### 4.3 库存事务闭环
|
|
|
+
|
|
|
+所有库存变动必须遵循以下原则:
|
|
|
+1. **原子性**: 库存更新和流水记录必须在同一事务中
|
|
|
+2. **可追溯**: 每条流水记录关联业务单据
|
|
|
+3. **双向记账**: 记录变动前数量、变动数量、变动后数量
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 5. 权限设计
|
|
|
+
|
|
|
+### 5.1 角色权限矩阵
|
|
|
+
|
|
|
+| 权限 | ADMIN | MANAGER | OPERATOR | PROCUREMENT | WAREHOUSE | FINANCE | CS |
|
|
|
+|------|-------|---------|---------|-------------|-----------|---------|-----|
|
|
|
+| 订单查看 | ✓ | ✓ | ✓ | | | ✓ | ✓ |
|
|
|
+| 订单创建 | ✓ | ✓ | ✓ | | | | |
|
|
|
+| 订单编辑 | ✓ | ✓ | ✓ | | | | |
|
|
|
+| 售后处理 | ✓ | ✓ | | | | | ✓ |
|
|
|
+| 退款处理 | ✓ | ✓ | | | | ✓ | |
|
|
|
+| 库存查看 | ✓ | ✓ | ✓ | ✓ | ✓ | | |
|
|
|
+| 库存调整 | ✓ | ✓ | | | ✓ | | |
|
|
|
+| 采购查看 | ✓ | ✓ | | ✓ | | | |
|
|
|
+| 采购创建 | ✓ | ✓ | | ✓ | | | |
|
|
|
+| 供应商管理 | ✓ | ✓ | | ✓ | | | |
|
|
|
+| 收款管理 | ✓ | ✓ | | | | ✓ | |
|
|
|
+| 报表查看 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
|
+| AI配置 | ✓ | ✓ | | | | | |
|
|
|
+| 系统配置 | ✓ | | | | | | |
|
|
|
+
|
|
|
+### 5.2 权限码定义
|
|
|
+
|
|
|
+```
|
|
|
+ORDER_VIEW - 查看订单
|
|
|
+ORDER_CREATE - 创建订单
|
|
|
+ORDER_EDIT - 编辑订单
|
|
|
+ORDER_DELETE - 删除订单
|
|
|
+ORDER_CANCEL - 取消订单
|
|
|
+ORDER_ALLOCATE - 分配仓库
|
|
|
+REFUND_VIEW - 查看退款
|
|
|
+REFUND_CREATE - 发起退款
|
|
|
+REFUND_APPROVE - 审批退款
|
|
|
+INVENTORY_VIEW - 查看库存
|
|
|
+INVENTORY_EDIT - 调整库存
|
|
|
+INVENTORY_LOCK - 锁定库存
|
|
|
+SUPPLIER_VIEW - 查看供应商
|
|
|
+SUPPLIER_CREATE - 创建供应商
|
|
|
+SUPPLIER_EDIT - 编辑供应商
|
|
|
+PURCHASE_VIEW - 查看采购单
|
|
|
+PURCHASE_CREATE - 创建采购单
|
|
|
+PURCHASE_EDIT - 编辑采购单
|
|
|
+PURCHASE_APPROVE - 审批采购单
|
|
|
+FINANCE_VIEW - 查看财务
|
|
|
+FINANCE_PAY - 付款
|
|
|
+FINANCE_SETTLE - 结算
|
|
|
+PRODUCT_VIEW - 查看商品
|
|
|
+PRODUCT_CREATE - 创建商品
|
|
|
+PRODUCT_EDIT - 编辑商品
|
|
|
+PRODUCT_DELETE - 删除商品
|
|
|
+CHANNEL_VIEW - 查看渠道
|
|
|
+CHANNEL_EDIT - 编辑渠道
|
|
|
+AI_VIEW - 查看AI数据
|
|
|
+AI_CONFIG - 配置AI
|
|
|
+SYSTEM_CONFIG - 系统配置
|
|
|
+USER_MANAGE - 用户管理
|
|
|
+ROLE_MANAGE - 角色管理
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+*文档版本: 1.0.0*
|
|
|
+*最后更新: 2026-04-20*
|