SchoolPhysicalExamination/application/app/controller/Card.php

618 lines
28 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\app\controller;
use think\Controller;
use think\Db;
use app\bj\controller\Common;
use think\Log;
use \think\Validate;
use app\app\controller\Calculatebody;
class Card extends Controller{
protected $color = ['#FF5656','#FFAB00','#5AD06D','#6492F6','#3967D6'];
protected $age_limit = 16;
protected $unit_symbol = ['score'=>'分','height'=>'CM','weight'=>'公斤','fat_r'=>'%','fat_w'=>'kg','muscle'=>'%','muscleval'=>'kg','water'=>'kg','bone'=>'kg','protein'=>'%','proteinval'=>'kg','kcal'=>'kcal','sfr'=>'%',];
protected $unit_name = ['score'=>'身体得分','height'=>'身高','weight'=>'体重','bmi'=>'BMI','fat_r'=>'脂肪率','fat_w'=>'脂肪量','muscle'=>'肌肉率','muscleval'=>'肌肉量','water'=>'水分','bone'=>'骨重','protein'=>'蛋白率','proteinval'=>'蛋白量','kcal'=>'基础代谢','visceral'=>'内脏指数','sfr'=>'皮下脂肪','body_level'=>'肥胖等级','body_type'=>'身体类型'];
protected $bhw_list = [
'bmi'=>[
['min_val'=>'0','max_val'=>'','text'=>'消瘦','color'=>'#ffda69'],
['min_val'=>'','max_val'=>'','text'=>'正常','color'=>'#5ad06d'],
['min_val'=>'','max_val'=>'','text'=>'偏重','color'=>'#ffab00'],
['min_val'=>'','max_val'=>'50','text'=>'肥胖','color'=>'#ff5656'],
],
'height'=>[
['min_val'=>'0','max_val'=>'','text'=>'矮','color'=>'#ff5656'],
['min_val'=>'','max_val'=>'','text'=>'偏矮','color'=>'#ffab00'],
['min_val'=>'','max_val'=>'','text'=>'标准','color'=>'#5ad06d'],
['min_val'=>'','max_val'=>'','text'=>'偏高','color'=>'#6492f6'],
['min_val'=>'','max_val'=>'','text'=>'高','color'=>'#3967d6'],
],
'weight'=>[
['min_val'=>'0','max_val'=>'','text'=>'低','color'=>'#ff5656'],
['min_val'=>'','max_val'=>'','text'=>'偏低','color'=>'#ffab00'],
['min_val'=>'','max_val'=>'','text'=>'标准','color'=>'#5ad06d'],
['min_val'=>'','max_val'=>'','text'=>'偏高','color'=>'#ffab00'],
['min_val'=>'','max_val'=>'','text'=>'高','color'=>'#ff5656'],
]
];
protected $standard_color = [
'fat_r'=>['偏低'=>'#FFAB00','标准'=>'#5AD06D','偏高'=>'#6492F6','高'=>'#3967D6'],
'fat_w'=>['偏低'=>'#FFAB00','标准'=>'#5AD06D','偏高'=>'#6492F6','高'=>'#3967D6'],
'muscle'=>['不足'=>'#FF5656','标准'=>'#5AD06D','优'=>'#3967D6'],
'muscleval'=>['不足'=>'#FF5656','标准'=>'#5AD06D','优'=>'#3967D6'],
'water'=>['不足'=>'#FF5656','标准'=>'#5AD06D','优'=>'#3967D6'],
'proteinval'=>['不足'=>'#FF5656','标准'=>'#5AD06D','优'=>'#3967D6'],
'bone'=>['不足'=>'#FF5656','标准'=>'#5AD06D','优'=>'#3967D6'],
'protein'=>['不足'=>'#FF5656','标准'=>'#5AD06D','优'=>'#3967D6'],
'kcal'=>['偏低'=>'#FF5656','优'=>'#3967D6'],
'visceral'=>['标准'=>'#5AD06D','警惕'=>'#FFAB00','危险'=>'#FF5656'],
'sfr'=>['不足'=>'#FF5656','标准'=>'#5AD06D','偏高'=>'#6492F6'],
];
protected $result_end_data_mould = [
'name'=>'',
'value'=>'',
'unit'=>'',
'standard'=>'',
'color'=>'',
'list'=>[]
];
################################################################接口################################################################
################################################################接口################################################################
################################################################接口################################################################
// 存储卡片顺序
// $data = ['aud_id'=>'xxxxxxxxxxxxxxx','order_list'=>[1,2,3,4,5]]
public function save_card_order(){
$data = input();
if(!array_key_exists('order_list', $data) || !array_key_exists('user_token', $data)){
return $this->msg(10001,'数据格式错误');
}
if(!$this->isNumericArray($data['order_list'])){
return $this->msg(10002,'数据内参数格式或值错误');
}
$data['order_list'] = json_encode($data['order_list']);
$result = Db::table('app_user_data')->where(['id'=>$data['aud_id']])->update(['card_order'=>$data['order_list']]);
if($result){
return $this->msg(0,'success');
}else{
return $this->msg(10003,'修改失败');
}
}
// 获取卡片列表
// $data = ['id'=>'2','time'=>'1991-04-20',content=>'15个']
public function get_card_list(){
$data = input();
if(!array_key_exists('ann_id', $data) || !array_key_exists('time', $data) || !array_key_exists('content', $data)){
return $this->msg(10001,'数据格式错误');
}
$result = Db::table('app_card_data_log')->insert(['aud_id'=>$data['id'],'log_time'=>$data['time'],'content'=>$data['content'],'create_time'=>date('Y-m-d H:i:s')]);
if($result){
return $this->msg(0,'success');
}else{
return $this->msg(10003,'添加失败');
}
}
// 获取基础卡片信息
// $data = ['id'=>'2']
public function card_data_base(){
$data = input();
if(!array_key_exists('id', $data)){
return $this->msg(10001,'数据格式错误');
}
$result = Db::table('app_card_body_data')->where(['aud_id'=>$data['id']])->order('record_time desc')->field('record_time,height,weight,bmi')->find();
if(!$result){
return $this->msg(10002,'未找到数据');
}else{
return $this->msg(0,'success',$result);
}
}
// 详细卡片信息
// $data = ['id'=>'2']
public function card_data_detailed($data=['id'=>'7','acd_id'=>'2']){
// public function body_data_detailed($data=['id'=>'9','acd_id'=>'2']){
// $data = input();
if(!array_key_exists('id', $data) || !array_key_exists('acd_id', $data)){
return $this->msg(10001,'关键参数缺失');
}
if($data['acd_id'] == '2'){
// 基础身体信息卡片
return $this->get_user_body_data($data);
}
}
// 手动记录
// $data = ['id'=>'2','time'=>'1991-04-20 10:10:10','height'=>'15.1','weight'=>'75.1']
public function card_manual_recording($data = ['acd_id'=>'2','aud_id'=>'11','time'=>'2024-04-11 10:10:10','data'=>['height'=>'175.1','weight'=>'77.1']]){
if(!array_key_exists('acd_id', $data) || !array_key_exists('aud_id', $data)){
return $this->msg(10001,'关键参数缺失');
}
$afferent_data = [];
foreach ($data as $key => $value) {
if(is_array($value)){
foreach ($value as $k => $v) {
$afferent_data[$k] = $v;
}
}else{
$afferent_data[$key] = $value;
}
}
if($data['acd_id'] == '2'){
return $this->set_user_body_data($data);
}else if($data['acd_id'] == '6'){
}
}
// 获取记录信息列表
function get_card_record_data($data = ['acd_id'=>'2','aud_id'=>'11','s_time'=>'2024-04-01 10:10:10','e_time'=>'2024-04-12 10:10:10']){
if(!array_key_exists('acd_id', $data) || !array_key_exists('aud_id', $data) || !array_key_exists('s_time', $data) || !array_key_exists('e_time', $data)){
return $this->msg(10001,'关键参数缺失');
}
if($data['acd_id'] == '2'){
return $this->get_body_record_data($data);
}else if($data['acd_id'] == '6'){
}
}
// 数据对比
function card_data_contrast($data = ['acd_id'=>'2','aud_id'=>'11','s_time'=>'2024-04-01 10:10:10','e_time'=>'2024-04-12 10:10:10']){
if(!array_key_exists('acd_id', $data) || !array_key_exists('aud_id', $data) || !array_key_exists('s_time', $data) || !array_key_exists('e_time', $data)){
return $this->msg(10001,'关键参数缺失');
}
if($data['acd_id'] == '2'){
return $this->body_data_contrast($data);
}else if($data['acd_id'] == '6'){
}
}
################################################################身体数据卡片接口################################################################
################################################################身体数据卡片接口################################################################
// weight height muscle fat
// 查询曲线数据
public function body_curve_data($data=['aud_id'=>'11','acd_id'=>'2','type'=>'weight','s_time'=>'2024-04-01 10:10:10','e_time'=>'2024-04-11 10:10:10']){
if(!array_key_exists('aud_id', $data) || !array_key_exists('acd_id', $data) || !array_key_exists('type', $data) || !array_key_exists('s_time', $data) || !array_key_exists('e_time', $data)){
return $this->msg(10001,'关键参数缺失');
}
$user_data = Db::table('app_user_data')->where(['id'=>$data['aud_id']])->field('target_weight,initial_weight,initial_date')->find();
// dump($user_data);
if($user_data){
if($user_data['initial_date']){
$result_data['target_weight'] = $user_data['target_weight'].'kg';
$result_data['initial_weight'] = $user_data['initial_weight'].'kg';
$result_data['initial_date'] = $this->daysSince($user_data['initial_date']).'天';
}else{
$result_data['target_weight'] = '';
$result_data['initial_weight'] = '';
$result_data['initial_date'] = '';
}
}else{
return $this->msg(10002,'未找到用户数据');
}
$user_data_list = Db::query("select record_time,weight,bmi,muscleval,fat_w from app_card_body_data where aud_id='".$data['aud_id']."'and record_time between '".$data['s_time']."' and '".$data['e_time']."' order by record_time desc");
if(in_array($data['type'], ['weight','muscleval','fat_w','bmi'])){
$data_arr = [];
foreach ($user_data_list as $key => $value) {
$data_arr[] = [$value[$data['type']],$value['record_time']];
}
}
// dump($result_data['target_weight']);
// dump($result_data['initial_weight']);
// die;
$cumulative_weight = $user_data['target_weight']-$user_data['initial_weight'];
if($cumulative_weight >= 0){
$result_data['cumulative_weight'] = [$cumulative_weight.'kg','累计减重'];
}else {
$result_data['cumulative_weight'] = [abs($cumulative_weight).'kg','累计增重'];
}
// if($user_data){
// }
$result_data['list'] = $data_arr;
return $this->msg(0,'success',$result_data);
}
// 获取身体数据记录信息列表
function get_body_record_data($data){
$result = Db::query("
select
id,
CONVERT(varchar(10), record_time, 120) AS r_t,
CONVERT(varchar(19), record_time, 120) AS record_time,
height,
weight,
bmi
from app_card_body_data
where aud_id='".$data['aud_id']."'
and record_time between '".$data['s_time']."' and '".$data['e_time']."'
order by record_time desc");
$return_result = [];
foreach ($result as $key => $value) {
if(array_key_exists($value['r_t'], $return_result)){
array_push($return_result[$value['r_t']], ['id'=>$value['id'],'height'=>$value['height'],'weight'=>$value['weight'],'bmi'=>$value['bmi']]);
}else{
$return_result[$value['r_t']] = [['id'=>$value['id'],'height'=>$value['height'],'weight'=>$value['weight'],'bmi'=>$value['bmi']]];
}
}
dump(['original'=>$result,'optimization'=>$return_result]);
die;
return ['original'=>$result,'optimization'=>$return_result];
}
// 身体数据对比
function body_data_contrast($data = ['acd_id'=>'2','data'=>[1,10]]){
$between_num = implode(',',$data['data']);
$calculate_arr = [];
$result = Db::query("
select
acbd.id,
acbd.height,
acbd.weight,
acbd.bmi,
acbd.fat_w,
acbd.record_time,
REPLACE(CONVERT(varchar(10), acbd.record_time, 23), '-', '/') AS b_time,
aud.nickname,
aud.gender,
aud.birthday
from app_card_body_data as acbd
left join app_user_data as aud on acbd.aud_id=aud.id
where acbd.id in (".$between_num.")
");
if(!$result || count($result)<2){
return $this->msg(10001,'数据查询错误');
}
foreach ($data['data'] as $key => $value) {
foreach ($result as $k => $v) {
if($value == $v['id']){
array_push($calculate_arr, $v);
}
}
}
$return_data['nickname'] = $calculate_arr[0]['nickname'];
if($calculate_arr[0]['gender']==1){
$return_data['gender'] = '男';
}else if ($calculate_arr[0]['gender']==2) {
$return_data['gender'] = '女';
}else{
$return_data['gender'] = '保密';
}
// bcsub(,,20)
$return_data['age'] = $this->calculate_age($calculate_arr[0]['birthday']);
$return_data['time'] = $this->daysSince($calculate_arr[0]['record_time'],$calculate_arr[1]['record_time']);
$return_data['weight_loss'] = bcsub($calculate_arr[1]['weight'],$calculate_arr[0]['weight'],1);
$return_data['reduce_fat'] = bcsub(explode(',',$calculate_arr[1]['fat_w'])[0],explode(',',$calculate_arr[0]['fat_w'])[0],2);
$return_data['between_time'] = $calculate_arr[0]['b_time'].'-'.$calculate_arr[1]['b_time'];
$return_data['execl_data']['height'] = ['身高',bcsub($calculate_arr[1]['height'],$calculate_arr[0]['height'],1),$calculate_arr[0]['height'],$calculate_arr[1]['height']];
$return_data['execl_data']['weight'] = ['体重',bcsub($calculate_arr[1]['weight'],$calculate_arr[0]['weight'],1),$calculate_arr[0]['weight'],$calculate_arr[1]['weight']];
$return_data['execl_data']['bmi'] = ['BMI',bcsub($calculate_arr[1]['bmi'],$calculate_arr[0]['bmi'],1),$calculate_arr[0]['bmi'],$calculate_arr[1]['bmi']];
// dump($return_data);
// die;
return $this->msg(0,'success',$return_data);
}
################################################################身体数据卡片业务
// 用户身体数据卡片记录
function set_user_body_data($data){
if(!array_key_exists('time', $data) || !array_key_exists('height', $data) || !array_key_exists('weight', $data)){
return $this->msg(10001,'数据格式错误');
}
$user_data = Db::table('app_user_data')->where(['id'=>$data['aud_id']])->field('birthday,gender')->find();
$result_data['height'] = $data['height'];
$result_data['weight'] = $data['weight'];
$result_data['age'] = $this->calculate_age($user_data['birthday']);
$result_data['gender'] = $user_data['gender'];
$result_data['adc'] = array_key_exists('impedance', $data)?$data['impedance']:550;
$calculate_body_formula = new Calculatebody();
$get_body_value = $calculate_body_formula->calculate_body_data_result($result_data);
$set_user_data = Db::table('app_card_body_data')->insert([
'acd_id'=>$data['acd_id'],
'aud_id'=>$data['aud_id'],
'record_time'=>$data['time'],
'create_time'=>date('Y-m-d H:i:s'),
'last_update_time'=>date('Y-m-d H:i:s'),
'age'=>$get_body_value['age'],
'height'=>$get_body_value['身高'],
'weight'=>$get_body_value['体重'],
'bmi'=>$get_body_value['BMI'],
'score'=>$get_body_value['身体得分'],
'fat_r'=> implode(',',$get_body_value['脂肪率']),
'fat_w'=>implode(',',$get_body_value['脂肪量']),
'muscle'=>implode(',',$get_body_value['肌肉率']),
'muscleval'=>implode(',',$get_body_value['肌肉量']),
'water'=>implode(',',$get_body_value['水分']),
'proteinval'=>implode(',',$get_body_value['蛋白量']),
'bone'=>implode(',',$get_body_value['骨重']),
'protein'=>implode(',',$get_body_value['蛋白率']),
'kcal'=>implode(',',$get_body_value['基础代谢']),
'visceral'=>implode(',',$get_body_value['内脏指数']),
'sfr'=>implode(',',$get_body_value['皮下脂肪']),
'body_level'=>$get_body_value['肥胖等级'],
'body_type'=>$get_body_value['身体类型']
]);
if($set_user_data){
// 返回简要数据
if($data['type'] == 1){
return $this->msg(0,'success',['acd_id'=>2,'height'=>$get_body_value['身高'].'CM','weight'=>$get_body_value['体重'].'公斤','bmi'=>$get_body_value['BMI']]);
}
}else{
return $this->msg(10002,'数据存储失败');
}
}
// 用户身体数据卡片获取
function get_user_body_data($data){
$result = Db::table('app_card_body_data')
->alias('acbd')
->join('app_user_data aud','acbd.aud_id = aud.id','LEFT')
->where(['acbd.id'=>$data['id']])
->field('acbd.*,aud.birthday,aud.gender')
->find();
if(!$result){
return $this->msg(10002,'未找到数据');
}else{
$result_end = $this->processing_return_data($result);
// dump($result_end);
// die;
return $this->msg(0,'success',$result_end);
}
}
// 返回数据处理
function processing_return_data($data){
$result_end_data = [];
$month_num = $this->calculateAgeInMonthsWithPrecision($data['birthday'])*100;
$gender_val = $data['gender'];
foreach ($data as $key => $value) {
if($key != 'aud_id' && $key != 'id' && $key != 'create_time' && $key != 'last_update_time' && $key != 'acd_id' && $key != 'ROW_NUMBER' && $key != 'record_time' && $key != 'gender' && $key != 'birthday'){
// 如果大于16岁成人
if($data['age'] >= $this->age_limit){
$result_end_data[$key] = $this->result_end_data_mould;
if(array_key_exists($key, $this->unit_name)){
$result_end_data[$key]['name'] = $this->unit_name[$key];
}
if(array_key_exists($key, $this->unit_symbol)){
$result_end_data[$key]['unit'] = $this->unit_symbol[$key];
}
$result_end_data[$key]['value'] = explode(',',$value)[0];
if(strpos($value, ',')){
$result_end_data[$key]['standard'] = explode(',',$value)[1];
}
if(array_key_exists($key, $this->standard_color)){
$result_end_data[$key]['color'] = $this->standard_color[$key][$result_end_data[$key]['standard']];
}
}else{
if(array_key_exists($key, $this->bhw_list)){
$result_end_data[$key] = $this->result_end_data_mould;
$result_end_data[$key]['list'] = $this->bhw_list[$key];
if(array_key_exists($key, $this->unit_name)){
$result_end_data[$key]['name'] = $this->unit_name[$key];
}
if(array_key_exists($key, $this->unit_symbol)){
$result_end_data[$key]['unit'] = $this->unit_symbol[$key];
}
$result_end_data[$key]['value'] = explode(',',$value)[0];
if(strpos($value, ',')){
$result_end_data[$key]['standard'] = explode(',',$value)[1];
}
if(array_key_exists($key, $this->standard_color)){
$result_end_data[$key]['color'] = $this->standard_color[$key][$result_end_data[$key]['standard']];
}
if($key == 'bmi'){
// dump($month_num);
$bhw_date = Db::table('pc_bmistand2')->where("month >= $month_num and sex = '$gender_val'")->order('month')->limit(1)->select();
if($bhw_date){
$result_end_data[$key]['list'][0]['max_val'] = $bhw_date[0]['f1sd'];
$result_end_data[$key]['list'][1]['min_val'] = $bhw_date[0]['f1sd'];
$result_end_data[$key]['list'][1]['max_val'] = $bhw_date[0]['z1sd'];
$result_end_data[$key]['list'][2]['min_val'] = $bhw_date[0]['z1sd'];
$result_end_data[$key]['list'][2]['max_val'] = $bhw_date[0]['z2sd'];
$result_end_data[$key]['list'][3]['min_val'] = $bhw_date[0]['z2sd'];
}
}else if($key == 'height'){
$bhw_date = Db::table('pc_heightstand2')->where("month >= $month_num")->order('month')->limit(1)->select();
if($bhw_date){
$result_end_data[$key]['list'][0]['max_val'] = $bhw_date[0]['f2sd'];
$result_end_data[$key]['list'][1]['min_val'] = $bhw_date[0]['f2sd'];
$result_end_data[$key]['list'][1]['max_val'] = $bhw_date[0]['f1sd'];
$result_end_data[$key]['list'][2]['min_val'] = $bhw_date[0]['f1sd'];
$result_end_data[$key]['list'][2]['max_val'] = $bhw_date[0]['z1sd'];
$result_end_data[$key]['list'][3]['min_val'] = $bhw_date[0]['z1sd'];
$result_end_data[$key]['list'][3]['max_val'] = $bhw_date[0]['z2sd'];
$result_end_data[$key]['list'][4]['min_val'] = $bhw_date[0]['z2sd'];
$result_end_data[$key]['list'][4]['max_val'] = $bhw_date[0]['z3sd'];
}
}else if($key == 'weight'){
$bhw_date = Db::table('pc_weightstand2')->where("month >= $month_num")->order('month')->limit(1)->select();
// dump($value);
// dump($bhw_date);/
if($bhw_date){
$result_end_data[$key]['list'][0]['max_val'] = $bhw_date[0]['f2sd'];
$result_end_data[$key]['list'][1]['min_val'] = $bhw_date[0]['f2sd'];
$result_end_data[$key]['list'][1]['max_val'] = $bhw_date[0]['f1sd'];
$result_end_data[$key]['list'][2]['min_val'] = $bhw_date[0]['f1sd'];
$result_end_data[$key]['list'][2]['max_val'] = $bhw_date[0]['z1sd'];
$result_end_data[$key]['list'][3]['min_val'] = $bhw_date[0]['z1sd'];
$result_end_data[$key]['list'][3]['max_val'] = $bhw_date[0]['z2sd'];
$result_end_data[$key]['list'][4]['min_val'] = $bhw_date[0]['z2sd'];
$result_end_data[$key]['list'][4]['max_val'] = $bhw_date[0]['z3sd'];
}
}
}
}
}
}
return $result_end_data;
}
################################################################other################################################################
################################################################other################################################################
################################################################other################################################################
// 检查变量是否是一个只有数字的一维数组
function isNumericArray($array = [1,2,3]) {
if (!is_array($array)) {
return false; // 变量不是数组
}
foreach ($array as $value) {
if (!is_numeric($value)) {
return false; // 数组中包含非数字元素
}
}
// $result = Db::table('app_card_data')->where(['is_del'=>1])->cache(true,3600)->column('id');//查询结果缓存3600秒
$result = Db::table('app_card_data')->where(['is_del'=>0])->cache(true,3600)->select();//查询结果缓存3600秒
// dump(array_column($result, 'id'));
// die;
if(empty(array_diff($array, array_column($result, 'id')))){
return true;// 数组是一维的且只包含数字,且已经跟数据库比对过,每个数值都是有效
}else{
return false;//跟数据库比对过,存在无效数值
}
}
// 计算年龄
function calculate_age($data = '1991-04-20'){
$today = time(); // 获取当前时间的 Unix 时间戳
$birthDate = strtotime($data); // 将出生日期字符串转换为 Unix 时间戳
if ($birthDate !== false) {
$age = date('Y', $today) - date('Y', $birthDate);
// 如果当前年份的月份和日期小于出生年份的月份和日期,那么年龄减一
if (date('m-d', $today) < date('m-d', $birthDate)) {
$age--;
}
return $age;
} else {
return false;
}
}
// 计算天数
function daysSince($pastDate,$now = false)
{
// 创建一个表示过去日期的 DateTime 对象
$past = new \DateTime($pastDate);
if($now === false){
// 创建一个表示当前日期的 DateTime 对象
$now = new \DateTime();
}else{
$now = new \DateTime($now);
}
// 使用 DateTime::diff() 方法计算两个日期之间的差值
$interval = $past->diff($now);
// 返回相差的天数
return $interval->format('%a');
}
// 计算月份
function calculateAgeInMonthsWithPrecision($birthDateStr) {
// 获取当前日期
$now = new \DateTime();
// 将出生日期字符串转换为 DateTime 对象
$birthDate = \DateTime::createFromFormat('Y-m-d', $birthDateStr);
// 计算两者之间的差距(以月为单位,包含部分月份的小数)
$interval = $now->diff($birthDate);
$ageInMonths = $interval->y * 12 + $interval->m; // 年份乘以12加上月份
$remainingDays = $interval->d; // 当前月内的剩余天数
// 将剩余天数转换为小数月份假设一个月为30天进行近似计算
$partialMonth = $remainingDays / 30;
// 结果精确到小数点后两位
$ageInMonthsPrecise = round($ageInMonths + $partialMonth, 2);
return $ageInMonthsPrecise;
}
// 计算肌肉率 删
function calculate_jiroulv(){
phpinfo();
die;
$result = $result = Db::table('pc_weightstand')->order('Month')->select();
for ($i=0; $i < count($result); $i++) {
$data[$i]['month'] = $result[$i]['Month']*100/100;
$data[$i]['sex'] = $result[$i]['Sex'];
$data[$i]['f3sd'] = $result[$i]['f1sd']*100/100;
$data[$i]['f2sd'] = $result[$i]['f1sd']*100/100;
$data[$i]['f1sd'] = $result[$i]['f1sd']*100/100;
$data[$i]['median'] = $result[$i]['median']*100/100;
$data[$i]['z1sd'] = $result[$i]['z1sd']*100/100;
$data[$i]['z2sd'] = $result[$i]['z2sd']*100/100;
$data[$i]['z3sd'] = $result[$i]['z3sd']*100/100;
$data[$i]['isdel'] = $result[$i]['IsDeleted'];
$data[$i]['create_time'] = date('Y-m-d H:i:s');
}
$result = $result = Db::table('pc_weightstand2')->insertAll($data);
dump($result);
dump($data);
die;
}
// 计算骨重
function calculate_guzhong(){
}
// 计算蛋白率
function calculate_danbailv(){
}
// 计算基础代谢
function calculate_jichudaixie(){
}
// 计算内脏指数
function calculate_neizangzhishu(){
}
// 计算皮下脂肪
function calculate_pixiazhifang(){
}
// 计算肥胖等级
function calculate_feipangdengji(){
}
public function msg($code,$msg='',$data=[]){
return json(['code'=>$code,'msg'=>$msg,'data'=>$data]);
}
}