Преглед на файлове

feat(backend): 健康报告采集扩展疾病关联菌和肠道菌群状态字段(实体/迁移)

Ultraworked with [Sisyphus](https://github.com/obra/sisyphus) - Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
E2E Test Bot преди 20 часа
родител
ревизия
9f4c3e8b6b

+ 6 - 0
cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java

@@ -3288,6 +3288,12 @@ insertSysConfigSeed("gift_membership_pay_price", "198000", "送会员商品达
         // blood_type_config.description
         modifyColumnToText("blood_type_config", "description", "性格描述");
 
+        // 迁移20240709-02: 北京菌群报告采集增强(P0 疾病关联菌 / P1 菌群状态)
+        // health_disease_risk.related_bacteria: 疾病关联菌(异常菌)明细 JSON
+        ensureColumn("health_disease_risk", "related_bacteria", "TEXT NULL COMMENT '关联菌明细JSON:[{bacteria,correlation,value,status}]'");
+        // health_reports.gut_status_level: 肠道菌群状态(0度~4度)
+        ensureColumn("health_reports", "gut_status_level", "VARCHAR(20) NULL COMMENT '肠道菌群状态(0度~4度)'");
+
         // 迁移248: 任务系统升级(行为调度中心)——tasks 新增字段
         ensureColumn("tasks", "prerequisite_task_id", "BIGINT NULL COMMENT '前置任务ID:完成后才解锁本任务'");
         ensureColumn("tasks", "action_type", "VARCHAR(32) NULL COMMENT '联动动作: minigame/focus/survey/article/activity/cart/order'");

+ 25 - 0
cfc-backend/src/main/java/com/etotem/cfc/dto/ParsedReportPayload.java

@@ -21,6 +21,8 @@ public class ParsedReportPayload {
         private Integer coreGenusScore;
         private String gutAge;
         private String gutType;
+        /** 肠道菌群状态,如"0度"(0度~4度) */
+        private String gutStatusLevel;
     private String shannonIndex;
         private String reportNumber;
         private String reportDate;
@@ -51,6 +53,8 @@ public class ParsedReportPayload {
         public void setGutAge(String gutAge) { this.gutAge = gutAge; }
         public String getGutType() { return gutType; }
         public void setGutType(String gutType) { this.gutType = gutType; }
+        public String getGutStatusLevel() { return gutStatusLevel; }
+        public void setGutStatusLevel(String gutStatusLevel) { this.gutStatusLevel = gutStatusLevel; }
     public String getShannonIndex() { return shannonIndex; }
     public void setShannonIndex(String shannonIndex) { this.shannonIndex = shannonIndex; }
         public String getReportNumber() { return reportNumber; }
@@ -164,6 +168,8 @@ public class ParsedReportPayload {
         private String diseaseName;
         private String riskValue;
         private String riskLevel;
+        /** 关联菌(异常菌)列表 — 北京菌群报告"疾病肠菌评估(异常项)" */
+        private List<RelatedBacterium> relatedBacteria;
 
         public String getDiseaseName() { return diseaseName; }
         public void setDiseaseName(String diseaseName) { this.diseaseName = diseaseName; }
@@ -171,6 +177,25 @@ public class ParsedReportPayload {
         public void setRiskValue(String riskValue) { this.riskValue = riskValue; }
         public String getRiskLevel() { return riskLevel; }
         public void setRiskLevel(String riskLevel) { this.riskLevel = riskLevel; }
+        public List<RelatedBacterium> getRelatedBacteria() { return relatedBacteria; }
+        public void setRelatedBacteria(List<RelatedBacterium> relatedBacteria) { this.relatedBacteria = relatedBacteria; }
+    }
+
+    /** 疾病关联菌明细 */
+    public static class RelatedBacterium {
+        private String bacteria;      // 菌名
+        private String correlation;   // 相关性(超标/缺乏)
+        private String value;         // 检测值
+        private String status;        // 状态
+
+        public String getBacteria() { return bacteria; }
+        public void setBacteria(String bacteria) { this.bacteria = bacteria; }
+        public String getCorrelation() { return correlation; }
+        public void setCorrelation(String correlation) { this.correlation = correlation; }
+        public String getValue() { return value; }
+        public void setValue(String value) { this.value = value; }
+        public String getStatus() { return status; }
+        public void setStatus(String status) { this.status = status; }
     }
 
     public static class Payload {

+ 4 - 0
cfc-backend/src/main/java/com/etotem/cfc/entity/HealthDiseaseRisk.java

@@ -30,5 +30,9 @@ public class HealthDiseaseRisk implements Serializable {
     /** 风险等级: 高风险/需注意/低风险 */
     private String riskLevel;
 
+    /** 关联菌(异常菌)明细,JSON 数组字符串:
+     *  [{"bacteria":"","correlation":"超标/缺乏","value":"","status":""}] */
+    private String relatedBacteria;
+
     private Date createdAt;
 }

+ 3 - 0
cfc-backend/src/main/java/com/etotem/cfc/entity/HealthReport.java

@@ -62,6 +62,9 @@ public class HealthReport implements Serializable {
     /** 肠型 (如 "拟杆菌型") */
     private String gutType;
 
+    /** 肠道菌群状态,如"0度"(0度~4度,北京菌群报告) */
+    private String gutStatusLevel;
+
     /** 菌群平衡分 (0-100) */
     private Integer gutBalanceScore;