feat: 新增退款管理模块 — 完整的退款审批流程、佣金回扣和资产重置
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m8s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m8s
新增退款申请全生命周期管理:创建/列表/详情/审批通过/拒绝/退回/重新提交 审批通过后异步执行佣金全额回扣(扣减各代理佣金钱包)和资产重置(套餐失效+停机+世代重置) 新增 tb_refund_request 表(迁移 000093)、RefundRequest Model、8 个 DTO 新增 Store/Service/Handler/路由注册,仅平台用户可访问
This commit is contained in:
59
migrations/000093_create_refund_request.up.sql
Normal file
59
migrations/000093_create_refund_request.up.sql
Normal file
@@ -0,0 +1,59 @@
|
||||
-- 创建退款申请表
|
||||
CREATE TABLE IF NOT EXISTS tb_refund_request (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted_at TIMESTAMP WITH TIME ZONE,
|
||||
creator BIGINT NOT NULL DEFAULT 0,
|
||||
updater BIGINT NOT NULL DEFAULT 0,
|
||||
|
||||
-- 退款单基础信息
|
||||
refund_no VARCHAR(50) NOT NULL,
|
||||
order_id BIGINT NOT NULL,
|
||||
package_usage_id BIGINT,
|
||||
shop_id BIGINT,
|
||||
|
||||
-- 金额信息
|
||||
actual_received_amount BIGINT NOT NULL,
|
||||
requested_refund_amount BIGINT NOT NULL,
|
||||
approved_refund_amount BIGINT,
|
||||
|
||||
-- 退款原因和状态
|
||||
refund_reason TEXT,
|
||||
status INT NOT NULL DEFAULT 1,
|
||||
|
||||
-- 审批信息
|
||||
processor_id BIGINT,
|
||||
processed_at TIMESTAMP WITH TIME ZONE,
|
||||
reject_reason TEXT,
|
||||
remark TEXT,
|
||||
|
||||
-- 后处理标记
|
||||
commission_deducted BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
asset_reset BOOLEAN NOT NULL DEFAULT FALSE
|
||||
);
|
||||
|
||||
-- 索引
|
||||
CREATE UNIQUE INDEX idx_refund_request_refund_no ON tb_refund_request (refund_no) WHERE deleted_at IS NULL;
|
||||
CREATE INDEX idx_refund_request_order_id ON tb_refund_request (order_id);
|
||||
CREATE INDEX idx_refund_request_shop_id ON tb_refund_request (shop_id);
|
||||
CREATE INDEX idx_refund_request_status ON tb_refund_request (status);
|
||||
CREATE INDEX idx_refund_request_deleted_at ON tb_refund_request (deleted_at);
|
||||
|
||||
-- 字段注释
|
||||
COMMENT ON TABLE tb_refund_request IS '退款申请表';
|
||||
COMMENT ON COLUMN tb_refund_request.refund_no IS '退款单号(RF+日期时间+6位随机数)';
|
||||
COMMENT ON COLUMN tb_refund_request.order_id IS '关联订单ID';
|
||||
COMMENT ON COLUMN tb_refund_request.package_usage_id IS '关联套餐使用记录ID(可选)';
|
||||
COMMENT ON COLUMN tb_refund_request.shop_id IS '店铺ID(从订单获取,用于数据权限过滤)';
|
||||
COMMENT ON COLUMN tb_refund_request.actual_received_amount IS '实收金额(分)';
|
||||
COMMENT ON COLUMN tb_refund_request.requested_refund_amount IS '申请退款金额(分)';
|
||||
COMMENT ON COLUMN tb_refund_request.approved_refund_amount IS '审批实际退款金额(分)';
|
||||
COMMENT ON COLUMN tb_refund_request.refund_reason IS '退款原因';
|
||||
COMMENT ON COLUMN tb_refund_request.status IS '状态 1-待审批 2-已通过 3-已拒绝 4-已退回';
|
||||
COMMENT ON COLUMN tb_refund_request.processor_id IS '审批人ID';
|
||||
COMMENT ON COLUMN tb_refund_request.processed_at IS '审批时间';
|
||||
COMMENT ON COLUMN tb_refund_request.reject_reason IS '拒绝原因';
|
||||
COMMENT ON COLUMN tb_refund_request.remark IS '审批备注';
|
||||
COMMENT ON COLUMN tb_refund_request.commission_deducted IS '佣金是否已回扣';
|
||||
COMMENT ON COLUMN tb_refund_request.asset_reset IS '资产是否已重置(套餐停用+停机+世代重置)';
|
||||
Reference in New Issue
Block a user