schema.sql 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. -- 集物星球爬虫建表 DDL
  2. -- 规范:自增 id 物理主键;业务唯一键单独建 UNIQUE;时间字段固定 gmt_create_time/gmt_modified_time datetime;表名 jw_ 前缀 + _record 后缀。
  3. -- 金额字段:入库前已 ÷1000000 换算成「元」存储(DECIMAL,两位小数)。实测原始 99000000 → 存 99.00 元(App ¥99.00)。
  4. SET NAMES utf8mb4;
  5. -- ========== 1. 在售商品(最新状态,index/top 抓取)==========
  6. CREATE TABLE IF NOT EXISTS `jw_onsale_product_record` (
  7. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  8. `goods_id` BIGINT NOT NULL COMMENT '商品ID(goodsId)',
  9. `program_id` BIGINT DEFAULT NULL COMMENT '节目/团ID(programId)',
  10. `goods_name` VARCHAR(500) DEFAULT NULL COMMENT '商品名',
  11. `product_type` VARCHAR(8) DEFAULT NULL COMMENT '商品类型码(1福袋2变风3错版卡4原盒)',
  12. `business_type` INT DEFAULT NULL COMMENT '业务线businessType',
  13. `block_type` INT DEFAULT NULL COMMENT '板块类型blockType',
  14. `goods_ip_id` INT DEFAULT NULL COMMENT 'IP分类ID',
  15. `goods_ip_name` VARCHAR(64) DEFAULT NULL COMMENT 'IP名(宝可梦/球星卡/海贼王等)',
  16. `gift_series` VARCHAR(255) DEFAULT NULL COMMENT '赠品系列(cardGoods.giftSeries,App 赠品系列页的"系列",详情补全)',
  17. `random_type` INT DEFAULT NULL COMMENT '玩法类型(randomType)',
  18. `corp_info_id` BIGINT DEFAULT NULL COMMENT '商家ID',
  19. `corp_info_name` VARCHAR(128) DEFAULT NULL COMMENT '商家名',
  20. `amount` DECIMAL(12,2) DEFAULT NULL COMMENT '价格(元),含首购优惠价',
  21. `highest_price` DECIMAL(12,2) DEFAULT NULL COMMENT '最高价(元)',
  22. `lowest_price` DECIMAL(12,2) DEFAULT NULL COMMENT '最低价(元)',
  23. `stock_amount` INT DEFAULT NULL COMMENT '总库存/总份数',
  24. `residue_stock_amount` INT DEFAULT NULL COMMENT '剩余库存',
  25. `sold_count` INT DEFAULT NULL COMMENT '已售数(stock-residue或字段)',
  26. `specification_name` VARCHAR(128) DEFAULT NULL COMMENT '规格(如10盒/3包手雷+2包Hobby)',
  27. `report_status` INT DEFAULT NULL COMMENT '拆卡报告状态',
  28. `live_status` INT DEFAULT NULL COMMENT '直播状态',
  29. `sold_time` DATETIME DEFAULT NULL COMMENT '上架/开售时间',
  30. `product_pic` VARCHAR(255) DEFAULT NULL COMMENT '商品图相对路径',
  31. `is_on_sale` TINYINT NOT NULL DEFAULT 1 COMMENT '是否在售:1是0已下架',
  32. -- 详情页补全字段(来自 merchantGoodsId,由 jw_detail 补拉;detail_fetched 控制每商品补一次)
  33. `img` VARCHAR(500) DEFAULT NULL COMMENT '商品图片完整URL(FILE_DOMAIN+resList首图resAddr)',
  34. `goods_type` VARCHAR(32) DEFAULT NULL COMMENT '商品类型(goodsType,如MERCHANT_PRODUCT)',
  35. `price` DECIMAL(12,2) DEFAULT NULL COMMENT '价格(元)',
  36. `original_price` DECIMAL(12,2) DEFAULT NULL COMMENT '原价(元)',
  37. `plan_up_time` DATETIME DEFAULT NULL COMMENT '计划上架时间(planUpTime)',
  38. `off_shelf_time` DATETIME DEFAULT NULL COMMENT '下架时间(offShelfTime)',
  39. `stock` INT DEFAULT NULL COMMENT '详情总库存(stock)',
  40. `surplus_stock` INT DEFAULT NULL COMMENT '详情剩余库存(surplusStock)',
  41. `status` INT DEFAULT NULL COMMENT '详情状态(status)',
  42. `collection_card_name` VARCHAR(255) DEFAULT NULL COMMENT '集卡名称(cardGoods.collectionCardName)',
  43. `gift_way` VARCHAR(64) DEFAULT NULL COMMENT '赠卡方式(cardGoods.giftWay)',
  44. `random_way` VARCHAR(64) DEFAULT NULL COMMENT '随机方式(cardGoods.randomWay)',
  45. `detail_fetched` TINYINT NOT NULL DEFAULT 0 COMMENT '详情字段是否已补:1是0否',
  46. `gmt_create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  47. `gmt_modified_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  48. PRIMARY KEY (`id`),
  49. UNIQUE KEY `uk_goods_id` (`goods_id`),
  50. KEY `idx_corp` (`corp_info_id`),
  51. KEY `idx_onsale` (`is_on_sale`),
  52. KEY `idx_detail_fetched` (`detail_fetched`)
  53. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='集物星球在售商品(最新状态)';
  54. -- ========== 2. 已售商品(只增,corp/history 抓取)==========
  55. CREATE TABLE IF NOT EXISTS `jw_sold_product_record` (
  56. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  57. `goods_id` BIGINT NOT NULL COMMENT '商品ID(goodsId)',
  58. `program_id` BIGINT DEFAULT NULL COMMENT '节目/团ID',
  59. `goods_name` VARCHAR(500) DEFAULT NULL COMMENT '商品名',
  60. `product_type` VARCHAR(8) DEFAULT NULL COMMENT '商品类型码',
  61. `business_type` INT DEFAULT NULL COMMENT '业务线',
  62. `goods_ip_id` INT DEFAULT NULL COMMENT 'IP分类ID',
  63. `goods_ip_name` VARCHAR(64) DEFAULT NULL COMMENT 'IP名',
  64. `gift_series` VARCHAR(255) DEFAULT NULL COMMENT '赠品系列(cardGoods.giftSeries,App 赠品系列页的"系列",详情补全)',
  65. `random_type` INT DEFAULT NULL COMMENT '玩法类型',
  66. `corp_info_id` BIGINT DEFAULT NULL COMMENT '商家ID',
  67. `corp_info_name` VARCHAR(128) DEFAULT NULL COMMENT '商家名',
  68. `amount` DECIMAL(12,2) DEFAULT NULL COMMENT '价格(元)',
  69. `highest_price` DECIMAL(12,2) DEFAULT NULL COMMENT '最高价(元)',
  70. `lowest_price` DECIMAL(12,2) DEFAULT NULL COMMENT '最低价(元)',
  71. `stock_amount` INT DEFAULT NULL COMMENT '总库存/总份数',
  72. `residue_stock_amount` INT DEFAULT NULL COMMENT '剩余库存',
  73. `specification_name` VARCHAR(128) DEFAULT NULL COMMENT '规格',
  74. `report_status` INT DEFAULT NULL COMMENT '拆卡报告状态',
  75. `live_replay_url` VARCHAR(255) DEFAULT NULL COMMENT '回放地址',
  76. `sold_time` DATETIME DEFAULT NULL COMMENT '开售时间',
  77. `soldout_time` DATETIME DEFAULT NULL COMMENT '售罄时间',
  78. `finish_time` DATETIME DEFAULT NULL COMMENT '结束时间',
  79. `buy_fetched` TINYINT NOT NULL DEFAULT 0 COMMENT '购买记录是否已抓全并入库:1是0否',
  80. -- 详情页补全字段(来自 merchantGoodsId,由 jw_detail 补拉;detail_fetched 控制每商品补一次)
  81. `img` VARCHAR(500) DEFAULT NULL COMMENT '商品图片完整URL(FILE_DOMAIN+resList首图resAddr)',
  82. `goods_type` VARCHAR(32) DEFAULT NULL COMMENT '商品类型(goodsType,如MERCHANT_PRODUCT)',
  83. `price` DECIMAL(12,2) DEFAULT NULL COMMENT '价格(元)',
  84. `original_price` DECIMAL(12,2) DEFAULT NULL COMMENT '原价(元)',
  85. `plan_up_time` DATETIME DEFAULT NULL COMMENT '计划上架时间(planUpTime)',
  86. `off_shelf_time` DATETIME DEFAULT NULL COMMENT '下架时间(offShelfTime)',
  87. `stock` INT DEFAULT NULL COMMENT '详情总库存(stock)',
  88. `surplus_stock` INT DEFAULT NULL COMMENT '详情剩余库存(surplusStock)',
  89. `status` INT DEFAULT NULL COMMENT '详情状态(status)',
  90. `collection_card_name` VARCHAR(255) DEFAULT NULL COMMENT '集卡名称(cardGoods.collectionCardName)',
  91. `gift_way` VARCHAR(64) DEFAULT NULL COMMENT '赠卡方式(cardGoods.giftWay)',
  92. `random_way` VARCHAR(64) DEFAULT NULL COMMENT '随机方式(cardGoods.randomWay)',
  93. `detail_fetched` TINYINT NOT NULL DEFAULT 0 COMMENT '详情字段是否已补:1是0否',
  94. `gmt_create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  95. `gmt_modified_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  96. PRIMARY KEY (`id`),
  97. UNIQUE KEY `uk_goods_id` (`goods_id`),
  98. KEY `idx_corp` (`corp_info_id`),
  99. KEY `idx_sold_time` (`sold_time`),
  100. KEY `idx_buy_fetched` (`buy_fetched`),
  101. KEY `idx_detail_fetched` (`detail_fetched`)
  102. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='集物星球已售商品(只增)';
  103. -- ========== 3. 商家(最新状态,hotRecommend 抓取)==========
  104. -- hotRecommend 商家字段:corpInfoId/corpInfoName/number(粉丝数)/saleNum(在售商品数)
  105. -- 注:响应里的 userId 是查询者本人账号id(每行恒等)、非商家id,不存;好评/新品/简介接口体系无此字段,不建列
  106. CREATE TABLE IF NOT EXISTS `jw_shop_record` (
  107. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  108. `corp_info_id` BIGINT NOT NULL COMMENT '商家ID(corpInfoId)',
  109. `corp_name` VARCHAR(128) DEFAULT NULL COMMENT '商家名(corpInfoName)',
  110. `fans_amount` INT DEFAULT NULL COMMENT '粉丝数(number)',
  111. `onsale_amount` INT DEFAULT NULL COMMENT '在售商品数(saleNum)',
  112. `gmt_create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  113. `gmt_modified_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  114. PRIMARY KEY (`id`),
  115. UNIQUE KEY `uk_corp_info_id` (`corp_info_id`)
  116. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='集物星球商家(hotRecommend 热门推荐, 最新状态)';
  117. -- ========== 4. 购买记录(只增,赠品公示·玩家维度 publicity/user/group/pager,每商品每买家一行)==========
  118. -- 不设唯一键、不 DB 去重:靠 jw_sold_product_record.buy_fetched 状态位控制「每个已售商品抓全一次」
  119. -- (翻页取全→批量入库成功→再置 buy_fetched=1;失败不置位、下轮重试)。
  120. CREATE TABLE IF NOT EXISTS `jw_player_record` (
  121. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  122. `goods_id` BIGINT NOT NULL COMMENT '商品ID',
  123. `user_id` BIGINT DEFAULT NULL COMMENT '买家用户ID(userId)',
  124. `user_nick` VARCHAR(128) DEFAULT NULL COMMENT '买家昵称(userNick,可能为"匿名购买")',
  125. `pic_id` VARCHAR(255) DEFAULT NULL COMMENT '买家头像路径(picId)',
  126. `buy_count` INT DEFAULT NULL COMMENT '购买份数(count)',
  127. `gmt_create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  128. `gmt_modified_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  129. PRIMARY KEY (`id`),
  130. KEY `idx_goods` (`goods_id`),
  131. KEY `idx_user` (`user_id`)
  132. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='集物星球购买记录(赠品公示玩家维度,每商品每买家一行,全站已售)';
  133. -- ========== 5. 在售监控提醒状态(盯 jake/九叔,去重用)==========
  134. CREATE TABLE IF NOT EXISTS `jw_onsale_alert_record` (
  135. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  136. `goods_id` BIGINT NOT NULL COMMENT '商品ID',
  137. `corp_info_id` BIGINT DEFAULT NULL COMMENT '商家ID',
  138. `corp_info_name` VARCHAR(128) DEFAULT NULL COMMENT '商家名',
  139. `goods_name` VARCHAR(500) DEFAULT NULL COMMENT '商品名',
  140. `new_notified` TINYINT NOT NULL DEFAULT 0 COMMENT '新品上架已提醒:1是0否',
  141. `half_notified` TINYINT NOT NULL DEFAULT 0 COMMENT '进度过半已提醒:1是0否',
  142. `ended_notified` TINYINT NOT NULL DEFAULT 0 COMMENT '结束战报已提醒:1是0否',
  143. `gmt_create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  144. `gmt_modified_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  145. PRIMARY KEY (`id`),
  146. UNIQUE KEY `uk_goods_id` (`goods_id`),
  147. KEY `idx_corp` (`corp_info_id`)
  148. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='集物星球在售监控提醒状态';
  149. -- ========== 6. 拆卡报告(只增,gift/report/query/search/pager 逐条)==========
  150. CREATE TABLE IF NOT EXISTS `jw_report_record` (
  151. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  152. `gift_report_id` BIGINT NOT NULL COMMENT '拆卡报告唯一ID(giftReportId,递增,天然去重键)',
  153. `goods_id` BIGINT DEFAULT NULL COMMENT '商品ID(来自查询参数,响应体不含)',
  154. `user_id` BIGINT DEFAULT NULL COMMENT '用户ID',
  155. `username` VARCHAR(128) DEFAULT NULL COMMENT '用户脱敏昵称',
  156. `corp_id` BIGINT DEFAULT NULL COMMENT '商家ID',
  157. `corp_name` VARCHAR(128) DEFAULT NULL COMMENT '商家名',
  158. `goods_name` VARCHAR(500) DEFAULT NULL COMMENT '商品名',
  159. `serial_item_name` VARCHAR(255) DEFAULT NULL COMMENT '开出的卡/系列名(serialItemName)',
  160. `res_addr_list` TEXT COMMENT '图片路径列表(resAddrList,JSON 串)',
  161. `winner_status` INT DEFAULT NULL COMMENT '中奖状态',
  162. `anonymous_status` INT DEFAULT NULL COMMENT '匿名状态',
  163. `my_gift_status` INT DEFAULT NULL COMMENT '状态(myGiftStatus)',
  164. `report_time` DATETIME DEFAULT NULL COMMENT '拆卡时间(createTime)',
  165. `gmt_create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  166. `gmt_modified_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  167. PRIMARY KEY (`id`),
  168. UNIQUE KEY `uk_gift_report_id` (`gift_report_id`),
  169. KEY `idx_goods` (`goods_id`),
  170. KEY `idx_corp` (`corp_id`),
  171. KEY `idx_user` (`user_id`)
  172. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='集物星球拆卡报告(逐条只增)';
  173. -- ========== 7. 在售每日快照(商品+日期唯一,四档 upsert 保留当天最新值,供在售趋势差分)==========
  174. CREATE TABLE IF NOT EXISTS `jw_onsale_daily_record` (
  175. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  176. `goods_id` BIGINT NOT NULL COMMENT '商品ID',
  177. `corp_info_id` BIGINT DEFAULT NULL COMMENT '所属商家ID',
  178. `corp_info_name` VARCHAR(128) DEFAULT NULL COMMENT '所属商家名',
  179. `snapshot_date` DATE NOT NULL COMMENT '快照日期(YYYY-MM-DD)',
  180. `product_type` VARCHAR(8) DEFAULT NULL COMMENT '商品类型码(1福袋2变风盒3错版卡4原盒)',
  181. `stock_amount` INT DEFAULT NULL COMMENT '当日总份数',
  182. `sold_count` INT DEFAULT NULL COMMENT '当日累计已售',
  183. `residue_stock_amount` INT DEFAULT NULL COMMENT '当日剩余库存',
  184. `live_status` INT DEFAULT NULL COMMENT '当日直播/在售状态',
  185. `amount` DECIMAL(12,2) DEFAULT NULL COMMENT '当日单价(元)',
  186. `gmt_create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  187. `gmt_modified_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  188. PRIMARY KEY (`id`),
  189. UNIQUE KEY `uk_goods_date` (`goods_id`,`snapshot_date`),
  190. KEY `idx_snapshot_date` (`snapshot_date`)
  191. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='集物星球在售每日快照(商品+日期唯一,当天多档更新为最新值)';