| 
					
				 | 
			
			
				@@ -245,6 +245,52 @@ public class FsUserHealthDataServiceImpl extends ServiceImpl<FsUserHealthDataMap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         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 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             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: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     throw new ServiceException("不支持的健康指标类型: " + type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new ServiceException("获取健康指标值失败: " + e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -412,7 +397,9 @@ public class FsUserHealthDataServiceImpl extends ServiceImpl<FsUserHealthDataMap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 如果没有匹配的级别,则返回异常数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return HealthDataLevelEnum.EXCEPTION.getValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 可以继续添加其他类型,如血压、尿酸等 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case URIC_ACID: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            case URIC_ACID: // 尿酸 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            case WAIST: // 腰围 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            case HIP: // 臀围 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 判断性别 0-男 1-女 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 String sex = fsUserHealthData.getSex(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 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) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -551,7 +518,7 @@ public class FsUserHealthDataServiceImpl extends ServiceImpl<FsUserHealthDataMap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 查询用户信息获取 性别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             FsUserInfo fsUserInfo = fsUserInfoService.selectFsUserInfoById(fsUserHealthProfile.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (fsUserInfo == null || StringUtils.isEmpty(fsUserInfo.getSex())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                throw new ServiceException("无法获取用户性别,请完善用户信息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                throw new ServiceException("用户已注销或不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             /** 测量类型(0-腰围,1-臀围,2-血糖,3-血压,4-尿酸 5-BMI) */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -564,6 +531,43 @@ public class FsUserHealthDataServiceImpl extends ServiceImpl<FsUserHealthDataMap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 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) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         int type = fsUserHealthData.getMeasurementType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 0-腰围,1-臀围,2-血糖,3-血压,4-尿酸 5-BMI 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (type == 4) { // 尿酸查询等级信息时需要性别信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (type == 0 || type == 1 || type == 4) { // 尿酸查询等级信息时需要性别信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 根据userId 查询用户信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             FsUserInfo user = fsUserInfoService.selectFsUserInfoById(fsUserHealthData.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (StringUtils.isEmpty(user.getSex()) || "2".equals(user.getSex())) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -587,7 +591,7 @@ public class FsUserHealthDataServiceImpl extends ServiceImpl<FsUserHealthDataMap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             fsUserHealthData.setSex(user.getSex()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             fsUserHealthData.setLevel(level); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -599,13 +603,8 @@ public class FsUserHealthDataServiceImpl extends ServiceImpl<FsUserHealthDataMap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             int level = getHealthIndicatorLevel(fsUserHealthData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             fsUserHealthData.setLevel(level); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             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) { 
			 |