ParamService.php 2.9 KB
<?php
// +----------------------------------------------------------------------
// | bronet [ 以客户为中心 以奋斗者为本 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2017 http://www.bronet.cn All rights reserved.
// +----------------------------------------------------------------------
namespace api\portal\service;
use Think\Db;

class ParamService
{
   public function BMI($weight=0,$height=0){
       $bmi=$weight/pow(($height/100),2);
       return $bmi;
   }

    public function status($weight=0,$height=0){
        $bmi=$weight/pow(($height/100),2);
        if($bmi<=18.5){
            $status='消瘦';
        }elseif (18.5<$bmi&&$bmi<=23.9){
            $status='正常';
        }elseif (24<$bmi&&$bmi<=27.9){
            $status='超重';
        }elseif ($bmi>=28){
            $status='肥胖';
        }
        return $status;
    }

    public function overplus($weight=0,$height=0){
        $bmi=$weight/pow(($height/100),2);
        if($bmi<18.5){
            $overplus=18;
        }elseif (18.5<=$bmi&&$bmi<=24.9){
            $overplus=16;
        }elseif (25<$bmi){
            $overplus=11.5;
        }
        return $overplus;
    }

    public function bashBoard($before_weight=0,$weight=0,$height=0){
        $bmi=$weight/pow(($height/100),2);
        if($bmi<=18.5){
            $i=0.2;
        }elseif (18.5<$bmi&&$bmi<=23.9){
            $i=0.4;
        }elseif (24<$bmi&&$bmi<=27.9){
            $i=0.6;
        }elseif ($bmi>=28){
            $i=0.8;
        }
        return $before_weight+($this->overplus($weight,$height)*$i);
    }

    public function week_status($weight=0,$height=0){
        $bmi=$weight/pow(($height/100),2);
        if($bmi<=18.5){
            $status='1';
        }elseif (18.5<$bmi&&$bmi<=23.9){
            $status='2';
        }elseif (24<$bmi&&$bmi<=27.9){
            $status='3';
        }elseif ($bmi>=28){
            $status='4';
        }
        return $status;
    }

    public function nengliang($weight=0,$height=0,$weight_level="",$pregnant_week="",$register_time=""){
        $bmi=$this->BMI($weight,$height);
        if($bmi<=18.5){
            $type1=0;
        }elseif (18.5<$bmi&&$bmi<=23.9){
            $type1=1;
        }elseif (24<$bmi&&$bmi<=27.9){
            $type1=2;
        }elseif ($bmi>=28){
            $type1=3;
        }
        if ($weight_level=="休息状态"){
            $type2=[30,25,20,20];
        }elseif ($weight_level=="轻体力"){
            $type2=[35,30,25,25];
        }
        elseif ($weight_level=="中体力"){
            $type2=[40,35,30,30];
        }
        elseif ($weight_level=="重体力"){
            $type2=[45,40,35,35];
        }
        if (($pregnant_week+ceil((time()-$register_time)/24*60*60*7))<=12){
            $x=0;
        }else{
            $x=200;
        }
        $result=($height-105)*$type2[$type1]+$x;
        return $result;
    }
}