|
|
@@ -3009,19 +3009,19 @@ insertSysConfigSeed("gift_membership_pay_price", "198000", "送会员商品达
|
|
|
createFatGoalTable();
|
|
|
addProductVendorVisibleColumn();
|
|
|
|
|
|
- // 迁移360: products 表添加健康约束字段(基础疾病禁忌/过敏原/药物相互作用标记)
|
|
|
+ // 迁移367: products 表添加健康约束字段(基础疾病禁忌/过敏原/药物相互作用标记)
|
|
|
addProductHealthConstraintColumns();
|
|
|
|
|
|
- // 迁移361: 创建 drug_interactions 表(药物-食物禁忌对照表)
|
|
|
+ // 迁移368: 创建 drug_interactions 表(药物-食物禁忌对照表)
|
|
|
createDrugInteractionsTable();
|
|
|
|
|
|
- // 迁移362: 创建 disease_intake_limits 表(疾病-饮食摄入阈值)
|
|
|
+ // 迁移369: 创建 disease_intake_limits 表(疾病-饮食摄入阈值)
|
|
|
createDiseaseIntakeLimitsTable();
|
|
|
|
|
|
- // 迁移363: 初始化 drug_interactions 种子数据
|
|
|
+ // 迁移370: 初始化 drug_interactions 种子数据
|
|
|
seedDrugInteractionsData();
|
|
|
|
|
|
- // 迁移364: 初始化 disease_intake_limits 种子数据
|
|
|
+ // 迁移371: 初始化 disease_intake_limits 种子数据
|
|
|
seedDiseaseIntakeLimitsData();
|
|
|
|
|
|
// 指标统一层迁移(356~362)
|
|
|
@@ -12397,14 +12397,14 @@ log.info("迁移298: 已为无 openid 的 child 账号补齐 family_members 记
|
|
|
ensureColumn("products", "vendor_visible", "TINYINT(1) DEFAULT NULL COMMENT '是否仅供应商体系内用户可见(列表接口生效,直接分享可bypass)'");
|
|
|
}
|
|
|
|
|
|
- // 迁移360: products 表添加健康约束字段(基础疾病禁忌/过敏原/药物相互作用标记)
|
|
|
+ // 迁移367: products 表添加健康约束字段(基础疾病禁忌/过敏原/药物相互作用标记)
|
|
|
private void addProductHealthConstraintColumns() {
|
|
|
ensureColumn("products", "contraindicated_diseases", "VARCHAR(255) DEFAULT NULL COMMENT '禁忌基础疾病,逗号分隔(如\"慢性肾病,肝病\")'");
|
|
|
ensureColumn("products", "allergen_tags", "VARCHAR(255) DEFAULT NULL COMMENT '过敏原标签,逗号分隔(如\"花生,小麦\")'");
|
|
|
ensureColumn("products", "drug_interaction_flags", "TINYINT DEFAULT 0 COMMENT '是否命中药物-食物相互作用(1=是,需对照drug_interactions表)'");
|
|
|
}
|
|
|
|
|
|
- // 迁移361: 创建 drug_interactions 表(药物-食物禁忌对照表)
|
|
|
+ // 迁移368: 创建 drug_interactions 表(药物-食物禁忌对照表)
|
|
|
private void createDrugInteractionsTable() {
|
|
|
try {
|
|
|
jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS drug_interactions (" +
|
|
|
@@ -12419,13 +12419,13 @@ log.info("迁移298: 已为无 openid 的 child 账号补齐 family_members 记
|
|
|
"UNIQUE KEY uk_drug_food (drug_class, drug_specifics, interacting_subst), " +
|
|
|
"INDEX idx_interacting (interacting_subst)" +
|
|
|
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='药物-食物禁忌对照表'");
|
|
|
- log.info("迁移361: 已创建drug_interactions表");
|
|
|
+ log.info("迁移368: 已创建drug_interactions表");
|
|
|
} catch (Exception e) {
|
|
|
- log.warn("迁移361: 创建drug_interactions表失败: {}", e.getMessage());
|
|
|
+ log.warn("迁移368: 创建drug_interactions表失败: {}", e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 迁移362: 创建 disease_intake_limits 表(疾病-饮食摄入阈值)
|
|
|
+ // 迁移369: 创建 disease_intake_limits 表(疾病-饮食摄入阈值)
|
|
|
private void createDiseaseIntakeLimitsTable() {
|
|
|
try {
|
|
|
jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS disease_intake_limits (" +
|
|
|
@@ -12439,13 +12439,13 @@ log.info("迁移298: 已为无 openid 的 child 账号补齐 family_members 记
|
|
|
"stage_dependent TINYINT(1) DEFAULT 0 COMMENT '是否按病情分期(1=是 0=否)', " +
|
|
|
"INDEX idx_disease_nutrient (disease_type, nutrient)" +
|
|
|
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='疾病-饮食摄入校验阈值表'");
|
|
|
- log.info("迁移362: 已创建disease_intake_limits表");
|
|
|
+ log.info("迁移369: 已创建disease_intake_limits表");
|
|
|
} catch (Exception e) {
|
|
|
- log.warn("迁移362: 创建disease_intake_limits表失败: {}", e.getMessage());
|
|
|
+ log.warn("迁移369: 创建disease_intake_limits表失败: {}", e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 迁移363: 初始化 drug_interactions 种子数据(高危组合,幂等)
|
|
|
+ // 迁移370: 初始化 drug_interactions 种子数据(高危组合,幂等)
|
|
|
private void seedDrugInteractionsData() {
|
|
|
String[][] seed = {
|
|
|
{"CCB", "硝苯地平", "西柚", "1", "block", "0", "西柚抑制药物代谢酶,血药浓度升高数倍,低血压风险,服药期间完全避免"},
|
|
|
@@ -12480,13 +12480,13 @@ log.info("迁移298: 已为无 openid 的 child 账号补齐 family_members 记
|
|
|
"INSERT INTO drug_interactions (drug_class, drug_specifics, interacting_subst, risk_level, action_type, interval_minutes, note) VALUES (?,?,?,?,?,?,?)",
|
|
|
row[0], row[1], row[2], Integer.valueOf(row[3]), row[4], Integer.valueOf(row[5]), row[6]);
|
|
|
} catch (Exception e) {
|
|
|
- log.warn("迁移363: 插入drug_interactions种子失败: {}", e.getMessage());
|
|
|
+ log.warn("迁移370: 插入drug_interactions种子失败: {}", e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
- log.info("迁移363: drug_interactions种子数据初始化完成");
|
|
|
+ log.info("迁移370: drug_interactions种子数据初始化完成");
|
|
|
}
|
|
|
|
|
|
- // 迁移364: 初始化 disease_intake_limits 种子数据(幂等)
|
|
|
+ // 迁移371: 初始化 disease_intake_limits 种子数据(幂等)
|
|
|
private void seedDiseaseIntakeLimitsData() {
|
|
|
String[][] seed = {
|
|
|
{"慢性肾病", "protein", "g/kg/day", "0.8", "0.6", "杨桃", "1"},
|
|
|
@@ -12510,10 +12510,10 @@ log.info("迁移298: 已为无 openid 的 child 账号补齐 family_members 记
|
|
|
"INSERT INTO disease_intake_limits (disease_type, nutrient, unit, threshold_max, threshold_min, block_foods, stage_dependent) VALUES (?,?,?,?,?,?,?)",
|
|
|
row[0], row[1], row[2], row[3], row[4], row[5], Integer.valueOf(row[6]));
|
|
|
} catch (Exception e) {
|
|
|
- log.warn("迁移364: 插入disease_intake_limits种子失败: {}", e.getMessage());
|
|
|
+ log.warn("迁移371: 插入disease_intake_limits种子失败: {}", e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
- log.info("迁移364: disease_intake_limits种子数据初始化完成");
|
|
|
+ log.info("迁移371: disease_intake_limits种子数据初始化完成");
|
|
|
}
|
|
|
|
|
|
// 迁移363: 创建采购任务表(商品组合推荐与采购任务生命周期管理)
|