bindbox-game/migrations/20260507_prize_grant_activities.sql
Zuncle e2364f3831 feat(activity): 新增独立奖品发放活动模块
新增独立奖品发放活动的后端表结构、服务、管理端接口与小程序领取接口,支持待领取查询、批量加入已处理、删除记录与成本汇总。
2026-05-07 22:09:22 +08:00

40 lines
2.3 KiB
SQL

CREATE TABLE IF NOT EXISTS `prize_grant_activities` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`reason` VARCHAR(255) NOT NULL COMMENT '发奖原因',
`status` VARCHAR(16) NOT NULL DEFAULT 'inactive' COMMENT '状态:active/inactive',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
PRIMARY KEY (`id`),
KEY `idx_pga_status_id` (`status`, `id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='奖品发放活动';
CREATE TABLE IF NOT EXISTS `prize_grant_activity_rewards` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`activity_id` BIGINT NOT NULL COMMENT '活动ID',
`reward_type` VARCHAR(32) NOT NULL COMMENT '奖品类型:product/item_card/coupon',
`reward_ref_id` BIGINT NOT NULL COMMENT '奖品资源ID',
`quantity_per_claim` INT NOT NULL DEFAULT 1 COMMENT '每次领取数量',
`sort` INT NOT NULL DEFAULT 0 COMMENT '排序',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
PRIMARY KEY (`id`),
KEY `idx_pgar_activity` (`activity_id`, `sort`, `id`),
KEY `idx_pgar_reward` (`reward_type`, `reward_ref_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='奖品发放活动奖品';
CREATE TABLE IF NOT EXISTS `prize_grant_activity_user_records` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`activity_id` BIGINT NOT NULL COMMENT '活动ID',
`user_id` BIGINT NOT NULL COMMENT '用户ID',
`status` VARCHAR(16) NOT NULL COMMENT '状态:claimed/processed',
`claimed_at` DATETIME(3) NULL DEFAULT NULL COMMENT '领取时间',
`processed_at` DATETIME(3) NULL DEFAULT NULL COMMENT '处理时间',
`operator_admin_id` BIGINT NOT NULL DEFAULT 0 COMMENT '操作管理员ID',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
PRIMARY KEY (`id`),
UNIQUE KEY `uk_pgaur_activity_user` (`activity_id`, `user_id`),
KEY `idx_pgaur_activity_status` (`activity_id`, `status`, `updated_at`),
KEY `idx_pgaur_user_status` (`user_id`, `status`, `updated_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='奖品发放活动用户记录';