|
|
@@ -1256,8 +1256,8 @@ log.info("已添加template_id列到tasks表");
|
|
|
" external_source VARCHAR(64)," +
|
|
|
" external_id VARCHAR(128)," +
|
|
|
" external_data TEXT," +
|
|
|
- " created_at DATETIME," +
|
|
|
- " updated_at DATETIME" +
|
|
|
+ " created_at DATETIME DEFAULT CURRENT_TIMESTAMP," +
|
|
|
+ " updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP" +
|
|
|
")"
|
|
|
);
|
|
|
} catch (Exception e) {
|
|
|
@@ -1269,7 +1269,7 @@ log.info("已添加template_id列到tasks表");
|
|
|
jdbcTemplate.execute(
|
|
|
"CREATE TABLE IF NOT EXISTS product_orders (" +
|
|
|
" id BIGINT AUTO_INCREMENT PRIMARY KEY," +
|
|
|
- " order_no VARCHAR(64) NOT NULL," +
|
|
|
+ " order_no VARCHAR(64) NOT NULL UNIQUE," +
|
|
|
" product_id BIGINT NOT NULL," +
|
|
|
" product_name VARCHAR(200)," +
|
|
|
" product_type VARCHAR(32)," +
|
|
|
@@ -1282,8 +1282,8 @@ log.info("已添加template_id列到tasks表");
|
|
|
" payment_method VARCHAR(32) COMMENT 'wechat/points/membership'," +
|
|
|
" remark VARCHAR(500)," +
|
|
|
" paid_at DATETIME," +
|
|
|
- " created_at DATETIME," +
|
|
|
- " updated_at DATETIME" +
|
|
|
+ " created_at DATETIME DEFAULT CURRENT_TIMESTAMP," +
|
|
|
+ " updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP" +
|
|
|
")"
|
|
|
);
|
|
|
} catch (Exception e) {
|
|
|
@@ -1295,10 +1295,10 @@ log.info("已添加template_id列到tasks表");
|
|
|
jdbcTemplate.execute(
|
|
|
"CREATE TABLE IF NOT EXISTS sys_config (" +
|
|
|
" id BIGINT AUTO_INCREMENT PRIMARY KEY," +
|
|
|
- " config_key VARCHAR(64) NOT NULL," +
|
|
|
+ " config_key VARCHAR(64) NOT NULL UNIQUE," +
|
|
|
" config_value TEXT," +
|
|
|
" description VARCHAR(500)," +
|
|
|
- " updated_at DATETIME" +
|
|
|
+ " updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP" +
|
|
|
")"
|
|
|
);
|
|
|
} catch (Exception e) {
|
|
|
@@ -1322,11 +1322,11 @@ log.info("已添加template_id列到tasks表");
|
|
|
|
|
|
// Product 种子数据(5 个示例商品,覆盖全部 5 种 productType)
|
|
|
try {
|
|
|
- insertProductSeed("亲子关系工作坊", "线下半日工作坊,重建家庭对话模式", "activity", new java.math.BigDecimal("388.00"), 1L, "action", "all");
|
|
|
- insertProductSeed("情绪管理21天训练营", "21天视频课程,识别并管理情绪", "course", new java.math.BigDecimal("199.00"), 1L, "mind", "all");
|
|
|
- insertProductSeed("肠道菌群检测套装", "家用检测 + 报告解读", "physical", new java.math.BigDecimal("599.00"), 1L, "body", "budget");
|
|
|
- insertProductSeed("儿童多模态认知测评", "在线测评 + 个性化建议", "digital", new java.math.BigDecimal("99.00"), 1L, "wisdom", "none");
|
|
|
- insertProductSeed("成长规划师1对1咨询", "60分钟专业规划", "service", new java.math.BigDecimal("500.00"), 1L, "wealth", "budget");
|
|
|
+ insertProductSeed("亲子关系工作坊", "线下半日工作坊,重建家庭对话模式", "activity", new java.math.BigDecimal("388.00"), "action", "all");
|
|
|
+ insertProductSeed("情绪管理21天训练营", "21天视频课程,识别并管理情绪", "course", new java.math.BigDecimal("199.00"), "mind", "all");
|
|
|
+ insertProductSeed("肠道菌群检测套装", "家用检测 + 报告解读", "physical", new java.math.BigDecimal("599.00"), "body", "budget");
|
|
|
+ insertProductSeed("儿童多模态认知测评", "在线测评 + 个性化建议", "digital", new java.math.BigDecimal("99.00"), "wisdom", "none");
|
|
|
+ insertProductSeed("成长规划师1对1咨询", "60分钟专业规划", "service", new java.math.BigDecimal("500.00"), "wealth", "budget");
|
|
|
log.info("Product 种子数据已加载");
|
|
|
} catch (Exception e) {
|
|
|
log.warn("Product 种子数据初始化失败: {}", e.getMessage());
|
|
|
@@ -1805,15 +1805,15 @@ try {
|
|
|
}
|
|
|
|
|
|
private void insertProductSeed(String name, String desc, String type,
|
|
|
- java.math.BigDecimal price, Long vendorId,
|
|
|
+ java.math.BigDecimal price,
|
|
|
String domain, String memberEligible) {
|
|
|
Integer count = jdbcTemplate.queryForObject(
|
|
|
"SELECT COUNT(*) FROM products WHERE name = ? AND product_type = ?", Integer.class, name, type);
|
|
|
if (count == null || count == 0) {
|
|
|
jdbcTemplate.update(
|
|
|
"INSERT INTO products (name, description, price, product_type, vendor_id, vendor_name, status, domain, member_eligible, created_at, updated_at) " +
|
|
|
- "VALUES (?, ?, ?, ?, ?, '平台官方', 'on_shelf', ?, ?, NOW(), NOW())",
|
|
|
- name, desc, price, type, vendorId, domain, memberEligible);
|
|
|
+ "VALUES (?, ?, ?, ?, NULL, '平台官方', 'on_shelf', ?, ?, NOW(), NOW())",
|
|
|
+ name, desc, price, type, domain, memberEligible);
|
|
|
}
|
|
|
}
|
|
|
}
|