|
|
@@ -10105,5 +10105,64 @@ public class DatabaseInitializer implements CommandLineRunner {
|
|
|
} catch (Exception e) {
|
|
|
log.warn("family_coupon_grant_log 表已存在,跳过创建: {}", e.getMessage());
|
|
|
}
|
|
|
+
|
|
|
+ // 迁移279: 创建 product_gift_configs 表(商品赠品配置,商品×等级)
|
|
|
+ try {
|
|
|
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS product_gift_configs (" +
|
|
|
+ "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
|
|
|
+ "product_id BIGINT NOT NULL COMMENT '关联products表', " +
|
|
|
+ "level_code VARCHAR(50) NOT NULL COMMENT '会员等级编码(FAMILY/PREMIUM等)', " +
|
|
|
+ "status TINYINT(1) DEFAULT 1 COMMENT '1=启用 0=停用', " +
|
|
|
+ "created_at DATETIME DEFAULT CURRENT_TIMESTAMP, " +
|
|
|
+ "updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, " +
|
|
|
+ "UNIQUE KEY uk_product_level (product_id, level_code), " +
|
|
|
+ "INDEX idx_product_id (product_id), " +
|
|
|
+ "INDEX idx_level_code (level_code)" +
|
|
|
+ ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品赠品配置(商品×等级)'");
|
|
|
+ log.info("已创建product_gift_configs表");
|
|
|
+ } catch (Exception e) {
|
|
|
+ // 表已存在,忽略
|
|
|
+ }
|
|
|
+
|
|
|
+ // 迁移280: 创建 product_gift_items 表(商品赠品项)
|
|
|
+ try {
|
|
|
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS product_gift_items (" +
|
|
|
+ "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
|
|
|
+ "config_id BIGINT NOT NULL COMMENT '关联product_gift_configs.id', " +
|
|
|
+ "gift_type VARCHAR(20) NOT NULL COMMENT 'product=赠品商品 cf=CF值', " +
|
|
|
+ "gift_product_id BIGINT COMMENT '赠品商品ID(gift_type=product时必填)', " +
|
|
|
+ "gift_product_name VARCHAR(200) COMMENT '赠品商品名快照', " +
|
|
|
+ "gift_product_image VARCHAR(500) COMMENT '赠品商品图快照', " +
|
|
|
+ "cf_value INT DEFAULT 0 COMMENT 'CF值数量(gift_type=cf时必填,单位分)', " +
|
|
|
+ "sort_order INT DEFAULT 0 COMMENT '排序(值越小越靠前)', " +
|
|
|
+ "created_at DATETIME DEFAULT CURRENT_TIMESTAMP, " +
|
|
|
+ "INDEX idx_config_id (config_id)" +
|
|
|
+ ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品赠品项'");
|
|
|
+ log.info("已创建product_gift_items表");
|
|
|
+ } catch (Exception e) {
|
|
|
+ // 表已存在,忽略
|
|
|
+ }
|
|
|
+
|
|
|
+ // 迁移281: 创建 product_order_gifts 表(订单赠品记录)
|
|
|
+ try {
|
|
|
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS product_order_gifts (" +
|
|
|
+ "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
|
|
|
+ "order_id BIGINT NOT NULL COMMENT '关联product_orders.id', " +
|
|
|
+ "order_no VARCHAR(64) NOT NULL COMMENT '订单号快照', " +
|
|
|
+ "gift_type VARCHAR(20) NOT NULL COMMENT 'product=赠品商品 cf=CF值', " +
|
|
|
+ "gift_product_id BIGINT COMMENT '赠品商品ID', " +
|
|
|
+ "gift_product_name VARCHAR(200) COMMENT '赠品商品名快照', " +
|
|
|
+ "gift_product_image VARCHAR(500) COMMENT '赠品商品图快照', " +
|
|
|
+ "cf_value INT DEFAULT 0 COMMENT 'CF值数量(gift_type=cf时)', " +
|
|
|
+ "quantity INT DEFAULT 1 COMMENT '数量(默认1)', " +
|
|
|
+ "fulfilled TINYINT(1) DEFAULT 0 COMMENT '0=已选未发放 1=已发放', " +
|
|
|
+ "created_at DATETIME DEFAULT CURRENT_TIMESTAMP, " +
|
|
|
+ "INDEX idx_order_id (order_id), " +
|
|
|
+ "INDEX idx_order_no (order_no)" +
|
|
|
+ ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单赠品记录'");
|
|
|
+ log.info("已创建product_order_gifts表");
|
|
|
+ } catch (Exception e) {
|
|
|
+ // 表已存在,忽略
|
|
|
+ }
|
|
|
}
|
|
|
}
|