diff --git a/application/NewReedaw/controller/app/Userbody.php b/application/NewReedaw/controller/app/Userbody.php index dc6c41d..ba0b704 100644 --- a/application/NewReedaw/controller/app/Userbody.php +++ b/application/NewReedaw/controller/app/Userbody.php @@ -14,10 +14,10 @@ class Userbody extends Base{ 'body_data'=>'app_card_body_data', 'body_data_new'=>'app_card_body_data_new', 'bmi'=>'pc_bmistand', - 'heigh'=>'pc_heightstand', - 'weigh'=>'pc_weightstand', - 'chufang1'=>'pc_childrenprescription', - 'chufang2'=>'pc_childprescriptionbyage', + 'height'=>'pc_heightstand', + 'weight'=>'pc_weightstand', + // 'chufang1'=>'pc_childrenprescription', + // 'chufang2'=>'pc_childprescriptionbyage', ]; protected $age_limit = 16; protected $pagesize = 15; @@ -37,79 +37,64 @@ class Userbody extends Base{ 'score' => [ 'name' => '身体得分', 'unit' => '分', - "description"=>"身体得分指综合评估身体健康状况的指标。", - 'list' => [ - '偏低' => '#C2831C', - '标准' => '#F5A623', - '偏高' => '#14CBAD', - '高' => '#0F9982' - ], + "description"=>"", + "smart_tip_description"=>"", + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/score.png", 'standard_list' => [ ['min_val'=>'0','max_val'=>'70','text'=>'较差','color'=>'#C2831C'], ['min_val'=>'71','max_val'=>'80','text'=>'一般','color'=>'#F5A623'], ['min_val'=>'81','max_val'=>'90','text'=>'良好','color'=>'#14CBAD'], ['min_val'=>'91','max_val'=>'100','text'=>'很棒','color'=>'#0F9982'], - ] + ], + 'key_name'=>'score', ], 'height' => [ 'name' => '身高', 'unit' => 'cm', "description"=>"人体纵向部分的长度,源于人体的纵向生长,受遗传因素的影响较大", - 'list' => [ - '矮'=>'#FD5759', - '偏矮'=>'#FAAD01', - '标准'=>'#5BD068', - '偏高'=>'#6793F4', - '高'=>'#3D67D3', - ], + "smart_tip_description"=>"", 'standard_list' => [ ['min_val'=>'0','max_val'=>'','text'=>'矮','color'=>'#FD5759'], ['min_val'=>'','max_val'=>'','text'=>'偏矮','color'=>'#FAAD01'], ['min_val'=>'','max_val'=>'','text'=>'标准','color'=>'#5BD068'], ['min_val'=>'','max_val'=>'','text'=>'偏高','color'=>'#6793F4'], ['min_val'=>'','max_val'=>'','text'=>'高','color'=>'#3D67D3'], - ] + ], + 'key_name'=>'height', ], 'weight' => [ 'name' => '体重', 'unit' => 'kg', "description"=>"体重指人体的重量,通常用斤、公斤或磅作为单位来衡量。体重是人体健康的重要指标,但需要结合身高、体型和体脂率等因素来综合评估。", - 'list' => [ - '低'=>'#FD5759', - '偏低'=>'#FAAD01', - '标准'=>'#5BD068', - '偏高'=>'#FAAD01', - '高'=>'#FD5759', - ], + "smart_tip_description"=>"保持均衡营养的饮食,摄入足够的碳水化合物、蛋白质、脂肪等。适度进行运动,保持良好的生活习惯。", 'standard_list' => [ - ['min_val'=>'0','max_val'=>'','text'=>'低','color'=>'#FD5759'], - ['min_val'=>'','max_val'=>'','text'=>'偏低','color'=>'#FAAD01'], - ['min_val'=>'','max_val'=>'','text'=>'标准','color'=>'#5BD068'], - ['min_val'=>'','max_val'=>'','text'=>'偏高','color'=>'#FAAD01'], - ['min_val'=>'','max_val'=>'','text'=>'高','color'=>'#FD5759'], - ] + ['min_val'=>'0','max_val'=>'','text'=>'低','color'=>'#F8595D'], + ['min_val'=>'','max_val'=>'','text'=>'偏低','color'=>'#FFAF04'], + ['min_val'=>'','max_val'=>'','text'=>'标准','color'=>'#59D168'], + ['min_val'=>'','max_val'=>'','text'=>'偏高','color'=>'#FFAF04'], + ['min_val'=>'','max_val'=>'','text'=>'高','color'=>'#F8595D'], + ], + 'key_name'=>'weight', ], 'bmi' => [ 'name' => 'BMI', 'unit' => '', "description"=>"BMI是身体质量指数(BodyMassIndex)的缩写,是一种常用的衡量人体肥胖程度的指标", - 'list' => [ - '消瘦'=>'#FDDA6B', - '正常'=>'#5BD068', - '偏重'=>'#FAAD01', - '肥胖'=>'#FD5759', - ], + "smart_tip_description"=>"", 'standard_list' => [ ['min_val'=>'0','max_val'=>'','text'=>'消瘦','color'=>'#FDDA6B'], ['min_val'=>'','max_val'=>'','text'=>'正常','color'=>'#5BD068'], ['min_val'=>'','max_val'=>'','text'=>'偏重','color'=>'#FAAD01'], ['min_val'=>'','max_val'=>'50','text'=>'肥胖','color'=>'#FD5759'], - ] + ], + 'key_name'=>'bmi', ], 'fat_r' => [ 'name' => '脂肪率', 'unit' => '%', "description"=>"", + "smart_tip_description"=>"", + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/fat_r.png", 'list' => [ '偏低' => '#FCDB67', '标准' => '#58D268', @@ -117,7 +102,7 @@ class Userbody extends Base{ '高' => '#FD5752' ], 'standard_list' => [ - 'man'=>[ + '1'=>[ '29'=>[ ['min_val'=>'0','max_val'=>'10','text'=>'偏低','color'=>'#FCDB67'], ['min_val'=>'10','max_val'=>'21','text'=>'标准','color'=>'#59D16D'], @@ -131,7 +116,7 @@ class Userbody extends Base{ ['min_val'=>'27','max_val'=>'50','text'=>'高','color'=>'#FA5951'], ], ], - 'woman'=>[ + '2'=>[ '29'=>[ ['min_val'=>'0','max_val'=>'20','text'=>'偏低','color'=>'#FCDB67'], ['min_val'=>'20','max_val'=>'31','text'=>'标准','color'=>'#59D16D'], @@ -145,12 +130,15 @@ class Userbody extends Base{ ['min_val'=>'39','max_val'=>'80','text'=>'高','color'=>'#FA5951'], ] ] - ] + ], + 'key_name'=>'fat_r', ], 'fat_w' => [ 'name' => '脂肪量', 'unit' => 'kg', "description"=>"", + "smart_tip_description"=>"", + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/fat_w.png", 'list' => [ '偏低' => '#FCDB67', '标准' => '#58D268', @@ -158,7 +146,7 @@ class Userbody extends Base{ '高' => '#FD5752' ], 'standard_list' => [ - 'man'=>[ + '1'=>[ '29'=>[ ['min_val'=>'0','max_val'=>'10','text'=>'偏低','color'=>'#FCDB67'], ['min_val'=>'10','max_val'=>'21','text'=>'标准','color'=>'#59D16D'], @@ -172,7 +160,7 @@ class Userbody extends Base{ ['min_val'=>'27','max_val'=>'50','text'=>'高','color'=>'#FA5951'], ], ], - 'woman'=>[ + '2'=>[ '29'=>[ ['min_val'=>'0','max_val'=>'20','text'=>'偏低','color'=>'#FCDB67'], ['min_val'=>'20','max_val'=>'31','text'=>'标准','color'=>'#59D16D'], @@ -186,85 +174,97 @@ class Userbody extends Base{ ['min_val'=>'39','max_val'=>'80','text'=>'高','color'=>'#FA5951'], ] ] - ] + ], + 'key_name'=>'fat_w', ], 'muscle' => [ 'name' => '肌肉率', 'unit' => '%', "description"=>"", + "smart_tip_description"=>"", + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/muscle.png", 'list' => [ '不足' => '#FFDA68', '标准' => '#59CD6F', '优' => '#3C64D4' ], 'standard_list' => [ - 'man'=>[ + '1'=>[ ['min_val'=>'0','max_val'=>'40','text'=>'不足','color'=>'#FCDB67'], ['min_val'=>'40','max_val'=>'60','text'=>'标准','color'=>'#59D16D'], ['min_val'=>'60','max_val'=>'100','text'=>'优','color'=>'#3C66D2'], ], - 'woman'=>[ + '2'=>[ ['min_val'=>'0','max_val'=>'30','text'=>'不足','color'=>'#FCDB67'], ['min_val'=>'30','max_val'=>'50','text'=>'标准','color'=>'#59D16D'], ['min_val'=>'50','max_val'=>'100','text'=>'优','color'=>'#3C66D2'], ] - ] + ], + 'key_name'=>'muscle', ], 'muscleval' => [ 'name' => '肌肉量', 'unit' => 'kg', "description"=>"", + "smart_tip_description"=>"", + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/muscleval.png", 'list' => [ '不足' => '#FFDA68', '标准' => '#59CD6F', '优' => '#3C64D4' ], 'standard_list' => [ - 'man'=>[ + '1'=>[ ['min_val'=>'0','max_val'=>'40','text'=>'不足','color'=>'#FCDB67'], ['min_val'=>'40','max_val'=>'60','text'=>'标准','color'=>'#59D16D'], ['min_val'=>'60','max_val'=>'100','text'=>'优','color'=>'#3C66D2'], ], - 'woman'=>[ + '2'=>[ ['min_val'=>'0','max_val'=>'30','text'=>'不足','color'=>'#FCDB67'], ['min_val'=>'30','max_val'=>'50','text'=>'标准','color'=>'#59D16D'], ['min_val'=>'50','max_val'=>'100','text'=>'优','color'=>'#3C66D2'], ] - ] + ], + 'key_name'=>'muscleval', ], 'water' => [ 'name' => '水分', 'unit' => 'kg', "description"=>"", + "smart_tip_description"=>"", + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/water.png", 'list' => [ '不足' => '#FED966', '标准' => '#58CF6B', '优' => '#3A68D7' ], 'standard_list' => [ - 'man'=>[ + '1'=>[ ['min_val'=>'0','max_val'=>'55','text'=>'不足','color'=>'#FCDB67'], ['min_val'=>'55','max_val'=>'65','text'=>'标准','color'=>'#59D16D'], ['min_val'=>'65','max_val'=>'100','text'=>'优','color'=>'#3C66D2'], ], - 'woman'=>[ + '2'=>[ ['min_val'=>'0','max_val'=>'45','text'=>'不足','color'=>'#FCDB67'], ['min_val'=>'45','max_val'=>'60','text'=>'标准','color'=>'#59D16D'], ['min_val'=>'60','max_val'=>'100','text'=>'优','color'=>'#3C66D2'], ] - ] + ], + 'key_name'=>'water', ], 'bone' => [ 'name' => '骨重', 'unit' => 'kg', "description"=>"", + "smart_tip_description"=>"", + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/bone.png", 'list' => [ '不足' => '#FED966', '标准' => '#58CF6F', '优' => '#3A68D7' ], 'standard_list' => [ - 'man'=>[ + '1'=>[ '60'=>[ ['min_val'=>'0','max_val'=>'2.4','text'=>'不足','color'=>'#FCDB67'], ['min_val'=>'2.4','max_val'=>'2.6','text'=>'标准','color'=>'#59D16D'], @@ -281,7 +281,7 @@ class Userbody extends Base{ ['min_val'=>'3.3','max_val'=>'7','text'=>'优','color'=>'#3C66D2'], ], ], - 'woman'=>[ + '2'=>[ '45'=>[ ['min_val'=>'0','max_val'=>'1.7','text'=>'不足','color'=>'#FCDB67'], ['min_val'=>'1.7','max_val'=>'1.9','text'=>'标准','color'=>'#59D16D'], @@ -298,56 +298,192 @@ class Userbody extends Base{ ['min_val'=>'2.6','max_val'=>'5','text'=>'优','color'=>'#3C66D2'], ], ] - ] + ], + 'key_name'=>'bone', ], 'protein' => [ 'name' => '蛋白率', 'unit' => '%', "description"=>"", + "smart_tip_description"=>"", + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/protein.png", 'list' => [ '不足' => '#FED966', '标准' => '#58CF6F', '优' => '#3A68D7' ], 'standard_list' => [ - 'man'=>[ + '1'=>[ ['min_val'=>'0','max_val'=>'16','text'=>'不足','color'=>'#FCDB67'], ['min_val'=>'16','max_val'=>'18','text'=>'标准','color'=>'#59D16D'], ['min_val'=>'18','max_val'=>'50','text'=>'优','color'=>'#3C66D2'], //蓝 ], - 'woman'=>[ + '2'=>[ ['min_val'=>'0','max_val'=>'14','text'=>'不足','color'=>'#FCDB67'], ['min_val'=>'14','max_val'=>'16','text'=>'标准','color'=>'#59D16D'], ['min_val'=>'16','max_val'=>'50','text'=>'优','color'=>'#3C66D2'], ] - ] + ], + 'key_name'=>'protein', ], 'proteinval' => [ 'name' => '蛋白量', 'unit' => 'kg', "description"=>"", + "smart_tip_description"=>"", + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/proteinval.png", 'list' => [ '不足' => '#FED966', '标准' => '#58CF6F', '优' => '#3A68D7' ], 'standard_list' => [ - 'man'=>[ + '1'=>[ ['min_val'=>'0','max_val'=>'16','text'=>'不足','color'=>'#FCDB67'], ['min_val'=>'16','max_val'=>'18','text'=>'标准','color'=>'#59D16D'], ['min_val'=>'18','max_val'=>'50','text'=>'优','color'=>'#3C66D2'], //蓝 ], - 'woman'=>[ + '2'=>[ ['min_val'=>'0','max_val'=>'14','text'=>'不足','color'=>'#FCDB67'], ['min_val'=>'14','max_val'=>'16','text'=>'标准','color'=>'#59D16D'], ['min_val'=>'16','max_val'=>'50','text'=>'优','color'=>'#3C66D2'], ] - ] + ], + 'key_name'=>'proteinval', + ], + 'visceral' => [ + 'name' => '内脏指数', + 'unit' => '', + "description"=>"", + "smart_tip_description"=>"", + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/visceral.png", + 'list' => [ + '标准' => '#55CF6C', + '警惕' => '#FEAC00', + '危险' => '#FB5A52' + ], + 'standard_list' => [ + '1'=>[ + ['min_val'=>'0','max_val'=>'9','text'=>'标准','color'=>'#59D16D'], + ['min_val'=>'9','max_val'=>'14','text'=>'警惕','color'=>'#FAB000'], + ['min_val'=>'14','max_val'=>'50','text'=>'危险','color'=>'#FA5951'], //红 + ], + '2'=>[ + ['min_val'=>'0','max_val'=>'9','text'=>'标准','color'=>'#59D16D'], + ['min_val'=>'9','max_val'=>'14','text'=>'警惕','color'=>'#FAB000'], + ['min_val'=>'14','max_val'=>'50','text'=>'危险','color'=>'#FA5951'], //红 + ] + ], + 'key_name'=>'visceral', + ], + 'sfr' => [ + 'name' => '皮下脂肪', + 'unit' => '%', + "description"=>"", + "smart_tip_description"=>"", + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/sfr.png", + 'list' => [ + '不足' => '#FCDB68', + '标准' => '#59D16F', + '偏高' => '#FEAB03' + ], + 'standard_list' => [ + '1'=>[ + ['min_val'=>'0','max_val'=>'7','text'=>'不足','color'=>'#FCDB67'], //淡黄 + ['min_val'=>'7','max_val'=>'15','text'=>'标准','color'=>'#59D16D'], //绿 + ['min_val'=>'15','max_val'=>'50','text'=>'偏高','color'=>'#FAB000'], //橙 + ], + '2'=>[ + ['min_val'=>'0','max_val'=>'11','text'=>'不足','color'=>'#FCDB67'], + ['min_val'=>'11','max_val'=>'17','text'=>'标准','color'=>'#59D16D'], + ['min_val'=>'17','max_val'=>'50','text'=>'偏高','color'=>'#FAB000'], + ] + ], + 'key_name'=>'sfr', + ], + 'body_level' => [ + 'name' => '肥胖等级', + 'unit' => '', + "description"=>"肥胖等级指根据个体BMI来评估一个人是否超重或肥胖的指标。", + "smart_tip_description"=>"", + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/body_level.png", + 'list' => [], + 'standard_list' => [], + 'key_name'=>'body_level', + ], + 'body_type' => [ + 'name' => '身体类型', + 'unit' => '', + "description"=>"身体类型是对人体外形的总体描述和评定", + "smart_tip_description"=>"", + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/body_type.png", + 'list' => [], + 'standard_list' => [], + 'key_name'=>'body_type', + ], + 'body_age' => [ + 'name' => '身体年龄', + 'unit' => '岁', + "description"=>"身体年龄指衡量身体健康状况的指标,它反映了一个人的生理状态相对于实际年龄的健康程度。相关模型主要与BMI有关。", + "smart_tip_description"=>"", + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/body_age.png", + 'list' => [], + 'standard_list' => [], + 'key_name'=>'body_age', + ], + 'head_circumference' => [ + 'name' => '头围', + 'unit' => 'cm', + "description"=>"", + "smart_tip_description"=>"", + 'standard_list' => [], + 'key_name'=>'head_circumference', + ], + 'heart_rate' => [ + 'name' => '心率', + 'unit' => '跳/分钟', + "description"=>"保持均衡营养的饮食,摄入足够的碳水化合物、蛋白质、脂肪等。适度进行运动,保持良好的生活习惯。", + "smart_tip_description"=>"注意减少压力和焦虑,适度锻炼,保持良好的睡眠质量,避免过度用力或剧烈运动。", + 'standard_list' => [ + ['min_val'=>'0','max_val'=>'','text'=>'偏低','color'=>'#FCDB67'], + ['min_val'=>'','max_val'=>'','text'=>'标准','color'=>'#58D268'], + ['min_val'=>'','max_val'=>'9999','text'=>'偏高','color'=>'#FD5752'], + ], + 'key_name'=>'heart_rate', + ], + 'ideal_weight' => [ + 'name' => '理想体重', + 'unit' => 'kg', + "description"=>"", + "smart_tip_description"=>"", + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/ideal_weight.png", + 'standard_list' => [], + 'key_name'=>'ideal_weight', + ], + 'ideal_height' => [ + 'name' => '理想身高', + 'unit' => 'cm', + "description"=>"", + "smart_tip_description"=>"", + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/ideal_height.png", + 'standard_list' => [], + 'key_name'=>'ideal_height', + ], + 'ideal_bmi' => [ + 'name' => '理想BMI', + 'unit' => '', + "description"=>"", + "smart_tip_description"=>"", + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/ideal_bmi.png", + 'standard_list' => [], + 'key_name'=>'ideal_bmi', ], 'kcal' => [ - 'name' => '基础代谢', + 'name' => 'BMR', 'unit' => 'kcal', - "description"=>"", + "description"=>"BMR是基础代谢率(BasalMetabolicRate)的缩写,指人体在安静状态下,维持基本生命活动所需的最低能量消耗率。", + "smart_tip_description"=>"", + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/ideal_bmi.png", 'list' => [ '偏低' => '#FF5656', '优' => '#3A68D4' @@ -355,168 +491,58 @@ class Userbody extends Base{ 'standard_list' => [ ['min_val'=>'0','max_val'=>'','text'=>'偏低','color'=>'#ff5656'], ['min_val'=>'','max_val'=>'9999','text'=>'优','color'=>'#3C66D2'], - ] - ], - 'visceral' => [ - 'name' => '内脏指数', - 'unit' => '', - "description"=>"", - 'list' => [ - '标准' => '#55CF6C', - '警惕' => '#FEAC00', - '危险' => '#FB5A52' ], - 'standard_list' => [ - 'man'=>[ - ['min_val'=>'0','max_val'=>'9','text'=>'标准','color'=>'#59D16D'], - ['min_val'=>'9','max_val'=>'14','text'=>'警惕','color'=>'#FAB000'], - ['min_val'=>'14','max_val'=>'50','text'=>'危险','color'=>'#FA5951'], //红 - ], - 'woman'=>[ - ['min_val'=>'0','max_val'=>'9','text'=>'标准','color'=>'#59D16D'], - ['min_val'=>'9','max_val'=>'14','text'=>'警惕','color'=>'#FAB000'], - ['min_val'=>'14','max_val'=>'50','text'=>'危险','color'=>'#FA5951'], //红 - ] - ] + 'key_name'=>'kcal', ], - 'sfr' => [ - 'name' => '皮下脂肪', - 'unit' => '%', - "description"=>"", - 'list' => [ - '不足' => '#FCDB68', - '标准' => '#59D16F', - '偏高' => '#FEAB03' - ], - 'standard_list' => [ - 'man'=>[ - ['min_val'=>'0','max_val'=>'7','text'=>'不足','color'=>'#FCDB67'], //淡黄 - ['min_val'=>'7','max_val'=>'15','text'=>'标准','color'=>'#59D16D'], //绿 - ['min_val'=>'15','max_val'=>'50','text'=>'偏高','color'=>'#FAB000'], //橙 - ], - 'woman'=>[ - ['min_val'=>'0','max_val'=>'11','text'=>'不足','color'=>'#FCDB67'], - ['min_val'=>'11','max_val'=>'17','text'=>'标准','color'=>'#59D16D'], - ['min_val'=>'17','max_val'=>'50','text'=>'偏高','color'=>'#FAB000'], - ] - ] - ], - 'body_level' => [ - 'name' => '肥胖等级', - 'unit' => '', - "description"=>"肥胖等级指根据个体BMI来评估一个人是否超重或肥胖的指标。", - 'list' => [], - 'standard_list' => [] - ], - 'body_type' => [ - 'name' => '身体类型', - 'unit' => '', - "description"=>"身体类型是对人体外形的总体描述和评定", - 'list' => [], - 'standard_list' => [] - ], - 'body_age' => [ - 'name' => '身体年龄', - 'unit' => '岁', - "description"=>"身体年龄指衡量身体健康状况的指标,它反映了一个人的生理状态相对于实际年龄的健康程度。相关模型主要与BMI有关。", - 'list' => [], - 'standard_list' => [] - ], - // 'heart_rate' => [ - // 'name' => '心率', - // 'unit' => '跳/分钟', - // "description"=>"", - // 'list' => [ - // '低' => '#FCDB67', - // '标准' => '#58D268', - // '高' => '#FD5752' - // ], - // 'standard_list' => [ - // 'man'=>[ - // '1'=>[ - // ['min_val'=>'0','max_val'=>'10','text'=>'偏低','color'=>'#FCDB67'], - // ['min_val'=>'10','max_val'=>'21','text'=>'标准','color'=>'#59D16D'], - // ['min_val'=>'21','max_val'=>'26','text'=>'偏高','color'=>'#FAB000'], - // ['min_val'=>'26','max_val'=>'50','text'=>'高','color'=>'#FA5951'], - // ], - // ], - // 'woman'=>[ - // '29'=>[ - // ['min_val'=>'0','max_val'=>'20','text'=>'偏低','color'=>'#FCDB67'], - // ['min_val'=>'20','max_val'=>'31','text'=>'标准','color'=>'#59D16D'], - // ['min_val'=>'31','max_val'=>'38','text'=>'偏高','color'=>'#FAB000'], - // ['min_val'=>'38','max_val'=>'80','text'=>'高','color'=>'#FA5951'], - // ], - // ] - // ] - // ], - ]; protected $heart_rate = [ [ 'age' => ['min' => '0', 'max' => '1'], - 'male' => ['min' => '70', 'max' => '190'], - 'female' => ['min' => '70', 'max' => '190'] + '1' => ['min' => '70', 'max' => '190'], + '2' => ['min' => '70', 'max' => '190'] ], [ 'age' => ['min' => '1', 'max' => '12'], - 'male' => ['min' => '80', 'max' => '160'], - 'female' => ['min' => '80', 'max' => '160'] + '1' => ['min' => '80', 'max' => '160'], + '2' => ['min' => '80', 'max' => '160'] ], [ 'age' => ['min' => '12', 'max' => '36'], - 'male' => ['min' => '80', 'max' => '130'], - 'female' => ['min' => '80', 'max' => '130'] + '1' => ['min' => '80', 'max' => '130'], + '2' => ['min' => '80', 'max' => '130'] ], [ 'age' => ['min' => '36', 'max' => '60'], - 'male' => ['min' => '80', 'max' => '120'], - 'female' => ['min' => '80', 'max' => '120'] + '1' => ['min' => '80', 'max' => '120'], + '2' => ['min' => '80', 'max' => '120'] ], [ 'age' => ['min' => '60', 'max' => '120'], - 'male' => ['min' => '70', 'max' => '110'], - 'female' => ['min' => '70', 'max' => '110'] + '1' => ['min' => '70', 'max' => '110'], + '2' => ['min' => '70', 'max' => '110'] ], [ 'age' => ['min' => '120', 'max' => '204'], - 'male' => ['min' => '60', 'max' => '100'], - 'female' => ['min' => '60', 'max' => '100'] + '1' => ['min' => '60', 'max' => '100'], + '2' => ['min' => '60', 'max' => '100'] ], [ 'age' => ['min' => '204', 'max' => '480'], - 'male' => ['min' => '60', 'max' => '100'], - 'female' => ['min' => '60', 'max' => '100'] + '1' => ['min' => '60', 'max' => '100'], + '2' => ['min' => '60', 'max' => '100'] ], [ 'age' => ['min' => '480', 'max' => '720'], - 'male' => ['min' => '60', 'max' => '100'], - 'female' => ['min' => '60', 'max' => '100'] + '1' => ['min' => '60', 'max' => '100'], + '2' => ['min' => '60', 'max' => '100'] ], [ 'age' => ['min' => '720', 'max' => '9999'], // 61岁+,9999作为最大值占位 - 'male' => ['min' => '60', 'max' => '100'], - 'female' => ['min' => '60', 'max' => '100'] + '1' => ['min' => '60', 'max' => '100'], + '2' => ['min' => '60', 'max' => '100'] ] ]; - // protected $standard_color = [ - // 'fat_r'=>['偏低'=>'#FCDB67','标准'=>'#58D268','偏高'=>'#FCAA00','高'=>'#FD5752'], - // 'fat_w'=>['偏低'=>'#FCDB67','标准'=>'#58D268','偏高'=>'#FCAA00','高'=>'#FD5752'], - // 'muscle'=>['不足'=>'#FFDA68','标准'=>'#59CD6F','优'=>'#3C64D4'], - // 'muscleval'=>['不足'=>'#FFDA68','标准'=>'#59CD6F','优'=>'#3C64D4'], - // 'water'=>['不足'=>'#FED966','标准'=>'#58CF6B','优'=>'#3A68D7'], - // 'proteinval'=>['不足'=>'#FED966','标准'=>'#58CF6B','优'=>'#3A68D7'], - // 'bone'=>['不足'=>'#FED966','标准'=>'#58CF6B','优'=>'#3A68D7'], - // 'protein'=>['不足'=>'#FED966','标准'=>'#58CF6B','优'=>'#3A68D7'], - // 'kcal'=>['偏低'=>'#FF5656','优'=>'#3A68D4'], - // 'visceral'=>['标准'=>'#55CF6C','警惕'=>'#FEAC00','危险'=>'#FB5A52'], - // 'sfr'=>['不足'=>'#FCDB68','标准'=>'#59D16F','偏高'=>'#FEAB03'], - // ]; - // protected $card_body_level = [ - // 'height'=>['value'=>1,'list'=>['矮'=>2,'偏矮'=>3,'标准'=>4,'偏高'=>5,'高'=>5]], - // 'weight'=>['value'=>3,'list'=>['低'=>1,'偏低'=>1,'标准'=>2,'偏高'=>3,'高'=>3]], - // 'bmi'=>['value'=>2,'list'=>['消瘦'=>1,'正常'=>2,'偏重'=>3,'肥胖'=>4]], - // ]; + // 加 bcadd(,,20) // 减 bcsub(,,20) // 乘 bcmul(,,20) @@ -553,7 +579,6 @@ class Userbody extends Base{ // 时间日期转换,把'Y-m-d'转换成'Y-m-d H:i:s'格式 $data['time'] = $this->addCurrentTimeToDateString($data['time']); } - return $this->set_user_body_data($data,'by_hand_means'); } catch (\Exception $e) { // 捕获异常 @@ -570,7 +595,6 @@ class Userbody extends Base{ return $this->msg(99999); } } - // 设备记录 public function device_record(){ $data = input('post.'); @@ -623,9 +647,6 @@ class Userbody extends Base{ // return $this->msg(99999); // } } - - - // 获取角色报告(简要) public function body_report_brief(){ $data = input('post.'); @@ -684,9 +705,35 @@ class Userbody extends Base{ return $this->msg(99999); } } - - - + // 获取角色报告(深度) + public function body_report_depth(){ + $data = input('post.'); + // try { + if(!array_key_exists('token', $data) || !array_key_exists('aud_id', $data)){ + return $this->msg(10001); + } + if(!$this->verify_data_is_ok($data['token'],'str')){ + return $this->msg(10005,'token type error'); + } + if(!$this->verify_data_is_ok($data['aud_id'],'intnum')){ + return $this->msg(10005,'aud_id type error'); + } + return $this->body_report_depth_action($data); + // } catch (\Exception $e) { + // // 捕获异常 + // $logContent["flie"] = $e->getFile(); + // $logContent["line"] = $e->getLine(); + // $logContent['all_content'] = "异常信息:\n"; + // $logContent['all_content'] .= "函数: body_report_detailed" . "\n"; + // $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; + // $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; + // $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; + // $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; + // $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; + // $this->record_api_log($data, $logContent, null); + // return $this->msg(99999); + // } + } // 修改目标体重 public function set_target_weight(){ @@ -781,6 +828,7 @@ class Userbody extends Base{ if($get_body_value === false){ return $this->msg(10002); } + // 开始设置数据 $db_data['bmi'] = $get_body_value['bmi']; $db_data['score'] = $get_body_value['cmi']; @@ -800,6 +848,7 @@ class Userbody extends Base{ $db_data['body_age'] = $get_body_value['bodyage']; // 如果年纪小于三岁,处理头围数据star $standardlist = []; + if($send_data['age'] < 3){ if(array_key_exists('standardlist',$get_body_value)){ $standardlist = $get_body_value['standardlist']; @@ -819,6 +868,7 @@ class Userbody extends Base{ } unset($standardlist['list']); unset($get_body_value['standardlist']); + $db_data['head_circumference'] = json_encode($standardlist); } }else{ if(array_key_exists('standardlist',$get_body_value)){ @@ -826,7 +876,7 @@ class Userbody extends Base{ } } // 如果年纪小于三岁,处理头围数据end - $db_data['head_circumference'] = json_encode($standardlist); + }else{ // 如果原始数据存在阻抗 if(array_key_exists('adc', $data)){ @@ -849,36 +899,57 @@ class Userbody extends Base{ $send_data['leftfoot'] = $data['leftfoot']; $send_data['rightfoot'] = $data['rightfoot']; $get_body_value = $this->send_body_data($send_data,'8_electrode'); + // 开始设置数据 + $db_data['bmi'] = $get_body_value['bmi']; + $db_data['score'] = $get_body_value['cmi']; + $db_data['fat_r'] = $get_body_value['fat_r']; + $db_data['fat_w'] = $get_body_value['fat_w']; + $db_data['muscle'] = $get_body_value['muscle']; + $db_data['muscleval'] = $get_body_value['muscleval']; + $db_data['water'] = $get_body_value['water']; + $db_data['protein'] = $get_body_value['protein']; + $db_data['proteinval'] = $get_body_value['proteinval']; + $db_data['bone'] = $get_body_value['bone']; + $db_data['kcal'] = $get_body_value['kcal']; + $db_data['visceral'] = $get_body_value['visceral']; + $db_data['sfr'] = $get_body_value['sfr']; + $db_data['body_level'] = $get_body_value['fatlevel'];//肥胖等级 + $db_data['body_type'] = $get_body_value['body'];//身体类型 + $db_data['body_age'] = $get_body_value['bodyage']; + $db_data['8_electrode_data'] = json_encode($get_body_value); }else{ // 发送请求获取照良那边的身体数据 $get_body_value = $this->send_body_data($send_data,'4_electrode'); + // 开始设置数据 + $db_data['bmi'] = $get_body_value['bmi']; + $db_data['score'] = $get_body_value['cmi']; + $db_data['fat_r'] = $get_body_value['bfr']; + $db_data['fat_w'] = $get_body_value['bfrval']; + $db_data['muscle'] = $get_body_value['rom']; + $db_data['muscleval'] = $get_body_value['romval']; + $db_data['water'] = $get_body_value['vwc']; + $db_data['protein'] = $get_body_value['pp']; + $db_data['proteinval'] = $get_body_value['ppval']; + $db_data['bone'] = $get_body_value['bm']; + $db_data['kcal'] = $get_body_value['bmr']; + $db_data['visceral'] = $get_body_value['uvi']; + $db_data['sfr'] = $get_body_value['sfr']; + $db_data['body_level'] = $get_body_value['fatlevelname'];//肥胖等级 + $db_data['body_type'] = $get_body_value['body'];//身体类型 + $db_data['body_age'] = $get_body_value['bodyage']; + $db_data['4_electrode_data'] = json_encode($get_body_value); + } if($get_body_value === false){ return $this->msg(10002); } - // 开始设置数据 - $db_data['bmi'] = $get_body_value['bmi']; - $db_data['score'] = $get_body_value['cmi']; - $db_data['fat_r'] = $get_body_value['fat_r']; - $db_data['fat_w'] = $get_body_value['fat_w']; - $db_data['muscle'] = $get_body_value['muscle']; - $db_data['muscleval'] = $get_body_value['muscleval']; - $db_data['water'] = $get_body_value['water']; - $db_data['protein'] = $get_body_value['protein']; - $db_data['proteinval'] = $get_body_value['proteinval']; - $db_data['bone'] = $get_body_value['bone']; - $db_data['kcal'] = $get_body_value['kcal']; - $db_data['visceral'] = $get_body_value['visceral']; - $db_data['sfr'] = $get_body_value['sfr']; - $db_data['body_level'] = $get_body_value['fatlevelname'];//肥胖等级 - $db_data['body_type'] = $get_body_value['body'];//身体类型 - $db_data['body_age'] = $get_body_value['bodyage']; - $db_data['8_electrode_data'] = json_encode($get_body_value['bodyage']); + // dump($get_body_value); + // 处理心率start if(array_key_exists('heart_rate', $data)){ if(!$this->verify_data_is_ok($data['heart_rate'],'num')){ - return $this->msg(10005); + return $this->msg(10005,'心率数据格式错误'); } $db_data['heart_rate'] = $data['heart_rate']; } @@ -891,12 +962,9 @@ class Userbody extends Base{ try{ Db::table($this->body_db_name['body_data_new'])->insert($db_data); $update_arr = [ - 'height'=>$get_body_value['身高'], - 'weight'=>$get_body_value['体重'] + 'height'=>$db_data['height'], + 'weight'=>$db_data['weight'] ]; - if($data['head_circumference']>0){ - $update_arr['head_data'] = $data['head_circumference']; - } Db::table($this->body_db_name['juese'])->where(['id'=>$data['aud_id']])->update($update_arr); // 提交事务 Db::commit(); @@ -910,142 +978,119 @@ class Userbody extends Base{ } - - public function body_report_brief_action($data){ $result_return = [ 'top_list'=>[ [ - "name"=>"体重", + "name"=>$this->merged_data['weight']['name'], 'time'=>'', "value"=>"0", - "unit"=>"kg", + "unit"=>$this->merged_data['weight']['unit'], "standard"=>"", - "standard_color"=>"#77E46C", + "standard_color"=>"#000000", 'target_weight'=>'0', 'target_weight_unit'=>'kg' ], [ - "name"=>"身高", + "name"=>$this->merged_data['height']['name'], 'time'=>'', "value"=>"0", - "unit"=>"cm", + "unit"=>$this->merged_data['height']['unit'], "standard"=>"", - "standard_color"=>"#FEA63D", + "standard_color"=>"#000000", ], [ - "name"=>"BMI", + "name"=>$this->merged_data['bmi']['name'], 'time'=>'', "value"=>"0", - "unit"=>"", + "unit"=>$this->merged_data['bmi']['unit'], "standard"=>"", - "standard_color"=>"#FF8072", + "standard_color"=>"#000000", ], ], - // 'weight'=> - // 'height'=> - // 'bmi'=> 'card_list'=>[ ], ]; - $body_last_data = Db::query(" - select - Top 1 - acbd.id, - acbd.acd_id, - acbd.record_type, - acbd.create_time, - acbd.last_update_time, - acbd.score, - acbd.fat_r, - acbd.fat_w, - acbd.muscle, - acbd.muscleval, - acbd.water, - acbd.proteinval, - acbd.bone, - acbd.protein, - acbd.kcal, - acbd.visceral, - acbd.sfr, - acbd.body_level, - acbd.aud_id, - acbd.record_time, - acbd.body_type, - acbd.age, - acbd.is_del, - acbd.height, - acbd.height_val, - acbd.weight, - acbd.weight_val, - acbd.bmi, - acbd.body_age, - acbd.head_circumference, - acbd.heart_rate, - aud.birthday,aud.gender,aud.target_weight,aud.initial_weight,aud.initial_date - from ".$this->body_db_name['body_data']." as acbd - left join ".$this->body_db_name['juese']." as aud on acbd.aud_id=aud.id - where acbd.is_del=0 and acbd.aud_id='".$data['aud_id']."' - order by acbd.record_time desc - "); - if(count($body_last_data) <= 0){ + $user_data = Db::table($this->body_db_name['juese']) + ->where(['id'=>$data['aud_id'],'is_del'=>0]) + ->field('birthday,gender,target_weight,initial_weight,initial_date') + ->find(); + if(!$user_data){ + return $this->msg(10003); + } + + $body_last_data = Db::table($this->body_db_name['body_data_new']) + ->where(['is_del'=>0,'aud_id'=>$data['aud_id']]) + ->order('record_time desc,id desc') + ->find(); + + + if(!$body_last_data){ return $this->msg($result_return); } - - // return $this->msg($body_last_data); - - - $record_time = substr($body_last_data[0]['record_time'], 11, 5); + + + $record_time = substr($body_last_data['record_time'], 11, 5); // 处理体重 - $temporary_weight = explode(',',$body_last_data[0]['weight']); $result_return['top_list'][0]['time'] = $record_time; - $result_return['top_list'][0]['value'] = $temporary_weight[0]; - $result_return['top_list'][0]['standard'] = $temporary_weight[1] == '无'?'':$temporary_weight[1]; - $result_return['top_list'][0]['standard_color'] = $temporary_weight[2] == '无'?'':$temporary_weight[2]; - $result_return['top_list'][0]['target_weight'] = $body_last_data[0]['target_weight']; + $result_return['top_list'][0]['value'] = floatval($body_last_data['weight']); + $temporary_standard_color = $this->judgment_standard_color($result_return['top_list'][0]['value'],'weight',$user_data); + $result_return['top_list'][0]['standard'] = $temporary_standard_color[1]; + $result_return['top_list'][0]['standard_color'] = $temporary_standard_color[2]; + $result_return['top_list'][0]['target_weight'] = $user_data['target_weight']; $result_return['top_list'][0]['key_name'] = 'weight'; + $user_data['weight'] = $result_return['top_list'][0]['value']; // 处理身高 - $temporary_height = explode(',',$body_last_data[0]['height']); $result_return['top_list'][1]['time'] = $record_time; - $result_return['top_list'][1]['value'] = $temporary_height[0]; - $result_return['top_list'][1]['standard'] = $temporary_height[1] == '无'?'':$temporary_height[1]; - $result_return['top_list'][1]['standard_color'] = $temporary_height[2] == '无'?'':$temporary_height[2]; + $result_return['top_list'][1]['value'] = floatval($body_last_data['height']); + $temporary_standard_color = $this->judgment_standard_color($result_return['top_list'][0]['value'],'height',$user_data); + $result_return['top_list'][1]['standard'] = $temporary_standard_color[1]; + $result_return['top_list'][1]['standard_color'] = $temporary_standard_color[2]; $result_return['top_list'][1]['key_name'] = 'height'; // 处理BMI - $temporary_bmi = explode(',',$body_last_data[0]['bmi']); $result_return['top_list'][2]['time'] = $record_time; - $result_return['top_list'][2]['value'] = $temporary_bmi[0]; - $result_return['top_list'][2]['standard'] = $temporary_bmi[1] == '无'?'':$temporary_bmi[1]; - $result_return['top_list'][2]['standard_color'] = $temporary_bmi[2] == '无'?'':$temporary_bmi[2]; + $result_return['top_list'][2]['value'] = floatval($body_last_data['bmi']); + $temporary_standard_color = $this->judgment_standard_color($result_return['top_list'][0]['value'],'bmi',$user_data); + $result_return['top_list'][2]['standard'] = $temporary_standard_color[1]; + $result_return['top_list'][2]['standard_color'] = $temporary_standard_color[2]; $result_return['top_list'][2]['key_name'] = 'bmi'; - - // 如果有心率 - if($body_last_data[0]['heart_rate']){ - $temporary_heart_rate = explode(',',$body_last_data[0]['heart_rate']); - $result_return['top_list'][2]['time'] = $record_time; - $result_return['top_list'][2]['value'] = $temporary_heart_rate[0]; - $result_return['top_list'][2]['standard'] = $temporary_heart_rate[1] == '无'?'':$temporary_heart_rate[1]; - $result_return['top_list'][2]['standard_color'] = $temporary_heart_rate[2] == '无'?'':$temporary_heart_rate[2]; - $result_return['top_list'][2]['key_name'] = 'heart_rate'; - } // 如果有头围 - if($body_last_data[0]['head_circumference']){ - $temporary_head_circumference = explode(',',$body_last_data[0]['head_circumference']); - $result_return['top_list'][2]['time'] = $record_time; - $result_return['top_list'][2]['value'] = $temporary_head_circumference[0]; - $result_return['top_list'][2]['standard'] = $temporary_head_circumference[1] == '无'?'':$temporary_head_circumference[1]; - $result_return['top_list'][2]['standard_color'] = $temporary_head_circumference[2] == '无'?'':$temporary_head_circumference[2]; - $result_return['top_list'][2]['key_name'] = 'head_circumference'; + if($body_last_data['head_circumference']){ + $temporary_head_circumference = json_decode($body_last_data['head_circumference'],true); + $result_return['top_list'][] = [ + "name"=>$this->merged_data['head_circumference']['name'], + 'time' => $record_time, + 'value' => $temporary_head_circumference['value']?$temporary_head_circumference['value']:0, + "unit"=>$this->merged_data['head_circumference']['unit'], + 'standard' => $temporary_head_circumference['level']?$temporary_head_circumference['level']:0, + 'standard_color' => $temporary_head_circumference['color']?$temporary_head_circumference['color']:0, + 'key_name' => 'head_circumference', + ]; + } + // 如果有心率 + if($body_last_data['heart_rate']){ + $temporary_standard_color = $this->judgment_standard_color(floatval($body_last_data['heart_rate']),'heart_rate',$user_data); + $result_return['top_list'][] = [ + "name"=>$this->merged_data['heart_rate']['name'], + 'time' => $record_time, + 'value' => floatval($body_last_data['heart_rate']), + "unit"=>$this->merged_data['heart_rate']['unit'], + 'standard' => $temporary_standard_color[1], + 'standard_color' => $temporary_standard_color[2], + 'key_name' => 'heart_rate', + ]; } - // 处理卡片数据 - if($body_last_data[0]['record_type'] == 'by_hand_means'){ + if($body_last_data['record_type'] == 'by_hand_means'){ return $this->msg($result_return); }else{ // 设置卡片顺序 $set_order = [ + 'ideal_weight', //体脂率 + 'ideal_height', //体脂率 + 'ideal_bmi', //体脂率 'fat_r', //体脂率 'fat_w', //脂肪量 'muscle', //肌肉率 @@ -1061,36 +1106,110 @@ class Userbody extends Base{ 'score', //身体得分☆ 'body_age', //身体年龄☆ ]; + $temporary_three = []; foreach ($set_order as $key => $value) { - if($value == 'body_level' || $value == 'body_type' || $value == 'body_age' || $value == 'score'){ + + if($value == 'body_level' || $value == 'body_type' || $value == 'body_age'){ // 如果是特殊数据 $result_return['card_list'][] = [ 'name'=>$this->merged_data[$value]['name'], - 'icon'=>'', - 'value'=>$body_last_data[0][$value], + 'icon'=>$this->merged_data[$value]['icon'], + 'value'=>$value == 'body_age'?floatval($body_last_data[$value]):$body_last_data[$value], 'unit'=>$this->merged_data[$value]['unit'], 'standard'=>'', 'standard_color'=>'', 'key_name'=>$value, ]; }else{ - // 分割数据 - $temporary_data_1 = explode(',',$body_last_data[0][$value]); - // 设置默认标准颜色 - $standard_color = '#121212'; - // 处理标准颜色 - if(array_key_exists($temporary_data_1[1],$this->merged_data[$value]['list'])){ - $standard_color = $this->merged_data[$value]['list'][$temporary_data_1[1]]; + if($value == 'ideal_weight' || $value == 'ideal_height' || $value == 'ideal_bmi'){ + $temporary_standard_color = $this->judgment_standard_color('none',$value,$user_data); + if($temporary_standard_color){ + $result_return['card_list'][] = [ + 'name'=>$this->merged_data[$value]['name'], + 'icon'=>$this->merged_data[$value]['icon'], + 'value'=>$temporary_standard_color, + 'unit'=>$this->merged_data[$value]['unit'], + 'standard'=>'', + 'standard_color'=>'', + 'key_name'=>$value, + ]; + } + }else{ + + if($value == 'fat_w' || $value == 'muscleval' || $value == 'proteinval'){ + $result_return['card_list'][] = [ + 'name'=>$this->merged_data[$value]['name'], + 'icon'=>$this->merged_data[$value]['icon'], + 'value'=>floatval($body_last_data[$value]), + 'unit'=>$this->merged_data[$value]['unit'], + 'standard'=>$temporary_three[$value][0], + 'standard_color'=>$temporary_three[$value][1], + 'key_name'=>$value, + ]; + }else if($value == 'score'){ + $temporary_standard_color = $this->judgment_standard_color($body_last_data[$value],$value,$user_data); + $result_return['card_list'][] = [ + 'name'=>$this->merged_data[$value]['name'], + 'icon'=>$this->merged_data[$value]['icon'], + 'value'=>floatval($temporary_standard_color[0]), + 'unit'=>$this->merged_data[$value]['unit'], + 'standard'=>$temporary_standard_color[1], + 'standard_color'=>$temporary_standard_color[2], + 'key_name'=>$value, + ]; + }else{ + + $temporary_standard_color = $this->judgment_standard_color($body_last_data[$value],$value,$user_data); + if($temporary_standard_color){ + + $result_return['card_list'][] = [ + 'name'=>$this->merged_data[$value]['name'], + 'icon'=>$this->merged_data[$value]['icon'], + 'value'=>floatval($temporary_standard_color[0]), + 'unit'=>$this->merged_data[$value]['unit'], + 'standard'=>$temporary_standard_color[1], + 'standard_color'=>$this->merged_data[$value]['list'][$temporary_standard_color[1]], + 'key_name'=>$value, + ]; + if($value == 'fat_r'){ + $temporary_three['fat_w'] = [ + $temporary_standard_color[1], + $this->merged_data[$value]['list'][$temporary_standard_color[1]], + ]; + } + if($value == 'muscle'){ + $temporary_three['muscleval'] = [ + $temporary_standard_color[1], + $this->merged_data[$value]['list'][$temporary_standard_color[1]], + ]; + } + if($value == 'protein'){ + $temporary_three['proteinval'] = [ + $temporary_standard_color[1], + $this->merged_data[$value]['list'][$temporary_standard_color[1]], + ]; + } + } + } } - $result_return['card_list'][] = [ - 'name'=>$this->merged_data[$value]['name'], - 'icon'=>'', - 'value'=>$temporary_data_1[0], - 'unit'=>$this->merged_data[$value]['unit'], - 'standard'=>$temporary_data_1[1], - 'standard_color'=>$standard_color, - 'key_name'=>$value, - ]; + + // // 分割数据 + // $temporary_data_1 = explode(',',$body_last_data[0][$value]); + // // 设置默认标准颜色 + // $standard_color = '#121212'; + // // 处理标准颜色 + // if(array_key_exists($temporary_data_1[1],$this->merged_data[$value]['list'])){ + // $standard_color = $this->merged_data[$value]['list'][$temporary_data_1[1]]; + // } + // $result_return['card_list'][] = [ + // 'name'=>$this->merged_data[$value]['name'], + // 'icon'=>'', + // 'value'=>$temporary_data_1[0], + // 'unit'=>$this->merged_data[$value]['unit'], + // 'standard'=>$temporary_data_1[1], + // 'standard_color'=>$standard_color, + // 'key_name'=>$value, + // ]; } } } @@ -1098,58 +1217,32 @@ class Userbody extends Base{ return $this->msg($result_return); } public function body_report_detailed_action($data){ + $result_return = []; + + $user_data = Db::table($this->body_db_name['juese']) + ->where(['id'=>$data['aud_id'],'is_del'=>0]) + ->field('birthday,gender,target_weight,initial_weight,initial_date') + ->find(); + if(!$user_data){ + return $this->msg(10003); + } + + $body_last_data = Db::table($this->body_db_name['body_data_new']) + ->where(['is_del'=>0,'aud_id'=>$data['aud_id']]) + ->order('record_time desc,id desc') + ->find(); - $body_last_data = Db::query(" - select - Top 1 - acbd.id, - acbd.acd_id, - acbd.record_type, - acbd.create_time, - acbd.last_update_time, - acbd.score, - acbd.fat_r, - acbd.fat_w, - acbd.muscle, - acbd.muscleval, - acbd.water, - acbd.proteinval, - acbd.bone, - acbd.protein, - acbd.kcal, - acbd.visceral, - acbd.sfr, - acbd.body_level, - acbd.aud_id, - acbd.record_time, - acbd.body_type, - acbd.age, - acbd.is_del, - acbd.height, - acbd.height_val, - acbd.weight, - acbd.weight_val, - acbd.bmi, - acbd.body_age, - acbd.head_circumference, - acbd.heart_rate, - aud.birthday,aud.gender,aud.target_weight,aud.initial_weight,aud.initial_date - from ".$this->body_db_name['body_data']." as acbd - left join ".$this->body_db_name['juese']." as aud on acbd.aud_id=aud.id - where acbd.is_del=0 and acbd.aud_id='".$data['aud_id']."' - order by acbd.record_time desc - "); - if(count($body_last_data) <= 0){ + if(!$body_last_data){ return $this->msg($result_return); } - // return $this->msg($body_last_data); - // 设置卡片顺序 + $user_data['weight'] = $body_last_data['weight']; $set_order = [ 'weight', //体重 'height', //身高 - // '', //心率 - // 'bmr', //BMR 静态基础代谢 + 'heart_rate', //心率 + 'head_circumference', //头围 + 'kcal', //BMR 静态基础代谢 'bmi', //BMI 'fat_r', //体脂率 'fat_w', //脂肪量 @@ -1159,90 +1252,280 @@ class Userbody extends Base{ 'proteinval', //蛋白量 'water', //水分 'sfr', //皮下脂肪 + // '', //骨骼肌率 + // '', //骨路肌量 'visceral', //内脏指数 + // '', //肌肉控制量 + // '', //脂筋控制量 + 'ideal_weight', //理想体重 + 'ideal_height', //理想身高 + 'ideal_bmi', //理想bmi + // '', //去脂体重 + // '', //控制体量 'bone', //骨重 'body_type', //身体类型☆ 'body_level', //肥胖等级☆ + // '', //健康评价 'body_age', //身体年龄☆ 'score', //身体得分☆ ]; - $temporary_model = []; foreach ($set_order as $key => $value) { - $temporary_model = []; - - if($value == 'body_type' || $value == 'body_level'){ - $temporary_model = $this->detailed_model_1; - $temporary_model['name'] = $this->merged_data[$value]['name']; - $temporary_model['value'] = ''; - $temporary_model['unit'] = ''; - $temporary_model['desc'] = $this->merged_data[$value]['description']; - $temporary_model['standard'] = $body_last_data[0][$value]; - $temporary_model['key_name'] = $value; - $result_return[] = $temporary_model; - }else if($value == 'weight' || $value == 'height' || $value == 'bmi'){ - $temporary_data_array = explode(',',$body_last_data[0][$value]); - $temporary_model = $this->detailed_model_1; - $temporary_model['name'] = $this->merged_data[$value]['name']; - $temporary_model['value'] = $temporary_data_array[0]; - $temporary_model['unit'] = $this->merged_data[$value]['unit']; - $temporary_model['desc'] = $this->merged_data[$value]['description']; - $temporary_model['standard'] = $temporary_data_array[1]; - $temporary_model['standard_color'] = $temporary_data_array[1] == '无'?'':$this->merged_data[$value]['list'][$temporary_data_array[1]]; - $temporary_model['list'] = $this->process_hwb_standard_action($body_last_data[0]['birthday'],$value,$body_last_data[0]['age'],$body_last_data[0]['gender']); - $temporary_model['key_name'] = $value; - $temporary_model['offset'] = $this->process_offset_action($temporary_data_array[0],$temporary_model['list']); - $result_return[] = $temporary_model; - }else if($value == 'score' || $value == 'body_age'){ - $temporary_model = $this->detailed_model_1; - $temporary_model['name'] = $this->merged_data[$value]['name']; - $temporary_model['value'] = $body_last_data[0][$value]; - $temporary_model['unit'] = $this->merged_data[$value]['unit']; - $temporary_model['desc'] = $this->merged_data[$value]['description']; - $temporary_model['key_name'] = $value; - $temporary_model['list'] = $this->process_other_standard_action($body_last_data[0],$value); - $temporary_model['offset'] = $this->process_offset_action($temporary_model['value'],$temporary_model['list']); - $temporary_model['standard'] = $this->process_special_offset_action($temporary_model['value'],$temporary_model['list'])['standard']; - $temporary_model['standard_color'] = $this->process_special_offset_action($temporary_model['value'],$temporary_model['list'])['standard_color']; - $result_return[] = $temporary_model; - }else{ - if($body_last_data[0]['record_type'] == 'by_device_adc'){ - $temporary_data_array = explode(',',$body_last_data[0][$value]); - $temporary_model = $this->detailed_model_1; - $temporary_model['name'] = $this->merged_data[$value]['name']; - $temporary_model['value'] = $temporary_data_array[0]; - $temporary_model['unit'] = $this->merged_data[$value]['unit']; - $temporary_model['desc'] = $this->merged_data[$value]['description']; - - $temporary_model['standard'] = array_key_exists(1,$temporary_data_array)?$temporary_data_array[1]:''; - // dump($temporary_model['standard']); - if($temporary_model['standard'] == ''){ - $temporary_model['standard_color'] = "#000000"; - }else if($temporary_model['standard'] == '异常'){ - $temporary_model['standard_color'] = "#FD5759"; - }else{ - $temporary_model['standard_color'] = $this->merged_data[$value]['list'][$temporary_data_array[1]]; + if($body_last_data['record_type'] == 'by_hand_means'){ + if($value == 'weight' || $value == 'height' || $value == 'bmi' || $value == 'head_circumference'){ + + $temporary_data_list = $this->judgment_standard_color_detailed($body_last_data[$value],$value,$user_data); + if($temporary_data_list){ + $result_return[] = $temporary_data_list; } - $temporary_model['list'] = $temporary_model['standard'] == ''?[]:$this->process_other_standard_action($body_last_data[0],$value); - // dump($value); - // dump($temporary_model['list']); - $temporary_model['key_name'] = $value; - $temporary_model['offset'] = $temporary_model['standard'] == ''?0:$this->process_offset_action($temporary_data_array[0],$temporary_model['list']); - if($temporary_model['standard'] == '异常'){ - $temporary_model = $this->handling_exceptions($temporary_model); - } - $result_return[] = $temporary_model; }else{ continue; } + }else{ + if($value == 'ideal_weight' || $value == 'ideal_height' || $value == 'ideal_bmi'){ + $temporary_data_list = $this->judgment_standard_color_detailed(null,$value,$user_data); + if($temporary_data_list){ + $result_return[] = $temporary_data_list; + } + }else{ + $temporary_data_list = $this->judgment_standard_color_detailed($body_last_data[$value],$value,$user_data); + if($temporary_data_list){ + $result_return[] = $temporary_data_list; + } + } + + } + } + + return $this->msg($result_return); + + } + public function body_report_depth_action($data){ + + $result_return = []; + + $user_data = Db::table($this->body_db_name['juese']) + ->where(['id'=>$data['aud_id'],'is_del'=>0]) + ->field('nickname,head_pic,birthday,gender,target_weight,initial_weight,initial_date') + ->find(); + if(!$user_data){ + return $this->msg(10003); + } + + $body_last_data = Db::table($this->body_db_name['body_data_new']) + ->where(['is_del'=>0,'aud_id'=>$data['aud_id']]) + ->order('record_time desc,id desc') + ->find(); + + if(!$body_last_data){ + return $this->msg($result_return); + } + $user_data['weight'] = $body_last_data['weight']; + + $temporary_data_list = $this->judgment_standard_color_detailed($body_last_data['score'],'score',$user_data); + $result_return[] = [ + 'title_key'=>'user_data', + 'title_name'=>'', + 'nickname'=>$user_data['nickname'], + 'head_pic'=>$user_data['head_pic'], + 'gender'=>$user_data['gender'], + 'record_time'=>$body_last_data['record_time'], + 'age'=>$this->calculate_age($user_data['birthday']), + 'height'=>$body_last_data['height'], + 'score'=>$temporary_data_list?$temporary_data_list['value']:0, + ]; + + // 如果有心率 + if($body_last_data['heart_rate']){ + $temporary_data_list = $this->judgment_standard_color_detailed($body_last_data['heart_rate'],'heart_rate',$user_data); + $result_return[] = [ + 'title_key'=>'heart_rate', + 'title_name'=>'心脏健康', + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/heart_rate.png", + 'value'=>"心率 ".$temporary_data_list['value'], + 'unit'=>$temporary_data_list['unit'], + 'standard'=>$temporary_data_list['standard'], + 'standard_color'=>$temporary_data_list['standard_color'], + 'standard_list'=>$temporary_data_list['standard_list'], + 'offset'=>$temporary_data_list['offset'], + ]; + } + + $temporary_data_list['weight'] = $this->judgment_standard_color_detailed($body_last_data['weight'],'weight',$user_data); + $temporary_data_list['fat_w'] = $this->judgment_standard_color_detailed($body_last_data['fat_w'],'fat_w',$user_data); + $temporary_data_list['muscleval'] = $this->judgment_standard_color_detailed($body_last_data['muscleval'],'muscleval',$user_data); + $temporary_data_list['proteinval'] = $this->judgment_standard_color_detailed($body_last_data['proteinval'],'proteinval',$user_data); + $temporary_data_list['water'] = $this->judgment_standard_color_detailed($body_last_data['water'],'water',$user_data); + $temporary_data_list['bone'] = $this->judgment_standard_color_detailed($body_last_data['bone'],'bone',$user_data); + // 体重 + if(count($temporary_data_list['weight']['standard_list'])){ + foreach ($temporary_data_list['weight']['standard_list'] as $key => $value) { + if($value['text'] == $temporary_data_list['weight']['standard']){ + $temporary_body_data['weight'][0] = "体重(".$value['min_val']."~".$value['max_val'].")"; + $temporary_body_data['weight'][1] = ''; + } + } + }else{ + $temporary_body_data['weight'][0] = ''; + $temporary_body_data['weight'][1] = ''; + } + // 脂肪量 + if(count($temporary_data_list['fat_w']['standard_list'])){ + foreach ($temporary_data_list['fat_w']['standard_list'] as $key => $value) { + if($value['text'] == $temporary_data_list['fat_w']['standard']){ + $temporary_body_data['fat_w'][0] = "(".$value['min_val']."~".$value['max_val'].")"; + $temporary_body_data['fat_w'][1] = bcdiv($body_last_data['fat_w'],$body_last_data['weight'],2); + } + } + }else{ + $temporary_body_data['fat_w'][0] = ''; + $temporary_body_data['fat_w'][1] = bcdiv($body_last_data['fat_w'],$body_last_data['weight'],2); + } + // 肌肉量 + if(count($temporary_data_list['muscleval']['standard_list'])){ + foreach ($temporary_data_list['muscleval']['standard_list'] as $key => $value) { + if($value['text'] == $temporary_data_list['muscleval']['standard']){ + $temporary_body_data['muscleval'][0] = "(".$value['min_val']."~".$value['max_val'].")"; + $temporary_body_data['muscleval'][1] = bcdiv($body_last_data['muscleval'],$body_last_data['weight'],2); + } + } + }else{ + $temporary_body_data['muscleval'][0] = ''; + $temporary_body_data['muscleval'][1] = bcdiv($body_last_data['muscleval'],$body_last_data['weight'],2); + } + // 蛋白量 + if(count($temporary_data_list['proteinval']['standard_list'])){ + foreach ($temporary_data_list['proteinval']['standard_list'] as $key => $value) { + if($value['text'] == $temporary_data_list['proteinval']['standard']){ + $temporary_body_data['proteinval'][0] = "(".$value['min_val']."~".$value['max_val'].")"; + $temporary_body_data['proteinval'][1] = bcdiv($body_last_data['proteinval'],$body_last_data['weight'],2); + } + } + }else{ + $temporary_body_data['proteinval'][0] = ''; + $temporary_body_data['proteinval'][1] = bcdiv($body_last_data['proteinval'],$body_last_data['weight'],2); + } + // 水分 + if(count($temporary_data_list['water']['standard_list'])){ + foreach ($temporary_data_list['water']['standard_list'] as $key => $value) { + if($value['text'] == $temporary_data_list['water']['standard']){ + $temporary_body_data['water'][0] = "(".$value['min_val']."~".$value['max_val'].")"; + $temporary_body_data['water'][1] = bcdiv($body_last_data['water'],$body_last_data['weight'],2); + } + } + }else{ + $temporary_body_data['water'][0] = ''; + $temporary_body_data['water'][1] = bcdiv($body_last_data['water'],$body_last_data['weight'],2); + } + // 骨重 + if(count($temporary_data_list['bone']['standard_list'])){ + foreach ($temporary_data_list['bone']['standard_list'] as $key => $value) { + if($value['text'] == $temporary_data_list['bone']['standard']){ + $temporary_body_data['bone'][0] = "(".$value['min_val']."~".$value['max_val'].")"; + $temporary_body_data['bone'][1] = bcdiv($body_last_data['bone'],$body_last_data['weight'],2); + } + } + }else{ + $temporary_body_data['bone'][0] = ''; + $temporary_body_data['bone'][1] = bcdiv($body_last_data['bone'],$body_last_data['weight'],2); + } + + // 加 bcadd(,,20) + // 减 bcsub(,,20) + // 乘 bcmul(,,20) + // 除 bcdiv(,,20) + $result_return[] = [ + 'title_key'=>'body_data', + 'title_name'=>'身体成分分析', + "icon"=>"http://tc.pcxbc.com/new_reedaw/icon/body_data.png", + "title"=>$temporary_body_data['weight'][0], + 'standard'=>$temporary_body_data == ''?'':$temporary_data_list['standard'], + "description"=>"*总体重=体水分量+蛋白质量+脂肪量+肌肉量+骨重+其他", + 'list'=>[ + ['color'=>'#3E7AF6','name'=>'体水分量','scope'=>$temporary_body_data['water'][0],'value'=>$body_last_data['water'],'offset'=>$temporary_body_data['water'][1]], + ['color'=>'#FFB119','name'=>'蛋白质量','scope'=>$temporary_body_data['proteinval'][0],'value'=>$body_last_data['proteinval'],'offset'=>$temporary_body_data['proteinval'][1]], + ['color'=>'#31D4F5','name'=>'脂肪量','scope'=>$temporary_body_data['fat_w'][0],'value'=>$body_last_data['fat_w'],'offset'=>$temporary_body_data['fat_w'][1]], + ['color'=>'#E749F5','name'=>'肌肉量','scope'=>$temporary_body_data['muscleval'][0],'value'=>$body_last_data['muscleval'],'offset'=>$temporary_body_data['muscleval'][1]], + ['color'=>'#1EA04A','name'=>'骨重','scope'=>$temporary_body_data['bone'][0],'value'=>$body_last_data['bone'],'offset'=>$temporary_body_data['bone'][1]], + [ + 'color'=>'#999999', + 'name'=>'其他', + 'scope'=>"", + 'value'=>'', + 'offset'=>'', + ], + ], + 'value'=>$body_last_data['weight'], + 'unit'=>$temporary_data_list['unit'], + ]; + + return $this->msg($result_return); + + + + $set_order = [ + 'weight', //体重 + 'height', //身高 + 'heart_rate', //心率 + 'head_circumference', //头围 + 'kcal', //BMR 静态基础代谢 + 'bmi', //BMI + 'fat_r', //体脂率 + 'fat_w', //脂肪量 + 'muscle', //肌肉率 + 'muscleval', //肌肉量 + 'protein', //蛋白率 + 'proteinval', //蛋白量 + 'water', //水分 + 'sfr', //皮下脂肪 + // '', //骨骼肌率 + // '', //骨路肌量 + 'visceral', //内脏指数 + // '', //肌肉控制量 + // '', //脂筋控制量 + 'ideal_weight', //理想体重 + 'ideal_height', //理想身高 + 'ideal_bmi', //理想bmi + // '', //去脂体重 + // '', //控制体量 + 'bone', //骨重 + 'body_type', //身体类型☆ + 'body_level', //肥胖等级☆ + // '', //健康评价 + 'body_age', //身体年龄☆ + 'score', //身体得分☆ + ]; + + foreach ($set_order as $key => $value) { + if($body_last_data['record_type'] == 'by_hand_means'){ + if($value == 'weight' || $value == 'height' || $value == 'bmi' || $value == 'head_circumference'){ + + $temporary_data_list = $this->judgment_standard_color_detailed($body_last_data[$value],$value,$user_data); + if($temporary_data_list){ + $result_return[] = $temporary_data_list; + } + }else{ + continue; + } + }else{ + if($value == 'ideal_weight' || $value == 'ideal_height' || $value == 'ideal_bmi'){ + $temporary_data_list = $this->judgment_standard_color_detailed(null,$value,$user_data); + if($temporary_data_list){ + $result_return[] = $temporary_data_list; + } + }else{ + $temporary_data_list = $this->judgment_standard_color_detailed($body_last_data[$value],$value,$user_data); + if($temporary_data_list){ + $result_return[] = $temporary_data_list; + } + } + } } return $this->msg($result_return); } - - // 设置理想体重 public function set_target_weight_action($data){ $user_data = Db::table($this->body_db_name['juese'])->where(['id'=>$data['aud_id']])->update(['target_weight'=>$data['weight']]); if($user_data){ @@ -1252,11 +1535,6 @@ class Userbody extends Base{ } } - - - - - ################################################################工具################################################################ ################################################################工具################################################################ @@ -1363,83 +1641,7 @@ class Userbody extends Base{ return $result_data; } - // 处理一般落点 - public function process_offset_action($val, $list) { - - $count = count($list); - if($count <= 0){ - return 0; - } - // dump($val); - // dump($list); - // die; - // 边界检查:小于最小值 - $firstMin = floatval($list[0]['min_val']); - if (floatval($val) < $firstMin) { - return '0'; - } - - // 边界检查:大于最大值 - $lastMax = floatval($list[$count-1]['max_val']); - if (floatval($val) > $lastMax) { - return '100'; - } - - // 找到数值所在的区间 - for ($i = 0; $i < $count; $i++) { - $item = $list[$i]; - $valNum = floatval($val); - $minNum = floatval($item['min_val']); - $maxNum = floatval($item['max_val']); - - // 如果是第一个区间,包含最小值 - if ($i == 0 && $valNum <= $maxNum) { - $index = $i; - break; - } - // 如果是最后一个区间,包含最大值 - elseif ($i == $count - 1 && $valNum >= $minNum) { - $index = $i; - break; - } - // 中间区间 - elseif ($valNum >= $minNum && $valNum < $maxNum) { - $index = $i; - break; - } - } - - if (!isset($index)) { - return '0'; - } - - // 计算基准值 - $itemPercent = bcdiv('100', strval($count), 20); - $basePercent = bcmul(strval($index), $itemPercent, 20); - - // 计算当前区间内的百分比 - $item = $list[$index]; - $minVal = $item['min_val']; - $maxVal = $item['max_val']; - - $rangeWidth = bcsub($maxVal, $minVal, 20); - - // 如果范围宽度为0,直接返回基准百分比 - if (floatval($rangeWidth) == 0) { - $result = bcdiv($basePercent, '1', 1); - return $result; - } - - $offset = bcsub($val, $minVal, 20); - $percentInRange = bcdiv($offset, $rangeWidth, 20); - $currentPercent = bcmul($percentInRange, $itemPercent, 20); - - // 计算总百分比并格式化 - $result = bcadd($basePercent, $currentPercent, 1); - // $result = bcdiv($totalPercent, '1', 1); - - return $result; - } + // 处理特殊落点下的标准值 public function process_special_offset_action($val, $list) { @@ -1623,6 +1825,85 @@ class Userbody extends Base{ return $data; } + + + // 处理一般落点 + public function process_offset_action($val, $list) { + + $count = count($list); + if($count <= 0){ + return 0; + } + // dump($val); + // dump($list); + // die; + // 边界检查:小于最小值 + $firstMin = floatval($list[0]['min_val']); + if (floatval($val) < $firstMin) { + return '0'; + } + + // 边界检查:大于最大值 + $lastMax = floatval($list[$count-1]['max_val']); + if (floatval($val) > $lastMax) { + return '100'; + } + + // 找到数值所在的区间 + for ($i = 0; $i < $count; $i++) { + $item = $list[$i]; + $valNum = floatval($val); + $minNum = floatval($item['min_val']); + $maxNum = floatval($item['max_val']); + + // 如果是第一个区间,包含最小值 + if ($i == 0 && $valNum <= $maxNum) { + $index = $i; + break; + } + // 如果是最后一个区间,包含最大值 + elseif ($i == $count - 1 && $valNum >= $minNum) { + $index = $i; + break; + } + // 中间区间 + elseif ($valNum >= $minNum && $valNum < $maxNum) { + $index = $i; + break; + } + } + + if (!isset($index)) { + return '0'; + } + + // 计算基准值 + $itemPercent = bcdiv('100', strval($count), 20); + $basePercent = bcmul(strval($index), $itemPercent, 20); + + // 计算当前区间内的百分比 + $item = $list[$index]; + $minVal = $item['min_val']; + $maxVal = $item['max_val']; + + $rangeWidth = bcsub($maxVal, $minVal, 20); + + // 如果范围宽度为0,直接返回基准百分比 + if (floatval($rangeWidth) == 0) { + $result = bcdiv($basePercent, '1', 1); + return $result; + } + + $offset = bcsub($val, $minVal, 20); + $percentInRange = bcdiv($offset, $rangeWidth, 20); + $currentPercent = bcmul($percentInRange, $itemPercent, 20); + + // 计算总百分比并格式化 + $result = bcadd($basePercent, $currentPercent, 1); + // $result = bcdiv($totalPercent, '1', 1); + + return $result; + } // 发送信息获取身体数据 public function send_body_data($data,$type){ if($type == '4_electrode'){ @@ -1643,12 +1924,8 @@ class Userbody extends Base{ unset($data['adc']); unset($data['gender']); unset($data['birthDay']); - // dump($data); - // die; $request_result = $this->postRequest($url,$data); } - - // dump($request_result); if($request_result['code'] != 0){ return false; }else{ @@ -1656,6 +1933,789 @@ class Userbody extends Base{ } } + //简要身体数据标准和颜色 + public function judgment_standard_color($data,$type,$user){ + $linshi_data = []; + $month_num = $this->calculateAgeInMonthsWithPrecision($user['birthday']); + $age = $this->calculate_age($user['birthday']); + $gender_val = $user['gender']; + $return_data = [$data]; + if($type == 'weight'){ + + $linshi_data = $this->merged_data['weight']; + $bhw_date = Db::table($this->body_db_name['weight'])->where("Month >= $month_num and Sex = '$gender_val'")->order('Month')->limit(1)->cache(86400)->select(); + if($bhw_date){ + $linshi_data['standard_list'][0]['max_val'] = $bhw_date[0]['f2sd']; + $linshi_data['standard_list'][1]['min_val'] = $bhw_date[0]['f2sd']; + $linshi_data['standard_list'][1]['max_val'] = $bhw_date[0]['f1sd']; + $linshi_data['standard_list'][2]['min_val'] = $bhw_date[0]['f1sd']; + $linshi_data['standard_list'][2]['max_val'] = $bhw_date[0]['z1sd']; + $linshi_data['standard_list'][3]['min_val'] = $bhw_date[0]['z1sd']; + $linshi_data['standard_list'][3]['max_val'] = $bhw_date[0]['z2sd']; + $linshi_data['standard_list'][4]['min_val'] = $bhw_date[0]['z2sd']; + $linshi_data['standard_list'][4]['max_val'] = $bhw_date[0]['z3sd']; + foreach ($linshi_data['standard_list'] as $k => $v) { + if($data >= $v['min_val'] && $data < $v['max_val']){ + // 如果落在区间内 + $return_data[] = $v['text']; + $return_data[] = $v['color']; + } + } + // dump($return_data); + if(count($return_data) <= 1){ + $return_data[] = '异常'; + $return_data[] = '#000000'; + } + return $return_data; + }else{ + + $return_data[] = ''; + $return_data[] = ''; + return $return_data; + } + }else if($type == 'height'){ + $linshi_data = $this->merged_data['height']; + $bhw_date = Db::table($this->body_db_name['height'])->where("Month >= $month_num and Sex = '$gender_val'")->order('Month')->limit(1)->cache(86400)->select(); + if($bhw_date){ + $linshi_data['standard_list'][0]['max_val'] = $bhw_date[0]['f2sd']; + $linshi_data['standard_list'][1]['min_val'] = $bhw_date[0]['f2sd']; + $linshi_data['standard_list'][1]['max_val'] = $bhw_date[0]['f1sd']; + $linshi_data['standard_list'][2]['min_val'] = $bhw_date[0]['f1sd']; + $linshi_data['standard_list'][2]['max_val'] = $bhw_date[0]['z1sd']; + $linshi_data['standard_list'][3]['min_val'] = $bhw_date[0]['z1sd']; + $linshi_data['standard_list'][3]['max_val'] = $bhw_date[0]['z2sd']; + $linshi_data['standard_list'][4]['min_val'] = $bhw_date[0]['z2sd']; + $linshi_data['standard_list'][4]['max_val'] = $bhw_date[0]['z3sd']; + foreach ($linshi_data['standard_list'] as $k => $v) { + if($data >= $v['min_val'] && $data < $v['max_val']){ + // 如果落在区间内 + $return_data[] = $v['text']; + $return_data[] = $v['color']; + } + } + if(count($return_data) <= 1){ + $return_data[] = '异常'; + $return_data[] = '#000000'; + } + return $return_data; + }else{ + $return_data[] = ''; + $return_data[] = ''; + return $return_data; + } + }else if($type == 'bmi'){ + $linshi_data = $this->merged_data['bmi']; + $bhw_date = Db::table($this->body_db_name['bmi'])->where("Month >= $month_num and Sex = '$gender_val'")->order('Month')->limit(1)->cache(86400)->select(); + if($bhw_date){ + $linshi_data['standard_list'][0]['max_val'] = $bhw_date[0]['f1sd']; + $linshi_data['standard_list'][1]['min_val'] = $bhw_date[0]['f1sd']; + $linshi_data['standard_list'][1]['max_val'] = $bhw_date[0]['z1sd']; + $linshi_data['standard_list'][2]['min_val'] = $bhw_date[0]['z1sd']; + $linshi_data['standard_list'][2]['max_val'] = $bhw_date[0]['z2sd']; + $linshi_data['standard_list'][3]['min_val'] = $bhw_date[0]['z2sd']; + foreach ($linshi_data['standard_list'] as $k => $v) { + if($data >= $v['min_val'] && $data < $v['max_val']){ + // 如果落在区间内 + $return_data[] = $v['text']; + $return_data[] = $v['color']; + } + } + if(count($return_data) <= 1){ + $return_data[] = '异常'; + $return_data[] = '#000000'; + } + return $return_data; + }else{ + $return_data[] = ''; + $return_data[] = ''; + return $return_data; + } + }else if($type == 'heart_rate'){ + $linshi_data = $this->merged_data['heart_rate']; + foreach ($this->heart_rate as $key => $value) { + if($month_num > $value['age']['min'] && $month_num <= $value['age']['max']){ + $linshi_data['standard_list'][0]['max_val'] = $value[$gender_val]['min']; + $linshi_data['standard_list'][1]['min_val'] = $value[$gender_val]['min']; + $linshi_data['standard_list'][1]['max_val'] = $value[$gender_val]['max']; + $linshi_data['standard_list'][2]['min_val'] = $value[$gender_val]['max']; + $linshi_data['standard_list'][2]['max_val'] = 300; + break; + } + } + foreach ($linshi_data['standard_list'] as $k => $v) { + if($data >= $v['min_val'] && $data < $v['max_val']){ + // 如果落在区间内 + $return_data[] = $v['text']; + $return_data[] = $v['color']; + } + } + if(count($return_data) <= 1){ + $return_data[] = '异常'; + $return_data[] = '#000000'; + } + return $return_data; + }else if($type == 'ideal_weight'){ + $bhw_date = Db::table($this->body_db_name['weight'])->where("Month <= $month_num and Sex = '$gender_val'")->order('Month desc')->limit(1)->cache(86400)->select(); + if($bhw_date){ + return $bhw_date[0]['median']; + }else{ + return false; + } + }else if($type == 'ideal_height'){ + $bhw_date = Db::table($this->body_db_name['height'])->where("Month <= $month_num and Sex = '$gender_val'")->order('Month desc')->limit(1)->cache(86400)->select(); + if($bhw_date){ + return $bhw_date[0]['median']; + }else{ + return false; + } + }else if($type == 'ideal_bmi'){ + $bhw_date = Db::table($this->body_db_name['bmi'])->where("Month <= $month_num and Sex = '$gender_val'")->order('Month desc')->limit(1)->cache(86400)->select(); + if($bhw_date){ + return $bhw_date[0]['median']; + }else{ + return false; + } + }else if($type == 'fat_r'){//'fat_w'同一标准 + if( + ($gender_val==1 && $age<30 && $data<10) || + ($gender_val==1 && $age>=30 && $data<11) || + ($gender_val==2 && $age<30 && $data<20) || + ($gender_val==2 && $age>=30 && $data<21)){ + $return_data[] = '偏低'; + $return_data[] = $this->merged_data[$type]['list']['偏低']; + }else if( + ($gender_val==1 && $age<30 && $data>=10 && $data<21) || + ($gender_val==1 && $age>=30 && $data>=11 && $data<22) || + ($gender_val==2 && $age<30 && $data>=20 && $data<31) || + ($gender_val==2 && $age>=30 && $data>=21 && $data<32)){ + $return_data[] = '标准'; + $return_data[] = $this->merged_data[$type]['list']['标准']; + }else if( + ($gender_val==1 && $age<30 && $data>=21 && $data<26) || + ($gender_val==1 && $age>=30 && $data>=22 && $data<27) || + ($gender_val==2 && $age<30 && $data>=31 && $data<38) || + ($gender_val==2 && $age>=30 && $data>=32 && $data<39)){ + $return_data[] = '偏高'; + $return_data[] = $this->merged_data[$type]['list']['偏高']; + }else if( + ($gender_val==1 && $age<30 && $data>=26) || + ($gender_val==1 && $age>=30 && $data>=27) || + ($gender_val==2 && $age<30 && $data<38) || + ($gender_val==2 && $age>=30 && $data<39)){ + $return_data[] = '高'; + $return_data[] = $this->merged_data[$type]['list']['高']; + }else{ + $return_data[] = '异常'; + $return_data[] = '#000000'; + } + return $return_data; + }else if($type == 'muscle'){//'muscleval'同一标准 + if( + ($gender_val==1 && $type<40) || + ($gender_val==2 && $type<30)){ + $return_data[] = '不足'; + $return_data[] = $this->merged_data[$type]['list']['不足']; + }else if( + ($gender_val==1 && $type>=40 && $type<60) || + ($gender_val==2 && $type>=30 && $type<50)){ + $return_data[] = '标准'; + $return_data[] = $this->merged_data[$type]['list']['标准']; + }else if( + ($gender_val==1 && $type>=60) || + ($gender_val==2 && $type>=50)){ + $return_data[] = '优'; + $return_data[] = $this->merged_data[$type]['list']['优']; + }else{ + $return_data[] = '异常'; + $return_data[] = '#000000'; + } + return $return_data; + }else if($type == 'protein'){//'proteinval'同一标准 + if( + ($gender_val==1 && $data<16) || + ($gender_val==2 && $data<14)){ + $return_data[] = '不足'; + $return_data[] = $this->merged_data[$type]['list']['不足']; + }else if( + ($gender_val==1 && $data>=16 && $data<18) || + ($gender_val==2 && $data>=14 && $data<16)){ + $return_data[] = '标准'; + $return_data[] = $this->merged_data[$type]['list']['标准']; + }else if( + ($gender_val==1 && $data>18) || + ($gender_val==2 && $data>16)){ + $return_data[] = '优'; + $return_data[] = $this->merged_data[$type]['list']['优']; + }else{ + $return_data['蛋白量'][1] = '异常'; + $return_data['蛋白率'][1] = '异常'; + $return_data[] = '异常'; + $return_data[] = '#000000'; + } + return $return_data; + }else if($type == 'water'){ + if( + ($gender_val==1 && $data<55) || + ($gender_val==2 && $data<45)){ + $return_data[] = '不足'; + $return_data[] = $this->merged_data[$type]['list']['不足']; + }else if( + ($gender_val==1 && $data>=55 && $data<65) || + ($gender_val==2 && $data>=45 && $data<60)){ + $return_data[] = '标准'; + $return_data[] = $this->merged_data[$type]['list']['标准']; + }else if( + ($gender_val==1 && $data>65) || + ($gender_val==2 && $data>60)){ + $return_data[] = '优'; + $return_data[] = $this->merged_data[$type]['list']['优']; + }else{ + $return_data[] = '异常'; + $return_data[] = '#000000'; + } + return $return_data; + }else if($type == 'sfr'){ + if( + ($gender_val==1 && $data<7) || + ($gender_val==2 && $data<11)){ + $return_data[] = '不足'; + $return_data[] = $this->merged_data[$type]['list']['不足']; + }else if( + ($gender_val==1 && $data>=7 && $data<15) || + ($gender_val==2 && $data>=11 && $data<17)){ + $return_data[] = '标准'; + $return_data[] = $this->merged_data[$type]['list']['标准']; + }else if( + ($gender_val==1 && $data>=15) || + ($gender_val==2 && $data>=17)){ + $return_data[] = '偏高'; + $return_data[] = $this->merged_data[$type]['list']['偏高']; + }else{ + $return_data[] = '异常'; + $return_data[] = '#000000'; + } + return $return_data; + }else if($type == 'visceral'){ + if($data<9){ + $return_data[] = '标准'; + $return_data[] = $this->merged_data[$type]['list']['标准']; + }else if($data>=9 && $data<14){ + $return_data[] = '警惕'; + $return_data[] = $this->merged_data[$type]['list']['警惕']; + }else if($data>=14){ + $return_data[] = '危险'; + $return_data[] = $this->merged_data[$type]['list']['危险']; + }else{ + $return_data[] = '异常'; + $return_data[] = '#000000'; + } + return $return_data; + }else if($type == 'bone'){ + if( + ($gender_val==1 && $user['weight']<60 && $data<2.4) || + ($gender_val==1 && $user['weight']>=60 && $user['weight']<75 && $data<2.8) || + ($gender_val==1 && $user['weight']>=75 && $data<3.1) || + ($gender_val==2 && $user['weight']<45 && $data<1.7) || + ($gender_val==2 && $user['weight']>=45 && $user['weight']<60 && $data<2.1) || + ($gender_val==2 && $user['weight']>=60 && $data<2.4)){ + $return_data[] = '不足'; + $return_data[] = $this->merged_data[$type]['list']['不足']; + }else if( + ($gender_val==1 && $user['weight']<60 && $data>=2.4 && $data<=2.6) || + ($gender_val==1 && $user['weight']>=60 && $user['weight']<75 && $data>=2.8 && $data<=3) || + ($gender_val==1 && $user['weight']>=75 && $data>=3.1 && $data<=3.3) || + ($gender_val==2 && $user['weight']<45 && $data>=1.7 && $data<=1.9) || + ($gender_val==2 && $user['weight']>=45 && $user['weight']<60 && $data>=2.1 && $data<=2.3) || + ($gender_val==2 && $user['weight']>=60 && $data>=2.4 && $data<=2.6)){ + $return_data[] = '标准'; + $return_data[] = $this->merged_data[$type]['list']['标准']; + }else if( + ($gender_val==1 && $user['weight']<60 && $data>2.6) || + ($gender_val==1 && $user['weight']>=60 && $user['weight']<75 && $data>3) || + ($gender_val==1 && $user['weight']>=75 && $data<3.3) || + ($gender_val==2 && $user['weight']<45 && $data>1.9) || + ($gender_val==2 && $user['weight']>=45 && $user['weight']<60 && $data>2.3) || + ($gender_val==2 && $user['weight']>=60 && $data>2.6)){ + $return_data[] = '优'; + $return_data[] = $this->merged_data[$type]['list']['优']; + }else{ + $return_data[] = '异常'; + $return_data[] = '#000000'; + } + return $return_data; + }else if($type == 'score'){ + $linshi_data = $this->merged_data['score']; + foreach ($linshi_data['standard_list'] as $k => $v) { + if($data >= $v['min_val'] && $data < $v['max_val']){ + // 如果落在区间内 + $return_data[] = $v['text']; + $return_data[] = $v['color']; + } + } + if(count($return_data) <= 1){ + $return_data[] = '异常'; + $return_data[] = '#000000'; + } + return $return_data; + }else{ + return false; + } + } + //详细身体数据 + public function judgment_standard_color_detailed($data,$type,$user){ + $linshi_data = []; + $month_num = $this->calculateAgeInMonthsWithPrecision($user['birthday']); + $age = $this->calculate_age($user['birthday']); + $gender_val = $user['gender']; + $return_data = [$data]; + if($type == 'weight'){ + if($data){ + $linshi_data = $this->merged_data['weight']; + $linshi_data['value'] = floatval($data); + $linshi_data['standard'] = ''; + $linshi_data['standard_color'] = ''; + $linshi_data['offset'] = 0; + + $bhw_date = Db::table($this->body_db_name['weight'])->where("Month >= $month_num and Sex = '$gender_val'")->order('Month')->limit(1)->cache(86400)->select(); + if($bhw_date){ + $linshi_data['standard_list'][0]['max_val'] = $bhw_date[0]['f2sd']; + $linshi_data['standard_list'][1]['min_val'] = $bhw_date[0]['f2sd']; + $linshi_data['standard_list'][1]['max_val'] = $bhw_date[0]['f1sd']; + $linshi_data['standard_list'][2]['min_val'] = $bhw_date[0]['f1sd']; + $linshi_data['standard_list'][2]['max_val'] = $bhw_date[0]['z1sd']; + $linshi_data['standard_list'][3]['min_val'] = $bhw_date[0]['z1sd']; + $linshi_data['standard_list'][3]['max_val'] = $bhw_date[0]['z2sd']; + $linshi_data['standard_list'][4]['min_val'] = $bhw_date[0]['z2sd']; + $linshi_data['standard_list'][4]['max_val'] = $bhw_date[0]['z3sd']; + + foreach ($linshi_data['standard_list'] as $k => $v) { + if($data >= $v['min_val'] && $data < $v['max_val']){ + // 如果落在区间内 + $linshi_data['standard'] = $v['text']; + $linshi_data['standard_color'] = $v['color']; + } + } + if($linshi_data['standard'] == ''){ + $linshi_data['standard'] = '异常'; + $linshi_data['standard_color'] = '#000000'; + } + + $linshi_data['offset'] = $this->process_offset_action($linshi_data['value'],$linshi_data['standard_list']); + + }else{ + $linshi_data['standard_list'] = []; + // $return_data[] = '异常'; + // $return_data[] = '#000000'; + // return $linshi_data; + } + return $linshi_data; + }else{ + return false; + } + } + else if($type == 'height'){ + if($data){ + $linshi_data = $this->merged_data['height']; + $linshi_data['value'] = floatval($data); + $linshi_data['standard'] = ''; + $linshi_data['standard_color'] = ''; + $linshi_data['offset'] = 0; + $bhw_date = Db::table($this->body_db_name['height'])->where("Month >= $month_num and Sex = '$gender_val'")->order('Month')->limit(1)->cache(86400)->select(); + if($bhw_date){ + $linshi_data['standard_list'][0]['max_val'] = $bhw_date[0]['f2sd']; + $linshi_data['standard_list'][1]['min_val'] = $bhw_date[0]['f2sd']; + $linshi_data['standard_list'][1]['max_val'] = $bhw_date[0]['f1sd']; + $linshi_data['standard_list'][2]['min_val'] = $bhw_date[0]['f1sd']; + $linshi_data['standard_list'][2]['max_val'] = $bhw_date[0]['z1sd']; + $linshi_data['standard_list'][3]['min_val'] = $bhw_date[0]['z1sd']; + $linshi_data['standard_list'][3]['max_val'] = $bhw_date[0]['z2sd']; + $linshi_data['standard_list'][4]['min_val'] = $bhw_date[0]['z2sd']; + $linshi_data['standard_list'][4]['max_val'] = $bhw_date[0]['z3sd']; + foreach ($linshi_data['standard_list'] as $k => $v) { + if($data >= $v['min_val'] && $data < $v['max_val']){ + // 如果落在区间内 + $linshi_data['standard'] = $v['text']; + $linshi_data['standard_color'] = $v['color']; + } + } + if($linshi_data['standard'] == ''){ + $linshi_data['standard'] = '异常'; + $linshi_data['standard_color'] = '#000000'; + } + $linshi_data['offset'] = $this->process_offset_action($linshi_data['value'],$linshi_data['standard_list']); + + }else{ + $linshi_data['standard_list'] = []; + // $return_data[] = '异常'; + // $return_data[] = '#000000'; + // return $return_data; + } + return $linshi_data; + }else{ + return false; + } + } + else if($type == 'heart_rate'){ + if($data){ + $linshi_data = $this->merged_data['heart_rate']; + $linshi_data['value'] = floatval($data); + $linshi_data['standard'] = ''; + $linshi_data['standard_color'] = ''; + $linshi_data['offset'] = 0; + foreach ($this->heart_rate as $key => $value) { + if($month_num > $value['age']['min'] && $month_num <= $value['age']['max']){ + $linshi_data['standard_list'][0]['max_val'] = $value[$gender_val]['min']; + $linshi_data['standard_list'][1]['min_val'] = $value[$gender_val]['min']; + $linshi_data['standard_list'][1]['max_val'] = $value[$gender_val]['max']; + $linshi_data['standard_list'][2]['min_val'] = $value[$gender_val]['max']; + $linshi_data['standard_list'][2]['max_val'] = 300; + break; + } + } + foreach ($linshi_data['standard_list'] as $k => $v) { + if($data >= $v['min_val'] && $data < $v['max_val']){ + // 如果落在区间内 + $linshi_data['standard'] = $v['text']; + $linshi_data['standard_color'] = $v['color']; + } + } + if($linshi_data['standard'] == ''){ + $linshi_data['standard'] = '异常'; + $linshi_data['standard_color'] = '#000000'; + } + $linshi_data['offset'] = $this->process_offset_action($linshi_data['value'],$linshi_data['standard_list']); + return $linshi_data; + }else{ + return false; + } + } + else if($type == 'head_circumference'){ + if($data){ + $linshi_data = $this->merged_data['head_circumference']; + $bhw_date =json_decode($data,true); + $linshi_data['standard_list'] = $bhw_date['list2']; + $linshi_data['value'] = $bhw_date['value']?$bhw_date['value']:0; + $linshi_data['standard'] = $bhw_date['level']?$bhw_date['level']:''; + $linshi_data['standard_color'] = $bhw_date['color']?$bhw_date['color']:'#000000'; + $linshi_data['offset'] = $this->process_offset_action($linshi_data['value'],$linshi_data['standard_list']); + return $linshi_data; + }else{ + return false; + } + + } + else if($type == 'kcal'){ + if($data){ + $linshi_data = $this->merged_data['kcal']; + $linshi_data['value'] = floatval($data); + $linshi_data['standard'] = ''; + $linshi_data['standard_color'] = ''; + $linshi_data['offset'] = 0; + // BMR标准值(男) BMR标准值(女) + // 60.9*体重(kg)-54 61.0*体重(kg)-51 + // 22.7*体重(kg)+495 22.5*体重(kg)+499 + // 17.5*体重(kg)+651 12.2*体重(kg)+746 + // 15.3*体重(kg)+679 14.7*体重(kg)+496 + // 11.6*体重(kg)+879 8.7*体重(kg)+820 + $vv_val = 0; + if($age < 3){ + if($gender_val == '1'){ + $vv_val = bcsub(bcmul(60.9,$user['weight'],2),54,2); + }else{ + $vv_val = bcsub(bcmul(61.0,$user['weight'],2),51,2); + } + }else if($age >= 3 && $age < 10){ + if($gender_val == '1'){ + $vv_val = bcadd(bcmul(22.7,$user['weight'],2),495,2); + }else{ + $vv_val = bcadd(bcmul(22.5,$user['weight'],2),499,2); + } + }else if($age >= 10 && $age < 18){ + if($gender_val == '1'){ + $vv_val = bcadd(bcmul(17.5,$user['weight'],2),651,2); + }else{ + $vv_val = bcadd(bcmul(12.2,$user['weight'],2),746,2); + } + }else if($age >= 18 && $age < 30){ + if($gender_val == '1'){ + $vv_val = bcadd(bcmul(15.3,$user['weight'],2),679,2); + }else{ + $vv_val = bcadd(bcmul(14.7,$user['weight'],2),496,2); + } + }else{ + if($gender_val == '1'){ + $vv_val = bcadd(bcmul(11.6,$user['weight'],2),879,2); + }else{ + $vv_val = bcadd(bcmul(8.7,$user['weight'],2),820,2); + } + } + // dump($linshi_data['standard_list']); + $linshi_data['standard_list'][0]['max_val'] = $vv_val; + $linshi_data['standard_list'][1]['min_val'] = $vv_val; + // dump($linshi_data['standard_list']); + // dump($data); + foreach ($linshi_data['standard_list'] as $k => $v) { + if($data >= $v['min_val'] && $data < $v['max_val']){ + // 如果落在区间内 + $linshi_data['standard'] = $v['text']; + $linshi_data['standard_color'] = $v['color']; + } + } + if($linshi_data['standard'] == ''){ + $linshi_data['standard'] = '异常'; + $linshi_data['standard_color'] = '#000000'; + } + $linshi_data['offset'] = $this->process_offset_action($linshi_data['value'],$linshi_data['standard_list']); + return $linshi_data; + }else{ + return false; + } + } + else if($type == 'bmi'){ + if($data){ + $linshi_data = $this->merged_data['bmi']; + $linshi_data['value'] = floatval($data); + $linshi_data['standard'] = ''; + $linshi_data['standard_color'] = ''; + $linshi_data['offset'] = 0; + + $bhw_date = Db::table($this->body_db_name['bmi'])->where("Month >= $month_num and Sex = '$gender_val'")->order('Month')->limit(1)->cache(86400)->select(); + + // dump($month_num); + // dump($bhw_date); + if($bhw_date){ + $linshi_data['standard_list'][0]['max_val'] = $bhw_date[0]['f1sd']; + $linshi_data['standard_list'][1]['min_val'] = $bhw_date[0]['f1sd']; + $linshi_data['standard_list'][1]['max_val'] = $bhw_date[0]['z1sd']; + $linshi_data['standard_list'][2]['min_val'] = $bhw_date[0]['z1sd']; + $linshi_data['standard_list'][2]['max_val'] = $bhw_date[0]['z2sd']; + $linshi_data['standard_list'][3]['min_val'] = $bhw_date[0]['z2sd']; + + foreach ($linshi_data['standard_list'] as $k => $v) { + if($data >= $v['min_val'] && $data < $v['max_val']){ + // 如果落在区间内 + $linshi_data['standard'] = $v['text']; + $linshi_data['standard_color'] = $v['color']; + } + } + if($linshi_data['standard'] == ''){ + $linshi_data['standard'] = '异常'; + $linshi_data['standard_color'] = '#000000'; + } + + $linshi_data['offset'] = $this->process_offset_action($linshi_data['value'],$linshi_data['standard_list']); + + }else{ + $linshi_data['standard_list'] = []; + // $return_data[] = '异常'; + // $return_data[] = '#000000'; + // return $linshi_data; + } + return $linshi_data; + }else{ + return false; + } + } + else if($type == 'fat_r' || $type == 'fat_w'){ + if($data){ + $linshi_data = $this->merged_data[$type]; + $linshi_data['value'] = floatval($data); + $linshi_data['standard'] = ''; + $linshi_data['standard_color'] = ''; + $linshi_data['offset'] = 0; + + + if($age < 30){ + $linshi_data['standard_list'] = $this->merged_data[$type]['standard_list'][$gender_val]['29']; + }else{ + $linshi_data['standard_list'] = $this->merged_data[$type]['standard_list'][$gender_val]['30']; + } + foreach ($linshi_data['standard_list'] as $k => $v) { + if($data >= $v['min_val'] && $data < $v['max_val']){ + // 如果落在区间内 + $linshi_data['standard'] = $v['text']; + $linshi_data['standard_color'] = $v['color']; + } + } + if($linshi_data['standard'] == ''){ + $linshi_data['standard'] = '异常'; + $linshi_data['standard_color'] = '#000000'; + } + $linshi_data['offset'] = $this->process_offset_action($linshi_data['value'],$linshi_data['standard_list']); + return $linshi_data; + }else{ + return false; + } + } + else if($type == 'muscle' || $type == 'muscleval' || $type == 'protein' || $type == 'proteinval' || $type == 'water' || $type == 'sfr' || $type == 'visceral'){ + if($data){ + $linshi_data = $this->merged_data[$type]; + $linshi_data['value'] = floatval($data); + $linshi_data['standard'] = ''; + $linshi_data['standard_color'] = ''; + $linshi_data['offset'] = 0; + + $linshi_data['standard_list'] = $this->merged_data[$type]['standard_list'][$gender_val]; + foreach ($linshi_data['standard_list'] as $k => $v) { + if($data >= $v['min_val'] && $data < $v['max_val']){ + // 如果落在区间内 + $linshi_data['standard'] = $v['text']; + $linshi_data['standard_color'] = $v['color']; + } + } + if($linshi_data['standard'] == ''){ + $linshi_data['standard'] = '异常'; + $linshi_data['standard_color'] = '#000000'; + } + $linshi_data['offset'] = $this->process_offset_action($linshi_data['value'],$linshi_data['standard_list']); + return $linshi_data; + }else{ + return false; + } + } + else if($type == 'ideal_weight'){ + if($data){ + $linshi_data = $this->merged_data[$type]; + $linshi_data['value'] = floatval($data); + $linshi_data['standard'] = ''; + $linshi_data['standard_color'] = ''; + $linshi_data['offset'] = 0; + + $bhw_date = Db::table($this->body_db_name['weight'])->where("Month >= $month_num and Sex = '$gender_val'")->order('Month')->limit(1)->cache(86400)->select(); + if($bhw_date){ + $linshi_data['value'] = $bhw_date[0]['median']; + return $linshi_data; + }else{ + return false; + } + }else{ + return false; + } + } + else if($type == 'ideal_height'){ + if($data){ + $linshi_data = $this->merged_data[$type]; + $linshi_data['value'] = floatval($data); + $linshi_data['standard'] = ''; + $linshi_data['standard_color'] = ''; + $linshi_data['offset'] = 0; + + $bhw_date = Db::table($this->body_db_name['height'])->where("Month >= $month_num and Sex = '$gender_val'")->order('Month')->limit(1)->cache(86400)->select(); + if($bhw_date){ + $linshi_data['value'] = $bhw_date[0]['median']; + return $linshi_data; + }else{ + return false; + } + }else{ + return false; + } + } + else if($type == 'ideal_bmi'){ + if($data){ + $linshi_data = $this->merged_data[$type]; + $linshi_data['value'] = floatval($data); + $linshi_data['standard'] = ''; + $linshi_data['standard_color'] = ''; + $linshi_data['offset'] = 0; + + $bhw_date = Db::table($this->body_db_name['bmi'])->where("Month >= $month_num and Sex = '$gender_val'")->order('Month')->limit(1)->cache(86400)->select(); + if($bhw_date){ + $linshi_data['value'] = $bhw_date[0]['median']; + return $linshi_data; + }else{ + return false; + } + }else{ + return false; + } + } + else if($type == 'bone'){ + if($data){ + $linshi_data = $this->merged_data[$type]; + $linshi_data['value'] = floatval($data); + $linshi_data['standard'] = ''; + $linshi_data['standard_color'] = ''; + $linshi_data['offset'] = 0; + + + if($gender_val == '1'){ + if($user['weight'] < 60){ + $linshi_data['standard_list'] = $this->merged_data[$type]['standard_list'][$gender_val]['60']; + }else if($user['weight'] >= 60 && $user['weight'] < 75){ + $linshi_data['standard_list'] = $this->merged_data[$type]['standard_list'][$gender_val]['60_75']; + }else{ + $linshi_data['standard_list'] = $this->merged_data[$type]['standard_list'][$gender_val]['75']; + } + }else{ + if($user['weight'] < 45){ + $linshi_data['standard_list'] = $this->merged_data[$type]['standard_list'][$gender_val]['45']; + }else if($user['weight'] >= 45 && $user['weight'] < 60){ + $linshi_data['standard_list'] = $this->merged_data[$type]['standard_list'][$gender_val]['45_60']; + }else{ + $linshi_data['standard_list'] = $this->merged_data[$type]['standard_list'][$gender_val]['60']; + } + } + + foreach ($linshi_data['standard_list'] as $k => $v) { + if($data >= $v['min_val'] && $data < $v['max_val']){ + // 如果落在区间内 + $linshi_data['standard'] = $v['text']; + $linshi_data['standard_color'] = $v['color']; + } + } + if($linshi_data['standard'] == ''){ + $linshi_data['standard'] = '异常'; + $linshi_data['standard_color'] = '#000000'; + } + $linshi_data['offset'] = $this->process_offset_action($linshi_data['value'],$linshi_data['standard_list']); + return $linshi_data; + }else{ + return false; + } + } + else if($type == 'body_type' || $type == 'body_level' || $type == 'body_age'){ + if($data){ + $linshi_data = $this->merged_data[$type]; + $linshi_data['value'] = $data; + $linshi_data['standard'] = ''; + $linshi_data['standard_color'] = ''; + $linshi_data['offset'] = 0; + + return $linshi_data; + }else{ + return false; + } + } + else if($type == 'score'){ + if($data){ + $linshi_data = $this->merged_data[$type]; + $linshi_data['value'] = floatval($data); + $linshi_data['standard'] = ''; + $linshi_data['standard_color'] = ''; + $linshi_data['offset'] = 0; + + foreach ($linshi_data['standard_list'] as $k => $v) { + if($data >= $v['min_val'] && $data < $v['max_val']){ + // 如果落在区间内 + $linshi_data['standard'] = $v['text']; + $linshi_data['standard_color'] = $v['color']; + } + } + if($linshi_data['standard'] == ''){ + $linshi_data['standard'] = '异常'; + $linshi_data['standard_color'] = '#000000'; + } + $linshi_data['offset'] = $this->process_offset_action($linshi_data['value'],$linshi_data['standard_list']); + return $linshi_data; + }else{ + return false; + } + } + else{ + return false; + } + } diff --git a/application/route.php b/application/route.php index 157c2d9..d797103 100644 --- a/application/route.php +++ b/application/route.php @@ -879,6 +879,8 @@ Route::any('/reedaw/get_user_list', 'app/NewReedaw/app.index/get_user_list'); Route::any('/reedaw/body_report_brief', 'app/NewReedaw/app.Userbody/body_report_brief'); // 角色报告(详细) Route::any('/reedaw/body_report_detailed', 'app/NewReedaw/app.Userbody/body_report_detailed'); +// 角色报告(深度) +Route::any('/reedaw/body_report_depth', 'app/NewReedaw/app.Userbody/body_report_depth'); // 手动记录 Route::any('/reedaw/manual_record', 'app/NewReedaw/app.Userbody/manual_record'); // 设备记录 @@ -886,6 +888,8 @@ Route::any('/reedaw/device_record', 'app/NewReedaw/app.Userbody/device_record'); // 修改目标体重 Route::any('/reedaw/set_target_weight', 'app/NewReedaw/app.Userbody/set_target_weight'); + + ################################################################首页(饮食数据) // 根据用户获取他的饮食信息 // Route::any('/reedaw/user_diet_content', 'app/NewReedaw/app.Kitchenscale/user_diet_content');