| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291 |
- -- ============================================================
- -- 得卡 DECA 表结构(从数据库真实结构导出,2026/08/04 重构后)
- -- 在售流程 deca_onsale_* / 已售流程 deca_*(结构同onsale)/ deca_report_record
- -- ============================================================
- -- ---------- 在售(onsale)流程 ----------
- CREATE TABLE `deca_onsale_shop_record` (
- `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
- `merchant_user_id` varchar(32) NOT NULL COMMENT '商家用户ID(接口 userId,接口2的 merchantUserId)',
- `merchant_name` varchar(128) DEFAULT NULL COMMENT '商家名称',
- `merchant_avatar_url` varchar(512) DEFAULT NULL COMMENT '商家头像URL',
- `fans_count` int DEFAULT NULL COMMENT '粉丝数(动态)',
- `active_groupbuy_count` int DEFAULT NULL COMMENT '在售团购数(动态)',
- `gmt_create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `gmt_modified_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_merchant_user_id` (`merchant_user_id`)
- ) ENGINE=InnoDB AUTO_INCREMENT=176 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='得卡-商家列表(最新状态)';
- CREATE TABLE `deca_onsale_product_record` (
- `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
- `product_code` varchar(32) NOT NULL COMMENT '商品编码(接口 code,如 GB26080178297)',
- `merchant_user_id` varchar(32) DEFAULT NULL COMMENT '所属商家用户ID(merchant.merchantUserID)',
- `merchant_name` varchar(128) DEFAULT NULL COMMENT '商家名称',
- `title` varchar(1000) DEFAULT NULL COMMENT '商品标题',
- `card_product_title` varchar(1000) DEFAULT NULL COMMENT '卡牌商品副标题(cardProductTitle)',
- `cover_image_url` varchar(512) DEFAULT NULL COMMENT '封面图URL',
- `unit_price` decimal(12,2) DEFAULT NULL COMMENT '单价(unitPrice)',
- `min_unit_price` decimal(12,2) DEFAULT NULL COMMENT '最低单价',
- `max_unit_price` decimal(12,2) DEFAULT NULL COMMENT '最高单价',
- `card_count` int DEFAULT NULL COMMENT '总份数(cardCount)',
- `sold_count` int DEFAULT NULL COMMENT '已售份数(soldCount,动态)',
- `available_stock` int DEFAULT NULL COMMENT '剩余库存(availableStock,动态)',
- `groupbuy_status` int DEFAULT NULL COMMENT '拼团状态码(groupbuyStatus)',
- `groupbuy_status_name` varchar(32) DEFAULT NULL COMMENT '拼团状态名(groupbuyStatusName,如 拼团中)',
- `is_on_sale` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否当前在售(1是/0否;每轮采集不在全量在售集合内则置0)',
- `play_type` int DEFAULT NULL COMMENT '玩法类型(playType)',
- `live_id` bigint DEFAULT NULL COMMENT '关联直播ID(liveId)',
- `publish_at` varchar(32) DEFAULT NULL COMMENT '上架时间(详情 publishAt)',
- `sale_start_at` varchar(32) DEFAULT NULL COMMENT '售卖开始时间(详情 saleStartAt)',
- `sale_end_at` varchar(32) DEFAULT NULL COMMENT '售卖结束时间(详情 saleEndAt)',
- `gmt_create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `gmt_modified_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
- `spec_name` varchar(64) DEFAULT NULL COMMENT '规格(specTypeName)',
- `series_name` varchar(255) DEFAULT NULL COMMENT '系列名称(giftInfo.seriesName)',
- `series_config` varchar(255) DEFAULT NULL COMMENT '系列配置(giftInfo.seriesConfig)',
- `expected_card_count` int DEFAULT NULL COMMENT '预计开卡张数(totalExpectedCardCount)',
- `checklist_card_count` int DEFAULT NULL COMMENT '卡密份数(totalCardCount)',
- `replay_url` varchar(512) DEFAULT NULL COMMENT '视频回放链接(replay_url)',
- `report_state` tinyint DEFAULT '0' COMMENT '拆卡报告采集状态 0未采/1已采/2无/3失败',
- `replay_state` tinyint DEFAULT '0' COMMENT '视频回放采集状态 0未采/1已采/2无/3失败',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_product_code` (`product_code`),
- KEY `idx_merchant_user_id` (`merchant_user_id`)
- ) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='得卡-在售商品(最新状态)';
- CREATE TABLE `deca_onsale_product_daily_record` (
- `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
- `product_code` varchar(32) NOT NULL COMMENT '商品编码(code)',
- `merchant_user_id` varchar(32) DEFAULT NULL COMMENT '所属商家用户ID',
- `snapshot_date` date NOT NULL COMMENT '快照日期(YYYY-MM-DD)',
- `card_count` int DEFAULT NULL COMMENT '当日总份数',
- `sold_count` int DEFAULT NULL COMMENT '当日累计已售',
- `available_stock` int DEFAULT NULL COMMENT '当日剩余库存',
- `groupbuy_status_name` varchar(32) DEFAULT NULL COMMENT '当日拼团状态名',
- `unit_price` decimal(12,2) DEFAULT NULL COMMENT '当日单价',
- `gmt_create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `gmt_modified_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_code_date` (`product_code`,`snapshot_date`),
- KEY `idx_snapshot_date` (`snapshot_date`)
- ) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='得卡-商品每日售卖进度快照';
- CREATE TABLE `deca_onsale_kami_record` (
- `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
- `uuid` varchar(64) NOT NULL COMMENT '卡牌唯一标识(uuid)',
- `product_code` varchar(32) DEFAULT NULL COMMENT '所属商品编码(请求 code)',
- `sort_order` int DEFAULT NULL COMMENT '序号(sortOrder)',
- `alias_name` varchar(64) DEFAULT NULL COMMENT '别名(aliasName,如 TCU1)',
- `team_name_en` varchar(128) DEFAULT NULL COMMENT '球队英文名(teamNameEn)',
- `team_name_zh` varchar(128) DEFAULT NULL COMMENT '球队中文名(teamNameZh)',
- `player_name_en` varchar(128) DEFAULT NULL COMMENT '球员英文名(playerNameEn)',
- `player_name_zh` varchar(128) DEFAULT NULL COMMENT '球员中文名(playerNameZh)',
- `card_type` varchar(255) DEFAULT NULL COMMENT '卡种(cardType)',
- `limit_number` varchar(64) DEFAULT NULL COMMENT '限编(limitNumber)',
- `card_number` varchar(64) DEFAULT NULL COMMENT '卡编(cardNumber,如 No.1)',
- `gmt_create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `gmt_modified_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_uuid` (`uuid`),
- KEY `idx_product_code` (`product_code`)
- ) ENGINE=InnoDB AUTO_INCREMENT=15933 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='得卡-商品卡牌清单(checklist)';
- -- ---------- 已售流程(结构复制onsale) ----------
- CREATE TABLE `deca_shop_record` (
- `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
- `merchant_user_id` varchar(32) NOT NULL COMMENT '商家用户ID(接口 userId,接口2的 merchantUserId)',
- `merchant_name` varchar(128) DEFAULT NULL COMMENT '商家名称',
- `merchant_avatar_url` varchar(512) DEFAULT NULL COMMENT '商家头像URL',
- `fans_count` int DEFAULT NULL COMMENT '粉丝数(动态)',
- `active_groupbuy_count` int DEFAULT NULL COMMENT '在售团购数(动态)',
- `gmt_create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `gmt_modified_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_merchant_user_id` (`merchant_user_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='得卡-商家列表(最新状态)';
- CREATE TABLE `deca_product_record` (
- `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
- `product_code` varchar(32) NOT NULL COMMENT '商品编码(接口 code,如 GB26080178297)',
- `merchant_user_id` varchar(32) DEFAULT NULL COMMENT '所属商家用户ID(merchant.merchantUserID)',
- `merchant_name` varchar(128) DEFAULT NULL COMMENT '商家名称',
- `title` varchar(1000) DEFAULT NULL COMMENT '商品标题',
- `card_product_title` varchar(1000) DEFAULT NULL COMMENT '卡牌商品副标题(cardProductTitle)',
- `cover_image_url` varchar(512) DEFAULT NULL COMMENT '封面图URL',
- `unit_price` decimal(12,2) DEFAULT NULL COMMENT '单价(unitPrice)',
- `min_unit_price` decimal(12,2) DEFAULT NULL COMMENT '最低单价',
- `max_unit_price` decimal(12,2) DEFAULT NULL COMMENT '最高单价',
- `card_count` int DEFAULT NULL COMMENT '总份数(cardCount)',
- `sold_count` int DEFAULT NULL COMMENT '已售份数(soldCount,动态)',
- `available_stock` int DEFAULT NULL COMMENT '剩余库存(availableStock,动态)',
- `groupbuy_status` int DEFAULT NULL COMMENT '拼团状态码(groupbuyStatus)',
- `groupbuy_status_name` varchar(32) DEFAULT NULL COMMENT '拼团状态名(groupbuyStatusName,如 拼团中)',
- `play_type` int DEFAULT NULL COMMENT '玩法类型(playType)',
- `live_id` bigint DEFAULT NULL COMMENT '关联直播ID(liveId)',
- `publish_at` varchar(32) DEFAULT NULL COMMENT '上架时间(详情 publishAt)',
- `sale_start_at` varchar(32) DEFAULT NULL COMMENT '售卖开始时间(详情 saleStartAt)',
- `sale_end_at` varchar(32) DEFAULT NULL COMMENT '售卖结束时间(详情 saleEndAt)',
- `gmt_create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `gmt_modified_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
- `spec_name` varchar(64) DEFAULT NULL COMMENT '规格(specTypeName)',
- `series_name` varchar(255) DEFAULT NULL COMMENT '系列名称(giftInfo.seriesName)',
- `series_config` varchar(255) DEFAULT NULL COMMENT '系列配置(giftInfo.seriesConfig)',
- `expected_card_count` int DEFAULT NULL COMMENT '预计开卡张数(totalExpectedCardCount)',
- `checklist_card_count` int DEFAULT NULL COMMENT '卡密份数(totalCardCount)',
- `replay_url` varchar(512) DEFAULT NULL COMMENT '视频回放链接(replay_url)',
- `report_state` tinyint DEFAULT '0' COMMENT '拆卡报告采集状态 0未采/1已采/2无/3失败',
- `replay_state` tinyint DEFAULT '0' COMMENT '视频回放采集状态 0未采/1已采/2无/3失败',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_product_code` (`product_code`),
- KEY `idx_merchant_user_id` (`merchant_user_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='得卡-在售商品(最新状态)';
- CREATE TABLE `deca_kami_record` (
- `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
- `uuid` varchar(64) NOT NULL COMMENT '卡牌唯一标识(uuid)',
- `product_code` varchar(32) DEFAULT NULL COMMENT '所属商品编码(请求 code)',
- `sort_order` int DEFAULT NULL COMMENT '序号(sortOrder)',
- `alias_name` varchar(64) DEFAULT NULL COMMENT '别名(aliasName,如 TCU1)',
- `team_name_en` varchar(128) DEFAULT NULL COMMENT '球队英文名(teamNameEn)',
- `team_name_zh` varchar(128) DEFAULT NULL COMMENT '球队中文名(teamNameZh)',
- `player_name_en` varchar(128) DEFAULT NULL COMMENT '球员英文名(playerNameEn)',
- `player_name_zh` varchar(128) DEFAULT NULL COMMENT '球员中文名(playerNameZh)',
- `card_type` varchar(255) DEFAULT NULL COMMENT '卡种(cardType)',
- `limit_number` varchar(64) DEFAULT NULL COMMENT '限编(limitNumber)',
- `card_number` varchar(64) DEFAULT NULL COMMENT '卡编(cardNumber,如 No.1)',
- `gmt_create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `gmt_modified_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_uuid` (`uuid`),
- KEY `idx_product_code` (`product_code`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='得卡-商品卡牌清单(checklist)';
- -- ---------- 拆卡报告 ----------
- CREATE TABLE `deca_report_record` (
- `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
- `product_code` varchar(32) DEFAULT NULL COMMENT '商品编码',
- `confirmed_card_uuid` varchar(64) NOT NULL COMMENT '拆开的卡唯一标识(confirmedCardUuid)',
- `player_name_en` varchar(128) DEFAULT NULL COMMENT '球员英文名',
- `player_name_zh` varchar(128) DEFAULT NULL COMMENT '球员中文名',
- `opened_at` varchar(32) DEFAULT NULL COMMENT '开卡时间(openedAt)',
- `hit_user_nickname` varchar(64) DEFAULT NULL COMMENT '中卡用户昵称(hitUserNickname)',
- `image_url` varchar(1024) DEFAULT NULL COMMENT '卡图URL(images内所有imageUrl逗号拼接)',
- `gmt_create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `gmt_modified_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_confirmed_card_uuid` (`confirmed_card_uuid`),
- KEY `idx_product_code` (`product_code`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='得卡-拆卡报告(开出的卡+中卡用户+卡图)';
- -- ---------- 在售商品提醒监控(onsale_alert_spider.py 用) ----------
- -- 监控指定商家在售商品:新商品上架提醒 + 进度过半提醒;两个 notified 标记位用于去重防重复提醒
- CREATE TABLE `deca_onsale_alert_record` (
- `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
- `product_code` varchar(32) NOT NULL COMMENT '商品编码(接口 code)',
- `merchant_user_id` varchar(32) DEFAULT NULL COMMENT '所属商家用户ID',
- `merchant_name` varchar(128) DEFAULT NULL COMMENT '商家名称',
- `title` varchar(1000) DEFAULT NULL COMMENT '商品标题',
- `unit_price` decimal(12,2) DEFAULT NULL COMMENT '单价(unitPrice)',
- `card_count` int DEFAULT NULL COMMENT '总份数(cardCount)',
- `sold_count` int DEFAULT NULL COMMENT '已售份数(soldCount,动态)',
- `progress` decimal(5,2) DEFAULT NULL COMMENT '售卖进度百分比(sold/card*100)',
- `available_stock` int DEFAULT NULL COMMENT '剩余库存(availableStock)',
- `groupbuy_status_name` varchar(32) DEFAULT NULL COMMENT '拼团状态名(groupbuyStatusName)',
- `share_code` varchar(512) DEFAULT NULL COMMENT '分享码(shareResp.shareCode,已urlencode,拼分享URL用)',
- `new_notified` tinyint DEFAULT '0' COMMENT '新品上架提醒已发 0未发/1已发',
- `half_notified` tinyint DEFAULT '0' COMMENT '进度过半提醒已发 0未发/1已发',
- `gmt_create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `gmt_modified_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_product_code` (`product_code`),
- KEY `idx_merchant_user_id` (`merchant_user_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='得卡-在售商品提醒监控(新品上架/进度过半)';
- -- ---------- 商品购买记录累积(buy_record_analysis/test_buy_record.py 用) ----------
- -- 详情页 purchaseRecords 只返回最近 10 条,靠周期轮询累积买家名单
- -- 「订单粒度」去重:同 user 对同商品可下多笔相同份数的单(如王**要 x10 两笔间隔2分钟),需区分。
- -- 唯一键含 purchased_at_ts 精确到秒作 DB 兜底;主判重在应用层:反推时间戳±70s内视为同一笔(相对时间漂移)、否则新订单。
- CREATE TABLE `deca_buy_record` (
- `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
- `product_code` varchar(32) NOT NULL COMMENT '商品编码(接口 code,如 GB26080417234)',
- `merchant_user_id` varchar(32) DEFAULT NULL COMMENT '所属商家用户ID(冗余,便于查看)',
- `merchant_name` varchar(128) DEFAULT NULL COMMENT '商家名称(冗余,便于查看)',
- `title` varchar(1000) DEFAULT NULL COMMENT '商品标题(冗余,便于查看)',
- `user_id` varchar(32) NOT NULL COMMENT '买家用户ID(purchaseRecords.userId)',
- `nickname` varchar(64) DEFAULT NULL COMMENT '买家昵称(脱敏,如 D**l)',
- `card_count` int DEFAULT NULL COMMENT '本次购买份数(cardCount)',
- `purchased_at_text` varchar(32) DEFAULT NULL COMMENT '首次抓到时的相对时间原文(如 1分钟前)',
- `purchased_at_ts` bigint DEFAULT NULL COMMENT '反推的绝对购买时间戳(秒),去重键之一',
- `purchased_at` datetime DEFAULT NULL COMMENT '反推的绝对购买时间',
- `first_seen_at` datetime DEFAULT NULL COMMENT '我们首次抓到该条记录的时间',
- `gmt_create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `gmt_modified_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_buy` (`product_code`,`user_id`,`card_count`,`purchased_at_ts`),
- KEY `idx_product_code` (`product_code`),
- KEY `idx_user_id` (`user_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='得卡-商品购买记录(详情页purchaseRecords周期累积)';
- -- ============================================================
- -- 2026/08/11 新增:随机团(选队随机/剩余随机) teams 明细
- -- 背景:选队随机每队价格不同,team-options 一旦转成剩余随机就永久 29000,
- -- 原始 cardCount 拿不到;必须在选队阶段持续抓 team-options 存下来,
- -- 转剩余随机后才能算出「原始总价 - 当前剩余货值」。
- -- 存储策略:
- -- - 在售团(data_source=team_options):每轮覆盖成最新一份(同 product_code+team_id
- -- 直接更新,captured_at 记录采集时刻);
- -- - 已售团 或 剩余随机快照(data_source=snapshot):存完成时/首次采到时的最终一份。
- -- ============================================================
- CREATE TABLE IF NOT EXISTS `deca_groupbuy_team_record` (
- `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
- `product_code` varchar(32) NOT NULL COMMENT '商品编码(接口 code)',
- `play_type_name` varchar(64) DEFAULT NULL COMMENT '采集时状态:选队随机-.../剩余随机',
- `data_source` varchar(16) NOT NULL COMMENT '数据来源:team_options(选队阶段) / snapshot(剩余随机冻结快照)',
- `team_id` int NOT NULL COMMENT '队ID(teamId)',
- `team_name_en` varchar(64) DEFAULT NULL COMMENT '队英文名(teamNameEn)',
- `team_name_zh` varchar(64) DEFAULT NULL COMMENT '队中文名(teamNameZh)',
- `team_logo_image_url` varchar(512) DEFAULT NULL COMMENT '队 logo URL',
- `unit_price` decimal(12,2) DEFAULT NULL COMMENT '该队单价(unitPrice)',
- `card_count` int DEFAULT NULL COMMENT '该队原始总份(cardCount,仅选队阶段有;剩余快照无→NULL)',
- `available_stock` int DEFAULT NULL COMMENT '剩余份数(选队=当前剩余;剩余快照=冻结在转换点的剩余)',
- `sold_count` int DEFAULT NULL COMMENT '已售份数(选队=card_count-available_stock;剩余快照逐队算不出→NULL)',
- `snapshot_total_quantity` int DEFAULT NULL COMMENT '剩余随机快照 totalQuantity(仅 snapshot 时有)',
- `captured_at` datetime NOT NULL COMMENT '采集时刻(选队随机实时变,用它区分不同轮)',
- `gmt_create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `gmt_modified_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_product_team` (`product_code`,`team_id`,`data_source`),
- KEY `idx_product_code` (`product_code`),
- KEY `idx_captured_at` (`captured_at`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='得卡-拼团 teams 明细(随机团逐队价格/份数,含选队实时与剩余随机冻结快照)';
- -- 两张商品表加「团总价」列,报告读它优先(NULL 则回落到 unit_price*sold_count)
- -- 语义:随机团(选队随机/剩余随机) 用 teams 表按状态算出的总价;固定价团保持 NULL(报告端回落原公式)
- -- 首次执行请手动跑(MySQL 不支持 ADD COLUMN IF NOT EXISTS,已加过会报 1060 忽略即可):
- ALTER TABLE `deca_onsale_product_record` ADD COLUMN `team_total_amount` decimal(14,2) DEFAULT NULL COMMENT '按 teams 算的总价(随机团用;NULL=固定价团或数据缺失)' AFTER `checklist_card_count`;
- ALTER TABLE `deca_product_record` ADD COLUMN `team_total_amount` decimal(14,2) DEFAULT NULL COMMENT '按 teams 算的总价(随机团用;NULL=固定价团或数据缺失)' AFTER `checklist_card_count`;
- -- ============================================================
- -- 2026/08/11 新增:全站在售商品进度时间序列(append-only)
- -- 用途:后续统计"什么时候卖了多少百分比"——售卖速度、进度曲线、时段热度。
- -- 触发:buy_record_spider 每 60 秒 ingest_onsale 之后,对比该商品上一次的
- -- sold_count/available_stock,**变化才 INSERT**(避免没卖动的商品重复占位)。
- -- 与 deca_onsale_product_daily_record 的区别:daily 是每日单点、日粒度;本表是
- -- 变化时点、分钟级细粒度,适合画曲线。
- -- ============================================================
- CREATE TABLE IF NOT EXISTS `deca_onsale_product_progress_record` (
- `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
- `product_code` varchar(32) NOT NULL COMMENT '商品编码',
- `merchant_user_id` varchar(32) DEFAULT NULL COMMENT '所属商家用户ID(冗余便于查询)',
- `sold_count` int DEFAULT NULL COMMENT '当时已售份数',
- `available_stock` int DEFAULT NULL COMMENT '当时剩余库存',
- `card_count` int DEFAULT NULL COMMENT '当时总份数',
- `progress_pct` decimal(6,2) DEFAULT NULL COMMENT '进度百分比(sold_count/card_count*100,冗余便于查询)',
- `unit_price` decimal(12,2) DEFAULT NULL COMMENT '当时单价(用于快速估算金额;随机团另见 team_total_amount)',
- `captured_at` datetime NOT NULL COMMENT '采集时刻',
- `gmt_create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- PRIMARY KEY (`id`),
- KEY `idx_code_time` (`product_code`,`captured_at`),
- KEY `idx_captured_at` (`captured_at`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='得卡-在售商品进度时间序列(变化才写,用于售卖速度/进度曲线统计)';
|