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