feat: add editable order collaboration remarks

This commit is contained in:
2026-09-14 16:53:09 +08:00
parent 26c37deb55
commit e0af45db02
32 changed files with 356 additions and 175 deletions
+30
View File
@@ -22,6 +22,9 @@ CREATE TABLE IF NOT EXISTS ord_order (
expected_arrival_at DATETIME(3) NULL COMMENT '客户申报预计到货时间',
estimated_volume_cbm DECIMAL(18,4) NULL COMMENT '平台运营预估体积(立方米),独立于客户下单及实测体积',
customer_remark VARCHAR(1000) NULL COMMENT '客户可见备注',
internal_remark VARCHAR(1000) NULL COMMENT '平台内部备注',
warehouse_remark VARCHAR(1000) NULL COMMENT '仓库备注',
customer_service_remark VARCHAR(1000) NULL COMMENT '客服备注',
pickup_method VARCHAR(24) NULL COMMENT '取货方式',
requested_pickup_at DATETIME(3) NULL COMMENT '客户要求平台上门提货的预约时间',
receiving_warehouse_id BIGINT UNSIGNED NULL COMMENT '国内收货仓ID',
@@ -66,6 +69,33 @@ CREATE TABLE IF NOT EXISTS ord_order (
KEY idx_order_tenant_warehouse (tenant_id, destination_warehouse_id)
) ENGINE=InnoDB COMMENT='头程订单主表:保存商户委托、目的仓、运输方式和订单当前状态';
SET @order_internal_remark_sql = IF(
EXISTS(SELECT 1 FROM information_schema.columns WHERE table_schema='baiyue_order' AND table_name='ord_order' AND column_name='internal_remark'),
'SELECT 1',
'ALTER TABLE baiyue_order.ord_order ADD COLUMN internal_remark VARCHAR(1000) NULL COMMENT ''平台内部备注'' AFTER customer_remark'
);
PREPARE order_internal_remark_stmt FROM @order_internal_remark_sql;
EXECUTE order_internal_remark_stmt;
DEALLOCATE PREPARE order_internal_remark_stmt;
SET @order_warehouse_remark_sql = IF(
EXISTS(SELECT 1 FROM information_schema.columns WHERE table_schema='baiyue_order' AND table_name='ord_order' AND column_name='warehouse_remark'),
'SELECT 1',
'ALTER TABLE baiyue_order.ord_order ADD COLUMN warehouse_remark VARCHAR(1000) NULL COMMENT ''仓库备注'' AFTER internal_remark'
);
PREPARE order_warehouse_remark_stmt FROM @order_warehouse_remark_sql;
EXECUTE order_warehouse_remark_stmt;
DEALLOCATE PREPARE order_warehouse_remark_stmt;
SET @order_customer_service_remark_sql = IF(
EXISTS(SELECT 1 FROM information_schema.columns WHERE table_schema='baiyue_order' AND table_name='ord_order' AND column_name='customer_service_remark'),
'SELECT 1',
'ALTER TABLE baiyue_order.ord_order ADD COLUMN customer_service_remark VARCHAR(1000) NULL COMMENT ''客服备注'' AFTER warehouse_remark'
);
PREPARE order_customer_service_remark_stmt FROM @order_customer_service_remark_sql;
EXECUTE order_customer_service_remark_stmt;
DEALLOCATE PREPARE order_customer_service_remark_stmt;
SET @order_fulfillment_type_sql = IF(
EXISTS(
SELECT 1 FROM information_schema.columns
+11 -6
View File
@@ -267,10 +267,10 @@ paths:
application/json:
schema: {$ref: '#/components/schemas/UnifiedOrderDetailEnvelope'}
'403': {description: 需要平台身份和 platform:order:list 权限}
/api/platform/v1/orders/{orderId}/internal-notes:
post:
summary: 添加订单内部备注
description: 添加仅平台内部可见的订单备注,需要 platform:order:note 权限。
/api/platform/v1/orders/{orderId}/remarks:
put:
summary: 更新订单协作备注
description: 客户备注只读;需要 platform:order:note 权限,可更新或清空内部备注、仓库备注和客服备注。
parameters:
- $ref: '#/components/parameters/UnifiedOrderId'
- $ref: '#/components/parameters/UnifiedTenantId'
@@ -280,9 +280,12 @@ paths:
application/json:
schema:
type: object
required: [content]
required: [expectedVersion]
properties:
content: {type: string, minLength: 1, maxLength: 2000}
expectedVersion: {type: integer, minimum: 0}
internalRemark: {type: string, nullable: true, maxLength: 1000}
warehouseRemark: {type: string, nullable: true, maxLength: 1000}
customerServiceRemark: {type: string, nullable: true, maxLength: 1000}
responses:
'200': {description: 备注添加成功或业务失败,按响应体 code 判断}
'403': {description: 需要 platform:order:note 权限}
@@ -949,6 +952,8 @@ components:
coLoadGroup: {$ref: '#/components/schemas/UnifiedCoLoadGroupSummary'}
customerRemark: {type: string, nullable: true}
latestInternalNote: {type: string, nullable: true, description: 客户详情不返回平台内部备注}
warehouseRemark: {type: string, nullable: true}
customerServiceRemark: {type: string, nullable: true}
createdAt: {type: string, format: date-time, nullable: true}
updatedAt: {type: string, format: date-time, nullable: true}
UnifiedOrderRelation: