前端(Vite + React)、API/worker(Fastify + BullMQ)、api-contracts 契约包、 迁移脚本、测试与自托管 docker-compose 示例。 开源准备:运维脚本与机器信息已拆到私有仓库;公司名、备案号、隐私邮箱改读 publicCompliance.local.json(仓库只保留占位模板);站点地址与客服二维码改为 VITE_ 环境变量;fixtures 中的真实用户标识已匿名化;三个 package.json 标注 Apache-2.0。 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
35 lines
1.3 KiB
SQL
35 lines
1.3 KiB
SQL
ALTER TABLE orders
|
|
ADD COLUMN IF NOT EXISTS refund_dispatch_status text NOT NULL DEFAULT 'idle',
|
|
ADD COLUMN IF NOT EXISTS refund_dispatch_attempts integer NOT NULL DEFAULT 0,
|
|
ADD COLUMN IF NOT EXISTS refund_dispatch_next_at timestamptz,
|
|
ADD COLUMN IF NOT EXISTS refund_dispatch_lease_until timestamptz,
|
|
ADD COLUMN IF NOT EXISTS refund_client_ip inet;
|
|
|
|
UPDATE orders
|
|
SET refund_dispatch_status = CASE
|
|
WHEN refund_status = 'succeeded' THEN 'completed'
|
|
WHEN refund_status = 'failed' THEN 'failed'
|
|
WHEN refund_status = 'pending' THEN 'submitted'
|
|
ELSE 'idle'
|
|
END,
|
|
refund_dispatch_next_at = NULL,
|
|
refund_dispatch_lease_until = NULL;
|
|
|
|
ALTER TABLE orders
|
|
DROP CONSTRAINT IF EXISTS orders_refund_dispatch_status_check;
|
|
|
|
ALTER TABLE orders
|
|
ADD CONSTRAINT orders_refund_dispatch_status_check
|
|
CHECK (refund_dispatch_status IN ('idle', 'queued', 'processing', 'uncertain', 'submitted', 'completed', 'failed'));
|
|
|
|
ALTER TABLE orders
|
|
DROP CONSTRAINT IF EXISTS orders_refund_dispatch_attempts_check;
|
|
|
|
ALTER TABLE orders
|
|
ADD CONSTRAINT orders_refund_dispatch_attempts_check
|
|
CHECK (refund_dispatch_attempts >= 0);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_orders_refund_dispatch_due
|
|
ON orders(refund_dispatch_next_at, created_at)
|
|
WHERE refund_dispatch_status IN ('queued', 'uncertain', 'processing');
|