测试0528

This commit is contained in:
tsf 2024-05-28 18:43:48 +08:00
parent 9f68cb8596
commit 06b6672f47
5 changed files with 295 additions and 13 deletions

View File

@ -78,6 +78,52 @@ class Index extends Base{
return $this->msg(10002); return $this->msg(10002);
} }
} }
// 修改用户
public function update_user_data($data = ['id'=>66,'nickname'=>'王小二','birthday'=>'2019-01-01','gender'=>1,'grade'=>'二年级','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
if(count(input('post.')) > 0){
$data = input('post.');
}
if(!array_key_exists('token', $data)){
return $this->msg(10001);
}
if($this->token_time_validate($data['token']) === false){
return $this->msg(20001);
}
unset($data['token']);
$verify_result = $this->verify_parameters2($data,'update');
if(!is_array($verify_result)){
return $this->msg(10001,$verify_result);
}
$id_val = $verify_result['id'];
unset($verify_result['id']);
$result = Db::table('app_user_data')->where(['id'=>$id_val])->update($verify_result);
if($result){
return $this->msg([]);
}else{
return $this->msg(10002);
}
}
// 删除用户
public function del_user_data($data = ['id'=>'26','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
if(count(input('post.')) > 0){
$data = input('post.');
}
if(!array_key_exists('id', $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']);
$result = Db::table('app_user_data')->where(['id'=>$data['id']])->update(['is_del'=>1]);
if($result){
return $this->msg([]);
}else{
return $this->msg(10002);
}
}
// 获取账号下用户列表 // 获取账号下用户列表
// $type 1获取列表2获取详细信息 // $type 1获取列表2获取详细信息
@ -93,7 +139,7 @@ class Index extends Base{
return $this->msg(20001); return $this->msg(20001);
} }
unset($data['token']); unset($data['token']);
$result = Db::table('app_user_data')->where(['aan_id'=>$data['aan_id']])->select(); $result = Db::table('app_user_data')->where(['aan_id'=>$data['aan_id'],'is_del'=>0])->select();
// $result = Db::table('app_user_data')->where(['aan_id'=>$aan_id])->field('id,nickname')->select(); // $result = Db::table('app_user_data')->where(['aan_id'=>$aan_id])->field('id,nickname')->select();
$temporary_data = []; $temporary_data = [];
if($data['type'] == 1){ if($data['type'] == 1){
@ -217,6 +263,7 @@ class Index extends Base{
} }
// 获取年级key列表
public function get_grade_list(){ public function get_grade_list(){
$data = input('post.'); $data = input('post.');
if(!array_key_exists('token', $data)){ if(!array_key_exists('token', $data)){
@ -227,8 +274,6 @@ class Index extends Base{
} }
return $this->msg($this->grade_list); return $this->msg($this->grade_list);
} }
################################获取账号下信息操作################################ ################################获取账号下信息操作################################
// 获取账号下首页卡片的基础数据 // 获取账号下首页卡片的基础数据
@ -415,6 +460,42 @@ class Index extends Base{
return $parameter; return $parameter;
} }
public function verify_parameters2($data,$type){
// 设置验证
$rule = [
'id' => 'require|number',
'nickname' => 'require|chsAlpha',
'birthday' => 'require|date',
'gender' => 'require|number|in:0,1,2',
'grade' => 'require',
];
$msg = [
'id.require' => '用户信息缺失',
'nickname.require' => '昵称缺失',
'birthday.require' => '生日缺失',
'gender.require' => '性别缺失',
'grade.require' => '年级缺失',
'id.number' => '用户信息格式错误',
'nickname.chsAlpha' => '昵称只能是只能是汉字、字母',
'birthday.date' => '生日信息格式错误',
'gender.number' => '性别格式错误',
'gender.in' => '性别信息错误',
];
$validate = new Validate($rule,$msg);
$result = $validate->check($data);
if(!$result){
return $validate->getError();
}
$parameter['id'] = $data['id'];
$parameter['nickname'] = $data['nickname'];
$parameter['birthday'] = $data['birthday'];
$parameter['gender'] = $data['gender'];
$parameter['grade'] = $data['grade'];
$parameter['last_update_time'] = date('Y-m-d H:i:s');
return $parameter;
}

View File

@ -11,9 +11,9 @@ use PHPMailer\PHPMailer\PHPMailer;
class Login extends Base{ class Login extends Base{
protected $code_time = 3600; protected $code_time = 3600;
################################################################个人资料卡################################################################ ################################################################接口################################################################
################################################################个人资料卡################################################################ ################################################################接口################################################################
################################################################个人资料卡################################################################ ################################################################接口################################################################
// 注册 // 注册
public function register_action($data = ['data'=>18530934717,'password'=>'ceshi','code'=>'746119']){ public function register_action($data = ['data'=>18530934717,'password'=>'ceshi','code'=>'746119']){
@ -122,6 +122,26 @@ class Login extends Base{
} }
} }
// 退出登录操作
public function user_quit_account($data=['token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
if(count(input('post.')) > 0){
$data = input('post.');
}
if(!array_key_exists('token', $data)){
return $this->msg(10001);
}
if($this->token_time_validate($data['token']) === false){
return $this->msg(20001);
}
cache($data['token'], NULL);
return $this->msg([]);
}
################################################################接口################################################################
################################################################接口################################################################
################################################################接口################################################################
// 发送验证码 手机/邮箱 // 发送验证码 手机/邮箱
/* 接口说明(发邮件) /* 接口说明(发邮件)

View File

@ -75,7 +75,7 @@ class Pagingcontrast extends Base{
return $this->jump_transfer_interface_detailed($data); return $this->jump_transfer_interface_detailed($data);
} }
// 数据对比(包含身体、跳绳、肺活量) // 数据对比(包含身体、跳绳、肺活量)
public function get_all_card_data_contrast($data = ['before_id'=>'692','after_id'=>'691','type'=>'6','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){ public function get_all_card_data_contrast($data = ['before_id'=>'11','after_id'=>'10','type'=>'8','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
if(count(input('post.')) > 0){ if(count(input('post.')) > 0){
$data = input('post.'); $data = input('post.');
} }
@ -141,7 +141,7 @@ class Pagingcontrast extends Base{
}else if($data['type'] == '6'){ }else if($data['type'] == '6'){
return $this->get_skip_data_contrast($data); return $this->get_skip_data_contrast($data);
}else if($data['type'] == '8'){ }else if($data['type'] == '8'){
// return $this->get_body_record_data($data,$str); return $this->get_vitalcapacity_data_contrast($data);
} }
} }
@ -266,8 +266,8 @@ class Pagingcontrast extends Base{
CONVERT(varchar(19), record_time, 120) AS record_time, CONVERT(varchar(19), record_time, 120) AS record_time,
one_val as v1, one_val as v1,
two_val as v2, two_val as v2,
three_val as v3 three_val as v3,
average_val as v4 average_val as v4,
score as v5 score as v5
from app_card_vitalcapacity_data from app_card_vitalcapacity_data
where aud_id='".$data['aud_id']."' where aud_id='".$data['aud_id']."'
@ -282,7 +282,7 @@ class Pagingcontrast extends Base{
'v2'=>$value['v2'], 'v2'=>$value['v2'],
'v3'=>$value['v3'], 'v3'=>$value['v3'],
'v4'=>$value['v4'], 'v4'=>$value['v4'],
'v5'=>explode(',',$value['v5']), 'v5'=>explode(',',$value['v5'])[0],
'v1_name'=>'第一次', 'v1_name'=>'第一次',
'v2_name'=>'第二次', 'v2_name'=>'第二次',
'v3_name'=>'第三次', 'v3_name'=>'第三次',
@ -306,7 +306,7 @@ class Pagingcontrast extends Base{
'v2'=>$value['two_val'], 'v2'=>$value['two_val'],
'v3'=>$value['three_val'], 'v3'=>$value['three_val'],
'v4'=>$value['average_val'], 'v4'=>$value['average_val'],
'v5'=>explode(',',$value['score']), 'v5'=>explode(',',$value['score'])[0],
'v1_name'=>'第一次', 'v1_name'=>'第一次',
'v2_name'=>'第二次', 'v2_name'=>'第二次',
'v3_name'=>'第三次', 'v3_name'=>'第三次',
@ -511,6 +511,83 @@ class Pagingcontrast extends Base{
} }
return $this->msg($return_data); return $this->msg($return_data);
} }
// 数据对比
public function get_vitalcapacity_data_contrast($data){
// dump($data);
$data2 = [$data['before_id'],$data['after_id']];
$data3 = implode(',',$data2);
$calculate_arr = [];
$result = Db::query("
select
acsd.id,
acsd.one_val,
acsd.two_val,
acsd.three_val,
acsd.average_val,
acsd.score_val as score,
acsd.record_time,
REPLACE(CONVERT(varchar(10), acsd.record_time, 23), '-', '/') AS b_time,
aud.nickname,
aud.gender,
aud.birthday,
aud.head_pic
from app_card_vitalcapacity_data as acsd
left join app_user_data as aud on acsd.aud_id=aud.id
where acsd.id in ($data3)
and acsd.is_del = 0
");
if(!$result || count($result)<2){
return $this->msg(10004);
}
// 调整顺序
foreach ($result as $key => $value) {
if($value['id'] == $data2[0]){
$calculate_arr['before'] = $value;
}else{
$calculate_arr['after'] = $value;
}
}
$return_data['time'] = $calculate_arr['before']['b_time'].'-'.$calculate_arr['after']['b_time'];
$return_data['headimg'] = $calculate_arr['before']['head_pic'];
$return_data['name'] = $calculate_arr['before']['nickname'];
$return_data['gender'] = $calculate_arr['before']['gender'];
$return_data['age'] = $this->calculate_age($calculate_arr['before']['birthday']);
$return_data['day'] = abs($this->daysSince($calculate_arr['before']['record_time'],$calculate_arr['after']['record_time']));
$return_data['list'] = [];
// dump($calculate_arr);
// die;
foreach ($calculate_arr['before'] as $key => $value) {
if(in_array($key, ['one_val','two_val','three_val','average_val','score_val'])){
$before_arr = $value;
$after_arr = $calculate_arr['after'][$key];
$temporary_arr = [
'firstresult'=>[
'color'=>'',
'level'=>'',
'value'=>$before_arr,
'title'=>$this->request_result['8'][$key][0],
'unit'=>$this->request_result['8'][$key][1],
'name'=>$key,
],
'secondresult'=>[
'color'=>'',
'level'=>'',
'value'=>$after_arr,
'title'=>$this->request_result['8'][$key][0],
'unit'=>$this->request_result['8'][$key][1],
'name'=>$key,
],
'diffval'=>bcsub($after_arr,$before_arr,2)
];
array_push($return_data['list'], $temporary_arr);
}
}
return $this->msg($return_data);
}

View File

@ -8,6 +8,7 @@ use think\Db;
class Vitalcapacity extends Base{ class Vitalcapacity extends Base{
protected $color = ['无效'=>'#FF5656','不及格'=>'#FF5656','及格'=>'#FFAB00','良好'=>'#5AD06D','优秀'=>'#6492F6','牛逼'=>'#3967D6']; 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'],'score_val'=>['分数','分/分','#009DFF'],];
protected $standard0 = ['优秀','良好','及格','不及格','无效']; protected $standard0 = ['优秀','良好','及格','不及格','无效'];
protected $standard = [ protected $standard = [
['min_val'=>'90','max_val'=>'100','text'=>'优秀','color'=>'#6492F6'], ['min_val'=>'90','max_val'=>'100','text'=>'优秀','color'=>'#6492F6'],
@ -65,6 +66,20 @@ class Vitalcapacity extends Base{
unset($data['token']); unset($data['token']);
return $this->vitalcapacity_data_report_action($data); return $this->vitalcapacity_data_report_action($data);
} }
// 曲线
public function vitalcapacity_curve_chart($data = ['aud_id'=>'25','time'=>'2024-05-25','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
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 $this->msg(10001);
}
if($this->token_time_validate($data['token']) === false){
return $this->msg(20001);
}
unset($data['token']);
return $this->vitalcapacity_curve_chart_action($data);
}
################################################################业务################################################################ ################################################################业务################################################################
@ -116,6 +131,84 @@ class Vitalcapacity extends Base{
} }
################################################################vitalcapacity_save_record_data
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); // 无效的时间数据格式
}
// 使用查询构造器进行查询
$result = Db::name('app_card_vitalcapacity_data')->where($map)->field('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();
$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';
}
// dump($map);
// dump($result);
// die;
foreach ($this->curve_data_format as $key => $value) {
$temporary_arr['title'] = $value[0];
$temporary_arr['key'] = $key;
$temporary_arr['line']['categories'] = [];
$temporary_arr['line']['series'][0]['color'] = $value[2];
$temporary_arr['line']['series'][0]['name'] = $value[0];
$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);
}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);
}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);
}else{
array_push($temporary_arr['line']['categories'],$result[$k]['month'].'月');
array_push($temporary_arr['line']['series'][0]['data'],$result[$k][$key]);
}
}
}
// dump($temporary_arr);
array_push($return_data,$temporary_arr);
}
foreach ($return_data[1]['line']['series'][0]['data'] as $key => $value) {
$return_data[1]['line']['series'][0]['data'][$key] = bcdiv($return_data[1]['line']['series'][0]['data'][$key],60,2);
}
return $this->msg($return_data);
}

View File

@ -57,9 +57,16 @@ Route::any('/reset_password', 'app/login/reset_password');
Route::any('/login_action', 'app/login/login_action'); Route::any('/login_action', 'app/login/login_action');
// 手机或者邮箱验证码接口接口 // 手机或者邮箱验证码接口接口
Route::any('/send_phone_email_code', 'app/login/send_phone_email_code'); Route::any('/send_phone_email_code', 'app/login/send_phone_email_code');
// 退出登录操作
Route::any('/user_quit_account', 'app/login/user_quit_account');
// ################################APP首页接口################################ // ################################APP首页接口################################
// 创建用户 // 创建用户
Route::any('/create_user_data', 'app/index/create_user_data'); Route::any('/create_user_data', 'app/index/create_user_data');
// 删除用户
Route::any('/del_user_data', 'app/index/del_user_data');
// 修改用户
Route::any('/update_user_data', 'app/index/update_user_data');
// 获取账号下用户列表 // 获取账号下用户列表
Route::any('/get_user_card_list', 'app/index/get_user_card_list'); Route::any('/get_user_card_list', 'app/index/get_user_card_list');
// 获取指定用户详细信息 // 获取指定用户详细信息
@ -70,6 +77,8 @@ Route::any('/get_card_all_list', 'app/index/get_card_all_list');
Route::any('/save_user_card_order', 'app/index/save_user_card_order'); Route::any('/save_user_card_order', 'app/index/save_user_card_order');
// 获取年级列表 // 获取年级列表
Route::any('/get_grade_list', 'app/index/get_grade_list'); Route::any('/get_grade_list', 'app/index/get_grade_list');
// ################################身体数据卡片接口################################ // ################################身体数据卡片接口################################
// 报告页详情 // 报告页详情
Route::any('/card_data_detailed', 'app/card/card_data_detailed'); Route::any('/card_data_detailed', 'app/card/card_data_detailed');
@ -95,6 +104,8 @@ Route::any('/skip_del_record_data', 'app/skip/skip_del_record_data');
Route::any('/vitalcapacity_save_record_data', 'app/vitalcapacity/vitalcapacity_save_record_data'); Route::any('/vitalcapacity_save_record_data', 'app/vitalcapacity/vitalcapacity_save_record_data');
// 报告数据(上次数据) // 报告数据(上次数据)
Route::any('/vitalcapacity_data_report', 'app/vitalcapacity/vitalcapacity_data_report'); Route::any('/vitalcapacity_data_report', 'app/vitalcapacity/vitalcapacity_data_report');
// 曲线
Route::any('/vitalcapacity_curve_chart', 'app/vitalcapacity/vitalcapacity_curve_chart');
// Route::any('/skip_device_check', 'app/skip/skip_device_check'); // Route::any('/skip_device_check', 'app/skip/skip_device_check');
// Route::any('/skip_device_check', 'app/skip/skip_device_check'); // Route::any('/skip_device_check', 'app/skip/skip_device_check');