一、前言
感谢您选择使用我们的中学生身体数据健康评估APP(以下简称“本应用”)。我们深知您的个人信息安全至关重要,在您使用本应用后我们郑重承诺,将严格遵守相关法律法规,采取合理有效的措施保护您的个人隐私。本隐私协议旨在明确我们在采集、使用、存储、共享及保护您的个人信息的责任、义务。请您在使用本应用前,仔细阅读并理解本协议内容,一旦您开始使用本应用,即视为您同意我们使用您的个人信息,接受本协议的全部条款。
diff --git a/application/app/controller/Base.php b/application/app/controller/Base.php
index f12ff5f..48b47fb 100644
--- a/application/app/controller/Base.php
+++ b/application/app/controller/Base.php
@@ -210,6 +210,10 @@ class Base extends Controller{
return false;
}
+ // 判断一个字符串是否为两位以内小数
+ public function isTwoDecimalOrLess($str) {
+ return preg_match('/^\d*(\.\d{1,2})?$/', $str) === 1;
+ }
// 获取用户肺活量的标准值
public function get_vitalcapacity_data($id){
@@ -280,7 +284,14 @@ class Base extends Controller{
return $dateTime->format('Y-m-d H:i:s');
}
-
+ // 处理分秒变秒
+ function convertMinutesSecondsToStringSeconds($timeString) {
+ // 分割字符串获取分钟和秒
+ list($minutes, $seconds) = explode(':', $timeString);
+ // 将分钟和秒转换为秒
+ $totalSeconds = ($minutes * 60) + intval($seconds); // 确保秒是整数
+ return $totalSeconds;
+ }
// 时间加一或者减一
public function adjustDateTime($datetimeStr, $type) {
@@ -388,6 +399,12 @@ class Base extends Controller{
public function ceshiyong(){
+
+ phpinfo();
+ $token = '2d4ea9b3f44b169ddf64b2f3d2725ceb';
+ $time = cache($token);
+ dump($time);
+ die;
$aa = 15;
$a = 1;
for ($i=0; $i < 100; $i++) {
diff --git a/application/app/controller/Calculatebody.php b/application/app/controller/Calculatebody.php
index b37b607..14433fb 100644
--- a/application/app/controller/Calculatebody.php
+++ b/application/app/controller/Calculatebody.php
@@ -108,73 +108,157 @@ class Calculatebody extends Base{
// 身体得分修改end
$return_data['脂肪量'][0] = $result['fat_w'];
-
$return_data['脂肪率'][0] = $result['fat_r'];
- if(($data['gender']==1 && $data['age']<30 && $result['fat_r']<10) || ($data['gender']==1 && $data['age']>=30 && $result['fat_r']<11) || ($data['gender']==2 && $data['age']<30 && $result['fat_r']<20) || ($data['gender']==2 && $data['age']>=30 && $result['fat_r']<21)){
+ if(
+ ($data['gender']==1 && $data['age']<30 && $result['fat_r']<10) ||
+ ($data['gender']==1 && $data['age']>=30 && $result['fat_r']<11) ||
+ ($data['gender']==2 && $data['age']<30 && $result['fat_r']<20) ||
+ ($data['gender']==2 && $data['age']>=30 && $result['fat_r']<21)){
$return_data['脂肪率'][1] = '偏低';
$return_data['脂肪量'][1] = '偏低';
- }else if(($data['gender']==1 && $data['age']<30 && $result['fat_r']>=10 && $result['fat_r']<21) || ($data['gender']==1 && $data['age']>=30 && $result['fat_r']>=11 && $result['fat_r']<22) || ($data['gender']==2 && $data['age']<30 && $result['fat_r']>=20 && $result['fat_r']<31) || ($data['gender']==2 && $data['age']>=30 && $result['fat_r']>=21 && $result['fat_r']<32)){
+ }else if(
+ ($data['gender']==1 && $data['age']<30 && $result['fat_r']>=10 && $result['fat_r']<21) ||
+ ($data['gender']==1 && $data['age']>=30 && $result['fat_r']>=11 && $result['fat_r']<22) ||
+ ($data['gender']==2 && $data['age']<30 && $result['fat_r']>=20 && $result['fat_r']<31) ||
+ ($data['gender']==2 && $data['age']>=30 && $result['fat_r']>=21 && $result['fat_r']<32)){
$return_data['脂肪率'][1] = '标准';
$return_data['脂肪量'][1] = '标准';
- }else if(($data['gender']==1 && $data['age']<30 && $result['fat_r']>=21 && $result['fat_r']<26) || ($data['gender']==1 && $data['age']>=30 && $result['fat_r']>=22 && $result['fat_r']<27) || ($data['gender']==2 && $data['age']<30 && $result['fat_r']>=31 && $result['fat_r']<38) || ($data['gender']==2 && $data['age']>=30 && $result['fat_r']>=32 && $result['fat_r']<39)){
+ }else if(
+ ($data['gender']==1 && $data['age']<30 && $result['fat_r']>=21 && $result['fat_r']<26) ||
+ ($data['gender']==1 && $data['age']>=30 && $result['fat_r']>=22 && $result['fat_r']<27) ||
+ ($data['gender']==2 && $data['age']<30 && $result['fat_r']>=31 && $result['fat_r']<38) ||
+ ($data['gender']==2 && $data['age']>=30 && $result['fat_r']>=32 && $result['fat_r']<39)){
$return_data['脂肪率'][1] = '偏高';
$return_data['脂肪量'][1] = '偏高';
- }else if(($data['gender']==1 && $data['age']<30 && $result['fat_r']>=26) || ($data['gender']==1 && $data['age']>=30 && $result['fat_r']>=27) || ($data['gender']==2 && $data['age']<30 && $result['fat_r']<38) || ($data['gender']==2 && $data['age']>=30 && $result['fat_r']<39)){
+ }else if(
+ ($data['gender']==1 && $data['age']<30 && $result['fat_r']>=26) ||
+ ($data['gender']==1 && $data['age']>=30 && $result['fat_r']>=27) ||
+ ($data['gender']==2 && $data['age']<30 && $result['fat_r']<38) ||
+ ($data['gender']==2 && $data['age']>=30 && $result['fat_r']<39)){
$return_data['脂肪率'][1] = '高';
$return_data['脂肪量'][1] = '高';
+ }else{
+ $return_data['脂肪率'][1] = '异常';
+ $return_data['脂肪量'][1] = '异常';
}
$return_data['肌肉量'][0] = $result['muscleval'];
-
$return_data['肌肉率'][0] = $result['muscle'];
- if(($data['gender']==1 && $result['muscle']<40) || ($data['gender']==2 && $result['muscle']<30)){
+ if(
+ ($data['gender']==1 && $result['muscle']<40) ||
+ ($data['gender']==2 && $result['muscle']<30)){
$return_data['肌肉量'][1] = '不足';
$return_data['肌肉率'][1] = '不足';
- }else if(($data['gender']==1 && $result['muscle']>=40 && $result['muscle']<60) || ($data['gender']==2 && $result['muscle']>=30 && $result['muscle']<50)){
+ }else if(
+ ($data['gender']==1 && $result['muscle']>=40 && $result['muscle']<60) ||
+ ($data['gender']==2 && $result['muscle']>=30 && $result['muscle']<50)){
$return_data['肌肉量'][1] = '标准';
$return_data['肌肉率'][1] = '标准';
- }else if(($data['gender']==1 && $result['muscle']>=60) || ($data['gender']==2 && $result['muscle']>=50)){
+ }else if(
+ ($data['gender']==1 && $result['muscle']>=60) ||
+ ($data['gender']==2 && $result['muscle']>=50)){
$return_data['肌肉量'][1] = '优';
$return_data['肌肉率'][1] = '优';
+ }else{
+ $return_data['肌肉量'][1] = '异常';
+ $return_data['肌肉率'][1] = '异常';
}
$return_data['水分'][0] = $result['water'];
- if(($data['gender']==1 && $result['water']<55) || ($data['gender']==2 && $result['water']<45)){
+ if(
+ ($data['gender']==1 && $result['water']<55) ||
+ ($data['gender']==2 && $result['water']<45)){
$return_data['水分'][1] = '不足';
- }else if(($data['gender']==1 && $result['water']>=55 && $result['water']<65) || ($data['gender']==2 && $result['water']>=45 && $result['water']<60)){
+ }else if(
+ ($data['gender']==1 && $result['water']>=55 && $result['water']<65) ||
+ ($data['gender']==2 && $result['water']>=45 && $result['water']<60)){
$return_data['水分'][1] = '标准';
- }else if(($data['gender']==1 && $result['water']>65) || ($data['gender']==2 && $result['water']>60)){
+ }else if(
+ ($data['gender']==1 && $result['water']>65) ||
+ ($data['gender']==2 && $result['water']>60)){
$return_data['水分'][1] = '优';
+ }else{
+ $return_data['水分'][1] = '异常';
}
$return_data['蛋白量'][0] = $result['proteinval'];
-
$return_data['蛋白率'][0] = $result['protein'];
- if(($data['gender']==1 && $result['protein']<16) || ($data['gender']==2 && $result['protein']<14)){
+ if(
+ ($data['gender']==1 && $result['protein']<16) ||
+ ($data['gender']==2 && $result['protein']<14)){
$return_data['蛋白量'][1] = '不足';
$return_data['蛋白率'][1] = '不足';
- }else if(($data['gender']==1 && $result['protein']>=16 && $result['protein']<18) || ($data['gender']==2 && $result['protein']>=14 && $result['protein']<16)){
+ }else if(
+ ($data['gender']==1 && $result['protein']>=16 && $result['protein']<18) ||
+ ($data['gender']==2 && $result['protein']>=14 && $result['protein']<16)){
$return_data['蛋白量'][1] = '标准';
$return_data['蛋白率'][1] = '标准';
- }else if(($data['gender']==1 && $result['protein']>18) || ($data['gender']==2 && $result['protein']>16)){
+ }else if(
+ ($data['gender']==1 && $result['protein']>18) ||
+ ($data['gender']==2 && $result['protein']>16)){
$return_data['蛋白量'][1] = '优';
$return_data['蛋白率'][1] = '优';
+ }else{
+ $return_data['蛋白量'][1] = '异常';
+ $return_data['蛋白率'][1] = '异常';
}
$return_data['骨重'][0] = $result['bone'];
- if(($data['gender']==1 && $data['weight']<60 && $result['bone']<2.4) || ($data['gender']==1 && $data['weight']>=60 && $data['weight']<75 && $result['bone']<2.8) || ($data['gender']==1 && $data['weight']>=75 && $result['bone']<3.1) || ($data['gender']==2 && $data['weight']<45 && $result['bone']<1.7) || ($data['gender']==2 && $data['weight']>=45 && $data['weight']<60 && $result['bone']<2.1) || ($data['gender']==2 && $data['weight']>=60 && $result['bone']<2.4)){
+ if(
+ ($data['gender']==1 && $data['weight']<60 && $result['bone']<2.4) ||
+ ($data['gender']==1 && $data['weight']>=60 && $data['weight']<75 && $result['bone']<2.8) ||
+ ($data['gender']==1 && $data['weight']>=75 && $result['bone']<3.1) ||
+ ($data['gender']==2 && $data['weight']<45 && $result['bone']<1.7) ||
+ ($data['gender']==2 && $data['weight']>=45 && $data['weight']<60 && $result['bone']<2.1) ||
+ ($data['gender']==2 && $data['weight']>=60 && $result['bone']<2.4)){
$return_data['骨重'][1] = '不足';
- }else if(($data['gender']==1 && $data['weight']<60 && $result['bone']>=2.4 && $result['bone']<=2.6) || ($data['gender']==1 && $data['weight']>=60 && $data['weight']<75 && $result['bone']>=2.8 && $result['bone']<=3) || ($data['gender']==1 && $data['weight']>=75 && $result['bone']>=3.1 && $result['bone']<=3.3) || ($data['gender']==2 && $data['weight']<45 && $result['bone']>=1.7 && $result['bone']<=1.9) || ($data['gender']==2 && $data['weight']>=45 && $data['weight']<60 && $result['bone']>=2.1 && $result['bone']<=2.3) || ($data['gender']==2 && $data['weight']>=60 && $result['bone']>=2.4 && $result['bone']<=2.6)){
+ }else if(
+ ($data['gender']==1 && $data['weight']<60 && $result['bone']>=2.4 && $result['bone']<=2.6) ||
+ ($data['gender']==1 && $data['weight']>=60 && $data['weight']<75 && $result['bone']>=2.8 && $result['bone']<=3) ||
+ ($data['gender']==1 && $data['weight']>=75 && $result['bone']>=3.1 && $result['bone']<=3.3) ||
+ ($data['gender']==2 && $data['weight']<45 && $result['bone']>=1.7 && $result['bone']<=1.9) ||
+ ($data['gender']==2 && $data['weight']>=45 && $data['weight']<60 && $result['bone']>=2.1 && $result['bone']<=2.3) ||
+ ($data['gender']==2 && $data['weight']>=60 && $result['bone']>=2.4 && $result['bone']<=2.6)){
$return_data['骨重'][1] = '标准';
- }else if(($data['gender']==1 && $data['weight']<60 && $result['bone']>2.6) || ($data['gender']==1 && $data['weight']>=60 && $data['weight']<75 && $result['bone']>3) || ($data['gender']==1 && $data['weight']>=75 && $result['bone']<3.3) || ($data['gender']==2 && $data['weight']<45 && $result['bone']>1.9) || ($data['gender']==2 && $data['weight']>=45 && $data['weight']<60 && $result['bone']>2.3) || ($data['gender']==2 && $data['weight']>=60 && $result['bone']>2.6)){
+ }else if(
+ ($data['gender']==1 && $data['weight']<60 && $result['bone']>2.6) ||
+ ($data['gender']==1 && $data['weight']>=60 && $data['weight']<75 && $result['bone']>3) ||
+ ($data['gender']==1 && $data['weight']>=75 && $result['bone']<3.3) ||
+ ($data['gender']==2 && $data['weight']<45 && $result['bone']>1.9) ||
+ ($data['gender']==2 && $data['weight']>=45 && $data['weight']<60 && $result['bone']>2.3) ||
+ ($data['gender']==2 && $data['weight']>=60 && $result['bone']>2.6)){
$return_data['骨重'][1] = '优';
+ }else{
+ $return_data['骨重'][1] = '异常';
}
$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] = '偏低';
- }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'])){
$return_data['基础代谢'][1] = '优';
+ }else{
+ $return_data['基础代谢'][1] = '异常';
}
$return_data['内脏指数'][0] = $result['visceral'];
@@ -184,18 +268,26 @@ class Calculatebody extends Base{
$return_data['内脏指数'][1] = '警惕';
}else if($result['visceral']>=14){
$return_data['内脏指数'][1] = '危险';
+ }else{
+ $return_data['内脏指数'][1] = '异常';
}
$return_data['皮下脂肪'][0] = $result['sfr'];
- if(($data['gender']==1 && $result['sfr']<7) || ($data['gender']==2 && $result['sfr']<11)){
+ if(
+ ($data['gender']==1 && $result['sfr']<7) ||
+ ($data['gender']==2 && $result['sfr']<11)){
$return_data['皮下脂肪'][1] = '不足';
- }else if(($data['gender']==1 && $result['sfr']>=7 && $result['sfr']<15) || ($data['gender']==2 && $result['sfr']>=11 && $result['sfr']<17)){
+ }else if(
+ ($data['gender']==1 && $result['sfr']>=7 && $result['sfr']<15) ||
+ ($data['gender']==2 && $result['sfr']>=11 && $result['sfr']<17)){
$return_data['皮下脂肪'][1] = '标准';
- }else if(($data['gender']==1 && $result['sfr']>=15) || ($data['gender']==2 && $result['sfr']>=17)){
+ }else if(
+ ($data['gender']==1 && $result['sfr']>=15) ||
+ ($data['gender']==2 && $result['sfr']>=17)){
$return_data['皮下脂肪'][1] = '偏高';
+ }else{
+ $return_data['皮下脂肪'][1] = '异常';
}
-
-
// 脂肪率:偏低 标准 偏高 高
// 肌肉率:不足 标准 优
@@ -286,7 +378,7 @@ class Calculatebody extends Base{
// 除 bcdiv(,,20)
// 计算身体数据,BMI、脂肪率、脂肪量、肌肉率、肌肉量....
- function calculate_body_data($height,$weight,$age,$gender,$impedance){
+ public function calculate_body_data($height,$weight,$age,$gender,$impedance){
$result_data = [];
$mheight = bcdiv($height, '100', 20); // 假设我们保留20位小数
diff --git a/application/app/controller/Card.php b/application/app/controller/Card.php
index 4d1feb9..d94a254 100644
--- a/application/app/controller/Card.php
+++ b/application/app/controller/Card.php
@@ -81,7 +81,7 @@ class Card extends Base{
// 详细卡片信息
// $data = ['id'=>'2']
- public function card_data_detailed($data=['aud_id'=>'83','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
+ public function card_data_detailed($data=['aud_id'=>'61','token'=>'caadd1be045a65f30b92aa805f1de54a']){
if(count(input('post.')) > 0){
$data = input('post.');
}
@@ -273,12 +273,14 @@ class Card extends Base{
$result_end = $this->processing_return_data_new($result[0]);
$cardparts = new Cardparts;
// dump($result_end);
- // die;
$result_end['gender'] = $result[0]['gender'];
$result_end['record_time'] = $result[0]['record_time'];
$result_end['score'] = $result_end['score'];
$result_end['body_type'] = $result_end['body_type'];
$result_end = $cardparts->conversion_interval($result_end);
+ // dump($result);
+ // dump($result_end);
+ // die;
$result_end['cplist'] = $this->grow_up_recommendation([
'birthday'=>$result[0]['birthday'],
'body'=>[
@@ -287,12 +289,17 @@ class Card extends Base{
'bmi'=>$result[0]['bmi']
],
]);
- $result_end['literature'] = [
- '《中华人民共和国卫生行业标准WS 423-2013》',
- '《中华人民共和国卫生行业标准WS/T 612-2018》',
- '《中华人民共和国卫生行业标准WS/T1586-2018》',
- '《WHO 5~19岁身高/体重判定标准》',
- ];
+ if(count($result_end['cplist']['nutritionlist']) <= 0){
+ // $result_end['cplist'] = [];
+ $result_end['literature'] = [];
+ }else{
+ $result_end['literature'] = [
+ '《中华人民共和国卫生行业标准WS 423-2013》',
+ '《中华人民共和国卫生行业标准WS/T 612-2018》',
+ '《中华人民共和国卫生行业标准WS/T1586-2018》',
+ '《WHO 5~19岁身高/体重判定标准》',
+ ];
+ }
return $this->msg($result_end);
}
}
@@ -302,9 +309,12 @@ class Card extends Base{
$result_end_data = [];
$month_num = $this->calculateAgeInMonthsWithPrecision($data['birthday']);
$gender_val = $data['gender'];
+ // dump($data);
+ // dump($this->result_end_data_mould);
+ // die;
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'){
-
+ // dump($key);
// 设置单个数据格式
$result_end_data[$key] = $this->result_end_data_mould;
if(array_key_exists($key, $this->unit_name)){
@@ -317,8 +327,14 @@ class Card extends Base{
if(strpos($value, ',')){
$result_end_data[$key]['standard'] = explode(',',$value)[1];
}
+ // dump($result_end_data[$key]);
if(array_key_exists($key, $this->standard_color)){
- $result_end_data[$key]['color'] = $this->standard_color[$key][$result_end_data[$key]['standard']];
+ // dump($key);
+ // dump($result_end_data[$key]);
+ // dump($this->standard_color[$key]);
+ if($result_end_data[$key]['standard'] != '异常'){
+ $result_end_data[$key]['color'] = $this->standard_color[$key][$result_end_data[$key]['standard']];
+ }
}
// 如果小于16岁(儿童)
if($data['age'] < $this->age_limit){
@@ -391,8 +407,18 @@ class Card extends Base{
'sleeplist'=>[],//睡眠
'moodlist'=>[],//情绪
];
+
$temporary_arr = [];
foreach ($data['body'] as $key => $value) {
+ if(explode(',',$value)[1] == '无'){
+ $result = [
+ 'nutritionlist'=>[],//营养
+ 'sportlist'=>[],//运动
+ 'sleeplist'=>[],//睡眠
+ 'moodlist'=>[],//情绪
+ ];
+ return $result;
+ }
$temporary_arr[$key] = $this->card_body_level[$key]['list'][explode(',',$value)[1]];
}
$min_value = min($temporary_arr);
diff --git a/application/app/controller/Cardparts.php b/application/app/controller/Cardparts.php
index af05864..cc9ec50 100644
--- a/application/app/controller/Cardparts.php
+++ b/application/app/controller/Cardparts.php
@@ -242,6 +242,10 @@ class Cardparts extends Base{
}else{
$temporary_arr['bottom_list'][$key]['list'] = $this->fat_r_w[$gender]['30'];
}
+ // 处理异常
+ if($temporary_arr['bottom_list'][$key]['standard'] == '异常'){
+ $temporary_arr['bottom_list'][$key] = $this->handling_exceptions($temporary_arr['bottom_list'][$key]);
+ }
$temporary_arr['bottom_list'][$key]['offset'] = $this->calculate_landing_point($temporary_arr['bottom_list'][$key]['list'],$temporary_arr['bottom_list'][$key]['value'],$temporary_arr['bottom_list'][$key]['standard']);
}
// 脂肪量
@@ -252,12 +256,20 @@ class Cardparts extends Base{
$temporary_arr['bottom_list'][$key]['list'] = $this->fat_r_w[$gender]['30'];
}
$temporary_arr['bottom_list'][$key]['list'] = $this->calculate_new_standard($temporary_arr['bottom_list'][$key]['list'],$weight,$value['key_name']);
+ // 处理异常
+ if($temporary_arr['bottom_list'][$key]['standard'] == '异常'){
+ $temporary_arr['bottom_list'][$key] = $this->handling_exceptions($temporary_arr['bottom_list'][$key]);
+ }
$temporary_arr['bottom_list'][$key]['offset'] = $this->calculate_landing_point($temporary_arr['bottom_list'][$key]['list'],$temporary_arr['bottom_list'][$key]['value'],$temporary_arr['bottom_list'][$key]['standard']);
}
// 肌肉率
else if($value['key_name'] == 'muscle'){
// dump('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
$temporary_arr['bottom_list'][$key]['list'] = $this->muscle_muscleval[$gender];
+ // 处理异常
+ if($temporary_arr['bottom_list'][$key]['standard'] == '异常'){
+ $temporary_arr['bottom_list'][$key] = $this->handling_exceptions($temporary_arr['bottom_list'][$key]);
+ }
$temporary_arr['bottom_list'][$key]['offset'] = $this->calculate_landing_point($temporary_arr['bottom_list'][$key]['list'],$temporary_arr['bottom_list'][$key]['value'],$temporary_arr['bottom_list'][$key]['standard']);
// dump($temporary_arr['bottom_list'][$key]);
}
@@ -266,18 +278,30 @@ class Cardparts extends Base{
// dump('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
$temporary_arr['bottom_list'][$key]['list'] = $this->muscle_muscleval[$gender];
$temporary_arr['bottom_list'][$key]['list'] = $this->calculate_new_standard($temporary_arr['bottom_list'][$key]['list'],$weight,$value['key_name']);
+ // 处理异常
+ if($temporary_arr['bottom_list'][$key]['standard'] == '异常'){
+ $temporary_arr['bottom_list'][$key] = $this->handling_exceptions($temporary_arr['bottom_list'][$key]);
+ }
$temporary_arr['bottom_list'][$key]['offset'] = $this->calculate_landing_point($temporary_arr['bottom_list'][$key]['list'],$temporary_arr['bottom_list'][$key]['value'],$temporary_arr['bottom_list'][$key]['standard']);
// dump($temporary_arr['bottom_list'][$key]);
}
// 水分
else if($value['key_name'] == 'water'){
$temporary_arr['bottom_list'][$key]['list'] = $this->water[$gender];
+ // 处理异常
+ if($temporary_arr['bottom_list'][$key]['standard'] == '异常'){
+ $temporary_arr['bottom_list'][$key] = $this->handling_exceptions($temporary_arr['bottom_list'][$key]);
+ }
$temporary_arr['bottom_list'][$key]['offset'] = $this->calculate_landing_point($temporary_arr['bottom_list'][$key]['list'],$temporary_arr['bottom_list'][$key]['value'],$temporary_arr['bottom_list'][$key]['standard']);
}
// 蛋白量
else if($value['key_name'] == 'proteinval'){
$temporary_arr['bottom_list'][$key]['list'] = $this->proteinval_protein[$gender];
$temporary_arr['bottom_list'][$key]['list'] = $this->calculate_new_standard($temporary_arr['bottom_list'][$key]['list'],$weight,$value['key_name']);
+ // 处理异常
+ if($temporary_arr['bottom_list'][$key]['standard'] == '异常'){
+ $temporary_arr['bottom_list'][$key] = $this->handling_exceptions($temporary_arr['bottom_list'][$key]);
+ }
$temporary_arr['bottom_list'][$key]['offset'] = $this->calculate_landing_point($temporary_arr['bottom_list'][$key]['list'],$temporary_arr['bottom_list'][$key]['value'],$temporary_arr['bottom_list'][$key]['standard']);
}
// 骨重
@@ -299,26 +323,47 @@ class Cardparts extends Base{
$temporary_arr['bottom_list'][$key]['list'] = $this->bone[$gender]['60'];
}
}
+ // dump($temporary_arr['bottom_list'][$key]);
+ // 处理异常
+ if($temporary_arr['bottom_list'][$key]['standard'] == '异常'){
+ $temporary_arr['bottom_list'][$key] = $this->handling_exceptions($temporary_arr['bottom_list'][$key]);
+ }
$temporary_arr['bottom_list'][$key]['offset'] = $this->calculate_landing_point($temporary_arr['bottom_list'][$key]['list'],$temporary_arr['bottom_list'][$key]['value'],$temporary_arr['bottom_list'][$key]['standard']);
}
// 蛋白率
else if($value['key_name'] == 'protein'){
$temporary_arr['bottom_list'][$key]['list'] = $this->proteinval_protein[$gender];
+ // 处理异常
+ if($temporary_arr['bottom_list'][$key]['standard'] == '异常'){
+ $temporary_arr['bottom_list'][$key] = $this->handling_exceptions($temporary_arr['bottom_list'][$key]);
+ }
$temporary_arr['bottom_list'][$key]['offset'] = $this->calculate_landing_point($temporary_arr['bottom_list'][$key]['list'],$temporary_arr['bottom_list'][$key]['value'],$temporary_arr['bottom_list'][$key]['standard']);
}
// 基础代谢
else if($value['key_name'] == 'kcal'){
$temporary_arr['bottom_list'][$key]['list'] = $this->calculate_new_standard($this->kcal,$weight,$value['key_name'],$age,$gender);
+ // 处理异常
+ if($temporary_arr['bottom_list'][$key]['standard'] == '异常'){
+ $temporary_arr['bottom_list'][$key] = $this->handling_exceptions($temporary_arr['bottom_list'][$key]);
+ }
$temporary_arr['bottom_list'][$key]['offset'] = $this->calculate_landing_point($temporary_arr['bottom_list'][$key]['list'],$temporary_arr['bottom_list'][$key]['value'],$temporary_arr['bottom_list'][$key]['standard']);
}
// 内脏指数
else if($value['key_name'] == 'visceral'){
$temporary_arr['bottom_list'][$key]['list'] = $this->visceral[$gender];
+ // 处理异常
+ if($temporary_arr['bottom_list'][$key]['standard'] == '异常'){
+ $temporary_arr['bottom_list'][$key] = $this->handling_exceptions($temporary_arr['bottom_list'][$key]);
+ }
$temporary_arr['bottom_list'][$key]['offset'] = $this->calculate_landing_point($temporary_arr['bottom_list'][$key]['list'],$temporary_arr['bottom_list'][$key]['value'],$temporary_arr['bottom_list'][$key]['standard']);
}
// 皮下脂肪
else if($value['key_name'] == 'sfr'){
$temporary_arr['bottom_list'][$key]['list'] = $this->sfr[$gender];
+ // 处理异常
+ if($temporary_arr['bottom_list'][$key]['standard'] == '异常'){
+ $temporary_arr['bottom_list'][$key] = $this->handling_exceptions($temporary_arr['bottom_list'][$key]);
+ }
$temporary_arr['bottom_list'][$key]['offset'] = $this->calculate_landing_point($temporary_arr['bottom_list'][$key]['list'],$temporary_arr['bottom_list'][$key]['value'],$temporary_arr['bottom_list'][$key]['standard']);
}
}
@@ -419,5 +464,18 @@ class Cardparts extends Base{
// dump($w);
// dump($k);
}
+
+
+ // 处理异常
+ public function handling_exceptions($data){
+ if($data['value'] <= $data['list'][0]['max_val']){
+ $data['standard'] = $data['list'][0]['text'];
+ $data['color'] = $data['list'][0]['color'];
+ }else if($data['value'] >= $data['list'][count($data['list'])-1]['min_val']){
+ $data['standard'] = $data['list'][count($data['list'])-1]['text'];
+ $data['color'] = $data['list'][count($data['list'])-1]['color'];
+ }
+ return $data;
+ }
}
\ No newline at end of file
diff --git a/application/app/controller/Cardpublic.php b/application/app/controller/Cardpublic.php
new file mode 100644
index 0000000..f2b0753
--- /dev/null
+++ b/application/app/controller/Cardpublic.php
@@ -0,0 +1,452 @@
+'0','max_val'=>'59','text'=>'不及格','color'=>'#FB5755'],
+ ['min_val'=>'60','max_val'=>'79','text'=>'及格','color'=>'#FCAE00'],
+ ['min_val'=>'80','max_val'=>'89','text'=>'良好','color'=>'#58CF67'],
+ ['min_val'=>'90','max_val'=>'150','text'=>'优秀','color'=>'#6691EF'],
+ ];
+
+ // 示意接口
+ public function card_curve_chart($data = ['aud_id'=>'83','s_time'=>'2024-04-01','e_time'=>'2024-07-25','token'=>'caadd1be045a65f30b92aa805f1de54a']){
+ if(count(input('post.')) > 0){
+ $data = input('post.');
+ }
+ if(!array_key_exists('aud_id', $data) || !array_key_exists('s_time', $data) || !array_key_exists('e_time', $data) || !array_key_exists('token', $data)){
+ return $this->msg(10001);
+ }
+ if($this->token_time_validate($data['token']) === false){
+ return $this->msg(20001);
+ }
+ unset($data['token']);
+ }
+ // 获取卡片数据
+ public function get_card_content($data = ['aud_id'=>'83','acd_id'=>'10','token'=>'caadd1be045a65f30b92aa805f1de54a']){
+ if(count(input('post.')) > 0){
+ $data = input('post.');
+ }
+ if(!array_key_exists('aud_id', $data) || !array_key_exists('acd_id', $data) || !array_key_exists('token', $data)){
+ return $this->msg(10001);
+ }
+ if($this->token_time_validate($data['token']) === false){
+ return $this->msg(20001);
+ }
+ // dump(111);
+ // die;
+ return $this->get_card_content_action($data);
+ }
+
+ // 存储信息
+ public function data_save($data = ['aud_id'=>'83','acd_id'=>'10','name'=>'50米','data'=>'10.3','record_time'=>'2024-09-06','token'=>'caadd1be045a65f30b92aa805f1de54a']){
+ if(count(input('post.')) > 0){
+ $data = input('post.');
+ }
+ if(!array_key_exists('aud_id', $data) || !array_key_exists('acd_id', $data) || !array_key_exists('name', $data) || !array_key_exists('data', $data) || !array_key_exists('record_time', $data) || !array_key_exists('token', $data)){
+ return $this->msg(10001);
+ }
+ if($this->token_time_validate($data['token']) === false){
+ return $this->msg(20001);
+ }
+
+ return $this->data_save_action($data);
+ }
+
+ // 获取标签项目信息
+ public function get_label_list($data = ['aud_id'=>'83','acd_id'=>'10','token'=>'caadd1be045a65f30b92aa805f1de54a']){
+ if(count(input('post.')) > 0){
+ $data = input('post.');
+ }
+ if(!array_key_exists('aud_id', $data) || !array_key_exists('acd_id', $data) || !array_key_exists('token', $data)){
+ return $this->msg(10001);
+ }
+ if($this->token_time_validate($data['token']) === false){
+ return $this->msg(20001);
+ }
+ return $this->get_label_list_action($data);
+ }
+
+
+
+ ################################################################action################################################################
+ ################################################################action################################################################
+
+ ##################################################get_card_content##################################################
+ public function get_card_content_action($data){
+ // 查找用户是存在
+ $user_data = Db::table('app_user_data')->where(['id'=>$data['aud_id']])->field('id,gender')->find();
+ if(!$user_data){
+ return $this->msg(10004);
+ }
+ // 卡片是否存在,以及是否含有子项
+ $card_data_sub_item = Db::table('app_card_data_sub_item')->where("acd_id = ".$data['acd_id']." and suit_gender LIKE '%".$user_data['gender']."%'")->field('id,type,name,unit')->select();
+ if(!$card_data_sub_item){
+ return $this->msg(10004);
+ }
+ $return_data = [
+ 'icon' => '',
+ 'label_list' => [],
+ 'line_list' => [],
+ 'label_data' => [],
+
+ ];
+ $data_this_time = [];
+ $today_time = date('Y-m-d');
+ foreach ($card_data_sub_item as $key => $value) {
+ // 设置单项数据模板
+ $temporary_arr_c = [
+ 'project_name' => $value['name'],
+ 'score' => '',
+ 'max_score' => '',
+ 'standard' => '',
+ 'this_time_title' => '本次成绩',
+ 'this_time_value' => '',
+ 'today_time_title' => '今日总计',
+ 'today_times' => 0,
+ 'today_time_value' => 0,
+ 'all_time_title' => '总计平均',
+ 'all_times' => 0,
+ 'all_time_value' => 0,
+ 'describe' => '',
+ 'color' => '',
+ 'offset' => '',
+ 'unit_data' => '',
+ ];
+ // 添加标签
+ array_push($return_data['label_list'],$value['name']);
+ // 添加线性轴描述
+ $return_data['line_list'] = $this->level_data;
+ // 查询最后一次成绩
+ $data_this_time = Db::table('app_card_data_sub_item_data')->where(['aud_id'=>$data['aud_id'],'acdsi_id'=>$value['id']])->order('id desc')->field('id,detailed_msg,achievement')->find();
+ // dump($data_this_time);
+ if($data_this_time){
+ $data_this_time['detailed_msg'] = json_decode($data_this_time['detailed_msg'],true);
+ // 设置基础数据
+ $temporary_arr_c['score'] = $data_this_time['detailed_msg']['score'].'分';
+ $temporary_arr_c['max_score'] = $data_this_time['detailed_msg']['max_score'];
+ $temporary_arr_c['standard'] = $data_this_time['detailed_msg']['standard'];
+ $temporary_arr_c['describe'] = $data_this_time['detailed_msg']['describe'];
+ $temporary_arr_c['color'] = $data_this_time['detailed_msg']['color'];
+ $temporary_arr_c['offset'] = $data_this_time['detailed_msg']['offset'];
+ $temporary_arr_c['unit_data'] = $data_this_time['detailed_msg']['unit_data'];
+ // 获取到该项所有数据
+ $all_time_title = Db::table('app_card_data_sub_item_data')->where(['aud_id'=>$data['aud_id'],'acdsi_id'=>$value['id']])->order('id desc')->field('id,achievement,LEFT(record_time,10) AS r_t')->select();
+ // 处理今日,以及总计数据
+ if($data_this_time['detailed_msg']['unit_data'] == '分/秒'){
+ // 如果是分秒形式的数据
+ // 设置今日数据跟总计数据的格式
+ $temporary_arr_c['today_time_value'] = "0:00";
+ $temporary_arr_c['all_time_value'] = "0:00";
+ // 处理本次数据最终格式
+ list($minutes, $seconds) = explode(':', $data_this_time['achievement']);
+ $temporary_arr_c['this_time_value'] = $minutes . '分' . sprintf('%02d', $seconds) . '秒';
+
+ // 计算今日总计&所有平均
+ $temporary_arr_c['all_times'] = count($all_time_title);
+ foreach ($all_time_title as $k1 => $v1) {
+ $temporary_arr_c['all_time_value'] = $this->sumTimes($temporary_arr_c['all_time_value'],$v1['achievement']);
+ if($v1['r_t'] == $today_time){
+ $temporary_arr_c['today_times'] = $temporary_arr_c['today_times']+1;
+ $temporary_arr_c['today_time_value'] = $this->sumTimes($temporary_arr_c['today_time_value'],$v1['achievement']);
+ }
+ }
+ $temporary_arr_c['all_time_value'] = $this->averageTime($temporary_arr_c['all_time_value'],$temporary_arr_c['all_times']);
+ list($minutes, $seconds) = explode(':', $temporary_arr_c['today_time_value']);
+ $temporary_arr_c['today_time_value'] = $minutes . '分' . sprintf('%02d', $seconds) . '秒';
+
+ }else{
+
+ $temporary_arr_c['this_time_value'] = $data_this_time['achievement'].$data_this_time['detailed_msg']['unit_data'];
+
+ $temporary_arr_c['all_times'] = count($all_time_title);
+ foreach ($all_time_title as $k1 => $v1) {
+ $temporary_arr_c['all_time_value'] = $temporary_arr_c['all_time_value']+$v1['achievement'];
+ if($v1['r_t'] == $today_time){
+ $temporary_arr_c['today_times'] = $temporary_arr_c['today_times']+1;
+ $temporary_arr_c['today_time_value'] = $temporary_arr_c['today_time_value']+$v1['achievement'];
+ }
+ }
+ $temporary_arr_c['today_time_value'] = $temporary_arr_c['today_time_value'].$data_this_time['detailed_msg']['unit_data'];
+
+ $temporary_arr_c['all_time_value'] = bcdiv($temporary_arr_c['all_time_value'],$temporary_arr_c['all_times'],1).$data_this_time['detailed_msg']['unit_data'];
+ }
+ $temporary_arr_c['today_times'] = $temporary_arr_c['today_times'].'次';
+ $temporary_arr_c['all_times'] = $temporary_arr_c['all_times'].'次';
+
+ }
+ array_push($return_data['label_data'],$temporary_arr_c);
+ }
+ return $this->msg($return_data);
+ }
+ ##################################################data_save##################################################
+ public function data_save_action($data){
+
+ // 查找用户是存在
+ $user_data = Db::table('app_user_data')->where(['id'=>$data['aud_id']])->field('id,gender')->find();
+ if(!$user_data){
+ return $this->msg(10004);
+ }
+ // 查找项目是否存在,以及获取项目信息
+ $card_data_sub_item_data = Db::table('app_card_data_sub_item')->where("name = '".$data['name']."' and suit_gender LIKE '%".$user_data['gender']."%'")->field('id,type,name,unit,acd_id')->find();
+ if(!$card_data_sub_item_data){
+ return $this->msg(10004);
+ }
+ // 如果项目数据类型为分秒格式
+ if($card_data_sub_item_data['type'] == 1){
+ // 判断是否为整型,或者字符串类型的整型数字
+ if(!$this->isValidInteger($data['data'])){
+ return $this->msg(10005);
+ }
+ }else if($card_data_sub_item_data['type'] == 4){
+ // 检查字符串格式是否为“数字”+“:”+“数字”的格式,且冒号后的数字小于等于59
+ if(!$this->isValidFormatWithLimit($data['data'])){
+ return $this->msg(10005);
+ }
+ }else if($card_data_sub_item_data['type'] == 2){
+ // 判断一个字符串是否为两位以内小数
+ // dump($this->isTwoDecimalOrLess($data['data']));
+ if(!$this->isTwoDecimalOrLess($data['data'])){
+ return $this->msg(10005);
+ }
+ }
+ $score_all_data = $this->calculation_score($user_data['gender'],$data,$card_data_sub_item_data['type']);
+ $save_data = [
+ 'acd_id' => $card_data_sub_item_data['acd_id'],
+ 'acdsi_id' => $card_data_sub_item_data['id'],
+ 'aud_id' => $data['aud_id'],
+ 'achievement' => $data['data'],
+ 'record_time' => $data['record_time'].date(' H:i:s'),
+ 'create_time' => date('Y-m-d H:i:s'),
+ 'unit' => $card_data_sub_item_data['unit'],
+ 'score' => $score_all_data['score'],
+ 'detailed_msg' => json_encode($score_all_data),
+ ];
+
+ $result = Db::table('app_card_data_sub_item_data')->insert($save_data);
+ // $result = true;
+ if($result){
+ if($save_data['unit'] == '分/秒'){
+ list($minutes, $seconds) = explode(':', $data['data']);
+ $score_all_data['this_time_value'] = $minutes . '分' . sprintf('%02d', $seconds) . '秒';
+ }else{
+ $score_all_data['this_time_value'] = $data['data'].$save_data['unit'];
+ }
+
+ return $this->msg($score_all_data);
+ }else{
+ return $this->msg(10002);
+ }
+ }
+ ##################################################get_label_list##################################################
+ public function get_label_list_action($data){
+ // 查找用户是存在
+ $user_data = Db::table('app_user_data')->where(['id'=>$data['aud_id']])->field('id,gender')->find();
+ if(!$user_data){
+ return $this->msg(10004);
+ }
+ $label_data = Db::table('app_card_data_sub_item')->where("acd_id = ".$data['acd_id']." and suit_gender LIKE '%".$user_data['gender']."%'")->field('name,unit,type')->select();
+ if(count($label_data)<=0){
+ return $this->msg(10004);
+ }
+
+ foreach ($label_data as $key => $value) {
+ if($value['type'] == 1){
+ $label_data[$key]['default_value'] = '0';
+ }else if($value['type'] == 2){
+ $label_data[$key]['default_value'] = '0.0';
+ }else if($value['type'] == 4){
+ $label_data[$key]['default_value'] = '0:00';
+ }
+ unset($label_data[$key]['ROW_NUMBER']);
+ }
+ return $this->msg($label_data);
+ }
+
+
+
+ ################################################################tool################################################################
+ ################################################################tool################################################################
+
+ // 计算得分成绩以及线性进度
+ public function calculation_score($gender,$data,$type){
+ // $card_name['card_name'] = ;
+ $card_name['project_name'] = $data['name'];
+ $card_name['score'] = 0;
+ $card_name['offset'] = 0;
+ $describe_list = $this->level_data;
+ $card_name['rule'] = [];
+
+ // 计算得分
+ // 获取评分细则
+ $estimate = Db::table('admin_estimate')->where(['type'=>3])->find();
+ $estimate = json_decode($estimate['content'],true);
+
+ // 根据男女循环出项目细则
+ foreach ($estimate[$gender]['公共考核标准'] as $key => $value) {
+ if(count($card_name['rule']) > 0){
+ break;
+ }
+ foreach ($value['list'] as $k => $v) {
+ if($k == $data['name']){
+ $card_name['rule'] = $v;
+ break;
+ }
+ }
+ }
+ foreach ($card_name['rule']['content'] as $key => $value) {
+ if($type == '分/秒'){
+ $rule_result = $this->convertMinutesSecondsToStringSeconds($value[0]);
+ $data_result = $this->convertMinutesSecondsToStringSeconds($data['data']);
+ }else{
+ $rule_result = $value[0];
+ $data_result = $data['data'];
+ }
+ switch ($value[1]) {
+ case "<=":
+ $result = $data_result <= $rule_result;
+ break;
+ case ">=":
+ $result = $data_result >= $rule_result;
+ break;
+ case "<":
+ $result = $data_result < $rule_result;
+ break;
+ case ">":
+ $result = $data_result > $rule_result;
+ break;
+ case "==":
+ $result = $data_result == $rule_result;
+ break;
+ case "!=":
+ $result = $data_result != $rule_result;
+ break;
+ default:
+ // 如果比较符号不是上述任何一个,可以抛出一个异常或错误
+ throw new Exception("Unsupported comparison operator: " . $value[1]);
+ }
+ if($result == true){
+ $card_name['score'] = $value[2];
+ if($value[2] < 100){
+ $card_name['offset'] = $value[2];
+ }else{
+ $card_name['offset'] = 100;
+ }
+
+ // $card_name['offset'] = bcdiv($value[2],$card_name['diagram'][count($card_name['diagram'])-1]['max_val'],0);
+ break;
+ }
+ }
+
+ foreach ($describe_list as $key => $value) {
+ if($card_name['score'] >= $value['min_val'] && $card_name['score'] <= $value['max_val']){
+ $card_name['standard'] = $value['text'];
+ $card_name['color'] = $value['color'];
+ break;
+ }
+ }
+ $card_name['max_score'] = $card_name['rule']['content'][0][2];
+ $card_name['describe'] = $card_name['rule']['describe'];
+ $card_name['unit_data'] = $card_name['rule']['unit_data'];
+ // $card_name['default_data_format'] = $card_name['rule']['value'];
+ // $card_name['default_data_type'] = $card_name['rule']['type'];
+ // $card_name['list'] = $describe_list;
+ unset($card_name['rule']);
+ return $card_name;
+ }
+
+
+ // 获取标签列表,以及标签列表下数据
+ public function get_other_data(){
+
+ }
+
+
+ ################################################################其他################################################################
+ ################################################################其他################################################################
+
+
+ // 检查字符串格式是否为“数字”+“:”+“数字”的格式,且冒号后的数字小于等于59
+ public function isValidFormatWithLimit($str){
+ // 使用正则表达式匹配“数字:数字”的格式
+ if (preg_match('/^(\d+):(\d+)$/', $str, $matches)) {
+ // 提取冒号前后的数字
+ $firstNumber = $matches[1];
+ $secondNumber = $matches[2];
+
+ // 检查冒号后的数字是否小于等于60
+ if ($secondNumber <= 59) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ // 两个时间相加4:20、5:15
+ function sumTimes($time1, $time2) {
+ // 将时间字符串拆分为分钟和秒
+ list($min1, $sec1) = explode(':', $time1);
+ list($min2, $sec2) = explode(':', $time2);
+
+ // 将分钟和秒转换为整数
+ $totalMin = (int)$min1 + (int)$min2;
+ $totalSec = (int)$sec1 + (int)$sec2;
+
+ // 如果秒数超过或等于60,则进位到分钟
+ if ($totalSec >= 60) {
+ $totalMin += floor($totalSec / 60);
+ $totalSec = $totalSec % 60;
+ }
+ // 格式化总时间为"分:秒"
+ // $totalTime = sprintf('%d分%02d秒', $totalMin, $totalSec);
+ $totalTime = $totalMin.":".$totalSec;
+ // 返回结果
+ return $totalTime;
+ }
+
+
+ // 处理平均时间
+ function averageTime($timeStr, $divisor) {
+ // 步骤1: 拆分时间字符串
+ list($minutes, $seconds) = explode(':', $timeStr);
+
+ // 步骤2: 转换为总秒数
+ $totalSeconds = ($minutes * 60) + $seconds;
+
+ // 步骤3: 除以参数
+ $averageSeconds = $totalSeconds / $divisor;
+
+ // 步骤4: 转换回分钟和秒
+ $averageMinutes = floor($averageSeconds / 60);
+ $remainingSeconds = round($averageSeconds % 60); // 使用round来处理小数秒,如果需要更精确的四舍五入
+
+ // 步骤5: 格式化结果为“分:秒”
+ $formattedTime = sprintf('%d分%02d秒', $averageMinutes, $remainingSeconds);
+
+ return $formattedTime;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+}
\ No newline at end of file
diff --git a/application/app/controller/Download.php b/application/app/controller/Download.php
index 8445d9a..ab6723a 100644
--- a/application/app/controller/Download.php
+++ b/application/app/controller/Download.php
@@ -8,9 +8,15 @@ use think\Db;
class Download extends Base{
public function demo(){
- $num = Db::table('app_version_log')->order('id desc')->find();
- echo '你好,这里仅仅是个下载展示页面-1';
- echo '
点击下载';
+ // $num = Db::table('app_version_log')->order('id desc')->find();
+ // echo '你好,这里仅仅是个下载展示页面-1';
+ // echo '
点击下载';
+ $url = Db::table('app_version_log')->order('id desc')->find();
+ $this->assign([
+
+ 'url' => $url['download_url'],
+ ]);
+ return $this->fetch();
}
public function demo2(){
diff --git a/application/app/controller/Login.php b/application/app/controller/Login.php
index 15637f9..04ed89f 100644
--- a/application/app/controller/Login.php
+++ b/application/app/controller/Login.php
@@ -407,7 +407,7 @@ class Login extends Base{
// 设置POST数据
$postData = array(
'phone' => $tel,
- 'content' => '【xxxx】您好,欢迎使用xxx,,您的手机验证码是:'.$code.',验证码一分钟内有效,若非本人操作,请忽略!'
+ 'content' => '您好,欢迎使用Reedaw,您的手机验证码是:'.$code.',验证码三分钟内有效,若非本人操作,请忽略!'
);
$postData = json_encode($postData);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
diff --git a/application/app/controller/Sportstesting.php b/application/app/controller/Sportstesting.php
index 3d024cc..7c192b8 100644
--- a/application/app/controller/Sportstesting.php
+++ b/application/app/controller/Sportstesting.php
@@ -1058,14 +1058,7 @@ class Sportstesting extends Base{
// 比较两个时间(秒)
// return $totalSecondsB <= $totalSecondsA;
}
- // 处理分秒变秒
- function convertMinutesSecondsToStringSeconds($timeString) {
- // 分割字符串获取分钟和秒
- list($minutes, $seconds) = explode(':', $timeString);
- // 将分钟和秒转换为秒
- $totalSeconds = ($minutes * 60) + intval($seconds); // 确保秒是整数
- return $totalSeconds;
- }
+
// 处理默认规则列表
public function handle_default_rule_list($data,$gender){
diff --git a/application/app/view/download/demo2.html b/application/app/view/download/demo2.html
index ffa193d..2d9218f 100644
--- a/application/app/view/download/demo2.html
+++ b/application/app/view/download/demo2.html
@@ -26,6 +26,13 @@
position: absolute;
top: 0;
left: 0;
+ }
+ .content_1{
+ width: 100vw;
+ height: 100vh;
+ position: absolute;
+ top: 0;
+ left: 0;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
@@ -34,15 +41,131 @@
overflow: auto;
padding: 10vw;
box-sizing: border-box;
+ font-size: 4vw;
+ }
+ .download{
+ width: 40vw;
+ height: 10vw;
+ background-color: darkgray;
+ border-radius: 5vw;
+ text-align: center;
+ line-height: 10vw;
+ font-weight: bold;
+ text-decoration: none;
+ color: white;
+ margin-top: 10vw;
+ }
+ img{
+ width: 25vw;
+ margin-bottom: 20vw;
+ }
+ .jump{
+ width: 40vw;
+ height: 10vw;
+ color: white;
+ background-color: darkgray;
+ border-radius: 5vw;
+ text-align: center;
+ line-height: 10vw;
+ font-weight: bold;
+ margin-bottom: 10vw;
+ }
+ .ts{
+ width: 100vw;
+ height: 100vh;
+ position: absolute;
+ top: 0;
+ left: 0;
+ background-color: rgba(0, 0, 0, 0.8);
+ }
+ .ts_box{
+ width: 85vw;
+ height: 27vw;
+ position: absolute;
+ top: 20%;
+ left: 12%;
+ display: flex;
+ flex-direction: column;
+ flex-wrap: nowrap;
+ justify-content: space-evenly;
+ align-items: flex-start;
+ font-size: 5vw;
+ color: white;
+ font-weight: bold;
+ }
+ .ts_pic{
+ width: 32vw;
+ height: 40vw;
+ position: absolute;
+ top: 0%;
+ right: 0%;
+ background: url(/tsf/registered_arrow.png) no-repeat;
+ background-size: contain;
+ background-position: center;
+ }
+ a{
+ margin-top: 10vw;
+ text-decoration: none;
+ color: blue;
}
-
你好,这里仅仅是个下载展示页面-2
-
点击下载
+
+

+
打开微信小程序
+
下载
+
+
+
+
+
+
1、点击右上角“ ··· ”
+
2、在菜单中选择“在浏览器中打开”
+
+