功能:新增收款码档案和收益补算功能
- 新增店员收款码档案管理(上传二维码和确认收款码) - 提现请求新增收款码快照用于审计追踪 - 新增收益补算服务用于历史订单数据补录 - 新增收益补算日志表用于审计追踪 - 优化收益创建逻辑,根据解冻时间设置正确的初始状态 - 更新提现流程,要求店员确认收款码后才能提现 - 新增数据库迁移脚本 V7-V9
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
-- Clerk payee QR profile and withdrawal snapshot
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `play_clerk_payee_profile` (
|
||||
`id` varchar(32) NOT NULL COMMENT 'UUID',
|
||||
`tenant_id` varchar(32) NOT NULL COMMENT '租户ID',
|
||||
`clerk_id` varchar(32) NOT NULL COMMENT '店员ID',
|
||||
`channel` varchar(32) NOT NULL DEFAULT 'ALIPAY_QR' COMMENT '收款渠道(例如:ALIPAY_QR)',
|
||||
`qr_code_url` varchar(512) NOT NULL COMMENT '收款二维码地址',
|
||||
`display_name` varchar(64) DEFAULT NULL COMMENT '收款码显示名称',
|
||||
`last_confirmed_at` datetime DEFAULT NULL COMMENT '最近确认时间',
|
||||
`created_by` varchar(32) DEFAULT NULL,
|
||||
`created_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_by` varchar(32) DEFAULT NULL,
|
||||
`updated_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除 1已删除 0未删除',
|
||||
`version` int NOT NULL DEFAULT '1' COMMENT '数据版本',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `uk_clerk_payee` (`tenant_id`, `clerk_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='店员提现收款码档案';
|
||||
|
||||
ALTER TABLE `play_withdrawal_request`
|
||||
ADD COLUMN `payee_snapshot` text COMMENT '提现时的收款码快照(JSON)';
|
||||
@@ -0,0 +1,23 @@
|
||||
-- Ensure each active tenant has a default freeze policy (7 days)
|
||||
|
||||
INSERT INTO `play_freeze_policy` (`id`, `tenant_id`, `clerk_id`, `freeze_hours`, `created_by`, `created_time`, `updated_by`, `updated_time`, `deleted`, `version`)
|
||||
SELECT
|
||||
REPLACE(UUID(), '-', ''),
|
||||
t.`tenant_id`,
|
||||
NULL,
|
||||
168,
|
||||
'migration_v8_default_freeze',
|
||||
NOW(),
|
||||
'migration_v8_default_freeze',
|
||||
NOW(),
|
||||
0,
|
||||
1
|
||||
FROM `sys_tenant` t
|
||||
WHERE (t.`deleted` IS NULL OR t.`deleted` = 0)
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM `play_freeze_policy` p
|
||||
WHERE p.`tenant_id` = t.`tenant_id`
|
||||
AND p.`clerk_id` IS NULL
|
||||
AND (p.`deleted` IS NULL OR p.`deleted` = 0)
|
||||
);
|
||||
@@ -0,0 +1,27 @@
|
||||
-- Audit log for earnings backfill executions
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `play_earnings_backfill_log` (
|
||||
`id` varchar(32) NOT NULL COMMENT 'UUID',
|
||||
`tenant_id` varchar(32) NOT NULL COMMENT '租户ID',
|
||||
`operator_id` varchar(32) DEFAULT NULL COMMENT '操作人ID',
|
||||
`operator_name` varchar(64) DEFAULT NULL COMMENT '操作人名称',
|
||||
`backfill_begin_time` datetime DEFAULT NULL COMMENT '查询起始时间',
|
||||
`backfill_end_time` datetime DEFAULT NULL COMMENT '查询结束时间',
|
||||
`clerk_ids` text COMMENT '指定店员ID集合(JSON)',
|
||||
`dry_run` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否试运行',
|
||||
`orders_checked` int NOT NULL DEFAULT '0' COMMENT '检查订单数',
|
||||
`created_count` int NOT NULL DEFAULT '0' COMMENT '新增收益条目数',
|
||||
`skipped_existing` int NOT NULL DEFAULT '0' COMMENT '跳过已存在收益条目数',
|
||||
`warning_count` int NOT NULL DEFAULT '0' COMMENT '警告数量',
|
||||
`warnings` text COMMENT '警告明细(JSON)',
|
||||
`comment` varchar(255) DEFAULT NULL COMMENT '备注',
|
||||
`created_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
`created_by` varchar(32) DEFAULT NULL,
|
||||
`updated_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`updated_by` varchar(32) DEFAULT NULL,
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除 1已删除 0未删除',
|
||||
`version` int NOT NULL DEFAULT '1' COMMENT '数据版本',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_backfill_tenant_time` (`tenant_id`, `created_time`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='收益补算执行记录';
|
||||
|
||||
Reference in New Issue
Block a user