| 
														
															@@ -245,6 +245,52 @@ public class FsUserHealthDataServiceImpl extends ServiceImpl<FsUserHealthDataMap 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return HealthIndicatorConfig.fromJson(str); 
														 | 
														
														 | 
														
															         return HealthIndicatorConfig.fromJson(str); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    /** 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     * @Description: 解析健康指标配置 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     * @Param: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     * @Return: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     * @Author xgb 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     * @Date 2025/9/3 10:55 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private String parseHealthIndicatorConfig(Map<String, Object> map,String key,String level) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (StringUtils.equalsAny(key, "severity", "male", "female")) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            // 处理严重程度级别 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            List<Map<String, Object>> severityList = (List<Map<String, Object>>) map.get(key); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            for (Map<String, Object> severity : severityList) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if (level.equals(severity.get("level"))) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    return (String) severity.get("range"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            // 处理普通键值 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            Map<String, Object> keyMap = (Map<String, Object>) map.get(key); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if (keyMap != null) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                return (String) keyMap.get(level); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return null; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private String parseHealthIndicatorConfigTwo(Map<String, Object> map,String key,String level,String subType) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if ("severity".equals(key)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            // 处理血压严重程度级别 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            List<Map<String, Object>> severityList = (List<Map<String, Object>>) map.get("severity"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            for (Map<String, Object> severity : severityList) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                // 同时匹配级别和血压类型(收缩压/舒张压) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if (level.equals(severity.get("level")) && subType.equals(severity.get("type"))) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    return (String) severity.get("range"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            // 处理保护范围等 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            Map<String, Object> keyMap = (Map<String, Object>) map.get(key); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if (keyMap != null) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                return (String) keyMap.get(level); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return null; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /** 
														 | 
														
														 | 
														
															     /** 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * 获取健康指标值 
														 | 
														
														 | 
														
															      * 获取健康指标值 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * 
														 | 
														
														 | 
														
															      * 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -262,85 +308,24 @@ public class FsUserHealthDataServiceImpl extends ServiceImpl<FsUserHealthDataMap 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															         try { 
														 | 
														
														 | 
														
															         try { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             switch (type) { 
														 | 
														
														 | 
														
															             switch (type) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                case "bloodGlucose": 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    Map<String, Object> bloodGlucose = config.getBloodGlucose(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    if ("severity".equals(key)) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        // 处理严重程度级别 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        List<Map<String, Object>> severityList = (List<Map<String, Object>>) bloodGlucose.get("severity"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        for (Map<String, Object> severity : severityList) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            if (level.equals(severity.get("level"))) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                return (String) severity.get("range"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    } else { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        // 处理普通键值 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        Map<String, Object> keyMap = (Map<String, Object>) bloodGlucose.get(key); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        if (keyMap != null) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            return (String) keyMap.get(level); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    break; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                case "bloodPressure": 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    Map<String, Object> bloodPressure = config.getBloodPressure(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    if ("severity".equals(key)) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        // 处理血压严重程度级别 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        List<Map<String, Object>> severityList = (List<Map<String, Object>>) bloodPressure.get("severity"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        for (Map<String, Object> severity : severityList) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            // 同时匹配级别和血压类型(收缩压/舒张压) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            if (level.equals(severity.get("level")) && subType.equals(severity.get("type"))) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                return (String) severity.get("range"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    } else { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        // 处理保护范围等 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        Map<String, Object> keyMap = (Map<String, Object>) bloodPressure.get(key); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        if (keyMap != null) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            return (String) keyMap.get(level); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    break; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                case "uricAcid": 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    Map<String, Object> uricAcid = config.getUricAcid(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    if ("male".equals(key) || "female".equals(key)) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        List<Map<String, Object>> genderList = (List<Map<String, Object>>) uricAcid.get(key); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        if (genderList != null) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            for (Map<String, Object> severity : genderList) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                if (level.equals(severity.get("level"))) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                    return (String) severity.get("range"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    } else { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        Map<String, Object> keyMap = (Map<String, Object>) uricAcid.get(key); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        if (keyMap != null) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            return (String) keyMap.get(level); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    break; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                case "bmi": 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    Map<String, Object> bmi = config.getBmi(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    if ("severity".equals(key)) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        // 处理BMI严重程度级别 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        List<Map<String, Object>> severityList = (List<Map<String, Object>>) bmi.get("severity"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        for (Map<String, Object> severity : severityList) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            if (level.equals(severity.get("level"))) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                return (String) severity.get("range"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    break; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                case "bloodGlucose": // 血糖 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    return parseHealthIndicatorConfig(config.getBloodGlucose(), key, level); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                case "bloodPressure": // 血压 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    return parseHealthIndicatorConfigTwo(config.getBloodPressure(), key, level, subType); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                case "uricAcid":// 尿酸 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    return parseHealthIndicatorConfig(config.getUricAcid(), key, level); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                case "waist":// 腰围 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    return parseHealthIndicatorConfig(config.getWaist(), key, level); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                case "hip":// 臀围 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    return parseHealthIndicatorConfig(config.getHip(), key, level); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                case "bmi":// BMI 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    return parseHealthIndicatorConfig(config.getBmi(), key, level); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 default: 
														 | 
														
														 | 
														
															                 default: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     throw new ServiceException("不支持的健康指标类型: " + type); 
														 | 
														
														 | 
														
															                     throw new ServiceException("不支持的健康指标类型: " + type); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } catch (Exception e) { 
														 | 
														
														 | 
														
															         } catch (Exception e) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             throw new ServiceException("获取健康指标值失败: " + e.getMessage()); 
														 | 
														
														 | 
														
															             throw new ServiceException("获取健康指标值失败: " + e.getMessage()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        return null; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /** 
														 | 
														
														 | 
														
															     /** 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -412,7 +397,9 @@ public class FsUserHealthDataServiceImpl extends ServiceImpl<FsUserHealthDataMap 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 // 如果没有匹配的级别,则返回异常数据 
														 | 
														
														 | 
														
															                 // 如果没有匹配的级别,则返回异常数据 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 return HealthDataLevelEnum.EXCEPTION.getValue(); 
														 | 
														
														 | 
														
															                 return HealthDataLevelEnum.EXCEPTION.getValue(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             // 可以继续添加其他类型,如血压、尿酸等 
														 | 
														
														 | 
														
															             // 可以继续添加其他类型,如血压、尿酸等 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            case URIC_ACID: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            case URIC_ACID: // 尿酸 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            case WAIST: // 腰围 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            case HIP: // 臀围 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 // 判断性别 0-男 1-女 
														 | 
														
														 | 
														
															                 // 判断性别 0-男 1-女 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 String sex = fsUserHealthData.getSex(); 
														 | 
														
														 | 
														
															                 String sex = fsUserHealthData.getSex(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 String key; 
														 | 
														
														 | 
														
															                 String key; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -500,26 +487,6 @@ public class FsUserHealthDataServiceImpl extends ServiceImpl<FsUserHealthDataMap 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        // 若存在腰围 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if (fsUserHealthProfile.getWaistCircumference() != null) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            /** 测量类型(0-腰围,1-臀围,2-血糖,3-血压,4-尿酸 5-BMI) */ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            fsUserHealthData.setMeasurementType(HealthDataTypeEnum.WAIST.getValue()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            fsUserHealthData.setValue1(fsUserHealthProfile.getWaistCircumference()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if (insertFsUserHealthData(fsUserHealthData) <= 0) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                throw new ServiceException("腰围数据登记失败"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        // 若存在臀围 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if (fsUserHealthProfile.getHipCircumference() != null) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            /** 测量类型(0-腰围,1-臀围,2-血糖,3-血压,4-尿酸 5-BMI) */ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            fsUserHealthData.setMeasurementType(HealthDataTypeEnum.HIP.getValue()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            fsUserHealthData.setValue1(fsUserHealthProfile.getHipCircumference()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if (insertFsUserHealthData(fsUserHealthData) <= 0) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                throw new ServiceException("臀围数据登记失败"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // 若存在血压 
														 | 
														
														 | 
														
															         // 若存在血压 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if (fsUserHealthProfile.getSystolicPressure() != null && fsUserHealthProfile.getDiastolicPressure() != null) { 
														 | 
														
														 | 
														
															         if (fsUserHealthProfile.getSystolicPressure() != null && fsUserHealthProfile.getDiastolicPressure() != null) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -551,7 +518,7 @@ public class FsUserHealthDataServiceImpl extends ServiceImpl<FsUserHealthDataMap 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             // 查询用户信息获取 性别 
														 | 
														
														 | 
														
															             // 查询用户信息获取 性别 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             FsUserInfo fsUserInfo = fsUserInfoService.selectFsUserInfoById(fsUserHealthProfile.getUserId()); 
														 | 
														
														 | 
														
															             FsUserInfo fsUserInfo = fsUserInfoService.selectFsUserInfoById(fsUserHealthProfile.getUserId()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if (fsUserInfo == null || StringUtils.isEmpty(fsUserInfo.getSex())) { 
														 | 
														
														 | 
														
															             if (fsUserInfo == null || StringUtils.isEmpty(fsUserInfo.getSex())) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                throw new ServiceException("无法获取用户性别,请完善用户信息"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                throw new ServiceException("用户已注销或不存在"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															             /** 测量类型(0-腰围,1-臀围,2-血糖,3-血压,4-尿酸 5-BMI) */ 
														 | 
														
														 | 
														
															             /** 测量类型(0-腰围,1-臀围,2-血糖,3-血压,4-尿酸 5-BMI) */ 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -564,6 +531,43 @@ public class FsUserHealthDataServiceImpl extends ServiceImpl<FsUserHealthDataMap 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 throw new ServiceException("尿酸数据登记失败"); 
														 | 
														
														 | 
														
															                 throw new ServiceException("尿酸数据登记失败"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // 若存在腰围 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (fsUserHealthProfile.getWaistCircumference() != null) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            // 查询用户信息获取 性别 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            FsUserInfo fsUserInfo = fsUserInfoService.selectFsUserInfoById(fsUserHealthProfile.getUserId()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if (fsUserInfo == null || StringUtils.isEmpty(fsUserInfo.getSex())) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                throw new ServiceException("用户已注销或不存在"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            /** 测量类型(0-腰围,1-臀围,2-血糖,3-血压,4-尿酸 5-BMI) */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            fsUserHealthData.setMeasurementType(HealthDataTypeEnum.WAIST.getValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            fsUserHealthData.setValue1(fsUserHealthProfile.getWaistCircumference()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            fsUserHealthData.setSex(fsUserInfo.getSex()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            int healthIndicatorLevel = getHealthIndicatorLevel(fsUserHealthData); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            fsUserHealthData.setLevel(healthIndicatorLevel); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if (insertFsUserHealthData(fsUserHealthData) <= 0) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                throw new ServiceException("腰围数据登记失败"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // 若存在臀围 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (fsUserHealthProfile.getHipCircumference() != null) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            // 查询用户信息获取 性别 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            FsUserInfo fsUserInfo = fsUserInfoService.selectFsUserInfoById(fsUserHealthProfile.getUserId()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if (fsUserInfo == null || StringUtils.isEmpty(fsUserInfo.getSex())) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                throw new ServiceException("用户已注销或不存在"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            /** 测量类型(0-腰围,1-臀围,2-血糖,3-血压,4-尿酸 5-BMI) */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            fsUserHealthData.setMeasurementType(HealthDataTypeEnum.HIP.getValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            fsUserHealthData.setValue1(fsUserHealthProfile.getHipCircumference()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            fsUserHealthData.setSex(fsUserInfo.getSex()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            int healthIndicatorLevel = getHealthIndicatorLevel(fsUserHealthData); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            fsUserHealthData.setLevel(healthIndicatorLevel); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if (insertFsUserHealthData(fsUserHealthData) <= 0) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                throw new ServiceException("臀围数据登记失败"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /** 
														 | 
														
														 | 
														
															     /** 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -578,7 +582,7 @@ public class FsUserHealthDataServiceImpl extends ServiceImpl<FsUserHealthDataMap 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     public void addHealthData(FsUserHealthData fsUserHealthData) { 
														 | 
														
														 | 
														
															     public void addHealthData(FsUserHealthData fsUserHealthData) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         int type = fsUserHealthData.getMeasurementType(); 
														 | 
														
														 | 
														
															         int type = fsUserHealthData.getMeasurementType(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // 0-腰围,1-臀围,2-血糖,3-血压,4-尿酸 5-BMI 
														 | 
														
														 | 
														
															         // 0-腰围,1-臀围,2-血糖,3-血压,4-尿酸 5-BMI 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if (type == 4) { // 尿酸查询等级信息时需要性别信息 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (type == 0 || type == 1 || type == 4) { // 尿酸查询等级信息时需要性别信息 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             // 根据userId 查询用户信息 
														 | 
														
														 | 
														
															             // 根据userId 查询用户信息 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             FsUserInfo user = fsUserInfoService.selectFsUserInfoById(fsUserHealthData.getUserId()); 
														 | 
														
														 | 
														
															             FsUserInfo user = fsUserInfoService.selectFsUserInfoById(fsUserHealthData.getUserId()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if (StringUtils.isEmpty(user.getSex()) || "2".equals(user.getSex())) { 
														 | 
														
														 | 
														
															             if (StringUtils.isEmpty(user.getSex()) || "2".equals(user.getSex())) { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -587,7 +591,7 @@ public class FsUserHealthDataServiceImpl extends ServiceImpl<FsUserHealthDataMap 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             fsUserHealthData.setSex(user.getSex()); 
														 | 
														
														 | 
														
															             fsUserHealthData.setSex(user.getSex()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // 2-血糖,3-血压,4-尿酸 5-BMI 判断等级 
														 | 
														
														 | 
														
															         // 2-血糖,3-血压,4-尿酸 5-BMI 判断等级 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if (type == 2 || type == 3 || type == 4) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (type == 0 || type == 1 || type == 2 || type == 3 || type == 4) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             // 计算测量值对应等级 
														 | 
														
														 | 
														
															             // 计算测量值对应等级 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             int level = getHealthIndicatorLevel(fsUserHealthData); 
														 | 
														
														 | 
														
															             int level = getHealthIndicatorLevel(fsUserHealthData); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             fsUserHealthData.setLevel(level); 
														 | 
														
														 | 
														
															             fsUserHealthData.setLevel(level); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -599,13 +603,8 @@ public class FsUserHealthDataServiceImpl extends ServiceImpl<FsUserHealthDataMap 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             int level = getHealthIndicatorLevel(fsUserHealthData); 
														 | 
														
														 | 
														
															             int level = getHealthIndicatorLevel(fsUserHealthData); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             fsUserHealthData.setLevel(level); 
														 | 
														
														 | 
														
															             fsUserHealthData.setLevel(level); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             fsUserHealthData.setValue1(value1); 
														 | 
														
														 | 
														
															             fsUserHealthData.setValue1(value1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        } else if (type == 0 || type == 1) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            // 获取性别信息 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            FsUserInfo user = fsUserInfoService.selectFsUserInfoById(fsUserHealthData.getUserId()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if (user == null || StringUtils.isEmpty(user.getSex())) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                throw new ServiceException("无法获取用户性别,请完善用户信息"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            fsUserHealthData.setSex(user.getSex()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            throw new ServiceException("不支持的测量类型"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // 登记检测数据信息 
														 | 
														
														 | 
														
															         // 登记检测数据信息 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if (insertFsUserHealthData(fsUserHealthData) <= 0) { 
														 | 
														
														 | 
														
															         if (insertFsUserHealthData(fsUserHealthData) <= 0) { 
														 |