完成一键登录和支付功能

This commit was merged in pull request #43.
This commit is contained in:
future
2026-06-28 14:47:42 +08:00
parent 35e7532f1b
commit fc48db071e
77 changed files with 4816 additions and 686 deletions
@@ -0,0 +1,33 @@
-- 支付订单表
CREATE TABLE IF NOT EXISTS payment_order (
id BIGSERIAL PRIMARY KEY,
order_no VARCHAR(64) NOT NULL UNIQUE,
member_id BIGINT,
order_type VARCHAR(32),
goods_desc VARCHAR(256),
trans_amt DECIMAL(12, 2),
trade_type VARCHAR(32),
pay_status VARCHAR(16) DEFAULT 'PENDING',
huifu_id VARCHAR(64),
req_seq_id VARCHAR(64),
req_date VARCHAR(16),
hf_seq_id VARCHAR(64),
pay_info TEXT,
qr_code TEXT,
pay_url TEXT,
remark VARCHAR(512),
notify_url VARCHAR(512),
pay_time TIMESTAMP,
expire_time TIMESTAMP,
error_code VARCHAR(64),
error_msg VARCHAR(512),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
deleted_at TIMESTAMP
);
CREATE INDEX IF NOT EXISTS idx_payment_order_order_no ON payment_order(order_no);
CREATE INDEX IF NOT EXISTS idx_payment_order_member_id ON payment_order(member_id);
CREATE INDEX IF NOT EXISTS idx_payment_order_req_seq_id ON payment_order(req_seq_id);
CREATE INDEX IF NOT EXISTS idx_payment_order_status ON payment_order(pay_status);
CREATE INDEX IF NOT EXISTS idx_payment_order_expire_time ON payment_order(expire_time);
@@ -0,0 +1 @@
ALTER TABLE payment_order ADD COLUMN IF NOT EXISTS party_order_id VARCHAR(64);
@@ -0,0 +1,58 @@
-- 创建储值卡表(包含支付密码)
-- 每个会员只有一张储值卡,支付密码也在同一张表中
CREATE TABLE IF NOT EXISTS member_stored_card (
id BIGSERIAL PRIMARY KEY,
member_id BIGINT NOT NULL,
balance DECIMAL(10, 2) DEFAULT 0.00,
total_recharge DECIMAL(10, 2) DEFAULT 0.00,
total_consume DECIMAL(10, 2) DEFAULT 0.00,
pay_password VARCHAR(255),
is_pay_password_set BOOLEAN DEFAULT FALSE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
deleted_at TIMESTAMP
);
-- 创建唯一索引,每个会员只能有一张储值卡
CREATE UNIQUE INDEX IF NOT EXISTS idx_member_stored_card_member_id ON member_stored_card(member_id) WHERE deleted_at IS NULL;
-- 添加注释
COMMENT ON TABLE member_stored_card IS '储值卡表,每个会员只有一张储值卡,包含支付密码';
COMMENT ON COLUMN member_stored_card.member_id IS '会员用户ID';
COMMENT ON COLUMN member_stored_card.balance IS '储值卡余额';
COMMENT ON COLUMN member_stored_card.total_recharge IS '累计充值金额';
COMMENT ON COLUMN member_stored_card.total_consume IS '累计消费金额';
COMMENT ON COLUMN member_stored_card.pay_password IS '支付密码(BCrypt加密)';
COMMENT ON COLUMN member_stored_card.is_pay_password_set IS '是否已设置支付密码';
-- 创建储值卡充值记录表
CREATE TABLE IF NOT EXISTS member_stored_card_recharge (
id BIGSERIAL PRIMARY KEY,
member_id BIGINT NOT NULL,
order_no VARCHAR(64) NOT NULL,
recharge_amount DECIMAL(10, 2) DEFAULT 0.00,
bonus_amount DECIMAL(10, 2) DEFAULT 0.00,
total_amount DECIMAL(10, 2) DEFAULT 0.00,
pay_amount DECIMAL(10, 2) DEFAULT 0.00,
status VARCHAR(32) DEFAULT 'PENDING',
pay_time TIMESTAMP,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
deleted_at TIMESTAMP
);
-- 创建索引
CREATE INDEX IF NOT EXISTS idx_stored_card_recharge_member_id ON member_stored_card_recharge(member_id) WHERE deleted_at IS NULL;
CREATE UNIQUE INDEX IF NOT EXISTS idx_stored_card_recharge_order_no ON member_stored_card_recharge(order_no) WHERE deleted_at IS NULL;
-- 添加注释
COMMENT ON TABLE member_stored_card_recharge IS '储值卡充值记录表';
COMMENT ON COLUMN member_stored_card_recharge.member_id IS '会员用户ID';
COMMENT ON COLUMN member_stored_card_recharge.order_no IS '订单号';
COMMENT ON COLUMN member_stored_card_recharge.recharge_amount IS '充值金额';
COMMENT ON COLUMN member_stored_card_recharge.bonus_amount IS '赠送金额';
COMMENT ON COLUMN member_stored_card_recharge.total_amount IS '到账总金额(充值+赠送)';
COMMENT ON COLUMN member_stored_card_recharge.pay_amount IS '实际支付金额';
COMMENT ON COLUMN member_stored_card_recharge.status IS '充值状态:PENDING-待支付,SUCCESS-成功,FAILED-失败';
COMMENT ON COLUMN member_stored_card_recharge.pay_time IS '支付时间';