This commit is contained in:
11
migrations/000197_add_agent_recharge_online_payment.down.sql
Normal file
11
migrations/000197_add_agent_recharge_online_payment.down.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
DROP INDEX IF EXISTS idx_payment_agent_recharge_pending;
|
||||
DROP INDEX IF EXISTS idx_agent_recharge_online_pending;
|
||||
DROP INDEX IF EXISTS uk_payment_method_trade_no;
|
||||
DROP INDEX IF EXISTS uk_agent_recharge_user_request;
|
||||
|
||||
ALTER TABLE tb_payment
|
||||
DROP COLUMN IF EXISTS qr_content;
|
||||
|
||||
ALTER TABLE tb_agent_recharge_record
|
||||
DROP COLUMN IF EXISTS request_fingerprint,
|
||||
DROP COLUMN IF EXISTS request_id;
|
||||
42
migrations/000197_add_agent_recharge_online_payment.up.sql
Normal file
42
migrations/000197_add_agent_recharge_online_payment.up.sql
Normal file
@@ -0,0 +1,42 @@
|
||||
-- 代理在线扫码充值:请求幂等、付款内容与待处理查询索引。
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM tb_payment
|
||||
WHERE third_party_trade_no IS NOT NULL
|
||||
AND third_party_trade_no <> ''
|
||||
GROUP BY payment_method, third_party_trade_no
|
||||
HAVING COUNT(*) > 1
|
||||
) THEN
|
||||
RAISE EXCEPTION '检测到重复的支付方式与第三方交易号,请先人工核对资金事实';
|
||||
END IF;
|
||||
END
|
||||
$$;
|
||||
|
||||
ALTER TABLE tb_agent_recharge_record
|
||||
ADD COLUMN request_id varchar(64),
|
||||
ADD COLUMN request_fingerprint varchar(64);
|
||||
|
||||
ALTER TABLE tb_payment
|
||||
ADD COLUMN qr_content text;
|
||||
|
||||
CREATE UNIQUE INDEX uk_agent_recharge_user_request
|
||||
ON tb_agent_recharge_record (user_id, request_id)
|
||||
WHERE request_id IS NOT NULL AND request_id <> '';
|
||||
|
||||
CREATE UNIQUE INDEX uk_payment_method_trade_no
|
||||
ON tb_payment (payment_method, third_party_trade_no)
|
||||
WHERE third_party_trade_no IS NOT NULL AND third_party_trade_no <> '';
|
||||
|
||||
CREATE INDEX idx_agent_recharge_online_pending
|
||||
ON tb_agent_recharge_record (status, created_at, id)
|
||||
WHERE deleted_at IS NULL AND payment_method IN ('wechat', 'alipay') AND status IN (1, 2, 4);
|
||||
|
||||
CREATE INDEX idx_payment_agent_recharge_pending
|
||||
ON tb_payment (status, created_at, id)
|
||||
WHERE deleted_at IS NULL AND order_type = 'agent_recharge' AND status = 0;
|
||||
|
||||
COMMENT ON COLUMN tb_agent_recharge_record.request_id IS '提交账号提供的在线充值幂等请求标识';
|
||||
COMMENT ON COLUMN tb_agent_recharge_record.request_fingerprint IS '在线充值请求业务字段指纹';
|
||||
COMMENT ON COLUMN tb_payment.qr_content IS '支付渠道返回的原始扫码付款内容,禁止写入日志或普通查询响应';
|
||||
4
migrations/000198_add_payment_merchant_identity.down.sql
Normal file
4
migrations/000198_add_payment_merchant_identity.down.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
DROP INDEX IF EXISTS idx_payment_merchant_reconciliation;
|
||||
|
||||
ALTER TABLE tb_payment
|
||||
DROP COLUMN IF EXISTS merchant_identity;
|
||||
8
migrations/000198_add_payment_merchant_identity.up.sql
Normal file
8
migrations/000198_add_payment_merchant_identity.up.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
ALTER TABLE tb_payment
|
||||
ADD COLUMN merchant_identity varchar(100);
|
||||
|
||||
CREATE INDEX idx_payment_merchant_reconciliation
|
||||
ON tb_payment (payment_method, merchant_identity, paid_at, id)
|
||||
WHERE deleted_at IS NULL AND merchant_identity IS NOT NULL AND merchant_identity <> '';
|
||||
|
||||
COMMENT ON COLUMN tb_payment.merchant_identity IS '创建支付单时的收款身份快照:微信商户号或支付宝应用ID';
|
||||
Reference in New Issue
Block a user