新版0803

This commit is contained in:
tsf 2024-08-03 17:56:26 +08:00
parent fee65c0630
commit 1ead695b7c
9 changed files with 311 additions and 119 deletions

View File

@ -189,11 +189,11 @@ class Base extends Controller{
} }
// 判断一个参数是否为数字且大于等于0 // 判断一个参数是否为数字且大于等于0
function isPositiveNumber($value) { public function isPositiveNumber($value) {
return is_numeric($value) && $value >= 0; return is_numeric($value) && $value >= 0;
} }
// 判断是否为整型,或者字符串类型的整型数字 // 判断是否为整型,或者字符串类型的整型数字
function isValidInteger($var) { public function isValidInteger($var) {
// 直接检查是否为整型 // 直接检查是否为整型
if (is_int($var)) { if (is_int($var)) {
return true; return true;
@ -219,7 +219,7 @@ class Base extends Controller{
['min_val'=>'0','max_val'=>'9','text'=>'无效','color'=>'#FF5656'], ['min_val'=>'0','max_val'=>'9','text'=>'无效','color'=>'#FF5656'],
]; ];
$grade = Db::table('app_user_data')->where(['id'=>$id])->field('id,grade,gender')->find(); $grade = Db::table('app_user_data')->where(['id'=>$id])->field('id,grade,gender')->find();
if(!$grade){ if(!$grade || $grade['grade'] == 'nothing'){
return []; return [];
} }
$sql_min = "WITH RankedGrades AS ( $sql_min = "WITH RankedGrades AS (
@ -261,7 +261,7 @@ class Base extends Controller{
// 时间日期转换 // 时间日期转换
function addCurrentTimeToDateString($dateStr) { public function addCurrentTimeToDateString($dateStr) {
// 将日期字符串转换为DateTime对象 // 将日期字符串转换为DateTime对象
$dateTime = new \DateTime($dateStr); $dateTime = new \DateTime($dateStr);
@ -281,7 +281,7 @@ class Base extends Controller{
// 时间加一或者减一 // 时间加一或者减一
function adjustDateTime($datetimeStr, $type) { public function adjustDateTime($datetimeStr, $type) {
// 将时间字符串转换为时间戳 // 将时间字符串转换为时间戳
$timestamp = strtotime($datetimeStr); $timestamp = strtotime($datetimeStr);
@ -309,7 +309,7 @@ class Base extends Controller{
} }
// 对于任意浮点字符串的指定位四舍五入 // 对于任意浮点字符串的指定位四舍五入
function bcRoundCustom($number, $scale) { public function bcRoundCustom($number, $scale) {
// 确保scale是整数 // 确保scale是整数
$scale = intval($scale); $scale = intval($scale);
@ -339,6 +339,55 @@ class Base extends Controller{
} }
public function postRequest($url, $data = [], $headers = []) {
$ch = curl_init(); // 初始化cURL会话
if (!$ch) {
return [
'error' => true,
'message' => 'cURL init failed'
];
}
// 设置cURL选项
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 禁用证书验证
curl_setopt($ch, CURLOPT_URL, $url); // 要请求的URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 将curl_exec()获取的信息以文件流的形式返回,而不是直接输出
curl_setopt($ch, CURLOPT_POST, true); // 发送一个常规的POST请求
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); // POST数据
// 设置请求头
if (!empty($headers)) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
}else{
// 如果需要发送JSON数据可以使用以下设置
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
}
// 执行cURL会话
$response = curl_exec($ch);
if ($response === false) {
$error = curl_error($ch);
curl_close($ch);
return [
'error' => true,
'message' => "cURL Error: $error"
];
}
$decodedResponse = json_decode($response, true);
$jsonError = json_last_error();
curl_close($ch);
if ($jsonError !== JSON_ERROR_NONE) {
return [
'error' => true,
'message' => 'Invalid JSON Response',
'raw_response' => $response
];
}
return $decodedResponse;
}
public function msg($data,$str='',$result = []){ public function msg($data,$str='',$result = []){
if(is_array($data)){ if(is_array($data)){

View File

@ -8,6 +8,26 @@ class Calculatebody extends Base{
// 默认阻抗值 // 默认阻抗值
protected $default_adc = 550; protected $default_adc = 550;
// 体重 = weight weight
// 身高 = height height
// BMI = bmi bmi
// age = age age
// 身体得分 = cmi cmi
// 脂肪量 = fat_w bfrval
// 脂肪率 = fat_r bfr
// 肌肉量 = muscleval romval
// 肌肉率 = muscle rom
// 水分 = water vwc
// 蛋白量 = proteinval ppval
// 蛋白率 = protein pp
// 骨重 = bone bm
// 基础代谢 = kcal bmr
// 内脏指数 = visceral uvi
// 皮下脂肪 = sfr sfr
// 肥胖等级 = standard_level fatlevel fatlevelName
// 身体年龄 = bodyage bodyage
// 去脂体重 = lbm lbm
// 身体类型 = body body
public function calculate_body_data_result($data = ['weight'=>52.5,'height'=>165,'age'=>30,'gender'=>1]){ public function calculate_body_data_result($data = ['weight'=>52.5,'height'=>165,'age'=>30,'gender'=>1]){
$data['gender'] = $data['gender'] == 0 ? 1 : $data['gender']; $data['gender'] = $data['gender'] == 0 ? 1 : $data['gender'];
@ -17,38 +37,75 @@ class Calculatebody extends Base{
// 减 bcsub(,,20) // 减 bcsub(,,20)
// 乘 bcmul(,,20) // 乘 bcmul(,,20)
// 除 bcdiv(,,20) // 除 bcdiv(,,20)
$result = $this->calculate_body_data($data['height'],$data['weight'],$data['age'],$data['gender'],$data['adc']);
// dump(25/(1.393*1.393)); // 青测自己写的计算start
// $result = $this->calculate_body_data($data['height'],$data['weight'],$data['age'],$data['gender'],$data['adc']);
// // $result['fat_w'] = $result['fat_r'] / 100 * $data['weight'];
// $result['fat_w'] = bcmul(bcdiv($result['fat_r'],'100',20),$data['weight'],2);
// // $result['proteinval'] = $result['protein'] / 100 * $data['weight'];
// $result['proteinval'] = bcmul(bcdiv($result['protein'],'100',20),$data['weight'],2);
// //肌肉量=体重-脂肪量-骨量
// // $result['muscleval'] = $result['weight'] - $result['fat_w'] - $result['bone'];
// $result['muscleval'] = bcsub(bcsub($result['weight'],$result['fat_w'],20),$result['bone'],2);
// // $result['muscle'] = $result['muscleval'] / $data['weight'] * 100.0;
// $result['muscle'] = bcmul(bcdiv($result['muscleval'],$data['weight'],20),'100.0',2);
// // 水份=肌肉量-蛋白量
// // $result['water'] = $result['muscleval'] - $result['proteinval'];
// $result['water'] = bcsub($result['muscleval'],$result['proteinval'],2);
// // $result['lbm'] = (1 - $result['fat_r'] / 100) * $data['weight'];
// $result['lbm'] = bcmul(bcsub('1',bcdiv($result['fat_r'],'100',20),20),$data['weight'],2);
// 青测自己写的计算end
// 使用接口调用之前的进行计算start
$url = 'https://klcz.pcxbc.com/open-api/calc/healthcalc/bodyfat3';
$temporary_parameter = [
'weight'=>$data['weight'],
'height'=>$data['height'],
'age'=>$data['age'],
'adc'=>$data['adc'],
'gender'=>$data['gender'],
];
// dump($temporary_parameter);
$request_result = $this->postRequest($url,$temporary_parameter);
// dump($request_result);
$result['weight'] = $request_result['data']['weight'];
$result['height'] = $request_result['data']['height'];
$result['bmi'] = $request_result['data']['bmi'];
$result['age'] = $request_result['data']['age'];
$result['cmi'] = $request_result['data']['cmi'];
$result['fat_w'] = $request_result['data']['bfrval'];
$result['fat_r'] = $request_result['data']['bfr'];
$result['muscleval'] = $request_result['data']['romval'];
$result['muscle'] = $request_result['data']['rom'];
$result['water'] = $request_result['data']['vwc'];
$result['proteinval'] = $request_result['data']['ppval'];
$result['protein'] = $request_result['data']['pp'];
$result['bone'] = $request_result['data']['bm'];
$result['kcal'] = $request_result['data']['bmr'];
$result['visceral'] = $request_result['data']['uvi'];
$result['sfr'] = $request_result['data']['sfr'];
$result['standard_level'] = $request_result['data']['fatlevelname'];
$result['bodyage'] = $request_result['data']['bodyage'];
$result['lbm'] = $request_result['data']['lbm'];
$result['body'] = $request_result['data']['body'];
// dump($result); // dump($result);
// dump('=========================================');
// dump(1);
// die; // die;
// 使用接口调用之前的进行计算end
// $result['fat_w'] = $result['fat_r'] / 100 * $data['weight'];
$result['fat_w'] = bcmul(bcdiv($result['fat_r'],'100',20),$data['weight'],2);
// $result['proteinval'] = $result['protein'] / 100 * $data['weight'];
$result['proteinval'] = bcmul(bcdiv($result['protein'],'100',20),$data['weight'],2);
//肌肉量=体重-脂肪量-骨量
// $result['muscleval'] = $result['weight'] - $result['fat_w'] - $result['bone'];
$result['muscleval'] = bcsub(bcsub($result['weight'],$result['fat_w'],20),$result['bone'],2);
// $result['muscle'] = $result['muscleval'] / $data['weight'] * 100.0;
$result['muscle'] = bcmul(bcdiv($result['muscleval'],$data['weight'],20),'100.0',2);
// 水份=肌肉量-蛋白量
// $result['water'] = $result['muscleval'] - $result['proteinval'];
$result['water'] = bcsub($result['muscleval'],$result['proteinval'],2);
// $result['lbm'] = (1 - $result['fat_r'] / 100) * $data['weight'];
$result['lbm'] = bcmul(bcsub('1',bcdiv($result['fat_r'],'100',20),20),$data['weight'],2);
$return_data['体重'] = $data['weight']; $return_data['体重'] = $data['weight'];
$return_data['身高'] = $data['height']; $return_data['身高'] = $data['height'];
$return_data['BMI'] = $result['bmi']; $return_data['BMI'] = $result['bmi'];
$return_data['age'] = $result['age']; $return_data['age'] = $result['age'];
if($result['bmi']<21.6){
$return_data['身体得分'] = bcmul(bcdiv($result['bmi'],'21.6',20),'100',0); // 身体得分修改start
}else{ // if($result['bmi']<21.6){
$return_data['身体得分'] = bcmul(bcdiv('21.6',$result['bmi'],20),'100',0); // $return_data['身体得分'] = bcmul(bcdiv($result['bmi'],'21.6',20),'100',0);
} // }else{
// $return_data['身体得分'] = bcmul(bcdiv('21.6',$result['bmi'],20),'100',0);
// }
$return_data['身体得分'] = $result['cmi'];
// 身体得分修改end
$return_data['脂肪量'][0] = $result['fat_w']; $return_data['脂肪量'][0] = $result['fat_w'];
@ -114,8 +171,6 @@ class Calculatebody extends Base{
} }
$return_data['基础代谢'][0] = $result['kcal']; $return_data['基础代谢'][0] = $result['kcal'];
if(($data['gender']==1 && $data['age']>0 && $data['age']<3 && (60.9*$data['weight']-54)>$result['kcal']) || ($data['gender']==1 && $data['age']>=3 && $data['age']<10 && (22.7*$data['weight']+495)>$result['kcal']) || ($data['gender']==1 && $data['age']>=10 && $data['age']<18 && (17.5*$data['weight']+651)>$result['kcal']) || ($data['gender']==1 && $data['age']>=18 && $data['age']<30 && (15.3*$data['weight']+679)>$result['kcal']) || ($data['gender']==1 && $data['age']>=30 && (11.6*$data['weight']+879)>$result['kcal']) || ($data['gender']==2 && $data['age']>0 && $data['age']<3 && (61*$data['weight']-51)>$result['kcal']) || ($data['gender']==2 && $data['age']>=3 && $data['age']<10 && (22.5*$data['weight']+499)>$result['kcal']) || ($data['gender']==2 && $data['age']>=10 && $data['age']<18 && (12.2*$data['weight']+746)>$result['kcal']) || ($data['gender']==2 && $data['age']>=18 && $data['age']<30 && (14.7*$data['weight']+496)>$result['kcal']) || ($data['gender']==2 && $data['age']>=30 && (8.7*$data['weight']+820)>$result['kcal'])){ if(($data['gender']==1 && $data['age']>0 && $data['age']<3 && (60.9*$data['weight']-54)>$result['kcal']) || ($data['gender']==1 && $data['age']>=3 && $data['age']<10 && (22.7*$data['weight']+495)>$result['kcal']) || ($data['gender']==1 && $data['age']>=10 && $data['age']<18 && (17.5*$data['weight']+651)>$result['kcal']) || ($data['gender']==1 && $data['age']>=18 && $data['age']<30 && (15.3*$data['weight']+679)>$result['kcal']) || ($data['gender']==1 && $data['age']>=30 && (11.6*$data['weight']+879)>$result['kcal']) || ($data['gender']==2 && $data['age']>0 && $data['age']<3 && (61*$data['weight']-51)>$result['kcal']) || ($data['gender']==2 && $data['age']>=3 && $data['age']<10 && (22.5*$data['weight']+499)>$result['kcal']) || ($data['gender']==2 && $data['age']>=10 && $data['age']<18 && (12.2*$data['weight']+746)>$result['kcal']) || ($data['gender']==2 && $data['age']>=18 && $data['age']<30 && (14.7*$data['weight']+496)>$result['kcal']) || ($data['gender']==2 && $data['age']>=30 && (8.7*$data['weight']+820)>$result['kcal'])){
$return_data['基础代谢'][1] = '偏低'; $return_data['基础代谢'][1] = '偏低';
}else if(($data['gender']==1 && $data['age']>0 && $data['age']<3 && (60.9*$data['weight']-54)<=$result['kcal']) || ($data['gender']==1 && $data['age']>=3 && $data['age']<10 && (22.7*$data['weight']+495)<=$result['kcal']) || ($data['gender']==1 && $data['age']>=10 && $data['age']<18 && (17.5*$data['weight']+651)<=$result['kcal']) || ($data['gender']==1 && $data['age']>=18 && $data['age']<30 && (15.3*$data['weight']+679)<=$result['kcal']) || ($data['gender']==1 && $data['age']>=30 && (11.6*$data['weight']+879)<=$result['kcal']) || ($data['gender']==2 && $data['age']>0 && $data['age']<3 && (61*$data['weight']-51)<=$result['kcal']) || ($data['gender']==2 && $data['age']>=3 && $data['age']<10 && (22.5*$data['weight']+499)<=$result['kcal']) || ($data['gender']==2 && $data['age']>=10 && $data['age']<18 && (12.2*$data['weight']+746)<=$result['kcal']) || ($data['gender']==2 && $data['age']>=18 && $data['age']<30 && (14.7*$data['weight']+496)<=$result['kcal']) || ($data['gender']==2 && $data['age']>=30 && (8.7*$data['weight']+820)<=$result['kcal'])){ }else if(($data['gender']==1 && $data['age']>0 && $data['age']<3 && (60.9*$data['weight']-54)<=$result['kcal']) || ($data['gender']==1 && $data['age']>=3 && $data['age']<10 && (22.7*$data['weight']+495)<=$result['kcal']) || ($data['gender']==1 && $data['age']>=10 && $data['age']<18 && (17.5*$data['weight']+651)<=$result['kcal']) || ($data['gender']==1 && $data['age']>=18 && $data['age']<30 && (15.3*$data['weight']+679)<=$result['kcal']) || ($data['gender']==1 && $data['age']>=30 && (11.6*$data['weight']+879)<=$result['kcal']) || ($data['gender']==2 && $data['age']>0 && $data['age']<3 && (61*$data['weight']-51)<=$result['kcal']) || ($data['gender']==2 && $data['age']>=3 && $data['age']<10 && (22.5*$data['weight']+499)<=$result['kcal']) || ($data['gender']==2 && $data['age']>=10 && $data['age']<18 && (12.2*$data['weight']+746)<=$result['kcal']) || ($data['gender']==2 && $data['age']>=18 && $data['age']<30 && (14.7*$data['weight']+496)<=$result['kcal']) || ($data['gender']==2 && $data['age']>=30 && (8.7*$data['weight']+820)<=$result['kcal'])){
@ -144,51 +199,56 @@ class Calculatebody extends Base{
// 脂肪率:偏低 标准 偏高 高 // 脂肪率:偏低 标准 偏高 高
// 肌肉率:不足 标准 优 // 肌肉率:不足 标准 优
// 肥胖等级修改start
// if($data['age']>=16){ // // if($data['age']>=16){
if($result['standard_level']<-0.2){ // if($result['standard_level']<-0.2){
$return_data['肥胖等级'] = '体重不足'; // $return_data['肥胖等级'] = '体重不足';
}else if($result['standard_level']>=-0.2 && $result['standard_level']<-0.1){ // }else if($result['standard_level']>=-0.2 && $result['standard_level']<-0.1){
$return_data['肥胖等级'] = '偏瘦'; // $return_data['肥胖等级'] = '偏瘦';
}else if($result['standard_level']>=-0.1 && $result['standard_level']<=0.1){ // }else if($result['standard_level']>=-0.1 && $result['standard_level']<=0.1){
$return_data['肥胖等级'] = '标准'; // $return_data['肥胖等级'] = '标准';
}else if($result['standard_level']>0.1 && $result['standard_level']<=0.2){ // }else if($result['standard_level']>0.1 && $result['standard_level']<=0.2){
$return_data['肥胖等级'] = '偏重'; // $return_data['肥胖等级'] = '偏重';
}else if($result['standard_level']>0.2){ // }else if($result['standard_level']>0.2){
$return_data['肥胖等级'] = '超重'; // $return_data['肥胖等级'] = '超重';
}else{ // }else{
$return_data['肥胖等级'] = '暂无数据'; // $return_data['肥胖等级'] = '暂无数据';
} // }
// }else{ // // }else{
// $return_data['肥胖等级'] = '儿童'; // // $return_data['肥胖等级'] = '儿童';
// } // // }
$return_data['肥胖等级'] = $result['standard_level'];
// 肥胖等级修改end
// if($data['age']>=16){ // 身体类型修改start
if(($return_data['脂肪率'][1] == '高' || $return_data['脂肪率'][1] == '偏高') && $return_data['肌肉率'][1] == '不足'){ // // if($data['age']>=16){
$return_data['身体类型'] = '隐形肥胖'; // if(($return_data['脂肪率'][1] == '高' || $return_data['脂肪率'][1] == '偏高') && $return_data['肌肉率'][1] == '不足'){
}else if(($return_data['脂肪率'][1] == '高' || $return_data['脂肪率'][1] == '偏高') && $return_data['肌肉率'][1] == '标准'){ // $return_data['身体类型'] = '隐形肥胖';
$return_data['身体类型'] = '偏胖'; // }else if(($return_data['脂肪率'][1] == '高' || $return_data['脂肪率'][1] == '偏高') && $return_data['肌肉率'][1] == '标准'){
}else if(($return_data['脂肪率'][1] == '高' || $return_data['脂肪率'][1] == '偏高') && $return_data['肌肉率'][1] == '优'){ // $return_data['身体类型'] = '偏胖';
$return_data['身体类型'] = '结实型偏胖'; // }else if(($return_data['脂肪率'][1] == '高' || $return_data['脂肪率'][1] == '偏高') && $return_data['肌肉率'][1] == '优'){
}else if($return_data['脂肪率'][1] == '标准' && $return_data['肌肉率'][1] == '不足'){ // $return_data['身体类型'] = '结实型偏胖';
$return_data['身体类型'] = '缺乏肌肉型'; // }else if($return_data['脂肪率'][1] == '标准' && $return_data['肌肉率'][1] == '不足'){
}else if($return_data['脂肪率'][1] == '标准' && $return_data['肌肉率'][1] == '标准'){ // $return_data['身体类型'] = '缺乏肌肉型';
$return_data['身体类型'] = '标准型'; // }else if($return_data['脂肪率'][1] == '标准' && $return_data['肌肉率'][1] == '标准'){
}else if($return_data['脂肪率'][1] == '标准' && $return_data['肌肉率'][1] == '优'){ // $return_data['身体类型'] = '标准型';
$return_data['身体类型'] = '标准肌肉型'; // }else if($return_data['脂肪率'][1] == '标准' && $return_data['肌肉率'][1] == '优'){
}else if($return_data['脂肪率'][1] == '偏低' && $return_data['肌肉率'][1] == '不足'){ // $return_data['身体类型'] = '标准肌肉型';
$return_data['身体类型'] = '偏瘦'; // }else if($return_data['脂肪率'][1] == '偏低' && $return_data['肌肉率'][1] == '不足'){
}else if($return_data['脂肪率'][1] == '偏低' && $return_data['肌肉率'][1] == '标准'){ // $return_data['身体类型'] = '偏瘦';
$return_data['身体类型'] = '偏瘦肌肉型'; // }else if($return_data['脂肪率'][1] == '偏低' && $return_data['肌肉率'][1] == '标准'){
}else if($return_data['脂肪率'][1] == '偏低' && $return_data['肌肉率'][1] == '优'){ // $return_data['身体类型'] = '偏瘦肌肉型';
$return_data['身体类型'] = '健美肌肉型'; // }else if($return_data['脂肪率'][1] == '偏低' && $return_data['肌肉率'][1] == '优'){
}else{ // $return_data['身体类型'] = '健美肌肉型';
$return_data['身体类型'] = '暂无数据'; // }else{
} // $return_data['身体类型'] = '暂无数据';
// }else{ // }
// $return_data['身体类型'] = '儿童'; // // }else{
// } // // $return_data['身体类型'] = '儿童';
// // }
$return_data['身体类型'] = $result['body'];
// 身体类型修改end
$return_data['身体年龄'] = $result['bodyage']; $return_data['身体年龄'] = $result['bodyage'];

View File

@ -92,11 +92,8 @@ class Card extends Base{
if($this->token_time_validate($data['token']) === false){ if($this->token_time_validate($data['token']) === false){
return $this->msg(20001); return $this->msg(20001);
} }
// die;
unset($data['token']); unset($data['token']);
return $this->get_user_body_data($data); return $this->get_user_body_data($data);
} }
// 曲线页面-曲线接口 // 曲线页面-曲线接口
@ -118,7 +115,7 @@ class Card extends Base{
// 手动记录 // 手动记录
// $data = ['id'=>'2','time'=>'1991-04-20 10:10:10','height'=>'15.1','weight'=>'75.1'] // $data = ['id'=>'2','time'=>'1991-04-20 10:10:10','height'=>'15.1','weight'=>'75.1']
public function card_manual_recording($data = ['aud_id'=>'83','time'=>'2024-07-24','height'=>'155.4','weight'=>'40.4','token'=>'caadd1be045a65f30b92aa805f1de54a']){ public function card_manual_recording($data = ['aud_id'=>'83','time'=>'2024-07-24','height'=>'145.7','weight'=>'41.3','token'=>'caadd1be045a65f30b92aa805f1de54a']){
if(count(input('post.')) > 0){ if(count(input('post.')) > 0){
$data = input('post.'); $data = input('post.');
}else{ }else{
@ -543,22 +540,14 @@ class Card extends Base{
if(array_key_exists('adc', $data)){ if(array_key_exists('adc', $data)){
$result_data['adc'] = $data['adc']; $result_data['adc'] = $data['adc'];
} }
// $result_data['adc'] = array_key_exists('adc', $data)?$data['adc']:550;
$calculate_body_formula = new Calculatebody(); $calculate_body_formula = new Calculatebody();
// dump($user_data['birthday']); // 计算身体数据
// dump($result_data);
$get_body_value = $calculate_body_formula->calculate_body_data_result($result_data); $get_body_value = $calculate_body_formula->calculate_body_data_result($result_data);
// dump($get_body_value);
// die;
// dump($get_body_value);
$get_body_value['gender'] = $user_data['gender']; $get_body_value['gender'] = $user_data['gender'];
$get_body_value['birthday'] = $user_data['birthday']; $get_body_value['birthday'] = $user_data['birthday'];
// 添加身高体重bmi的标尺标准
$get_body_value = $this->hwb_standard($get_body_value); $get_body_value = $this->hwb_standard($get_body_value);
// dump($get_body_value['身高2']);
// dump($get_body_value['脂肪率']);
// dump(implode(',',$get_body_value['脂肪率']));
$set_data = [ $set_data = [
'acd_id'=>$data['acd_id'], 'acd_id'=>$data['acd_id'],
'aud_id'=>$data['aud_id'], 'aud_id'=>$data['aud_id'],
@ -589,10 +578,10 @@ class Card extends Base{
'body_age'=>$get_body_value['身体年龄'] 'body_age'=>$get_body_value['身体年龄']
]; ];
if(strlen($set_data['record_time']) <= 12){ if(strlen($set_data['record_time']) <= 12){
// 时间日期转换,把'Y-m-d'转换成'Y-m-d H:i:s'格式
$set_data['record_time'] = $this->addCurrentTimeToDateString($set_data['record_time']); $set_data['record_time'] = $this->addCurrentTimeToDateString($set_data['record_time']);
} }
// dump($get_body_value['身高2']);
// die;
$set_user_data = Db::table('app_card_body_data')->insert($set_data); $set_user_data = Db::table('app_card_body_data')->insert($set_data);
if($set_user_data){ if($set_user_data){
// 返回简要数据 // 返回简要数据

View File

@ -9,7 +9,36 @@ class Download extends Base{
public function demo(){ public function demo(){
$num = Db::table('app_version_log')->order('id desc')->find(); $num = Db::table('app_version_log')->order('id desc')->find();
echo '你好,这里就是下载页面'; echo '你好,这里仅仅是个下载展示页面-1';
echo '<br><a href="'.$num['download_url'].'">点击下载</a>'; echo '<br><a href="'.$num['download_url'].'">点击下载</a>';
} }
public function demo2(){
$url = Db::table('app_version_log')->order('id desc')->find();
$this->assign([
'url' => $url['download_url'],
]);
return $this->fetch();
}
public function ceshi(){
$data = input();
$url = 'https://klcz.pcxbc.com/open-api/calc/healthcalc/bodyfat3';
$temporary_parameter = [
'weight'=>$data['weight'],
'height'=>$data['height'],
'age'=>$data['age'],
'adc'=>$data['adc'],
'gender'=>$data['gender'],
];
dump($temporary_parameter);
$result = $this->postRequest($url,$temporary_parameter);
dump($result);
die;
}
} }

View File

@ -176,7 +176,7 @@ class Index extends Base{
} }
// 获取指定用户详细信息 // 获取指定用户详细信息
public function get_user_data_information($data = ['aud_id'=>37,'token'=>'caadd1be045a65f30b92aa805f1de54a']){ public function get_user_data_information($data = ['aud_id'=>92,'token'=>'caadd1be045a65f30b92aa805f1de54a']){
if(count(input('post.')) > 0){ if(count(input('post.')) > 0){
$data = input('post.'); $data = input('post.');
} }

View File

@ -194,6 +194,11 @@ class Login extends Base{
if(!array_key_exists('data', $data)){ if(!array_key_exists('data', $data)){
return $this->msg(10001); return $this->msg(10001);
} }
if(cache($data['data'])){
return $this->msg(10002,'60秒仅可发送一次验证码');
}
$num = mt_rand(100000,999999); $num = mt_rand(100000,999999);
if (preg_match('/^\d{11}$/', $data['data'])) { if (preg_match('/^\d{11}$/', $data['data'])) {
$result = $this->send_tel_code($data['data'],$num); $result = $this->send_tel_code($data['data'],$num);

View File

@ -36,7 +36,7 @@ class Vitalcapacity extends Base{
################################################################接口################################################################ ################################################################接口################################################################
// 手动数据记录 // 手动数据记录
public function vitalcapacity_save_record_data($data = ['aud_id'=>'83','one'=>'1560','two'=>'1560','three'=>'1560','time'=>'2024-07-23','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){ public function vitalcapacity_save_record_data($data = ['aud_id'=>'89','one'=>'1560','two'=>'1560','three'=>'1560','time'=>'2024-07-23','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
if(count(input('post.')) > 0){ if(count(input('post.')) > 0){
$data = input('post.'); $data = input('post.');
} }
@ -53,7 +53,7 @@ class Vitalcapacity extends Base{
return $this->vitalcapacity_save_record_data_action($data); return $this->vitalcapacity_save_record_data_action($data);
} }
// 设备数据记录 // 设备数据记录
public function vitalcapacity_save_record_data_device($data = ['aud_id'=>'58','one'=>'1500','two'=>'1500','three'=>'1200','flow'=>'88.88','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){ public function vitalcapacity_save_record_data_device($data = ['aud_id'=>'89','one'=>'1500','two'=>'1500','three'=>'1200','flow'=>'88.88','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
if(count(input('post.')) > 0){ if(count(input('post.')) > 0){
$data = input('post.'); $data = input('post.');
} }
@ -70,7 +70,7 @@ class Vitalcapacity extends Base{
return $this->vitalcapacity_save_record_data_action($data); return $this->vitalcapacity_save_record_data_action($data);
} }
// 数据报告 // 数据报告
public function vitalcapacity_data_report($data = ['aud_id'=>'83','token'=>'caadd1be045a65f30b92aa805f1de54a']){ public function vitalcapacity_data_report($data = ['aud_id'=>'89','token'=>'caadd1be045a65f30b92aa805f1de54a']){
if(count(input('post.')) > 0){ if(count(input('post.')) > 0){
$data = input('post.'); $data = input('post.');
} }
@ -84,7 +84,7 @@ class Vitalcapacity extends Base{
return $this->vitalcapacity_data_report_action($data); return $this->vitalcapacity_data_report_action($data);
} }
// 曲线 // 曲线
public function vitalcapacity_curve_chart($data = ['aud_id'=>'83','time'=>'2024-07-24','token'=>'caadd1be045a65f30b92aa805f1de54a']){ public function vitalcapacity_curve_chart($data = ['aud_id'=>'89','time'=>'2024-07-23','token'=>'caadd1be045a65f30b92aa805f1de54a']){
if(count(input('post.')) > 0){ if(count(input('post.')) > 0){
$data = input('post.'); $data = input('post.');
} }
@ -114,14 +114,29 @@ class Vitalcapacity extends Base{
$temporary_arr['three_val'] = $data['three']; $temporary_arr['three_val'] = $data['three'];
$temporary_arr['average_val'] = $temporary_arr['average']; $temporary_arr['average_val'] = $temporary_arr['average'];
$temporary_arr['flow_val'] = array_key_exists('flow', $data)?$data['flow']:'0.00'; $temporary_arr['flow_val'] = array_key_exists('flow', $data)?$data['flow']:'0.00';
// 处理记录时间
if(strlen($temporary_arr['record_time']) <= 12){ if(strlen($temporary_arr['record_time']) <= 12){
$temporary_arr['record_time'] = $this->addCurrentTimeToDateString($temporary_arr['record_time']); $temporary_arr['record_time'] = $this->addCurrentTimeToDateString($temporary_arr['record_time']);
} }
$user_msg = Db::name('app_user_data')->where(['id'=>$data['aud_id']])->field('grade,gender')->find(); $user_msg = Db::name('app_user_data')->where(['id'=>$data['aud_id']])->field('grade,gender')->find();
if($user_msg){ if($user_msg){
$achievement_judge_data = $this->vitalcapacity_achievement_judge(['average'=>$temporary_arr['average'],'grade'=>$user_msg['grade'],'gender'=>$user_msg['gender']]); // 根据性别&年级&年龄查规则
$temporary_arr['score'] = $achievement_judge_data['score'].','.$achievement_judge_data['level'].','.$this->color[$achievement_judge_data['level']]; if($user_msg['grade'] != 'nothing'){
$temporary_arr['score_val'] = $achievement_judge_data['score']; // 有年级项
// 等级项(及格优秀良好等)
$achievement_judge_data = $this->vitalcapacity_achievement_judge(['average'=>$temporary_arr['average'],'grade'=>$user_msg['grade'],'gender'=>$user_msg['gender']]);
$temporary_arr['score'] = $achievement_judge_data['score'].','.$achievement_judge_data['level'].','.$this->color[$achievement_judge_data['level']];
$temporary_arr['score_val'] = $achievement_judge_data['score'];
// 获取肺活量标准
}else{
$achievement_judge_data['level'] = "";
$temporary_arr['score'] = "0,无,无";
$temporary_arr['score_val'] = "0";
}
}else{ }else{
return $this->msg(10004); return $this->msg(10004);
} }
@ -162,11 +177,12 @@ class Vitalcapacity extends Base{
]); ]);
}else{ }else{
$standard_data = $this->get_vitalcapacity_data($data['aud_id']);
$time = $result[0]['record_time']; $time = $result[0]['record_time'];
$time = strtotime($time); $time = strtotime($time);
$time = date('Y年m月d日 H:i:s', $time); $time = date('Y年m月d日 H:i:s', $time);
$o_l = explode(',',$result[0]['score']); $o_l = explode(',',$result[0]['score']);
$standard_data = $this->get_vitalcapacity_data($data['aud_id']);
return $this->msg([ return $this->msg([
'average'=>$result[0]['average'].'ml', 'average'=>$result[0]['average'].'ml',
'level'=>$o_l[1], 'level'=>$o_l[1],
@ -287,6 +303,7 @@ class Vitalcapacity extends Base{
// 减 bcsub(,,20) // 减 bcsub(,,20)
// 乘 bcmul(,,20) // 乘 bcmul(,,20)
// 除 bcdiv(,,20) // 除 bcdiv(,,20)
// 肺活量成绩判断 // 肺活量成绩判断
public function vitalcapacity_achievement_judge($data){ public function vitalcapacity_achievement_judge($data){
$str = "sex = ".$data['gender']." and ".$data['grade']." <= ".$data['average']; $str = "sex = ".$data['gender']." and ".$data['grade']." <= ".$data['average'];
@ -302,6 +319,10 @@ class Vitalcapacity extends Base{
// 肺活量判断区间 // 肺活量判断区间
public function vitalcapacity_standard_interval($val,$data){ public function vitalcapacity_standard_interval($val,$data){
// 缓存一周 // 缓存一周
$result = '';
if(count($data) <= 0){
return $result;
}
$temporary_qj = $data; $temporary_qj = $data;
$max = 0; $max = 0;
$min = 0; $min = 0;
@ -314,25 +335,12 @@ class Vitalcapacity extends Base{
break; break;
} }
} }
// dump($temporary_qj);
// dump($data);
// die;
$num = count($temporary_qj)-1-$num; $num = count($temporary_qj)-1-$num;
$temporary_num = bcmul(bcdiv(bcsub($val,$min,20),bcsub($max,$min,20),2),bcdiv(100,count($temporary_qj),2),2); $temporary_num = bcmul(bcdiv(bcsub($val,$min,20),bcsub($max,$min,20),2),bcdiv(100,count($temporary_qj),2),2);
$result = bcadd(bcmul(bcdiv(100,count($temporary_qj),2),$num,2),$temporary_num,2); $result = bcadd(bcmul(bcdiv(100,count($temporary_qj),2),$num,2),$temporary_num,2);
// dump($data);
// dump($num);
// dump($result);
// dump($temporary_num);
// dump(bcdiv(100,count($temporary_qj),2));
// dump($temporary_num);
// dump($temporary_qj);
return $result; return $result;
} }

View File

@ -0,0 +1,48 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1,minimum-scale=1, maximum-scale=1,user-scalable=no">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta http-equiv="Access-Control-Allow-Origin" content="*">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=no, email=no">
<meta name="full-screen" content="true">
<meta name="screen-orientation" content="portrait">
<meta name="x5-fullscreen" content="true">
<meta name="360-fullscreen" content="true">
<title>下载页面</title>
<script src="/x_admin/js/jq.js"></script>
<style>
*{
padding: 0 0;
margin: 0 0;
}
.big_box{
width: 100vw;
height: 100vh;
position: absolute;
top: 0;
left: 0;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: center;
overflow: auto;
padding: 10vw;
box-sizing: border-box;
}
</style>
</head>
<body id="box_k">
<div class="big_box">
<div>你好,这里仅仅是个下载展示页面-2</div>
<a href="{$url}">点击下载</a>
</div>
</body>
</html>

View File

@ -14,8 +14,12 @@ use think\Route;
// // ################################################################下载################################################################ // // ################################################################下载################################################################
// // ################################################################下载################################################################ // // ################################################################下载################################################################
//下载页 //下载页1
Route::any('/download', 'app/download/demo'); Route::any('/download', 'app/download/demo');
Route::any('/download2', 'app/download/demo2');
Route::any('/ceshi', 'app/download/ceshi');
// Route::any('/CityList.js', 'tsf/CityList.js'); // Route::any('/CityList.js', 'tsf/CityList.js');
// // ################################################################管理后台################################################################ // // ################################################################管理后台################################################################