admin/db.sql
zzh 674cbdd011 feat: 店铺真授权跳转与地址类型(发件/退件/收件)
对接 Lazada/Shopee/TikTok/Temu OAuth 与回调落库,移除手工店;地址管理支持按类型默认与揽收校验。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 10:25:13 +08:00

2001 lines
104 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- OMS Admin schema
-- Target database: MySQL 8.0+
-- Notes:
-- 1. Physical foreign keys are intentionally omitted. The project uses logical foreign keys plus indexes to reduce import friction,
-- avoid circular dependency issues, and better fit soft-delete based business flows.
-- 2. The source spec references `t_sales_product_allocation_rule`, but no concrete table definition exists. The actual design stores
-- allocation scheme on `t_sales_product` and provider rows on `t_sales_product_allocation_provider`.
-- 3. `t_order` keeps SenderId/RecipientId/DeclarationId for compatibility with the original spec, while child tables also keep OrderId.
-- 4. Incremental `sql/migrate_*.sql` scripts are retired; this file is the single source of truth for OMS DDL.
-- 5. Data-permission tables (`user_org_perm` etc.) live here when RBAC and OMS share one MySQL database.
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS `data_perm_access_log`;
DROP TABLE IF EXISTS `data_perm_change_log`;
DROP TABLE IF EXISTS `data_perm_template_item`;
DROP TABLE IF EXISTS `data_perm_template`;
DROP TABLE IF EXISTS `data_perm_field_mask`;
DROP TABLE IF EXISTS `data_resource`;
DROP TABLE IF EXISTS `user_filter_rule`;
DROP TABLE IF EXISTS `role_filter_rule`;
DROP TABLE IF EXISTS `user_secret_perm`;
DROP TABLE IF EXISTS `role_secret_perm`;
DROP TABLE IF EXISTS `user_biz_perm`;
DROP TABLE IF EXISTS `role_biz_perm`;
DROP TABLE IF EXISTS `user_data_scope`;
DROP TABLE IF EXISTS `role_data_scope`;
DROP TABLE IF EXISTS `role_org_perm`;
DROP TABLE IF EXISTS `user_org_perm`;
DROP TABLE IF EXISTS `t_xhs_media`;
DROP TABLE IF EXISTS `t_xhs_ai_provider`;
DROP TABLE IF EXISTS `t_xhs_human_config`;
DROP TABLE IF EXISTS `t_xhs_skill`;
DROP TABLE IF EXISTS `t_xhs_analysis_session`;
DROP TABLE IF EXISTS `t_xhs_publish_record`;
DROP TABLE IF EXISTS `t_xhs_task`;
DROP TABLE IF EXISTS `t_xhs_agent`;
DROP TABLE IF EXISTS `C_inbound_box_line`;
DROP TABLE IF EXISTS `C_inbound_box`;
DROP TABLE IF EXISTS `C_inbound_notice`;
DROP TABLE IF EXISTS `C_parcel_item`;
DROP TABLE IF EXISTS `C_parcel_arrival`;
DROP TABLE IF EXISTS `C_parcel`;
DROP TABLE IF EXISTS `C_inventory`;
DROP TABLE IF EXISTS `C_sku_platform_map`;
DROP TABLE IF EXISTS `C_sku`;
DROP TABLE IF EXISTS `C_bin_location`;
DROP TABLE IF EXISTS `t_sales_store_order_line`;
DROP TABLE IF EXISTS `t_sales_store_order`;
DROP TABLE IF EXISTS `t_sales_store`;
DROP TABLE IF EXISTS `t_customer_account_flow`;
DROP TABLE IF EXISTS `t_system_batch_email_record`;
DROP TABLE IF EXISTS `t_system_batch_email_account`;
DROP TABLE IF EXISTS `t_system_batch_email_template`;
DROP TABLE IF EXISTS `t_system_other_config`;
DROP TABLE IF EXISTS `t_warehouse_address`;
DROP TABLE IF EXISTS `t_notice_read`;
DROP TABLE IF EXISTS `t_notice`;
DROP TABLE IF EXISTS `t_dict`;
DROP TABLE IF EXISTS `t_country`;
DROP TABLE IF EXISTS `t_recharge_record`;
DROP TABLE IF EXISTS `t_customer`;
DROP TABLE IF EXISTS `t_label_print_record`;
DROP TABLE IF EXISTS `t_outbound_record`;
DROP TABLE IF EXISTS `t_inbound_record`;
DROP TABLE IF EXISTS `t_label_template`;
DROP TABLE IF EXISTS `t_issue_template`;
DROP TABLE IF EXISTS `t_auto_trigger`;
DROP TABLE IF EXISTS `t_weight_rounding_info`;
DROP TABLE IF EXISTS `t_weight_rounding`;
DROP TABLE IF EXISTS `t_weight_rule_info`;
DROP TABLE IF EXISTS `t_weight_rule`;
DROP TABLE IF EXISTS `t_kpi_area_info`;
DROP TABLE IF EXISTS `t_kpi_area`;
DROP TABLE IF EXISTS `t_service_channel_publish_record`;
DROP TABLE IF EXISTS `t_service_channel_price_detail`;
DROP TABLE IF EXISTS `t_service_channel_price_factor`;
DROP TABLE IF EXISTS `t_service_channel_price`;
DROP TABLE IF EXISTS `t_service_channel`;
DROP TABLE IF EXISTS `t_service_channel_group`;
DROP TABLE IF EXISTS `t_sales_product_publish_record`;
DROP TABLE IF EXISTS `t_sales_product_allocation_provider`;
DROP TABLE IF EXISTS `t_sales_product_price_detail`;
DROP TABLE IF EXISTS `t_sales_product_price_factor`;
DROP TABLE IF EXISTS `t_sales_product_price`;
DROP TABLE IF EXISTS `t_sales_product`;
DROP TABLE IF EXISTS `t_order_fee`;
DROP TABLE IF EXISTS `t_order_weight`;
DROP TABLE IF EXISTS `t_order_declaration`;
DROP TABLE IF EXISTS `t_order_recipient`;
DROP TABLE IF EXISTS `t_order_sender`;
DROP TABLE IF EXISTS `t_order_task_fail`;
DROP TABLE IF EXISTS `t_order_task`;
DROP TABLE IF EXISTS `t_order_batch_job_item`;
DROP TABLE IF EXISTS `t_order_batch_job`;
DROP TABLE IF EXISTS `t_order_template`;
DROP TABLE IF EXISTS `t_order_exception_event`;
DROP TABLE IF EXISTS `t_order`;
CREATE TABLE `t_order` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`RequestId` VARCHAR(64) NULL COMMENT '请求幂等ID',
`ServiceNo` VARCHAR(64) NOT NULL COMMENT '运单号',
`ClientNo` VARCHAR(64) NULL COMMENT '客户单号',
`TrackNo` VARCHAR(64) NULL COMMENT '跟踪号',
`ProductCode` VARCHAR(128) NULL COMMENT '产品编码',
`ChannelCode` VARCHAR(128) NULL COMMENT '渠道编码',
`DownstreamSupplierCode` VARCHAR(64) NULL COMMENT '下游 API 服务商编码 supplierCode',
`DownstreamAppKey` VARCHAR(128) NULL COMMENT '下游 itfx 应用 AppKey',
`DownstreamAppId` INT NULL COMMENT '下游 itfx 应用 Id',
`ChannelForecastCode` VARCHAR(128) NULL COMMENT '渠道预报编码 ForecastCode',
`ConsigneeCountry` VARCHAR(8) NULL COMMENT '国家二字码',
`ConsigneeCountryName` VARCHAR(64) NULL COMMENT '国家中文名称',
`CargoAttribute` VARCHAR(32) NULL COMMENT '货物属性:general/electronics/sensitive',
`ExportCustomsMode` VARCHAR(32) NULL COMMENT '出口报关方式',
`PredeclareFailReason` VARCHAR(512) NULL COMMENT '预报失败原因',
`SalesProductRulesVersion` VARCHAR(64) NULL COMMENT '销售产品规则快照版本',
`SalesProductPriceVersion` VARCHAR(64) NULL COMMENT '销售产品价格快照版本',
`OrderStatus` VARCHAR(32) NOT NULL COMMENT '订单状态',
`HandleStatus` VARCHAR(16) NULL COMMENT '处理子状态:pending/processed',
`IssueType` VARCHAR(32) NULL COMMENT '问题类型',
`IssueTitle` VARCHAR(128) NULL COMMENT '问题标题',
`IssueContent` TEXT NULL COMMENT '问题内容',
`IssueTemplateId` INT NULL COMMENT '问题模板Id',
`IssueRemark` VARCHAR(512) NULL COMMENT '问题备注',
`IssueTime` DATETIME NULL COMMENT '标记问题件时间',
`ClaimType` VARCHAR(32) NULL COMMENT '理赔类型',
`ClaimAmount` DECIMAL(18,4) NULL COMMENT '索赔金额',
`ClaimCurrency` VARCHAR(16) NULL COMMENT '索赔币种',
`ClaimReason` VARCHAR(512) NULL COMMENT '理赔原因',
`ClaimTime` DATETIME NULL COMMENT '创建理赔件时间',
`PreviousOrderStatus` VARCHAR(32) NULL COMMENT '进入异常状态前的订单状态',
`WarehouseId` INT NULL COMMENT '仓库ID',
`CustomerId` INT NULL COMMENT '客户ID',
`OrderSource` VARCHAR(32) NULL COMMENT '订单来源:manual/pickup/upload/batch/platform',
`PickupTime` DATETIME NULL COMMENT '预约揽收时间',
`CustomerSenderAddressId` INT NULL COMMENT '发件地址簿 Id',
`OrganizationId` CHAR(36) NULL COMMENT '数据归属组织',
`SecretLevel` TINYINT NOT NULL DEFAULT 2 COMMENT '数据密级 1-4',
`SenderId` INT NULL COMMENT '发件人ID',
`RecipientId` INT NULL COMMENT '收件人ID',
`DeclarationId` INT NULL COMMENT '申报信息ID',
`ReceiveTime` DATETIME NULL COMMENT '收货时间',
`ShipTime` DATETIME NULL COMMENT '发货时间',
`PayTime` DATETIME NULL COMMENT '支付时间',
`IsPaid` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已支付:0-否,1-是',
`SignTime` DATETIME NULL COMMENT '签收时间',
`IsCod` TINYINT NOT NULL DEFAULT 0 COMMENT '是否COD:0-否,1-是',
`CodCurrency` VARCHAR(16) NULL COMMENT 'COD币种',
`CodSum` DECIMAL(18,4) NULL COMMENT 'COD金额',
`DeclaredCurrency` VARCHAR(16) NULL COMMENT '申报币种',
`DeclaredSum` DECIMAL(18,4) NULL COMMENT '申报金额',
`Quantity` INT NULL COMMENT '包裹数量',
`IsIntercept` TINYINT NOT NULL DEFAULT 0 COMMENT '是否拦截:0-否,1-是',
`IsRemote` TINYINT NOT NULL DEFAULT 0 COMMENT '是否偏远:0-否,1-是',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_ord_service_no` (`ServiceNo`),
UNIQUE KEY `uk_ord_request_id` (`RequestId`),
KEY `idx_ord_customer_status_ctime` (`CustomerId`, `OrderStatus`, `CreateTime`),
KEY `idx_ord_track_no` (`TrackNo`),
KEY `idx_ord_client_no` (`ClientNo`),
KEY `idx_ord_product_channel` (`ProductCode`, `ChannelCode`),
KEY `idx_ord_warehouse_status` (`WarehouseId`, `OrderStatus`),
KEY `idx_ord_sender` (`SenderId`),
KEY `idx_ord_recipient` (`RecipientId`),
KEY `idx_ord_declaration` (`DeclarationId`),
KEY `idx_ord_org_secret_ctime` (`OrganizationId`, `SecretLevel`, `CreateTime`),
KEY `idx_ord_source_ctime` (`OrderSource`, `CreateTime`)
) COMMENT='订单表';
CREATE TABLE `t_customer_sender_address` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`CustomerId` INT NOT NULL COMMENT '归属客户 t_customer.Id',
`AddressType` VARCHAR(16) NOT NULL DEFAULT 'sender' COMMENT '地址类型:sender发件/return退件/receiver收件',
`AddressName` VARCHAR(64) NULL COMMENT '地址别名',
`SenderName` VARCHAR(50) NOT NULL COMMENT '联系人姓名',
`Company` VARCHAR(255) NULL COMMENT '公司',
`Country` INT NULL COMMENT '国家 t_country.Id',
`Province` VARCHAR(50) NULL COMMENT '州省',
`City` VARCHAR(50) NULL COMMENT '城市',
`ZipCode` VARCHAR(50) NULL COMMENT '邮编',
`StreetAddress1` VARCHAR(500) NOT NULL COMMENT '地址1',
`StreetAddress2` VARCHAR(500) NULL COMMENT '地址2',
`StreetAddress3` VARCHAR(500) NULL COMMENT '地址3',
`HouseNumber` VARCHAR(50) NULL COMMENT '门牌号',
`Phone` VARCHAR(50) NULL COMMENT '手机',
`TelePhone` VARCHAR(50) NULL COMMENT '电话',
`Email` VARCHAR(60) NULL COMMENT '邮箱',
`IsDefault` TINYINT NOT NULL DEFAULT 0 COMMENT '是否默认:0-否,1-是(同客户同类型仅一条)',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_csa_customer` (`CustomerId`, `IsDeleted`, `Id`),
KEY `idx_csa_customer_type` (`CustomerId`, `AddressType`, `IsDeleted`, `Id`),
KEY `idx_csa_customer_default` (`CustomerId`, `AddressType`, `IsDefault`)
) COMMENT='客户地址簿(发件/退件/收件)';
CREATE TABLE `t_order_template` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`Name` VARCHAR(64) NOT NULL COMMENT '模板名称',
`Type` VARCHAR(16) NOT NULL COMMENT 'standard/custom',
`TemplateKey` VARCHAR(64) NULL COMMENT '模板标识',
`CustomerId` INT NULL COMMENT '客户ID(自定义模板)',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_ord_tpl_type_key` (`Type`, `TemplateKey`),
KEY `idx_ord_tpl_customer_type` (`CustomerId`, `Type`)
) COMMENT='下单模板表';
CREATE TABLE `t_order_task` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`TaskName` VARCHAR(128) NOT NULL COMMENT '任务名称',
`Quantity` INT NULL COMMENT '数量',
`SuccessCount` INT NULL COMMENT '成功数',
`FailCount` INT NULL COMMENT '失败数',
`Status` VARCHAR(16) NOT NULL COMMENT '任务状态:processing/completed/pending',
`TemplateId` INT NULL COMMENT '模板ID',
`CustomerId` INT NULL COMMENT '客户ID',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_ord_task_customer_status_ctime` (`CustomerId`, `Status`, `CreateTime`),
KEY `idx_ord_task_template` (`TemplateId`)
) COMMENT='下单任务表';
CREATE TABLE `t_order_task_fail` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`TaskId` INT NOT NULL COMMENT '任务ID',
`RowNumber` INT NOT NULL COMMENT 'Excel行号',
`Reason` VARCHAR(512) NOT NULL COMMENT '失败原因',
`RawDataJson` JSON NULL COMMENT '原始行数据',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_ord_task_fail_task` (`TaskId`),
KEY `idx_ord_task_fail_row` (`TaskId`, `RowNumber`)
) COMMENT='下单任务失败明细表';
CREATE TABLE `t_order_batch_job` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`Action` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '批量操作类型:pay/pre-declare/intercept/parcel-create 等',
`Status` VARCHAR(32) NOT NULL DEFAULT 'pending' COMMENT '任务状态:pending/running/completed/failed/cancelled',
`Total` INT NOT NULL DEFAULT 0 COMMENT '子项总数',
`SuccessCount` INT NOT NULL DEFAULT 0 COMMENT '成功数',
`FailCount` INT NOT NULL DEFAULT 0 COMMENT '失败数',
`CustomerId` INT NULL COMMENT '客户ID',
`PayloadJson` JSON NULL COMMENT '任务级扩展参数(JSON)',
`RequestId` VARCHAR(64) NULL COMMENT '请求幂等ID',
`StartedAt` DATETIME NULL COMMENT '开始执行时间',
`FinishedAt` DATETIME NULL COMMENT '结束时间',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_order_batch_job_request` (`RequestId`),
KEY `idx_order_batch_job_status` (`Status`)
) COMMENT='订单批量异步任务表';
CREATE TABLE `t_order_batch_job_item` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`JobId` INT NOT NULL COMMENT '批量任务ID',
`OrderId` INT NOT NULL COMMENT '订单ID',
`ServiceNo` VARCHAR(64) NULL COMMENT '运单号',
`Action` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '子项操作类型,通常与任务 Action 一致',
`Status` VARCHAR(32) NOT NULL DEFAULT 'pending' COMMENT '子项状态:pending/running/success/failed/cancelled',
`MessageId` VARCHAR(128) NULL COMMENT 'RabbitMQ 消息ID,用于幂等与去重',
`FailReason` TEXT NULL COMMENT '失败原因',
`PayloadJson` TEXT NULL COMMENT '子项入参快照(JSON)',
`ResultJson` TEXT NULL COMMENT '子项执行结果快照(JSON)',
`RetryCount` INT NOT NULL DEFAULT 0 COMMENT '系统重试次数',
`StartedAt` DATETIME NULL COMMENT '开始执行时间',
`FinishedAt` DATETIME NULL COMMENT '结束时间',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_order_batch_job_item_message` (`MessageId`),
KEY `idx_order_batch_job_item_job` (`JobId`),
KEY `idx_order_batch_job_item_order` (`OrderId`)
) COMMENT='订单批量异步任务明细表';
CREATE TABLE `t_order_sender` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`OrderId` INT NOT NULL COMMENT '订单ID',
`SenderName` VARCHAR(50) NULL COMMENT '姓名',
`Company` VARCHAR(255) NULL COMMENT '公司',
`Country` INT NULL COMMENT '国家',
`Province` VARCHAR(50) NULL COMMENT '州省',
`City` VARCHAR(50) NULL COMMENT '城市',
`ZipCode` VARCHAR(50) NULL COMMENT '邮编',
`StreetAddress1` VARCHAR(500) NULL COMMENT '地址1',
`StreetAddress2` VARCHAR(500) NULL COMMENT '地址2',
`StreetAddress3` VARCHAR(500) NULL COMMENT '地址3',
`HouseNumber` VARCHAR(50) NULL COMMENT '门牌号',
`Phone` VARCHAR(50) NULL COMMENT '手机',
`TelePhone` VARCHAR(50) NULL COMMENT '电话',
`Email` VARCHAR(60) NULL COMMENT '邮箱',
`IsDefault` TINYINT NOT NULL DEFAULT 0 COMMENT '是否默认:0-否,1-是',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_ord_sender_order` (`OrderId`),
KEY `idx_ord_sender_phone` (`Phone`)
) COMMENT='订单发件人表';
CREATE TABLE `t_order_recipient` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`OrderId` INT NOT NULL COMMENT '订单ID',
`RecipientsName` VARCHAR(30) NULL COMMENT '收件人名称',
`CompanyName` VARCHAR(60) NULL COMMENT '收件人公司名称',
`Country` INT NULL COMMENT '国家',
`Phone` VARCHAR(20) NULL COMMENT '收件人手机',
`TelePhone` VARCHAR(20) NULL COMMENT '收件人电话',
`ZipCode` VARCHAR(15) NULL COMMENT '收件人邮编',
`Province` VARCHAR(25) NULL COMMENT '收件人省/州',
`City` VARCHAR(25) NULL COMMENT '收件人城市',
`StreetNumber` VARCHAR(20) NULL COMMENT '收件人门牌号',
`StreetAddress1` VARCHAR(255) NULL COMMENT '收件人地址1',
`StreetAddress2` VARCHAR(255) NULL COMMENT '收件人地址2',
`StreetAddress3` VARCHAR(255) NULL COMMENT '收件人地址3',
`Email` VARCHAR(60) NULL COMMENT '收件人邮箱',
`TaxType` INT NULL COMMENT '税号类型',
`TaxNo` VARCHAR(35) NULL COMMENT '税号',
`CertificateType` INT NULL COMMENT '证件类型',
`CertificateNo` VARCHAR(30) NULL COMMENT '证件号码',
`Eori` VARCHAR(255) NULL COMMENT 'EORI',
`Vat` VARCHAR(255) NULL COMMENT 'Vat',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_ord_rec_order` (`OrderId`),
KEY `idx_ord_rec_phone` (`Phone`),
KEY `idx_ord_rec_zip` (`ZipCode`)
) COMMENT='订单收件人表';
CREATE TABLE `t_order_declaration` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`OrderId` INT NOT NULL COMMENT '订单ID',
`CnName` VARCHAR(500) NULL COMMENT '品名-中文',
`EnName` VARCHAR(500) NULL COMMENT '品名-英文',
`Sku` VARCHAR(255) NULL COMMENT 'SKU',
`Unit` VARCHAR(5) NULL COMMENT '单位',
`UnitPrice` DECIMAL(10,2) NULL COMMENT '单价',
`UnitWeight` DECIMAL(11,3) NULL COMMENT '单重',
`Quantity` INT NULL COMMENT '数量',
`Amount` DECIMAL(11,2) NULL COMMENT '总金额',
`Weight` DECIMAL(11,3) NULL COMMENT '总重量',
`HsCode` VARCHAR(50) NULL COMMENT 'HsCode',
`ImHsCode` VARCHAR(50) NULL COMMENT '进口HsCode',
`ExHsCode` VARCHAR(50) NULL COMMENT '出口HsCode',
`SkuImage` VARCHAR(255) NULL COMMENT '图片',
`Category` VARCHAR(20) NULL COMMENT '类别',
`Brand` VARCHAR(50) NULL COMMENT '品牌',
`BrandType` VARCHAR(50) NULL COMMENT '品牌类型',
`IsMagnetic` TINYINT NOT NULL DEFAULT 0 COMMENT '是否带磁带电:0-否,1-是',
`Distribution` VARCHAR(255) NULL COMMENT '配货信息',
`Material` VARCHAR(50) NULL COMMENT '材质',
`EnMaterial` VARCHAR(64) NULL COMMENT '英文材质',
`Purpose` VARCHAR(50) NULL COMMENT '用途',
`Attributes` VARCHAR(50) NULL COMMENT '属性',
`OriginCountry` VARCHAR(50) NULL COMMENT '原产国',
`SalesLink` VARCHAR(255) NULL COMMENT '销售链接',
`Model` VARCHAR(64) NULL COMMENT '型号',
`Specifications` VARCHAR(50) NULL COMMENT '规格',
`Comment` VARCHAR(500) NULL COMMENT '备注',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_ord_decl_order` (`OrderId`),
KEY `idx_ord_decl_sku` (`Sku`)
) COMMENT='订单申报信息表';
CREATE TABLE `t_order_weight` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`OrderId` INT NOT NULL COMMENT '订单ID',
`Type` VARCHAR(16) NOT NULL COMMENT '类型:forecast/receive/ship/downstream',
`Length` DECIMAL(10,2) NULL COMMENT '长(cm)',
`Width` DECIMAL(10,2) NULL COMMENT '宽(cm)',
`Height` DECIMAL(10,2) NULL COMMENT '高(cm)',
`ActualWeight` DECIMAL(10,3) NULL COMMENT '实重(kg)',
`VolumetricWeight` DECIMAL(10,3) NULL COMMENT '体积重(kg)',
`ChargeableWeight` DECIMAL(10,3) NULL COMMENT '计费重(kg)',
`Cubic` DECIMAL(12,6) NULL COMMENT '立方(m³)',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_ord_wgt_order_type` (`OrderId`, `Type`)
) COMMENT='订单件重尺表';
CREATE TABLE `t_order_fee` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`OrderId` INT NOT NULL COMMENT '订单ID',
`Type` VARCHAR(16) NOT NULL COMMENT '类型:receivable/payable',
`CostItem` VARCHAR(64) NOT NULL COMMENT '费用项',
`Amount` DECIMAL(18,4) NOT NULL COMMENT '金额',
`Currency` VARCHAR(16) NOT NULL COMMENT '币种:RMB/USD/EUR',
`DownstreamProvider` VARCHAR(128) NULL COMMENT '下游服务商',
`PriceNo` VARCHAR(64) NULL COMMENT '价格编号',
`PriceEffectiveTime` DATETIME NULL COMMENT '价格编号生效时间',
`ChargingStage` VARCHAR(16) NULL COMMENT '计费阶段:forecast/inbound/outbound',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_ord_fee_order_type` (`OrderId`, `Type`),
KEY `idx_ord_fee_order_item` (`OrderId`, `CostItem`),
KEY `idx_ord_fee_price_no` (`PriceNo`)
) COMMENT='订单费用表';
CREATE TABLE `t_order_exception_event` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`OrderId` INT NOT NULL COMMENT '订单Id',
`EventType` VARCHAR(32) NOT NULL COMMENT 'mark_problematic/mark_claimed/handle_processed',
`FromStatus` VARCHAR(32) NULL COMMENT '变更前OrderStatus',
`ToStatus` VARCHAR(32) NULL COMMENT '变更后OrderStatus',
`FromHandleStatus` VARCHAR(16) NULL COMMENT '变更前HandleStatus',
`ToHandleStatus` VARCHAR(16) NULL COMMENT '变更后HandleStatus',
`IssueType` VARCHAR(32) NULL COMMENT '问题类型',
`Title` VARCHAR(128) NULL COMMENT '标题快照',
`Content` TEXT NULL COMMENT '内容快照',
`IssueTemplateId` INT NULL COMMENT '模板Id',
`NotifyMethod` VARCHAR(64) NULL COMMENT '通知方式快照',
`ClaimType` VARCHAR(32) NULL COMMENT '理赔类型',
`ClaimAmount` DECIMAL(18,4) NULL COMMENT '索赔金额',
`ClaimCurrency` VARCHAR(16) NULL COMMENT '索赔币种',
`ClaimReason` VARCHAR(512) NULL COMMENT '理赔原因',
`Remark` VARCHAR(512) NULL COMMENT '操作备注',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '操作人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_oee_order_time` (`OrderId`, `CreateTime`)
) COMMENT='订单异常事件表';
CREATE TABLE `t_sales_product` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`ProductCode` VARCHAR(64) NOT NULL COMMENT '产品编码',
`ProductName` VARCHAR(128) NOT NULL COMMENT '产品名称',
`ProductGroup` VARCHAR(32) NULL COMMENT '分组(专线/快递/邮政)',
`MinTimeliness` INT NULL COMMENT '最小时效(天)',
`MaxTimeliness` INT NULL COMMENT '最大时效(天)',
`CustomerWaybill` VARCHAR(32) NULL COMMENT '系统面单/客户面单',
`BlacklistAreaId` INT NULL COMMENT '黑名单区ID',
`RemoteAreaId` INT NULL COMMENT '偏远分区ID',
`PriceAreaId` INT NULL COMMENT '价格分区ID',
`WeightRuleId` INT NULL COMMENT '计重规则ID',
`WeightRoundingId` INT NULL COMMENT '计重进位ID',
`ProductDescription` TEXT COMMENT '产品描述',
`PreStorageScript` TEXT COMMENT '入库前脚本',
`CustomerGuideMarkdown` MEDIUMTEXT COMMENT '对客说明 Markdown',
`IsActive` TINYINT NOT NULL DEFAULT 1 COMMENT '是否启用',
`Scheme` VARCHAR(32) NOT NULL COMMENT '排货方案:costLowest/timeFastest/overallBest',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_sp_code` (`ProductCode`),
KEY `idx_sp_group_active` (`ProductGroup`, `IsActive`),
KEY `idx_sp_scheme` (`Scheme`),
KEY `idx_sp_weight_rule` (`WeightRuleId`),
KEY `idx_sp_weight_rounding` (`WeightRoundingId`)
) COMMENT='销售产品表';
CREATE TABLE `t_sales_product_price` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`SalesProductId` INT NOT NULL COMMENT '销售产品ID',
`SerialNumber` INT NOT NULL COMMENT '序号',
`Status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:0-禁用,1-启用',
`PriceName` VARCHAR(64) NOT NULL COMMENT '价格名称',
`CostItem` VARCHAR(64) NOT NULL COMMENT '费用项',
`CostUnit` VARCHAR(16) NOT NULL COMMENT '费用单位:kg/票/件',
`Currency` VARCHAR(16) NOT NULL COMMENT '币种:RMB/USD/EUR',
`ChargingCondition` VARCHAR(64) NULL COMMENT '收费条件',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_spp_sp_serial` (`SalesProductId`, `SerialNumber`),
KEY `idx_spp_sp_status` (`SalesProductId`, `Status`)
) COMMENT='产品卖价表';
CREATE TABLE `t_sales_product_price_factor` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`PriceId` INT NOT NULL COMMENT '产品卖价ID',
`SerialNumber` INT NOT NULL COMMENT '序号(决定因素排序)',
`Factor` VARCHAR(64) NOT NULL COMMENT '因素:货物类型/分区/重量/仓库/客户',
`FactorValues` JSON NULL COMMENT '因素值数组',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_sppf_price_serial` (`PriceId`, `SerialNumber`)
) COMMENT='产品卖价计费因素表';
CREATE TABLE `t_sales_product_price_detail` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`PriceId` INT NOT NULL COMMENT '产品卖价ID',
`FactorValuesJson` JSON NULL COMMENT '非客户因素组合',
`CalculationFormula` VARCHAR(32) NOT NULL COMMENT '计算公式:总价/单价/续单价',
`CalculatedValue` DECIMAL(18,4) NULL COMMENT '计算值',
`CustomerGroupValues` JSON NULL COMMENT '客户组对应价格',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_sppd_price` (`PriceId`)
) COMMENT='产品卖价价格明细表';
CREATE TABLE `t_sales_product_allocation_provider` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`SalesProductId` INT NOT NULL COMMENT '销售产品ID',
`SerialNumber` INT NOT NULL COMMENT '序号',
`ProviderName` VARCHAR(128) NOT NULL COMMENT '服务商名称',
`ServiceChannelId` INT NULL COMMENT '服务渠道ID',
`Weight` INT NOT NULL COMMENT '权重(评分用)',
`CustomerIds` JSON NULL COMMENT '指定客户ID数组,空表示全部',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_spap_sp_serial` (`SalesProductId`, `SerialNumber`),
KEY `idx_spap_channel` (`ServiceChannelId`)
) COMMENT='排货规则服务商表';
CREATE TABLE `t_sales_product_publish_record` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`SalesProductId` INT NOT NULL COMMENT '销售产品ID',
`Version` VARCHAR(32) NOT NULL COMMENT '版本号,如 20231227112339',
`OperatorType` VARCHAR(16) NOT NULL COMMENT '操作类型:price/rules',
`Status` VARCHAR(16) NOT NULL COMMENT '状态:生效/回滚/无效',
`PublishUser` VARCHAR(64) NOT NULL COMMENT '发布人',
`PublishTime` DATETIME NOT NULL COMMENT '发布时间',
`Description` VARCHAR(512) NULL COMMENT '版本备注',
`Content` JSON NULL COMMENT '发布内容JSON快照',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_sppr_prod_op_ver` (`SalesProductId`, `OperatorType`, `Version`),
KEY `idx_sppr_prod_op_time` (`SalesProductId`, `OperatorType`, `PublishTime`)
) COMMENT='销售产品发布记录表';
CREATE TABLE `t_service_channel_group` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`Name` VARCHAR(128) NOT NULL COMMENT '渠道组名称',
`AppId` INT NOT NULL COMMENT '应用ID',
`ApiServiceProviderId` INT NOT NULL COMMENT 'API服务商ID',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_scg_name` (`Name`),
KEY `idx_scg_app_provider` (`AppId`, `ApiServiceProviderId`)
) COMMENT='服务渠道组表';
CREATE TABLE `t_service_channel` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`GroupId` INT NULL COMMENT '渠道组ID',
`ChannelCode` VARCHAR(64) NOT NULL COMMENT '渠道编码',
`ChannelName` VARCHAR(128) NOT NULL COMMENT '渠道名称',
`MinTime` INT NULL COMMENT '最小时效(天)',
`MaxTime` INT NULL COMMENT '最大时效(天)',
`ForecastType` VARCHAR(32) NULL COMMENT '预报单号类型(customer/waybill/tracking)',
`ForecastCode` VARCHAR(128) NULL COMMENT '预报单号',
`Description` TEXT COMMENT '描述',
`PreScript` TEXT COMMENT '入库前脚本',
`IsActive` TINYINT NOT NULL DEFAULT 1 COMMENT '是否启用',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_sc_code` (`ChannelCode`),
KEY `idx_sc_group_active` (`GroupId`, `IsActive`),
KEY `idx_sc_name` (`ChannelName`)
) COMMENT='服务渠道表';
CREATE TABLE `t_service_channel_price` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`ServiceChannelId` INT NOT NULL COMMENT '服务渠道ID',
`SerialNumber` INT NOT NULL COMMENT '序号',
`Status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:0-禁用,1-启用',
`PriceName` VARCHAR(64) NOT NULL COMMENT '价格名称',
`CostItem` VARCHAR(64) NOT NULL COMMENT '费用项',
`CostUnit` VARCHAR(16) NOT NULL COMMENT '费用单位:kg/票/件',
`Currency` VARCHAR(16) NOT NULL COMMENT '币种:RMB/USD/EUR',
`ChargingCondition` VARCHAR(64) NULL COMMENT '收费条件',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_scp_sc_serial` (`ServiceChannelId`, `SerialNumber`),
KEY `idx_scp_sc_status` (`ServiceChannelId`, `Status`)
) COMMENT='渠道买价表';
CREATE TABLE `t_service_channel_price_factor` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`PriceId` INT NOT NULL COMMENT '渠道买价ID',
`SerialNumber` INT NOT NULL COMMENT '序号',
`Factor` VARCHAR(64) NOT NULL COMMENT '因素:货物类型/分区/重量/仓库/客户',
`FactorValues` JSON NULL COMMENT '因素值数组',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_scpf_price_serial` (`PriceId`, `SerialNumber`)
) COMMENT='渠道买价计费因素表';
CREATE TABLE `t_service_channel_price_detail` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`PriceId` INT NOT NULL COMMENT '渠道买价ID',
`FactorValuesJson` JSON NULL COMMENT '非客户因素组合',
`CalculationFormula` VARCHAR(32) NOT NULL COMMENT '计算公式:总价/单价/续单价',
`CalculatedValue` DECIMAL(18,4) NULL COMMENT '计算值',
`CustomerGroupValues` JSON NULL COMMENT '客户组对应价格',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_scpd_price` (`PriceId`)
) COMMENT='渠道买价价格明细表';
CREATE TABLE `t_service_channel_publish_record` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`ServiceChannelId` INT NOT NULL COMMENT '服务渠道ID',
`Version` VARCHAR(32) NOT NULL COMMENT '版本号',
`OperatorType` VARCHAR(16) NOT NULL COMMENT '操作类型:price/rules',
`Status` VARCHAR(16) NOT NULL COMMENT '状态:生效/回滚/无效',
`PublishUser` VARCHAR(64) NOT NULL COMMENT '发布人',
`PublishTime` DATETIME NOT NULL COMMENT '发布时间',
`Description` VARCHAR(512) NULL COMMENT '版本备注',
`Content` JSON NULL COMMENT '发布内容JSON快照',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_scpr_chan_op_ver` (`ServiceChannelId`, `OperatorType`, `Version`),
KEY `idx_scpr_chan_op_time` (`ServiceChannelId`, `OperatorType`, `PublishTime`)
) COMMENT='服务渠道发布记录表';
CREATE TABLE `t_kpi_area` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`AppKey` VARCHAR(64) NOT NULL COMMENT '应用标识',
`AreaType` VARCHAR(32) NOT NULL COMMENT '类型:blacklist/remote/warning',
`Name` VARCHAR(128) NOT NULL COMMENT '分区名称',
`SystemName` VARCHAR(128) NULL COMMENT '系统名称',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_kpi_area_app_type` (`AppKey`, `AreaType`),
KEY `idx_kpi_area_name` (`Name`)
) COMMENT='分区表';
CREATE TABLE `t_kpi_area_info` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`AreaId` INT NOT NULL COMMENT '分区ID',
`CountryCode` VARCHAR(8) NULL COMMENT '国家二字码',
`CountryName` VARCHAR(64) NULL COMMENT '国家名称',
`Province` VARCHAR(128) NULL COMMENT '省份',
`City` VARCHAR(128) NULL COMMENT '城市',
`LeftPostcode` VARCHAR(32) NULL COMMENT '左侧邮编',
`RightPostcode` VARCHAR(32) NULL COMMENT '右侧邮编',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_kpi_info_area` (`AreaId`),
KEY `idx_kpi_info_area_country` (`AreaId`, `CountryCode`)
) COMMENT='分区明细表';
CREATE TABLE `t_weight_rule` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`AppKey` VARCHAR(64) NOT NULL COMMENT '应用标识',
`Name` VARCHAR(128) NOT NULL COMMENT '规则名称',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_wr_app_name` (`AppKey`, `Name`)
) COMMENT='计重规则表';
CREATE TABLE `t_weight_rule_info` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`RuleId` INT NOT NULL COMMENT '计重规则ID',
`Client` VARCHAR(128) NOT NULL COMMENT '客户/客户组',
`Condition` VARCHAR(256) NOT NULL COMMENT '条件表达式',
`BillableWeight` VARCHAR(64) NOT NULL COMMENT '计费重取值',
`VolumetricFactor` VARCHAR(32) NOT NULL COMMENT '材积系数',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_wri_rule_client` (`RuleId`, `Client`)
) COMMENT='计重规则明细表';
CREATE TABLE `t_weight_rounding` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`AppKey` VARCHAR(64) NOT NULL COMMENT '应用标识',
`Name` VARCHAR(128) NOT NULL COMMENT '进位名称',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_wrd_app_name` (`AppKey`, `Name`)
) COMMENT='计重进位表';
CREATE TABLE `t_weight_rounding_info` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`RoundingId` INT NOT NULL COMMENT '计重进位ID',
`StartValue` DECIMAL(18,4) NOT NULL COMMENT '起始值(kg)',
`EndValue` DECIMAL(18,4) NOT NULL COMMENT '结束值(kg)',
`Public` VARCHAR(32) NULL COMMENT '公共进位值',
`CustomerGroup1` VARCHAR(32) NULL COMMENT '客户组1进位值',
`CustomerGroup2` VARCHAR(32) NULL COMMENT '客户组2进位值',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_wrdi_round_range` (`RoundingId`, `StartValue`, `EndValue`)
) COMMENT='计重进位明细表';
CREATE TABLE `t_auto_trigger` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`Status` TINYINT NOT NULL DEFAULT 1 COMMENT '是否启用',
`RuleName` VARCHAR(128) NULL COMMENT '规则名称',
`Priority` INT NOT NULL DEFAULT 100 COMMENT '优先级,数值越小越先执行',
`Operation` VARCHAR(32) NULL COMMENT '操作:拦截/警告/问题件',
`TriggerTiming` VARCHAR(32) NULL COMMENT '触发时机:下单/入库/出库',
`TriggerCondition` TEXT COMMENT '触发条件',
`PromptMessage` VARCHAR(512) NULL COMMENT '提示信息',
`Notifier` VARCHAR(128) NULL COMMENT '通知人',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_at_status_timing` (`Status`, `TriggerTiming`),
KEY `idx_at_operation` (`Operation`)
) COMMENT='自动触发表';
CREATE TABLE `t_issue_template` (
`Id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
`OrganizationId` CHAR(36) NULL COMMENT '归属组织 GUID;NULL=平台通用',
`IssueType` VARCHAR(32) NOT NULL COMMENT '问题类型 code',
`Title` VARCHAR(128) NOT NULL COMMENT '问题标题',
`Content` TEXT NOT NULL COMMENT '问题内容',
`NotifyMethod` VARCHAR(64) NOT NULL COMMENT '通知方式,逗号分隔',
`Status` TINYINT NOT NULL DEFAULT 1 COMMENT '0-禁用 1-启用',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_issue_tpl_org_type` (`OrganizationId`, `IssueType`, `IsDeleted`),
KEY `idx_issue_tpl_status` (`Status`, `IsDeleted`)
) COMMENT='渠道-问题模板';
CREATE TABLE `t_label_template` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`Name` VARCHAR(128) NOT NULL COMMENT '模板名称',
`TemplateJson` JSON NULL COMMENT 'vg-print 模板 JSON',
`TemplateType` VARCHAR(32) NULL COMMENT '尾程/客户/入库/出库/sku',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_lt_name_type` (`Name`, `TemplateType`)
) COMMENT='标签模板表';
CREATE TABLE `t_inbound_record` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`WaybillNo` VARCHAR(64) NOT NULL COMMENT '运单号',
`Weight` DECIMAL(10,2) NULL COMMENT '实重(kg)',
`Length` DECIMAL(10,2) NULL COMMENT '长(cm)',
`Width` DECIMAL(10,2) NULL COMMENT '宽(cm)',
`Height` DECIMAL(10,2) NULL COMMENT '高(cm)',
`SalesProductId` INT NULL COMMENT '销售产品ID',
`DestinationCountry` VARCHAR(8) NULL COMMENT '目的国',
`WarehouseId` INT NULL COMMENT '仓库ID',
`OperateTime` DATETIME NOT NULL COMMENT '操作时间',
`OperatorId` INT NULL COMMENT '操作人ID',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_inb_waybill_time` (`WaybillNo`, `OperateTime`),
KEY `idx_inb_warehouse_time` (`WarehouseId`, `OperateTime`),
KEY `idx_inb_product_time` (`SalesProductId`, `OperateTime`)
) COMMENT='入库记录表';
CREATE TABLE `t_outbound_record` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`WaybillNo` VARCHAR(64) NOT NULL COMMENT '运单号',
`Weight` DECIMAL(10,2) NULL COMMENT '实重(kg)',
`Length` DECIMAL(10,2) NULL COMMENT '长(cm)',
`Width` DECIMAL(10,2) NULL COMMENT '宽(cm)',
`Height` DECIMAL(10,2) NULL COMMENT '高(cm)',
`SalesProductId` INT NULL COMMENT '销售产品ID',
`DestinationCountry` VARCHAR(8) NULL COMMENT '目的国',
`ServiceChannelId` INT NULL COMMENT '服务渠道ID',
`WarehouseId` INT NULL COMMENT '仓库ID',
`OperateTime` DATETIME NOT NULL COMMENT '操作时间',
`OperatorId` INT NULL COMMENT '操作人ID',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_out_waybill_time` (`WaybillNo`, `OperateTime`),
KEY `idx_out_warehouse_time` (`WarehouseId`, `OperateTime`),
KEY `idx_out_product_time` (`SalesProductId`, `OperateTime`),
KEY `idx_out_channel_time` (`ServiceChannelId`, `OperateTime`)
) COMMENT='出库记录表';
CREATE TABLE `t_label_print_record` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`WaybillNo` VARCHAR(64) NOT NULL COMMENT '运单号',
`CustomerOrderNo` VARCHAR(64) NULL COMMENT '客户单号',
`TrackingNo` VARCHAR(64) NULL COMMENT '跟踪号',
`OtherNumber` VARCHAR(64) NULL COMMENT '其他单号',
`LabelTemplateId` INT NULL COMMENT '标签模板ID',
`PrintSuccess` TINYINT NOT NULL DEFAULT 0 COMMENT '是否打印成功',
`PrintTime` DATETIME NOT NULL COMMENT '打印时间',
`OperatorId` INT NULL COMMENT '操作人ID',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_lpr_waybill_time` (`WaybillNo`, `PrintTime`),
KEY `idx_lpr_template` (`LabelTemplateId`),
KEY `idx_lpr_operator_time` (`OperatorId`, `PrintTime`)
) COMMENT='标签打印记录表';
CREATE TABLE `t_customer` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`ParentCustomerId` INT NULL COMMENT '父客户ID,NULL表示主客户',
`UserId` INT NOT NULL COMMENT '关联用户表自增userid',
`CustomerCode` VARCHAR(32) NOT NULL COMMENT '客户编号,规则:前缀w+年份+序号',
`CustomerName` VARCHAR(128) NOT NULL COMMENT '客户名称',
`WechatAvatar` VARCHAR(255) NULL COMMENT '微信头像URL',
`WechatNickname` VARCHAR(64) NULL COMMENT '微信昵称',
`Email` VARCHAR(64) NULL COMMENT '邮箱,用于登录/找回密码',
`Phone` VARCHAR(16) NOT NULL COMMENT '手机号,用于登录/验证',
`Balance` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '账户余额',
`TotalQuota` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '总额度',
`UsedQuota` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '已用额度',
`Status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:0-禁用,1-正常,2-冻结',
`Remark` VARCHAR(512) NULL COMMENT '备注信息',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人(系统/管理员账号)',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
`Salesman` VARCHAR(32) NULL COMMENT '所属销售员账号',
`CustomerService` VARCHAR(32) NULL COMMENT '所属顾问',
`CustomerGroup` TINYINT NULL COMMENT '客户分组:0-普通客户,1-VIP1,2-VIP2,3-VIP3,4-VIP4,5-VIP5',
`OrganizationId` CHAR(36) NULL COMMENT '归属销售组织 FK organization.Id',
`LastLoginIp` VARCHAR(64) NULL COMMENT '最后在线IP',
`LastLoginTime` DATETIME NULL COMMENT '最后在线时间',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`WechatOpenid` VARCHAR(64) NULL COMMENT '微信OpenID',
`Password` VARCHAR(64) NOT NULL COMMENT '密码(MD5加密存储)',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_cus_code` (`CustomerCode`),
UNIQUE KEY `uk_cus_user` (`UserId`),
UNIQUE KEY `uk_cus_phone` (`Phone`),
UNIQUE KEY `uk_cus_email` (`Email`),
UNIQUE KEY `uk_cus_openid` (`WechatOpenid`),
KEY `idx_cus_parent_status` (`ParentCustomerId`, `Status`),
KEY `idx_cus_status_group` (`Status`, `CustomerGroup`),
KEY `idx_cus_sales_service` (`Salesman`, `CustomerService`),
KEY `idx_cus_organization` (`OrganizationId`)
) COMMENT='客户表';
CREATE TABLE `t_recharge_record` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`CustomerId` INT NOT NULL COMMENT '客户ID(主账号/子账号关联主账号ID)',
`SecretLevel` TINYINT NOT NULL DEFAULT 3 COMMENT '数据密级 1-4',
`SerialNumber` VARCHAR(64) NOT NULL COMMENT '流水号',
`RechargeTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '充值提交时间',
`PayType` TINYINT NOT NULL COMMENT '支付方式:1-微信,2-支付宝',
`RechargeAmount` DECIMAL(18,2) NOT NULL COMMENT '充值金额,>=0.01',
`RechargeScreenshot` VARCHAR(255) NULL COMMENT '充值截图URL',
`RechargeStatus` TINYINT NOT NULL DEFAULT 0 COMMENT '充值状态:0-待审核,1-审核通过,2-审核驳回',
`Remark` VARCHAR(512) NULL COMMENT '备注(客户/审核人填写)',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
`AuditTime` DATETIME NULL COMMENT '审核时间',
`AuditBy` VARCHAR(32) NULL COMMENT '审核人(管理员账号)',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_rr_serial` (`SerialNumber`),
KEY `idx_rr_customer_status_time` (`CustomerId`, `RechargeStatus`, `RechargeTime`),
KEY `idx_rr_audit_time` (`AuditTime`)
) COMMENT='充值记录表';
CREATE TABLE `t_country` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`ChineseName` VARCHAR(128) NOT NULL COMMENT '国家中文名',
`EnglishName` VARCHAR(128) NOT NULL COMMENT '国家英文名',
`CountryCode` VARCHAR(2) NOT NULL COMMENT 'ISO 3166-1 alpha-2 国家二字码',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_country_code` (`CountryCode`),
KEY `idx_country_name` (`EnglishName`, `ChineseName`)
) COMMENT='国家表';
CREATE TABLE `t_dict` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`DictType` VARCHAR(64) NOT NULL COMMENT '字典类型',
`DictSort` INT NOT NULL DEFAULT 0 COMMENT '排序值',
`DictCode` VARCHAR(64) NOT NULL COMMENT '字典编码',
`DictName` VARCHAR(128) NOT NULL COMMENT '字典名称',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_dict_type_code` (`DictType`, `DictCode`),
KEY `idx_dict_type_sort` (`DictType`, `DictSort`, `Id`)
) COMMENT='系统字典表';
CREATE TABLE `t_system_other_config` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`ConfigCode` VARCHAR(64) NOT NULL COMMENT '配置编码,如 track_service',
`ConfigName` VARCHAR(128) NOT NULL COMMENT '配置名称',
`Enabled` TINYINT NOT NULL DEFAULT 0 COMMENT '是否启用:0-否,1-是',
`BaseUrl` VARCHAR(512) NULL COMMENT '服务地址',
`AppKey` VARCHAR(128) NULL COMMENT 'AppKey',
`AppSecret` VARCHAR(256) NULL COMMENT 'AppSecret',
`TimeoutSeconds` INT NOT NULL DEFAULT 30 COMMENT '超时秒数',
`Remark` VARCHAR(512) NULL COMMENT '备注',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_system_other_config_code` (`ConfigCode`),
KEY `idx_system_other_config_enabled` (`Enabled`, `Id`)
) COMMENT='系统其他配置表';
CREATE TABLE `t_system_batch_email_template` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`OwnerUserId` INT NOT NULL DEFAULT 0 COMMENT '所属 RBAC 用户 Id',
`TemplateName` VARCHAR(128) NOT NULL COMMENT '模板名称',
`Subject` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '邮件主题',
`Content` TEXT NOT NULL COMMENT '邮件正文',
`SortOrder` INT NOT NULL DEFAULT 0 COMMENT '排序',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_batch_email_tpl_owner_name` (`OwnerUserId`, `TemplateName`),
KEY `idx_batch_email_tpl_owner` (`OwnerUserId`, `SortOrder`, `Id`)
) COMMENT='批量发送邮件模板';
CREATE TABLE `t_system_batch_email_account` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`OwnerUserId` INT NOT NULL DEFAULT 0 COMMENT '所属 RBAC 用户 Id',
`SmtpUsername` VARCHAR(256) NOT NULL COMMENT 'SMTP 账号',
`SmtpPassword` VARCHAR(512) NOT NULL COMMENT 'SMTP 密码/授权码',
`ServerType` VARCHAR(32) NOT NULL DEFAULT 'qiye' COMMENT 'SMTP 类型',
`FromName` VARCHAR(128) NULL COMMENT '发件人显示名',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_batch_email_account_owner` (`OwnerUserId`)
) COMMENT='批量发送邮件 SMTP 账号配置';
CREATE TABLE `t_system_batch_email_record` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`OwnerUserId` INT NOT NULL DEFAULT 0 COMMENT '所属 RBAC 用户 Id',
`ToEmail` VARCHAR(256) NOT NULL COMMENT '收件邮箱',
`Subject` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '邮件主题',
`Content` TEXT NOT NULL COMMENT '邮件正文',
`SendTime` DATETIME NOT NULL COMMENT '发送时间',
`Sender` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '发送人',
`SenderEmail` VARCHAR(256) NULL COMMENT '发件邮箱',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_batch_email_record_owner_time` (`OwnerUserId`, `SendTime`, `Id`)
) COMMENT='批量发送邮件记录';
CREATE TABLE `t_notice` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`NoticeType` VARCHAR(16) NOT NULL COMMENT '通知类型:notice/message',
`Title` VARCHAR(200) NOT NULL COMMENT '通知标题',
`Content` TEXT NOT NULL COMMENT '通知内容',
`IsPopup` TINYINT NOT NULL DEFAULT 0 COMMENT '是否弹窗:0-否,1-是',
`ReceiverType` VARCHAR(16) NOT NULL COMMENT '接收对象:user/customer',
`ReceiverIds` JSON NOT NULL COMMENT '接收对象ID列表(JSON数组)',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_notice_type_receiver_time` (`NoticeType`, `ReceiverType`, `CreateTime`),
KEY `idx_notice_title` (`Title`)
) COMMENT='公告通知表';
CREATE TABLE `t_notice_read` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`NoticeId` INT NOT NULL COMMENT '通知ID',
`ReceiverType` VARCHAR(16) NOT NULL COMMENT '接收对象:user/customer',
`ReceiverId` INT NOT NULL COMMENT '接收主体ID',
`ReadTime` DATETIME NOT NULL COMMENT '已读时间',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_notice_read_identity` (`NoticeId`, `ReceiverType`, `ReceiverId`),
KEY `idx_notice_read_receiver` (`ReceiverType`, `ReceiverId`, `ReadTime`)
) COMMENT='通知已读明细表';
INSERT INTO `t_country`
(`ChineseName`, `EnglishName`, `CountryCode`, `IsDeleted`, `CreateUserId`, `CreateTime`, `UpdateUserId`, `UpdateTime`)
VALUES
('中国', 'China', 'CN', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('中国香港', 'Hong Kong SAR China', 'HK', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('中国澳门', 'Macao SAR China', 'MO', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('中国台湾', 'Taiwan', 'TW', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('美国', 'United States', 'US', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('加拿大', 'Canada', 'CA', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('英国', 'United Kingdom', 'GB', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('爱尔兰', 'Ireland', 'IE', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('德国', 'Germany', 'DE', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('法国', 'France', 'FR', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('意大利', 'Italy', 'IT', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('西班牙', 'Spain', 'ES', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('葡萄牙', 'Portugal', 'PT', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('荷兰', 'Netherlands', 'NL', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('比利时', 'Belgium', 'BE', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('卢森堡', 'Luxembourg', 'LU', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('瑞士', 'Switzerland', 'CH', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('奥地利', 'Austria', 'AT', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('瑞典', 'Sweden', 'SE', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('挪威', 'Norway', 'NO', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('芬兰', 'Finland', 'FI', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('丹麦', 'Denmark', 'DK', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('波兰', 'Poland', 'PL', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('捷克', 'Czechia', 'CZ', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('匈牙利', 'Hungary', 'HU', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('罗马尼亚', 'Romania', 'RO', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('俄罗斯', 'Russia', 'RU', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('乌克兰', 'Ukraine', 'UA', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('土耳其', 'Turkey', 'TR', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('希腊', 'Greece', 'GR', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('以色列', 'Israel', 'IL', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('阿联酋', 'United Arab Emirates', 'AE', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('沙特阿拉伯', 'Saudi Arabia', 'SA', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('日本', 'Japan', 'JP', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('韩国', 'South Korea', 'KR', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('新加坡', 'Singapore', 'SG', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('马来西亚', 'Malaysia', 'MY', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('泰国', 'Thailand', 'TH', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('越南', 'Vietnam', 'VN', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('印度尼西亚', 'Indonesia', 'ID', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('菲律宾', 'Philippines', 'PH', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('印度', 'India', 'IN', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('巴基斯坦', 'Pakistan', 'PK', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('孟加拉国', 'Bangladesh', 'BD', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('澳大利亚', 'Australia', 'AU', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('新西兰', 'New Zealand', 'NZ', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('南非', 'South Africa', 'ZA', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('尼日利亚', 'Nigeria', 'NG', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('肯尼亚', 'Kenya', 'KE', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('埃及', 'Egypt', 'EG', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('巴西', 'Brazil', 'BR', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('阿根廷', 'Argentina', 'AR', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('智利', 'Chile', 'CL', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('哥伦比亚', 'Colombia', 'CO', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('秘鲁', 'Peru', 'PE', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('墨西哥', 'Mexico', 'MX', 0, 0, CURRENT_TIMESTAMP, NULL, NULL);
CREATE TABLE `t_warehouse_address` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`WarehouseName` VARCHAR(128) NOT NULL COMMENT '仓库名称',
`WarehouseType` VARCHAR(32) NOT NULL COMMENT 'main/transit/return/other',
`Recipient` VARCHAR(64) NULL COMMENT '收件人',
`ContactPhone` VARCHAR(32) NULL COMMENT '联系电话',
`ShippingAddress` TEXT COMMENT '收货地址',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_wa_name` (`WarehouseName`),
KEY `idx_wa_type` (`WarehouseType`)
) COMMENT='仓库地址表';
-- ---------------------------------------------------------------------------
-- 客户账户资金流水
-- ---------------------------------------------------------------------------
CREATE TABLE `t_customer_account_flow` (
`Id` int NOT NULL AUTO_INCREMENT,
`CustomerId` int NOT NULL COMMENT '客户 ID',
`SerialNumber` varchar(64) NOT NULL COMMENT '流水号',
`BizType` varchar(32) NOT NULL COMMENT '业务类型 recharge/orderPay',
`BizId` int DEFAULT NULL COMMENT '关联业务主键',
`BizNo` varchar(64) DEFAULT NULL COMMENT '关联业务单号',
`Amount` decimal(18,2) NOT NULL COMMENT '变动金额,正入账负出账',
`BalanceBefore` decimal(18,2) NOT NULL COMMENT '变动前余额',
`BalanceAfter` decimal(18,2) NOT NULL COMMENT '变动后余额',
`Currency` varchar(8) NOT NULL DEFAULT 'CNY' COMMENT '币种',
`Remark` varchar(512) DEFAULT NULL COMMENT '备注',
`IsDeleted` tinyint(1) NOT NULL DEFAULT '0',
`ConcurrencyStamp` char(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` int NOT NULL DEFAULT '0',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` int DEFAULT NULL,
`UpdateTime` datetime DEFAULT NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_customer_account_flow_serial` (`SerialNumber`),
KEY `idx_customer_account_flow_customer_time` (`CustomerId`, `CreateTime`),
KEY `idx_customer_account_flow_biz` (`BizType`, `BizId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客户账户资金流水';
-- ---------------------------------------------------------------------------
-- 仓储模块(C_*)+ 店铺订单(t_sales_store*)
-- ---------------------------------------------------------------------------
CREATE TABLE `C_sku` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`CustomerId` INT NOT NULL COMMENT '客户ID → t_customer.Id',
`SkuCode` VARCHAR(64) NOT NULL COMMENT '库内SKU编码',
`SkuName` VARCHAR(256) NOT NULL COMMENT 'SKU名称',
`SkuImageUrl` VARCHAR(512) NULL COMMENT '图片URL',
`WeightG` DECIMAL(10,2) NULL COMMENT '重量(g)',
`LengthCm` DECIMAL(10,2) NULL COMMENT '长(cm)',
`WidthCm` DECIMAL(10,2) NULL COMMENT '宽(cm)',
`HeightCm` DECIMAL(10,2) NULL COMMENT '高(cm)',
`Remark` VARCHAR(512) NULL COMMENT '备注',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_c_sku_code` (`CustomerId`, `SkuCode`),
KEY `idx_c_sku_customer` (`CustomerId`, `IsDeleted`)
) COMMENT='仓储-SKU主数据';
CREATE TABLE `C_bin_location` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`WarehouseId` INT NOT NULL COMMENT '仓库ID → t_warehouse_address.Id',
`BinCode` VARCHAR(32) NOT NULL COMMENT '库位编码',
`BinName` VARCHAR(64) NULL COMMENT '库位展示名',
`ZoneCode` VARCHAR(32) NULL COMMENT '库区编码',
`IsEnabled` TINYINT NOT NULL DEFAULT 1 COMMENT '是否启用:0-否,1-是',
`Remark` VARCHAR(512) NULL COMMENT '备注',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_c_bin_wh_code` (`WarehouseId`, `BinCode`),
KEY `idx_c_bin_warehouse` (`WarehouseId`, `IsEnabled`)
) COMMENT='仓储-库位主数据';
CREATE TABLE `C_inventory` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`CustomerId` INT NOT NULL COMMENT '客户ID',
`WarehouseId` INT NOT NULL COMMENT '仓库ID',
`SkuId` INT NOT NULL COMMENT 'SKU ID → C_sku.Id',
`BinLocationId` INT NOT NULL COMMENT '库位ID → C_bin_location.Id',
`Qty` INT NOT NULL DEFAULT 0 COMMENT '可用库存数量',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_c_inventory` (`CustomerId`, `WarehouseId`, `SkuId`, `BinLocationId`),
KEY `idx_c_inv_sku_wh` (`CustomerId`, `SkuId`, `WarehouseId`)
) COMMENT='仓储-库存余额(按库位)';
CREATE TABLE `C_inbound_notice` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`CustomerId` INT NOT NULL COMMENT '客户ID',
`WarehouseId` INT NOT NULL COMMENT '仓库ID',
`NoticeNo` VARCHAR(32) NOT NULL COMMENT '入库单号 IN+雪花',
`MarkReference` VARCHAR(64) NULL COMMENT '唛头参考号',
`InboundType` VARCHAR(16) NOT NULL DEFAULT 'normal' COMMENT 'normal/return',
`ReceiptStatus` VARCHAR(16) NOT NULL DEFAULT 'forecasted' COMMENT 'forecasted/received/completed',
`ExpectedArrivalTime` DATETIME NULL COMMENT '预计到货时间',
`ActualArrivalTime` DATETIME NULL COMMENT '实际到货时间',
`Remark` VARCHAR(512) NULL COMMENT '备注',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_c_inbound_notice_no` (`NoticeNo`),
KEY `idx_c_inbound_customer_status` (`CustomerId`, `ReceiptStatus`, `CreateTime`)
) COMMENT='仓储-入库预报主表';
CREATE TABLE `C_inbound_box` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`InboundNoticeId` INT NOT NULL COMMENT '入库预报ID → C_inbound_notice.Id',
`BoxSeqNo` VARCHAR(16) NOT NULL COMMENT '箱序号',
`MarkBoxNo` VARCHAR(64) NULL COMMENT '箱唛号/箱号',
`WeightG` DECIMAL(10,2) NULL COMMENT '箱重(g)',
`LengthCm` DECIMAL(10,2) NULL COMMENT '长(cm)',
`WidthCm` DECIMAL(10,2) NULL COMMENT '宽(cm)',
`HeightCm` DECIMAL(10,2) NULL COMMENT '高(cm)',
`IsReceived` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已收货:0-否,1-是',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_c_inbound_box_notice` (`InboundNoticeId`, `IsDeleted`)
) COMMENT='仓储-入库预报箱';
CREATE TABLE `C_inbound_box_line` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`InboundBoxId` INT NOT NULL COMMENT '入库箱ID → C_inbound_box.Id',
`SkuId` INT NOT NULL COMMENT 'SKU ID → C_sku.Id',
`SkuCode` VARCHAR(64) NOT NULL COMMENT '冗余SKU编码',
`PlannedQty` INT NOT NULL DEFAULT 0 COMMENT '计划入库数量',
`ReceivedQty` INT NULL COMMENT '实收数量',
`BinLocationId` INT NULL COMMENT '上架库位ID → C_bin_location.Id',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_c_inbound_box_line_box` (`InboundBoxId`, `IsDeleted`),
KEY `idx_c_inbound_box_line_sku` (`SkuId`)
) COMMENT='仓储-入库箱内SKU行';
CREATE TABLE `C_parcel` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`CustomerId` INT NOT NULL COMMENT '客户ID',
`WarehouseId` INT NOT NULL COMMENT '仓库ID',
`TrackingNo` VARCHAR(64) NOT NULL COMMENT '快递单号',
`CarrierName` VARCHAR(64) NULL COMMENT '快递公司',
`LifecycleStatus` VARCHAR(16) NOT NULL DEFAULT 'inTransit' COMMENT 'inTransit/arrived/stored',
`ArrivalTime` DATETIME NULL COMMENT '到仓时间',
`Remark` VARCHAR(512) NULL COMMENT '备注',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_c_parcel_tracking` (`CustomerId`, `TrackingNo`, `WarehouseId`),
KEY `idx_c_parcel_status` (`CustomerId`, `LifecycleStatus`)
) COMMENT='仓储-客户包裹';
CREATE TABLE `C_parcel_arrival` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`CustomerId` INT NOT NULL COMMENT '客户ID',
`WarehouseId` INT NOT NULL COMMENT '仓库ID',
`ParcelId` INT NULL COMMENT '关联包裹 C_parcel.Id',
`TrackingNo` VARCHAR(64) NOT NULL COMMENT '国内快递单号',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_c_parcel_arrival_tracking` (`CustomerId`, `TrackingNo`, `WarehouseId`),
KEY `idx_c_parcel_arrival_ctime` (`CreateTime`)
) COMMENT='仓储-快递到仓记录';
CREATE TABLE `C_parcel_item` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`ParcelId` INT NOT NULL COMMENT '包裹ID → C_parcel.Id',
`ProductName` VARCHAR(512) NULL COMMENT '商品名称',
`AttributeText` VARCHAR(256) NULL COMMENT '规格属性',
`ImageUrl` VARCHAR(1024) NULL COMMENT '商品图片URL',
`Quantity` INT NOT NULL DEFAULT 0 COMMENT '数量',
`SkuId` INT NULL COMMENT '库内SKU ID → C_sku.Id',
`SkuCode` VARCHAR(64) NULL COMMENT '冗余SKU编码',
`BinLocationId` INT NULL COMMENT '上架库位ID',
`Remark` VARCHAR(512) NULL COMMENT '备注',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_c_parcel_item_parcel` (`ParcelId`, `IsDeleted`)
) COMMENT='仓储-包裹明细';
CREATE TABLE `C_sku_platform_map` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`CustomerId` INT NOT NULL COMMENT '客户ID',
`StoreId` INT NOT NULL COMMENT '店铺ID → t_sales_store.Id',
`PlatformSku` VARCHAR(128) NOT NULL COMMENT '平台listing SKU',
`SkuId` INT NOT NULL COMMENT '库内SKU ID → C_sku.Id',
`SkuCode` VARCHAR(64) NOT NULL COMMENT '冗余SKU编码',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_c_sku_map` (`StoreId`, `PlatformSku`),
KEY `idx_c_sku_map_customer` (`CustomerId`, `SkuId`)
) COMMENT='仓储-平台SKU映射';
-- ---------------------------------------------------------------------------
-- 订单域 — 店铺(t_sales_*,接口阶段使用)
-- ---------------------------------------------------------------------------
CREATE TABLE `t_sales_store` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`CustomerId` INT NOT NULL COMMENT '客户ID',
`PlatformCode` VARCHAR(32) NOT NULL COMMENT 'lazada/shopee/tiktok/temu/manual',
`StoreNickname` VARCHAR(128) NOT NULL COMMENT '店铺昵称',
`PlatformStoreId` VARCHAR(64) NULL COMMENT '平台侧店铺ID',
`PlatformAccount` VARCHAR(128) NULL COMMENT '平台账号',
`SiteCountry` VARCHAR(8) NULL COMMENT '开户站点国家码',
`SellerId` VARCHAR(64) NULL COMMENT '平台卖家ID',
`AuthStatus` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT 'active/expired/revoked',
`AuthTime` DATETIME NULL COMMENT '授权时间',
`TokenExpireTime` DATETIME NULL COMMENT 'AccessToken过期时间',
`RefreshExpireTime` DATETIME NULL COMMENT 'RefreshToken过期时间',
`AccessToken` VARCHAR(2048) NULL COMMENT 'AccessToken(加密存储)',
`RefreshToken` VARCHAR(2048) NULL COMMENT 'RefreshToken(加密存储)',
`TokenExtraJson` JSON NULL COMMENT '平台扩展Token信息',
`IsAutoFulfill` TINYINT NOT NULL DEFAULT 0 COMMENT '是否自动发货:0-否,1-是',
`Remark` VARCHAR(512) NULL COMMENT '备注',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_sales_store_customer` (`CustomerId`, `IsDeleted`),
KEY `idx_sales_store_platform` (`CustomerId`, `PlatformCode`, `AuthStatus`)
) COMMENT='销售店铺授权';
CREATE TABLE `t_sales_store_order` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`CustomerId` INT NOT NULL COMMENT '客户ID',
`StoreId` INT NOT NULL COMMENT '店铺ID → t_sales_store.Id',
`PlatformCode` VARCHAR(32) NOT NULL COMMENT '平台编码',
`PlatformOrderNo` VARCHAR(64) NOT NULL COMMENT '平台订单号',
`OrderCountry` VARCHAR(8) NULL COMMENT '订单国家',
`ItemCount` INT NULL COMMENT '商品行数',
`TotalAmount` DECIMAL(18,4) NULL COMMENT '订单总额',
`Currency` VARCHAR(8) NULL COMMENT '币种',
`PlatformOrderTime` DATETIME NULL COMMENT '平台下单时间',
`FulfillStatus` VARCHAR(32) NOT NULL DEFAULT 'pending' COMMENT '履约状态',
`PlatformStatus` VARCHAR(64) NULL COMMENT '平台原始状态码',
`PlatformStatusLabel` VARCHAR(128) NULL COMMENT '平台状态展示文案',
`ShippingLabelNo` VARCHAR(64) NULL COMMENT '面单号',
`ShippingLabelUrl` VARCHAR(512) NULL COMMENT '面单URL',
`IsMultiLabel` TINYINT NOT NULL DEFAULT 0 COMMENT '是否多面单',
`CustomTags` VARCHAR(512) NULL COMMENT '自定义标签',
`IsSuspended` TINYINT NOT NULL DEFAULT 0 COMMENT '是否搁置',
`WarehouseId` INT NULL COMMENT '发货仓库ID',
`LinkedOrderId` INT NULL COMMENT '关联小包订单 t_order.Id',
`LastSyncTime` DATETIME NULL COMMENT '最近同步时间',
`PlatformExtraJson` JSON NULL COMMENT '平台扩展字段',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_store_order_no` (`StoreId`, `PlatformOrderNo`),
KEY `idx_store_order_customer_status` (`CustomerId`, `FulfillStatus`, `PlatformOrderTime`)
) COMMENT='销售店铺订单';
CREATE TABLE `t_sales_store_order_line` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`StoreOrderId` INT NOT NULL COMMENT '店铺订单ID → t_sales_store_order.Id',
`PlatformLineId` VARCHAR(64) NULL COMMENT '平台行ID',
`PlatformSku` VARCHAR(128) NULL COMMENT '平台SKU',
`ProductName` VARCHAR(512) NULL COMMENT '商品名称',
`ProductImageUrl` VARCHAR(512) NULL COMMENT '商品图片',
`VariantText` VARCHAR(256) NULL COMMENT '规格属性',
`UnitPrice` DECIMAL(18,4) NULL COMMENT '单价',
`Quantity` INT NOT NULL DEFAULT 0 COMMENT '数量',
`Currency` VARCHAR(8) NULL COMMENT '币种',
`IsShipExcluded` TINYINT NOT NULL DEFAULT 0 COMMENT '是否拒绝发货',
`MappedSkuId` INT NULL COMMENT '映射库内SKU → C_sku.Id',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_store_order_line_order` (`StoreOrderId`, `IsDeleted`)
) COMMENT='销售店铺订单明细';
-- 小红书(LIKE AI → OMS)模块,详见设计文档 docs/小红书模块设计-063001.md
CREATE TABLE `t_xhs_agent` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`CustomerId` INT NOT NULL COMMENT '客户ID → t_customer.Id',
`DeviceId` VARCHAR(64) NOT NULL COMMENT 'Agent 本机设备标识',
`DeviceName` VARCHAR(128) NULL COMMENT '用户自定义名称',
`AgentVersion` VARCHAR(32) NULL COMMENT 'Agent 版本号',
`BridgePort` INT NOT NULL DEFAULT 9333 COMMENT 'Bridge WebSocket 端口',
`Status` VARCHAR(16) NOT NULL DEFAULT 'offline' COMMENT 'online/offline',
`EngineRunning` TINYINT NOT NULL DEFAULT 0 COMMENT 'Bridge 引擎是否运行',
`ExtensionConnected` TINYINT NOT NULL DEFAULT 0 COMMENT 'Chrome 扩展是否连上 Bridge',
`XhsLoggedIn` TINYINT NOT NULL DEFAULT 0 COMMENT '小红书是否已登录',
`LastHeartbeatTime` DATETIME NULL COMMENT '最后心跳时间',
`LastError` VARCHAR(512) NULL COMMENT '最近一次 Agent 上报错误摘要',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_xhs_agent_device` (`DeviceId`),
KEY `idx_xhs_agent_customer` (`CustomerId`, `Status`)
) COMMENT='小红书本地 Agent 设备表';
CREATE TABLE `t_xhs_task` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`CustomerId` INT NOT NULL COMMENT '客户ID',
`AgentId` INT NULL COMMENT '指定执行的 Agent;NULL 表示任意在线 Agent',
`TaskType` VARCHAR(32) NOT NULL COMMENT '任务类型',
`ToolName` VARCHAR(64) NULL COMMENT 'LIKE AI 工具名',
`Priority` INT NOT NULL DEFAULT 0 COMMENT '越大越优先',
`Status` VARCHAR(16) NOT NULL DEFAULT 'pending' COMMENT 'pending/claimed/running/succeeded/failed/cancelled',
`ArgumentsJson` JSON NOT NULL COMMENT '工具参数 JSON',
`ProgressText` VARCHAR(512) NULL COMMENT '执行过程摘要',
`ResultJson` JSON NULL COMMENT '成功时结构化结果',
`ErrorMessage` VARCHAR(1024) NULL COMMENT '失败原因',
`Source` VARCHAR(32) NOT NULL DEFAULT 'web' COMMENT 'web/schedule/skill',
`SourceRefId` VARCHAR(64) NULL COMMENT '来源关联 ID',
`ScheduledTime` DATETIME NULL COMMENT '计划执行时间',
`ClaimedAt` DATETIME NULL COMMENT 'Agent 认领时间',
`StartedAt` DATETIME NULL COMMENT '开始执行',
`FinishedAt` DATETIME NULL COMMENT '结束时间',
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()),
`CreateUserId` INT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`UpdateUserId` INT NULL,
`UpdateTime` DATETIME NULL,
PRIMARY KEY (`Id`),
KEY `idx_xhs_task_poll` (`CustomerId`, `Status`, `ScheduledTime`, `Priority`),
KEY `idx_xhs_task_agent` (`AgentId`, `Status`),
KEY `idx_xhs_task_source` (`Source`, `SourceRefId`)
) COMMENT='小红书 Agent 任务队列表';
CREATE TABLE `t_xhs_publish_record` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`CustomerId` INT NOT NULL COMMENT '客户ID',
`TaskId` INT NULL COMMENT '关联 t_xhs_task.Id',
`ToolName` VARCHAR(64) NOT NULL COMMENT 'publish_content / publish_with_video',
`Title` VARCHAR(256) NOT NULL COMMENT '笔记标题',
`ContentPreview` VARCHAR(512) NULL COMMENT '正文摘要',
`ContentFull` TEXT NULL COMMENT '完整正文',
`MediaJson` JSON NULL COMMENT '图片/视频 URL 列表',
`TagsJson` JSON NULL COMMENT '标签数组',
`Visibility` VARCHAR(32) NULL COMMENT '可见范围',
`Status` VARCHAR(16) NOT NULL DEFAULT 'draft' COMMENT 'draft/scheduled/publishing/succeeded/failed/cancelled',
`Success` TINYINT NULL COMMENT '最终是否成功',
`ResultSummary` VARCHAR(1024) NULL COMMENT 'Agent 回传结果摘要',
`ScheduledTime` DATETIME NULL COMMENT '定时发布时间',
`PublishedTime` DATETIME NULL COMMENT '实际发布完成时间',
`SkillId` INT NULL COMMENT '若来自技能卡片',
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()),
`CreateUserId` INT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`UpdateUserId` INT NULL,
`UpdateTime` DATETIME NULL,
PRIMARY KEY (`Id`),
KEY `idx_xhs_publish_customer_time` (`CustomerId`, `CreateTime`),
KEY `idx_xhs_publish_status_sched` (`CustomerId`, `Status`, `ScheduledTime`),
KEY `idx_xhs_publish_task` (`TaskId`)
) COMMENT='小红书发布记录表';
CREATE TABLE `t_xhs_analysis_session` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`CustomerId` INT NOT NULL COMMENT '客户ID',
`SessionName` VARCHAR(128) NULL COMMENT '用户备注名',
`AnalysisType` VARCHAR(32) NOT NULL COMMENT 'home_feed/search/my_feeds/feed_detail',
`Keyword` VARCHAR(128) NULL COMMENT '搜索关键词',
`TaskId` INT NULL COMMENT '采集任务 ID',
`FeedsJson` JSON NULL COMMENT '采集笔记列表',
`SelectedFeedId` VARCHAR(64) NULL COMMENT '当前选中笔记 ID',
`AiAnalysisMarkdown` MEDIUMTEXT NULL COMMENT 'AI 分析结果',
`SkillId` INT NULL COMMENT '技能配方 ID',
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()),
`CreateUserId` INT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`UpdateUserId` INT NULL,
`UpdateTime` DATETIME NULL,
PRIMARY KEY (`Id`),
KEY `idx_xhs_analysis_customer` (`CustomerId`, `CreateTime`)
) COMMENT='小红书内容分析会话表';
CREATE TABLE `t_xhs_skill` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`CustomerId` INT NOT NULL COMMENT '客户ID;0 表示系统预置',
`ExternalId` VARCHAR(32) NOT NULL COMMENT '对外稳定 ID',
`Title` VARCHAR(256) NOT NULL COMMENT '技能名称',
`SkillType` VARCHAR(32) NOT NULL DEFAULT 'ai_create' COMMENT '技能类型',
`PresetId` VARCHAR(64) NULL COMMENT '内置预设标识',
`RecipeJson` JSON NOT NULL COMMENT '配方 JSON',
`SortOrder` INT NOT NULL DEFAULT 0 COMMENT '排序',
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()),
`CreateUserId` INT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`UpdateUserId` INT NULL,
`UpdateTime` DATETIME NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_xhs_skill_external` (`CustomerId`, `ExternalId`),
KEY `idx_xhs_skill_customer` (`CustomerId`, `SortOrder`)
) COMMENT='小红书技能卡片表';
CREATE TABLE `t_xhs_human_config` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`CustomerId` INT NOT NULL COMMENT '客户ID',
`BehaviorJson` JSON NOT NULL COMMENT 'human_behavior 配置',
`GuardJson` JSON NOT NULL COMMENT 'human_guard 配置',
`Version` INT NOT NULL DEFAULT 1 COMMENT '配置版本',
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()),
`CreateUserId` INT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`UpdateUserId` INT NULL,
`UpdateTime` DATETIME NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_xhs_human_customer` (`CustomerId`)
) COMMENT='小红书拟人行为与防封配置表';
CREATE TABLE `t_xhs_ai_provider` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`CustomerId` INT NOT NULL COMMENT '客户ID;0 表示全局',
`ProviderKey` VARCHAR(32) NOT NULL COMMENT 'ai_chatgpt / ai_zhipu 等',
`ProviderType` VARCHAR(32) NOT NULL COMMENT 'chatgpt/doubao/deepseek/zhipu',
`DisplayName` VARCHAR(64) NOT NULL COMMENT '展示名',
`BaseUrl` VARCHAR(512) NOT NULL COMMENT 'API Base URL',
`ApiKeyEnc` VARCHAR(512) NULL COMMENT 'API Key(暂明文,后续可加密)',
`ApiSecretEnc` VARCHAR(512) NULL COMMENT 'Secret/模型名',
`IsDefault` TINYINT NOT NULL DEFAULT 0 COMMENT '是否默认',
`Enabled` TINYINT NOT NULL DEFAULT 1 COMMENT '是否启用',
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()),
`CreateUserId` INT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`UpdateUserId` INT NULL,
`UpdateTime` DATETIME NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_xhs_ai_provider` (`CustomerId`, `ProviderKey`),
KEY `idx_xhs_ai_customer` (`CustomerId`, `Enabled`)
) COMMENT='小红书 AI 提供商配置表';
CREATE TABLE `t_xhs_media` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
`CustomerId` INT NOT NULL COMMENT '客户ID',
`FileName` VARCHAR(256) NOT NULL COMMENT '原始文件名',
`StoragePath` VARCHAR(512) NOT NULL COMMENT '相对路径',
`PublicUrl` VARCHAR(512) NOT NULL COMMENT '对外 HTTPS URL',
`MimeType` VARCHAR(64) NULL COMMENT 'MIME',
`FileSizeBytes` BIGINT NULL COMMENT '字节数',
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`CreateUserId` INT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`UpdateUserId` INT NULL,
`UpdateTime` DATETIME NULL,
PRIMARY KEY (`Id`),
KEY `idx_xhs_media_customer` (`CustomerId`, `CreateTime`)
) COMMENT='小红书创作上传媒体表';
-- ---------------------------------------------------------------------------
-- 数据权限(RBAC 侧表;若与 OMS 分库,请只在 RBAC 库执行本段)
-- ---------------------------------------------------------------------------
CREATE TABLE `user_org_perm` (
`Id` CHAR(36) NOT NULL COMMENT '主键 GUID',
`UserId` CHAR(36) NOT NULL COMMENT 'FK user.Id',
`OrganizationId` CHAR(36) NOT NULL COMMENT 'FK organization.Id',
`OrgScope` TINYINT NOT NULL DEFAULT 2 COMMENT '1=仅本级 2=本级+所有下级',
`EffectiveTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '生效时间',
`ExpireTime` DATETIME NULL COMMENT '过期时间,NULL=永久',
`IsTemporary` TINYINT NOT NULL DEFAULT 0 COMMENT '是否临时授权:0否 1是',
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`CreateUserId` INT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`UpdateUserId` INT NULL,
`UpdateTime` DATETIME NULL,
PRIMARY KEY (`Id`),
KEY `idx_user_org_perm_user` (`UserId`, `IsDeleted`),
KEY `idx_user_org_perm_org` (`OrganizationId`),
KEY `idx_user_org_perm_expire` (`ExpireTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户组织数据权限';
-- ---------------------------------------------------------------------------
-- 2. 角色组织权限(角色继承 / 模板绑定)
-- ---------------------------------------------------------------------------
CREATE TABLE `role_org_perm` (
`Id` CHAR(36) NOT NULL,
`RoleId` CHAR(36) NOT NULL COMMENT 'FK role.Id',
`OrganizationId` CHAR(36) NOT NULL,
`OrgScope` TINYINT NOT NULL DEFAULT 2,
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`CreateUserId` INT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`UpdateUserId` INT NULL,
`UpdateTime` DATETIME NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_role_org_perm` (`RoleId`, `OrganizationId`, `IsDeleted`),
KEY `idx_role_org_perm_role` (`RoleId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色组织数据权限';
-- ---------------------------------------------------------------------------
-- 3. 数据范围(个人/小组/部门/组织树/全局)
-- ---------------------------------------------------------------------------
CREATE TABLE `role_data_scope` (
`Id` CHAR(36) NOT NULL,
`RoleId` CHAR(36) NOT NULL,
`DataScope` TINYINT NOT NULL COMMENT '1个人 2小组 3部门 4组织树 5全局',
`DataResourceCode` VARCHAR(32) NULL COMMENT 'NULL=全局默认;Order/Customer/Recharge 等',
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`CreateUserId` INT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`UpdateUserId` INT NULL,
`UpdateTime` DATETIME NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_role_data_scope` (`RoleId`, `DataResourceCode`, `IsDeleted`),
KEY `idx_role_data_scope_role` (`RoleId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色数据范围';
CREATE TABLE `user_data_scope` (
`Id` CHAR(36) NOT NULL,
`UserId` CHAR(36) NOT NULL,
`DataScope` TINYINT NOT NULL,
`DataResourceCode` VARCHAR(32) NULL,
`EffectiveTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`ExpireTime` DATETIME NULL,
`IsTemporary` TINYINT NOT NULL DEFAULT 0,
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`CreateUserId` INT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`UpdateUserId` INT NULL,
`UpdateTime` DATETIME NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_user_data_scope` (`UserId`, `DataResourceCode`, `IsDeleted`),
KEY `idx_user_data_scope_user` (`UserId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户数据范围(覆盖角色默认)';
-- ---------------------------------------------------------------------------
-- 4. 业务维度
-- ---------------------------------------------------------------------------
CREATE TABLE `role_biz_perm` (
`Id` CHAR(36) NOT NULL,
`RoleId` CHAR(36) NOT NULL,
`BizType` VARCHAR(32) NOT NULL COMMENT 'product_line/kpi_area/customer_group/warehouse/region',
`BizId` VARCHAR(64) NOT NULL COMMENT '业务主键字符串',
`BizName` VARCHAR(128) NULL COMMENT '冗余展示名',
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`CreateUserId` INT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`Id`),
KEY `idx_role_biz_perm_role` (`RoleId`, `BizType`),
KEY `idx_role_biz_perm_biz` (`BizType`, `BizId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色业务维度权限';
CREATE TABLE `user_biz_perm` (
`Id` CHAR(36) NOT NULL,
`UserId` CHAR(36) NOT NULL,
`BizType` VARCHAR(32) NOT NULL,
`BizId` VARCHAR(64) NOT NULL,
`BizName` VARCHAR(128) NULL,
`EffectiveTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`ExpireTime` DATETIME NULL,
`IsTemporary` TINYINT NOT NULL DEFAULT 0,
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`CreateUserId` INT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`Id`),
KEY `idx_user_biz_perm_user` (`UserId`, `BizType`),
KEY `idx_user_biz_perm_biz` (`BizType`, `BizId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户业务维度权限';
-- ---------------------------------------------------------------------------
-- 5. 密级
-- ---------------------------------------------------------------------------
CREATE TABLE `role_secret_perm` (
`Id` CHAR(36) NOT NULL,
`RoleId` CHAR(36) NOT NULL,
`SecretLevel` TINYINT NOT NULL COMMENT '1公开 2内部 3机密 4绝密',
`DataResourceCode` VARCHAR(32) NULL,
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`CreateUserId` INT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`Id`),
KEY `idx_role_secret_perm_role` (`RoleId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色密级权限';
CREATE TABLE `user_secret_perm` (
`Id` CHAR(36) NOT NULL,
`UserId` CHAR(36) NOT NULL,
`SecretLevel` TINYINT NOT NULL,
`DataResourceCode` VARCHAR(32) NULL,
`EffectiveTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`ExpireTime` DATETIME NULL,
`IsTemporary` TINYINT NOT NULL DEFAULT 0,
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`CreateUserId` INT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`Id`),
KEY `idx_user_secret_perm_user` (`UserId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户密级权限';
-- ---------------------------------------------------------------------------
-- 6. 自定义过滤规则(JSON AST,禁止存 SQL)
-- ---------------------------------------------------------------------------
CREATE TABLE `role_filter_rule` (
`Id` CHAR(36) NOT NULL,
`RoleId` CHAR(36) NOT NULL,
`DataResourceCode` VARCHAR(32) NOT NULL,
`FilterContent` JSON NOT NULL COMMENT '过滤条件 AST',
`FilterHash` CHAR(64) NOT NULL COMMENT 'SHA256(FilterContent)',
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`CreateUserId` INT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`UpdateUserId` INT NULL,
`UpdateTime` DATETIME NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_role_filter_rule` (`RoleId`, `DataResourceCode`, `IsDeleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色自定义过滤';
CREATE TABLE `user_filter_rule` (
`Id` CHAR(36) NOT NULL,
`UserId` CHAR(36) NOT NULL,
`DataResourceCode` VARCHAR(32) NOT NULL,
`FilterContent` JSON NOT NULL,
`FilterHash` CHAR(64) NOT NULL,
`EffectiveTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`ExpireTime` DATETIME NULL,
`IsTemporary` TINYINT NOT NULL DEFAULT 0,
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`CreateUserId` INT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`UpdateUserId` INT NULL,
`UpdateTime` DATETIME NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_user_filter_rule` (`UserId`, `DataResourceCode`, `IsDeleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户自定义过滤';
-- ---------------------------------------------------------------------------
-- 7. 数据资源注册(模块接入清单)
-- ---------------------------------------------------------------------------
CREATE TABLE `data_resource` (
`Id` CHAR(36) NOT NULL,
`Code` VARCHAR(32) NOT NULL COMMENT 'Order/Customer/Recharge/ChannelProduct/Xhs',
`Name` VARCHAR(64) NOT NULL,
`Description` VARCHAR(256) NULL,
`MainTable` VARCHAR(64) NULL COMMENT '主表名,如 t_order',
`OrgField` VARCHAR(64) NULL COMMENT '组织字段名',
`OwnerField` VARCHAR(64) NULL COMMENT '负责人字段名',
`SecretLevelField` VARCHAR(64) NULL DEFAULT 'SecretLevel',
`IsEnabled` TINYINT NOT NULL DEFAULT 1,
`SortOrder` INT NOT NULL DEFAULT 0,
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_data_resource_code` (`Code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据权限资源注册';
-- ---------------------------------------------------------------------------
-- 8. 字段脱敏配置
-- ---------------------------------------------------------------------------
CREATE TABLE `data_perm_field_mask` (
`Id` CHAR(36) NOT NULL,
`DataResourceCode` VARCHAR(32) NOT NULL,
`FieldName` VARCHAR(64) NOT NULL COMMENT 'DTO/表字段名',
`SecretLevel` TINYINT NOT NULL COMMENT '达到此密级才脱敏',
`MaskType` VARCHAR(32) NOT NULL DEFAULT 'partial' COMMENT 'partial/full/hide',
`MaskPattern` VARCHAR(128) NULL COMMENT '如 phone: 3,4 保留首尾',
`IsEnabled` TINYINT NOT NULL DEFAULT 1,
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_field_mask` (`DataResourceCode`, `FieldName`, `IsDeleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字段级脱敏配置';
-- ---------------------------------------------------------------------------
-- 9. 权限模板
-- ---------------------------------------------------------------------------
CREATE TABLE `data_perm_template` (
`Id` CHAR(36) NOT NULL,
`Name` VARCHAR(64) NOT NULL,
`Code` VARCHAR(32) NOT NULL COMMENT '模板编码,如 SalesStaff',
`Description` VARCHAR(256) NULL,
`RoleCode` VARCHAR(64) NULL COMMENT '可选绑定 RBAC role.Code,分配角色时自动套用',
`IsBuiltIn` TINYINT NOT NULL DEFAULT 0 COMMENT '内置模板不可删',
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
`CreateUserId` INT NOT NULL DEFAULT 0,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`UpdateUserId` INT NULL,
`UpdateTime` DATETIME NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_data_perm_template_code` (`Code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据权限模板';
CREATE TABLE `data_perm_template_item` (
`Id` CHAR(36) NOT NULL,
`TemplateId` CHAR(36) NOT NULL,
`DimensionType` VARCHAR(32) NOT NULL COMMENT 'org/data_scope/biz/secret/filter',
`ItemContent` JSON NOT NULL COMMENT '维度配置 JSON',
`SortOrder` INT NOT NULL DEFAULT 0,
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
PRIMARY KEY (`Id`),
KEY `idx_template_item_tpl` (`TemplateId`, `DimensionType`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据权限模板明细';
-- ---------------------------------------------------------------------------
-- 10. 审计
-- ---------------------------------------------------------------------------
CREATE TABLE `data_perm_change_log` (
`Id` BIGINT NOT NULL AUTO_INCREMENT,
`TargetType` VARCHAR(16) NOT NULL COMMENT 'user/role/template',
`TargetId` CHAR(36) NOT NULL,
`Action` VARCHAR(16) NOT NULL COMMENT 'create/update/delete/apply_template',
`BeforeJson` JSON NULL,
`AfterJson` JSON NULL,
`OperatorUserId` CHAR(36) NOT NULL COMMENT '操作人 user.Id',
`OperatorMapId` INT NULL COMMENT '操作人 mapId',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`Id`),
KEY `idx_perm_change_target` (`TargetType`, `TargetId`, `CreateTime`),
KEY `idx_perm_change_operator` (`OperatorUserId`, `CreateTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据权限配置变更日志';
CREATE TABLE `data_perm_access_log` (
`Id` BIGINT NOT NULL AUTO_INCREMENT,
`UserId` CHAR(36) NOT NULL,
`MapId` INT NULL,
`DataResourceCode` VARCHAR(32) NOT NULL,
`ApiPath` VARCHAR(256) NOT NULL,
`HttpMethod` VARCHAR(8) NOT NULL DEFAULT 'GET',
`AppliedScopeJson` JSON NULL COMMENT '生效五维快照',
`RowCount` INT NULL COMMENT '返回行数',
`ElapsedMs` INT NULL,
`ClientIp` VARCHAR(64) NULL,
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`Id`),
KEY `idx_perm_access_user_time` (`UserId`, `CreateTime`),
KEY `idx_perm_access_resource` (`DataResourceCode`, `CreateTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据权限访问审计(可采样)';
SET FOREIGN_KEY_CHECKS = 1;