2024-09-24 18:40:30 +08:00
< ? php
2025-04-25 19:02:06 +08:00
namespace app\testapp\controller ;
2024-09-24 18:40:30 +08:00
use think\Db ;
class Vitalcapacity extends Base {
protected $color = [ '无效' => '#FF5656' , '不及格' => '#FF5656' , '及格' => '#FFAB00' , '良好' => '#5AD06D' , '优秀' => '#6492F6' , '牛逼' => '#3967D6' ];
protected $curve_data_format = [ 'one_val' => [ '第一次' , '容积/ml' , '#009DFF' ], 'two_val' => [ '第二次' , '容积/ml' , '#009DFF' ], 'three_val' => [ '第三次' , '容积/ml' , '#009DFF' ], 'average_val' => [ '平均' , '容积/ml' , '#009DFF' ]];
protected $standard0 = [ '优秀' , '良好' , '及格' , '不及格' , '无效' ];
protected $standard = [
[ 'min_val' => '90' , 'max_val' => '100' , 'text' => '优秀' , 'color' => '#6492F6' ],
[ 'min_val' => '80' , 'max_val' => '89' , 'text' => '良好' , 'color' => '#5AD06D' ],
[ 'min_val' => '60' , 'max_val' => '79' , 'text' => '及格' , 'color' => '#FFAB00' ],
[ 'min_val' => '10' , 'max_val' => '59' , 'text' => '不及格' , 'color' => '#FF5656' ],
[ 'min_val' => '0' , 'max_val' => '9' , 'text' => '无效' , 'color' => '#FF5656' ],
];
2024-09-26 20:20:14 +08:00
protected $vitalcapacity_use_db_name = [
2025-09-03 19:09:13 +08:00
'1' => 'app_user_data' ,
'2' => 'app_card_vitalcapacity_data' ,
'3' => 'pc_vitalcapacity_standard' ,
2024-09-26 20:20:14 +08:00
];
2024-09-24 18:40:30 +08:00
protected $result_end_data_mould = [
'name' => '' ,
'value' => '' ,
'unit' => '' ,
'standard' => '' ,
'color' => '' ,
'list' => []
];
// 加 bcadd(,,20)
// 减 bcsub(,,20)
// 乘 bcmul(,,20)
// 除 bcdiv(,,20)
################################################################接口################################################################
################################################################接口################################################################
################################################################接口################################################################
// 手动数据记录
2024-11-23 16:46:38 +08:00
public function vitalcapacity_save_record_data ( $data = [ 'aud_id' => '11' , 'one' => '4900' , 'two' => '5100' , 'three' => '5300' , 'time' => '2024-11-14' , 'token' => '0dafb98a10995c98b5a33b7d59d986ca' ]){
2024-09-30 16:49:34 +08:00
try {
// 你的业务逻辑
if ( count ( input ( 'post.' )) > 0 ){
$data = input ( 'post.' );
}
if ( ! array_key_exists ( 'aud_id' , $data ) || ! array_key_exists ( 'time' , $data ) || ! array_key_exists ( 'token' , $data )){
$return_data = $this -> msg ( 10001 );
}
unset ( $data [ 'token' ]);
$data [ 'one' ] = $this -> isPositiveNumber ( $data [ 'one' ]) === false ? 0 : $data [ 'one' ];
$data [ 'two' ] = $this -> isPositiveNumber ( $data [ 'one' ]) === false ? 0 : $data [ 'two' ];
$data [ 'three' ] = $this -> isPositiveNumber ( $data [ 'one' ]) === false ? 0 : $data [ 'three' ];
$return_data = $this -> vitalcapacity_save_record_data_action ( $data );
// 成功
$this -> record_api_log ( $data , null , $return_data );
return $return_data ;
} catch ( \Exception $e ) {
// 捕获异常
$logContent [ " flie " ] = $e -> getFile ();
$logContent [ " line " ] = $e -> getLine ();
$logContent [ 'all_content' ] = " 异常信息: \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 );
2024-11-23 16:46:38 +08:00
return $this -> msg ( 99999 );
2024-09-24 18:40:30 +08:00
}
2024-09-30 16:49:34 +08:00
2024-09-24 18:40:30 +08:00
}
// 设备数据记录
public function vitalcapacity_save_record_data_device ( $data = [ 'aud_id' => '99' , 'one' => '1523' , 'two' => '1825' , 'three' => '1896' , 'flow' => '88.88' , 'token' => '0dafb98a10995c98b5a33b7d59d986ca' ]){
2024-09-30 16:49:34 +08:00
try {
// 你的业务逻辑
if ( count ( input ( 'post.' )) > 0 ){
$data = input ( 'post.' );
}
if ( ! array_key_exists ( 'aud_id' , $data ) || ! array_key_exists ( 'flow' , $data ) || ! array_key_exists ( 'token' , $data )){
$return_data = $this -> msg ( 10001 );
}
unset ( $data [ 'token' ]);
$data [ 'one' ] = $this -> isPositiveNumber ( $data [ 'one' ]) === false ? 0 : $data [ 'one' ];
$data [ 'two' ] = $this -> isPositiveNumber ( $data [ 'one' ]) === false ? 0 : $data [ 'two' ];
$data [ 'three' ] = $this -> isPositiveNumber ( $data [ 'one' ]) === false ? 0 : $data [ 'three' ];
$return_data = $this -> vitalcapacity_save_record_data_action ( $data );
// 成功
$this -> record_api_log ( $data , null , $return_data );
return $return_data ;
} catch ( \Exception $e ) {
// 捕获异常
$logContent [ " flie " ] = $e -> getFile ();
$logContent [ " line " ] = $e -> getLine ();
$logContent [ 'all_content' ] = " 异常信息: \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 );
2024-11-23 16:46:38 +08:00
return $this -> msg ( 99999 );
2024-09-24 18:40:30 +08:00
}
2024-09-30 16:49:34 +08:00
2024-09-24 18:40:30 +08:00
}
// 数据报告
2025-09-03 19:09:13 +08:00
public function vitalcapacity_data_report ( $data = [ 'aud_id' => '83' , 'token' => 'caadd1be045a65f30b92aa805f1de54a' ]){
2024-09-30 16:49:34 +08:00
try {
// 你的业务逻辑
if ( count ( input ( 'post.' )) > 0 ){
$data = input ( 'post.' );
}
if ( ! array_key_exists ( 'aud_id' , $data ) || ! array_key_exists ( 'token' , $data )){
$return_data = $this -> msg ( 10001 );
}
unset ( $data [ 'token' ]);
$return_data = $this -> vitalcapacity_data_report_action ( $data );
// 成功
$this -> record_api_log ( $data , null , $return_data );
return $return_data ;
} catch ( \Exception $e ) {
// 捕获异常
$logContent [ " flie " ] = $e -> getFile ();
$logContent [ " line " ] = $e -> getLine ();
$logContent [ 'all_content' ] = " 异常信息: \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 );
2024-11-23 16:46:38 +08:00
return $this -> msg ( 99999 );
2024-09-24 18:40:30 +08:00
}
2024-09-30 16:49:34 +08:00
2024-09-24 18:40:30 +08:00
}
// 曲线
public function vitalcapacity_curve_chart ( $data = [ 'aud_id' => '83' , 'time' => '2024' , 'token' => 'caadd1be045a65f30b92aa805f1de54a' ]){
2024-09-30 16:49:34 +08:00
try {
// 你的业务逻辑
if ( count ( input ( 'post.' )) > 0 ){
$data = input ( 'post.' );
}
if ( ! array_key_exists ( 'aud_id' , $data ) || ! array_key_exists ( 'time' , $data ) || ! array_key_exists ( 'token' , $data )){
$return_data = $this -> msg ( 10001 );
}
unset ( $data [ 'token' ]);
$return_data = $this -> vitalcapacity_curve_chart_action ( $data );
// 成功
$this -> record_api_log ( $data , null , $return_data );
return $return_data ;
} catch ( \Exception $e ) {
// 捕获异常
$logContent [ " flie " ] = $e -> getFile ();
$logContent [ " line " ] = $e -> getLine ();
$logContent [ 'all_content' ] = " 异常信息: \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 );
2024-11-23 16:46:38 +08:00
return $this -> msg ( 99999 );
2024-09-24 18:40:30 +08:00
}
}
################################################################业务################################################################
################################################################vitalcapacity_save_record_data
public function vitalcapacity_save_record_data_action ( $data ){
$temporary_arr [ 'aud_id' ] = $data [ 'aud_id' ];
$temporary_arr [ 'record_time' ] = array_key_exists ( 'time' , $data ) ? $data [ 'time' ] : date ( 'Y-m-d H:i:s' );
$temporary_arr [ 'one' ] = $data [ 'one' ];
$temporary_arr [ 'two' ] = $data [ 'two' ];
$temporary_arr [ 'three' ] = $data [ 'three' ];
$temporary_arr [ 'average' ] = bcdiv ( bcadd ( bcadd ( $data [ 'one' ], $data [ 'two' ], 2 ), $data [ 'three' ], 2 ), 3 , 2 );
$temporary_arr [ 'create_time' ] = date ( 'Y-m-d H:i:s' );
$temporary_arr [ 'one_val' ] = $data [ 'one' ];
$temporary_arr [ 'two_val' ] = $data [ 'two' ];
$temporary_arr [ 'three_val' ] = $data [ 'three' ];
$temporary_arr [ 'average_val' ] = $temporary_arr [ 'average' ];
$temporary_arr [ 'flow_val' ] = array_key_exists ( 'flow' , $data ) ? $data [ 'flow' ] : '0.00' ;
2024-11-23 16:46:38 +08:00
// die;
2024-09-24 18:40:30 +08:00
// 处理记录时间
if ( strlen ( $temporary_arr [ 'record_time' ]) <= 12 ){
$temporary_arr [ 'record_time' ] = $this -> addCurrentTimeToDateString ( $temporary_arr [ 'record_time' ]);
}
2024-11-23 16:46:38 +08:00
$user_msg = Db :: name ( $this -> vitalcapacity_use_db_name [ '1' ]) -> where ([ 'id' => $data [ 'aud_id' ]]) -> field ( 'id,grade,gender,birthday' ) -> find ();
// die;
2024-09-24 18:40:30 +08:00
if ( $user_msg ){
// 根据性别&年级&年龄查规则
2024-11-23 16:46:38 +08:00
if ( $user_msg [ 'grade' ] == 'nothing' ){
// 计算年龄判断是属于哪个年级
$user_age = $this -> calculate_age ( $user_msg [ 'birthday' ]);
if ( $user_age <= 7 ){
$user_msg [ 'grade' ] = 'grade_s_1' ;
} else if ( $user_age == 8 ){
$user_msg [ 'grade' ] = 'grade_s_2' ;
} else if ( $user_age == 9 ){
$user_msg [ 'grade' ] = 'grade_s_3' ;
} else if ( $user_age == 10 ){
$user_msg [ 'grade' ] = 'grade_s_4' ;
} else if ( $user_age == 11 ){
$user_msg [ 'grade' ] = 'grade_s_5' ;
} else if ( $user_age == 12 ){
$user_msg [ 'grade' ] = 'grade_s_6' ;
} else if ( $user_age == 13 ){
$user_msg [ 'grade' ] = 'grade_m_1' ;
} else if ( $user_age == 14 ){
$user_msg [ 'grade' ] = 'grade_m_2' ;
} else if ( $user_age == 15 ){
$user_msg [ 'grade' ] = 'grade_m_3' ;
} else if ( $user_age == 16 ){
$user_msg [ 'grade' ] = 'grade_h_1' ;
} else if ( $user_age == 17 ){
$user_msg [ 'grade' ] = 'grade_h_2' ;
} else if ( $user_age == 18 ){
$user_msg [ 'grade' ] = 'grade_h_3' ;
} else if ( $user_age == 19 || $user_age == 20 ){
$user_msg [ 'grade' ] = 'grade_u_12' ;
} else if ( $user_age >= 21 ){
$user_msg [ 'grade' ] = 'grade_u_34' ;
}
}
$sql_str = " sex = " . $user_msg [ 'gender' ] . " and " . $user_msg [ 'grade' ] . " <= " . $temporary_arr [ 'average_val' ];
$user_achievement = Db :: name ( $this -> vitalcapacity_use_db_name [ '3' ]) -> where ( $sql_str ) -> order ( $user_msg [ 'grade' ] . ' desc' ) -> field ( 'level,score,' . $user_msg [ 'grade' ]) -> limit ( 1 ) -> select ();
if ( count ( $user_achievement ) <= 0 ){
$user_achievement [ 0 ] = [ 'level' => '无效' , 'score' => '0' ];
2024-09-24 18:40:30 +08:00
}
2024-11-23 16:46:38 +08:00
$temporary_arr [ 'score' ] = $user_achievement [ 0 ][ 'score' ] . ',' . $user_achievement [ 0 ][ 'level' ] . ',' . $this -> color [ $user_achievement [ 0 ][ 'level' ]];
$temporary_arr [ 'score_val' ] = $user_achievement [ 0 ][ 'score' ];
2024-09-24 18:40:30 +08:00
} else {
return $this -> msg ( 10004 );
}
$standard_data = $this -> get_vitalcapacity_data ( $data [ 'aud_id' ]);
$temporary_arr [ 'standard_data' ] = json_encode ( $standard_data );
2024-09-26 20:20:14 +08:00
$result = Db :: table ( $this -> vitalcapacity_use_db_name [ '2' ]) -> insert ( $temporary_arr );
2024-09-24 18:40:30 +08:00
if ( $result ){
$time = $result [ 0 ][ 'record_time' ];
$time = strtotime ( $time );
$time = date ( 'Y年m月d日 H:i:s' , $time );
return $this -> msg ([
'average' => $temporary_arr [ 'average' ] . 'ml' ,
2024-11-23 16:46:38 +08:00
'level' => $user_achievement [ 0 ][ 'level' ],
2024-09-24 18:40:30 +08:00
'time' => $time ,
'flow_val' => $temporary_arr [ 'flow_val' ],
'list' => $standard_data ,
'offset' => $this -> vitalcapacity_standard_interval ( $temporary_arr [ 'average' ], $standard_data )
]);
} else {
return $this -> msg ( 10002 );
}
}
################################################################vitalcapacity_data_report
public function vitalcapacity_data_report_action ( $data ){
2024-09-26 20:20:14 +08:00
$result = Db :: table ( $this -> vitalcapacity_use_db_name [ '2' ]) -> where ([ 'aud_id' => $data [ 'aud_id' ]]) -> order ( 'record_time desc' ) -> field ( 'record_time,score,average,flow_val,standard_data' ) -> limit ( 1 ) -> select ();
2024-09-24 18:40:30 +08:00
if ( count ( $result ) <= 0 ){
// return $this->msg(10004);
return $this -> msg ([
'average' => '' ,
'level' => '' ,
'time' => '' ,
'flow_val' => '' ,
'list' => '' ,
'offset' => ''
]);
} else {
$time = $result [ 0 ][ 'record_time' ];
$time = strtotime ( $time );
$time = date ( 'Y年m月d日 H:i:s' , $time );
$o_l = explode ( ',' , $result [ 0 ][ 'score' ]);
// $standard_data = $this->get_vitalcapacity_data($data['aud_id']);
$standard_data = json_decode ( $result [ 0 ][ 'standard_data' ], true );
2024-11-23 16:46:38 +08:00
2024-09-24 18:40:30 +08:00
return $this -> msg ([
'average' => $result [ 0 ][ 'average' ] . 'ml' ,
'level' => $o_l [ 1 ],
'time' => $time ,
'flow_val' => $result [ 0 ][ 'flow_val' ] == '.00' ? '0.00' : $result [ 0 ][ 'flow_val' ],
'list' => $standard_data ,
'offset' => $this -> vitalcapacity_standard_interval ( $result [ 0 ][ 'average' ], $standard_data )
]);
}
}
################################################################vitalcapacity_curve_chart
public function vitalcapacity_curve_chart_action ( $data ){
$audid = $data [ 'aud_id' ];
$timeData = explode ( '-' , $data [ 'time' ]);
// 根据$timeData的长度构建不同的查询条件
$map = [ 'aud_id' => $audid ];
switch ( count ( $timeData )) {
case 3 : // 年月日
$map [ 'record_time' ] = [ 'between' , [ date ( 'Y-m-d 00:00:00' , strtotime ( $timeData [ 0 ] . '-' . $timeData [ 1 ] . '-' . $timeData [ 2 ])), date ( 'Y-m-d 23:59:59' , strtotime ( $timeData [ 0 ] . '-' . $timeData [ 1 ] . '-' . $timeData [ 2 ]))]];
break ;
case 2 : // 年月
$map [ 'record_time' ] = [ 'between' , [ date ( 'Y-m-01 00:00:00' , strtotime ( $timeData [ 0 ] . '-' . $timeData [ 1 ])), date ( 'Y-m-t 23:59:59' , strtotime ( $timeData [ 0 ] . '-' . $timeData [ 1 ]))]];
break ;
case 1 : // 年
$map [ 'record_time' ] = [ 'between' , [ date ( 'Y-01-01 00:00:00' , strtotime ( $timeData [ 0 ])), date ( 'Y-12-31 23:59:59' , strtotime ( $timeData [ 0 ]))]];
break ;
default :
return $this -> msg ( 10005 ); // 无效的时间数据格式
}
// 使用查询构造器进行查询
2024-09-26 20:20:14 +08:00
$result = Db :: name ( $this -> vitalcapacity_use_db_name [ '2' ]) -> where ( $map ) -> field ( 'id,one_val,two_val,three_val,average_val,score_val,aud_id,record_time,DATEPART(hour, record_time) AS hour,DATEPART(day, record_time) AS day,DATEPART(month, record_time) AS month' ) -> order ( 'record_time' ) -> select ();
2024-09-24 18:40:30 +08:00
$return_data = [];
if ( count ( $timeData ) == 3 ){
$key_condition = 'hour' ;
} else if ( count ( $timeData ) == 2 ){
$key_condition = 'day' ;
} else if ( count ( $timeData ) == 1 ){
$key_condition = 'month' ;
}
foreach ( $this -> curve_data_format as $key => $value ) {
$temporary_arr [ 'title' ] = $value [ 0 ] . '(' . $value [ 1 ] . ')' ;
$temporary_arr [ 'key' ] = $key ;
$temporary_arr [ 'line' ][ 'categories' ] = [];
$temporary_arr [ 'line' ][ 'series' ][ 0 ][ 'color' ] = $value [ 2 ];
$temporary_arr [ 'line' ][ 'series' ][ 0 ][ 'name' ] = $value [ 0 ] . '(' . $value [ 1 ] . ')' ;
$temporary_arr [ 'line' ][ 'series' ][ 0 ][ 'data' ] = [];
foreach ( $result as $k => $v ) {
if ( $key_condition == 'hour' ){
if ( in_array ( $result [ $k ][ $key_condition ] . '时' , $temporary_arr [ 'line' ][ 'categories' ])){
$num = array_search ( $result [ $k ][ $key_condition ] . '时' , $temporary_arr [ 'line' ][ 'categories' ]);
// $temporary_arr['line']['series'][0]['data'][$num] = bcadd($temporary_arr['line']['series'][0]['data'][$num],$result[$k][$key],2);
$temporary_arr [ 'line' ][ 'series' ][ 0 ][ 'data' ][ $num ] = $temporary_arr [ 'line' ][ 'series' ][ 0 ][ 'data' ][ $num ] >= $result [ $k ][ $key ] ? $temporary_arr [ 'line' ][ 'series' ][ 0 ][ 'data' ][ $num ] : $result [ $k ][ $key ];
} else {
array_push ( $temporary_arr [ 'line' ][ 'categories' ], $result [ $k ][ $key_condition ] . '时' );
array_push ( $temporary_arr [ 'line' ][ 'series' ][ 0 ][ 'data' ], $result [ $k ][ $key ]);
}
} else if ( $key_condition == 'day' ){
if ( in_array ( $result [ $k ][ 'month' ] . '-' . $result [ $k ][ $key_condition ], $temporary_arr [ 'line' ][ 'categories' ])){
$num = array_search ( $result [ $k ][ 'month' ] . '-' . $result [ $k ][ $key_condition ], $temporary_arr [ 'line' ][ 'categories' ]);
// $temporary_arr['line']['series'][0]['data'][$num] = bcadd($temporary_arr['line']['series'][0]['data'][$num],$result[$k][$key],2);
$temporary_arr [ 'line' ][ 'series' ][ 0 ][ 'data' ][ $num ] = $temporary_arr [ 'line' ][ 'series' ][ 0 ][ 'data' ][ $num ] >= $result [ $k ][ $key ] ? $temporary_arr [ 'line' ][ 'series' ][ 0 ][ 'data' ][ $num ] : $result [ $k ][ $key ];
} else {
array_push ( $temporary_arr [ 'line' ][ 'categories' ], $result [ $k ][ 'month' ] . '-' . $result [ $k ][ $key_condition ]);
array_push ( $temporary_arr [ 'line' ][ 'series' ][ 0 ][ 'data' ], $result [ $k ][ $key ]);
}
} else {
if ( in_array ( $result [ $k ][ 'month' ] . '月' , $temporary_arr [ 'line' ][ 'categories' ])){
$num = array_search ( $result [ $k ][ 'month' ] . '月' , $temporary_arr [ 'line' ][ 'categories' ]);
// $temporary_arr['line']['series'][0]['data'][$num] = bcadd($temporary_arr['line']['series'][0]['data'][$num],$result[$k][$key],2);
$temporary_arr [ 'line' ][ 'series' ][ 0 ][ 'data' ][ $num ] = $temporary_arr [ 'line' ][ 'series' ][ 0 ][ 'data' ][ $num ] >= $result [ $k ][ $key ] ? $temporary_arr [ 'line' ][ 'series' ][ 0 ][ 'data' ][ $num ] : $result [ $k ][ $key ];
} else {
array_push ( $temporary_arr [ 'line' ][ 'categories' ], $result [ $k ][ 'month' ] . '月' );
array_push ( $temporary_arr [ 'line' ][ 'series' ][ 0 ][ 'data' ], $result [ $k ][ $key ]);
}
}
}
array_push ( $return_data , $temporary_arr );
}
return $this -> msg ( $return_data );
}
################################################################肺活量数据卡片接口################################################################
################################################################肺活量数据卡片接口################################################################
// 加 bcadd(,,20)
// 减 bcsub(,,20)
// 乘 bcmul(,,20)
// 除 bcdiv(,,20)
// 肺活量判断区间
public function vitalcapacity_standard_interval ( $val , $data ){
// 缓存一周
$result = '' ;
2024-11-23 16:46:38 +08:00
if ( ! $data || count ( $data ) <= 0 ){
2024-09-24 18:40:30 +08:00
return $result ;
}
$temporary_qj = $data ;
$max = 0 ;
$min = 0 ;
$num = 0 ;
foreach ( $temporary_qj as $key => $value ) {
if ( $val >= $value [ 'min_val' ] && $val <= $value [ 'max_val' ]){
$max = $value [ 'max_val' ];
$min = $value [ 'min_val' ];
$num = $key ;
break ;
}
}
$num = count ( $temporary_qj ) - 1 - $num ;
2024-11-23 16:46:38 +08:00
if ( $max == 0 ){
if ( $val >= $temporary_qj [ 0 ][ 'max_val' ]){
$result = 100 ;
}
} else {
$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 );
}
2024-09-24 18:40:30 +08:00
return $result ;
}
// 肺活量判断区间(根据得分)
public function vitalcapacity_standard_interval2 ( $val , $data ){
// 缓存一周
$result = '' ;
if ( count ( $data ) <= 0 ){
return $result ;
}
$temporary_qj = $data ;
$max = 0 ;
$min = 0 ;
$num = 0 ;
foreach ( $temporary_qj as $key => $value ) {
if ( $val >= $value [ 'min_val' ] && $val <= $value [ 'max_val' ]){
$max = $value [ 'max_val' ];
$min = $value [ 'min_val' ];
$num = $key ;
break ;
}
}
// 计算每份占比
$share_value = bcdiv ( $temporary_qj [ 0 ][ 'max_val' ], count ( $temporary_qj ), 1 );
// 计算在这一段中占多少
$result = bcsub ( $val , $min , 1 );
$result = bcdiv ( $result , bcsub ( $max , $min , 1 ), 1 );
$num = count ( $temporary_qj ) - 1 - $num ;
$num = bcmul ( $num , $share_value , 1 );
$result = bcadd ( $num , $result , 1 );
// $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);
// $result = bcadd(bcmul(bcdiv(100,count($temporary_qj),2),$num,2),$temporary_num,2);
return $result ;
}
################################################################other################################################################
################################################################other################################################################
################################################################other################################################################
}