Files
yml2213 941e7ad79a 积分充值全流程落地:申请审核入账、凭证上传压缩转webp、管理员调账收权
- 新增积分充值申请与审核:商户提交充值申请(凭证图片必填,1元=100积分),
  管理员审核通过后事务内自动入账,幂等键防重复
- 新增通用图片上传组件 ImageUploader:canvas 压缩转 webp、预览、删除,
  后端按魔数校验图片格式并持久化到 data/uploads
- 管理员钱包调整改为按商户维度:移除商户侧调账接口,新增管理员
  平台商户积分调整与钱包流水查看
- 低余额 Webhook 告警配置持久化,充值入账/调账后自动检查推送
- 平台商户操作列移除进入/成员,积分充值页接入真实接口并修复金额单位换算
2026-08-04 13:03:29 +08:00

35 lines
1.4 KiB
SQL

-- ============================================================================
-- 积分充值申请与低余额告警配置
-- 充值需上传打款凭证,由平台管理员审核通过后自动注入积分
-- ============================================================================
CREATE TABLE IF NOT EXISTS recharge_applications (
id BIGSERIAL PRIMARY KEY,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
deleted_at TIMESTAMPTZ,
merchant_id BIGINT NOT NULL,
application_no VARCHAR(64) NOT NULL UNIQUE,
amount_cny BIGINT NOT NULL,
points_amount BIGINT NOT NULL,
status VARCHAR(16) NOT NULL DEFAULT 'pending',
vouchers TEXT NOT NULL DEFAULT '[]',
note VARCHAR(512) NOT NULL DEFAULT '',
review_note VARCHAR(512) NOT NULL DEFAULT '',
reviewed_at TIMESTAMPTZ,
reviewed_by BIGINT
);
CREATE INDEX IF NOT EXISTS idx_recharge_applications_merchant ON recharge_applications (merchant_id);
CREATE INDEX IF NOT EXISTS idx_recharge_applications_status ON recharge_applications (status);
CREATE TABLE IF NOT EXISTS merchant_alert_configs (
id BIGSERIAL PRIMARY KEY,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
merchant_id BIGINT NOT NULL UNIQUE,
enabled BOOLEAN NOT NULL DEFAULT false,
threshold_points BIGINT NOT NULL DEFAULT 0,
webhook_url VARCHAR(1024) NOT NULL DEFAULT ''
);