20260804_hb_upgrade.sql 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. -- 红包功能升级:适用范围外表 / 自动发红包规则 / 发放日志 / 到账提示标记
  2. -- 执行前请确认线上库无同名表;ALTER 若字段已存在请跳过对应语句
  3. -- 1. 红包适用范围(一对一关联 xhHb,无记录=全部商品适用)
  4. CREATE TABLE IF NOT EXISTS `xhHbScope` (
  5. `id` int(11) NOT NULL AUTO_INCREMENT,
  6. `hbId` int(11) NOT NULL DEFAULT 0 COMMENT 'xhHb.id',
  7. `scopeType` tinyint(4) NOT NULL DEFAULT 1 COMMENT '1全部商品 2指定花束分类 3指定花束商品',
  8. `scopeValue` varchar(2000) NOT NULL DEFAULT '' COMMENT 'scopeType=2/3时逗号分隔id,=1时为空',
  9. `specialApplicable` tinyint(4) NOT NULL DEFAULT 1 COMMENT '特价及活动商品是否适用:0否 1是',
  10. `createdAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  11. PRIMARY KEY (`id`),
  12. UNIQUE KEY `uk_hbId` (`hbId`)
  13. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='红包适用范围';
  14. -- 2. 自动发红包规则(每门店每种类型一条)
  15. CREATE TABLE IF NOT EXISTS `xhHbAutoRule` (
  16. `id` int(11) NOT NULL AUTO_INCREMENT,
  17. `shopId` int(11) NOT NULL DEFAULT 0 COMMENT '门店id',
  18. `mainId` int(11) NOT NULL DEFAULT 0 COMMENT '中央id',
  19. `type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1新客 2受邀新客 3沉睡召回 4会员日',
  20. `status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '0关闭 1开启',
  21. `rules` text COMMENT '红包配置JSON,结构同充值送红包rules',
  22. `scopeType` tinyint(4) NOT NULL DEFAULT 1 COMMENT '1全部商品 2指定分类 3指定商品',
  23. `scopeValue` varchar(2000) NOT NULL DEFAULT '' COMMENT '分类/商品id逗号分隔',
  24. `specialApplicable` tinyint(4) NOT NULL DEFAULT 1 COMMENT '特价及活动商品是否适用',
  25. `extra` text COMMENT '类型专属JSON:沉睡{unOrderDays};会员日{sendDay,sendTime,target}',
  26. `createdAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  27. `updatedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  28. PRIMARY KEY (`id`),
  29. UNIQUE KEY `uk_shop_type` (`shopId`,`type`),
  30. KEY `idx_type_status` (`type`,`status`)
  31. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='自动发红包规则';
  32. -- 3. 自动发放日志(沉睡冷却 / 会员日每月去重)
  33. CREATE TABLE IF NOT EXISTS `xhHbAutoSendLog` (
  34. `id` int(11) NOT NULL AUTO_INCREMENT,
  35. `ruleId` int(11) NOT NULL DEFAULT 0 COMMENT 'xhHbAutoRule.id',
  36. `shopId` int(11) NOT NULL DEFAULT 0 COMMENT '门店id',
  37. `customId` int(11) NOT NULL DEFAULT 0 COMMENT '客户id',
  38. `cycleTag` varchar(32) NOT NULL DEFAULT '' COMMENT '会员日用年月如202608;沉睡可空',
  39. `sendTime` datetime NOT NULL COMMENT '发放时间',
  40. `createdAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  41. PRIMARY KEY (`id`),
  42. KEY `idx_rule_custom` (`ruleId`,`customId`),
  43. KEY `idx_rule_cycle` (`ruleId`,`customId`,`cycleTag`),
  44. KEY `idx_shop_send` (`shopId`,`sendTime`)
  45. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='自动发红包日志';
  46. -- 4. 发放流水:到账提示去重
  47. ALTER TABLE `xhHbManage`
  48. ADD COLUMN `notified` tinyint(4) NOT NULL DEFAULT 0 COMMENT 'mall到账提示:0未提示 1已提示' AFTER `cancelTime`,
  49. ADD COLUMN `notifiedAt` datetime DEFAULT NULL COMMENT '到账提示时间' AFTER `notified`;
  50. -- 5. getType 扩展:0新客 / 1赠送 / 2充值送 / 3受邀新客 / 4沉睡召回 / 5会员日
  51. ALTER TABLE xhHb modify COLUMN `getType` tinyint(4) NOT NULL DEFAULT '0' COMMENT '取得方式 0新人领取 1门店发放 2充值赠送 3受邀新客 4沉睡召回 5会员日';