diff --git a/application/admin/view/login/login.html b/application/admin/view/login/login.html index ec22901..b3f98cf 100644 --- a/application/admin/view/login/login.html +++ b/application/admin/view/login/login.html @@ -43,7 +43,7 @@ pd = false console.log('进来了') $.ajax({ - url:"login_action", //请求的url地址 + url:"/admin/login_action", //请求的url地址 dataType:"json", //返回格式为json async:true,//请求是否异步,默认为异步,这也是ajax重要特性 data:{"name":data.field.username,"password":data.field.password}, //参数值 @@ -53,7 +53,7 @@ if(req.code == 10000){ layer.msg('登录成功,准备跳转',function(){ - location.href='/admin/index/index' + location.href='/admin/index' }); }else{ layer.msg('登录失败',function(){ diff --git a/application/app/controller/Card.php b/application/app/controller/Card.php index 260cd39..0ea7633 100644 --- a/application/app/controller/Card.php +++ b/application/app/controller/Card.php @@ -69,24 +69,7 @@ class Card extends Base{ ################################################################接口################################################################ ################################################################接口################################################################ - // 存储卡片顺序 - // $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个'] diff --git a/application/app/controller/Index.php b/application/app/controller/Index.php index 347dd25..79dec52 100644 --- a/application/app/controller/Index.php +++ b/application/app/controller/Index.php @@ -8,25 +8,35 @@ use app\bj\controller\Common; use think\Log; use \think\Validate; -class Index extends Controller{ +class Index extends Base{ - + protected $db_name = ['2'=>'app_card_body_data','6'=>'app_card_skip_data','8'=>'app_card_vitalcapacity_data']; + // protected $card_key = ['2'=>'body','6'=>'skip','8'=>'vitalcapacity']; + protected $card_data = [ + '2'=>['身体数据',['height','weight','bmi','record_time']], + // 'skip'=>['跳绳数据',['height,weight,bmi,record_time']], + '8'=>['肺活量',['average','record_time']], + ]; ################################################################个人资料卡################################################################ ################################################################个人资料卡################################################################ ################################################################个人资料卡################################################################ - // 个人信息 - public function personal_information(){ - // phpinfo(); - dump(123); - $result = Db::table('admin_user')->select(); - dump($result); - } + // // 个人信息 + // public function personal_information(){ + // // phpinfo(); + // dump(123); + // $result = Db::table('admin_user')->select(); + // dump($result); + // } - // 创建用户卡片 + // 创建用户 public function create_user_data(){ $data = input(); + $verify_result = $this->verify_parameters($data,'register'); + if(!is_array($verify_result)){ + return $this->msg(10002,$verify_result); + } $result = Db::table('app_user_data')->insert($verify_result); if($result){ return $this->msg(0,'success'); @@ -35,19 +45,6 @@ class Index extends Controller{ } } - // 切换用户 - public function switch_user(){ - $data = input(); - $verify_result = $this->verify_parameters($data,'register'); - $result = Db::table('app_user_data')->insert($verify_result); - if($result){ - return $this->msg(0,'success'); - }else{ - return $this->msg(10001,'创建失败'); - } - } - - // 获取账号下用户列表 // $type 1获取列表,2获取详细信息 public function user_card_list($aan_id,$type=1){ @@ -64,71 +61,103 @@ class Index extends Controller{ return $this->msg(0,'success',$data); } - // 获取账号下用户详细信息 - public function user_card_information($id){ - $result = Db::table('app_user_card')->where(['id'=>$id])->find(); - if($result){ - return $this->msg(0,'success',$result); + // 获取指定用户详细信息 + public function user_data_information($id=11){ + $result = Db::table('app_user_data')->where(['id'=>$id])->field('id,aan_id,nickname,birthday,gender,card_order')->find(); + unset($result['ROW_NUMBER']); + if($result['card_order'] === ''){ + $result['age'] = $this->calculate_age($result['birthday']); + $result['card_order'] = []; + $result['card_data_list'] = []; }else{ - return $this->msg(10001,'error'); + $result['card_order'] = explode(',',$result['card_order']); + $result['card_data_list'] = $this->get_user_card_data_list($result['card_order'],$result['id']); } + return $this->msg(0,'success',$result); } + // 获取所有卡片列表信息 + public function get_card_all_list($id = 11){ + $user_card_list = Db::table('app_user_data')->where(['id'=>$id])->field('id,card_order')->find(); + unset($user_card_list['ROW_NUMBER']); + $user_card_list['card_order'] = explode(',',$user_card_list['card_order']); + $all_card_list = Db::table('app_card_data')->field('id,name')->select(); + // dump($user_card_list); + // dump($all_card_list); + $result = ['user'=>[],'all'=>[]]; + foreach ($all_card_list as $key => $value) { + if(in_array($value['id'],$user_card_list['card_order'])){ + $result['user'][array_search($value['id'], $user_card_list['card_order'])] = ['id'=>$value['id'],'name'=>$value['name']]; + }else{ + array_push($result['all'],['id'=>$value['id'],'name'=>$value['name']]); + } + } + ksort($result['user']); + return $this->msg(0,'success',$result); + } - - // 创建身体数据 - public function create_body_data(){ + // 保存用户的卡片排序 + public function save_user_card_order($data=['id'=>11,'card_order'=>[2,8]]){ $data = input(); - $result = Db::table('app_body_data')->insert([ - 'auc_id'=>$data['id'], - 'height'=>$data['height'], - 'weight'=>$data['weight'], - 'bmi'=>$data['bmi'], - 'create_time'=>date('Y-m-d H:i:s'), - 'last_update_time'=>date('Y-m-d H:i:s'), - ]); + 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['card_order'] = json_encode($data['card_order']); + $result = Db::table('app_user_data')->where(['id'=>$data['id']])->update(['card_order'=>implode(',',$data['card_order'])]); + return $this->msg(0,'success'); + } + + // 存储卡片顺序 + // $data = ['id'=>'xxxxxxxxxxxxxxx','card_order'=>[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(10001,'创建失败'); + return $this->msg(10003,'修改失败'); } } - // 获取账号下用户卡片身体数据 - // $type 1获取列表,2获取详细信息 - public function body_data_list($auc_id = 1,$type=1){ - $result = Db::table('app_body_data')->where(['auc_id'=>$auc_id])->select(); - $data = []; - if($type == 1){ - for ($i=0; $i < count($result); $i++) { - array_push($data,['id'=>$result[$i]['id'],'create_time'=>$result[$i]['create_time']]); + + ################################获取账号下信息操作################################ + // 获取账号下首页卡片的基础数据 + public function get_user_card_data_list($data,$aud_id){ + $result = []; + $temporary_arr = []; + foreach ($data as $key => $value) { + $temporary_arr[$value] = Db::table($this->db_name[$value])->where(['aud_id'=>$aud_id])->order('id desc')->limit(1)->select(); + } + foreach ($temporary_arr as $key => $value) { + if(!array_key_exists($key, $this->card_data)){ + // dump($key.'====in'); + continue; } - }else{ - $data = $result; + foreach ($value[0] as $k => $v) { + // dump($k); + if(in_array($k, $this->card_data[$key][1])){ + $result[$key][$k] = $v; + } + } + $result[$key]['name'] = $this->card_data[$key][0]; } - return $data; - } - // 获取账号下用户卡片身体数据详细信息 - public function body_data_information($id){ - $result = Db::table('app_body_data')->where(['id'=>$id])->find(); - if($result){ - return $result; - }else{ - return false; - } - } - - - public function data_card(){ - - } + return $result; + } + ################################################################other################################################################ + ################################################################other################################################################ + ################################################################other################################################################ - - ################################################################other################################################################ - ################################################################other################################################################ - ################################################################other################################################################ - public function verify_parameters($data,$type){ // 设置验证 $rule = [ diff --git a/application/app/controller/Login.php b/application/app/controller/Login.php index db101d3..d64e7c6 100644 --- a/application/app/controller/Login.php +++ b/application/app/controller/Login.php @@ -10,7 +10,7 @@ use think\Log; use \think\Validate; use PHPMailer\PHPMailer\PHPMailer; -class Login extends Controller{ +class Login extends Base{ ################################################################个人资料卡################################################################ @@ -18,11 +18,12 @@ class Login extends Controller{ ################################################################个人资料卡################################################################ // 注册 - public function register_action(){ - $data = input(); + public function register_action($data = ['tel'=>18866668888,'password'=>'ceshi','code'=>'123456']){ + if(count(input()) > 0){ + $data = input(); + } $verify_result = $this->verify_parameters($data,'register'); - if(!is_array($verify_result)){ return $this->msg(10001,$verify_result); } @@ -36,54 +37,91 @@ class Login extends Controller{ } // 登录 - public function login_action(){ + public function login_action($data = ['data'=>'18530934717','validate_data'=>'734626','type'=>'login','validate_type'=>'code']){ - $data = input(); - $verify_result = $this->verify_parameters($data,'login'); - if(!is_array($verify_result)){ - return $this->msg(10001,$verify_result); + if(count(input()) > 0){ + $data = input(); } - $result = Db::table('app_register')->where($verify_result)->field('id')->find(); - // dump($result); - // die; - if($result){ - $user_data = Db::table('app_user_data')->where(['aan_id'=>$result['id']])->field('id,nickname')->select(); - // $data['color'] = $this->color; - return $this->msg(0,'success',$data); + + if(!array_key_exists('data', $data) || !array_key_exists('validate_data', $data) || !array_key_exists('type', $data) || !array_key_exists('validate_type', $data)){ + return $this->msg(10001,'参数缺失'); + } + // 检测是否为手机 + if (preg_match('/^\d{11}$/', $data['data'])) { + $verify_result['tel'] = $data['data']; + $road = 'tel'; }else{ - return $this->msg(10001,'未找到账户'); + $verify_result['email'] = $data['data']; + $road = 'email'; } + // 检测校验途径 + if($data['validate_type'] == 'code'){ + $code_name = $data['data']."_".$road."_".$data['type']; + // dump(cache($code_name)); + // die; + if(cache($code_name) == $data['validate_data']){ + return $this->msg(0,'success',$data); + }else{ + return $this->msg(10001,'登录失败,验证码错误或失效'); + } + }else if($data['validate_type'] == 'password'){ + $verify_result['password'] = $data['validate_data']; + $result = Db::table('app_account_number')->where($verify_result)->count(); + if($result){ + return $this->msg(0,'success'); + }else{ + return $this->msg(10001,'登录失败,账号/密码错误'); + } + }else{ + return $this->msg(10002,'校验参数错误'); + } + } - // 手机/邮箱验证 + // 发送验证码 手机/邮箱 /* 接口说明(发邮件) * $data(手机或者邮箱信息) 字符串 - * $type(验证类型,是注册用,还是其他用途) 字符串 默认register(注册) + * $type(验证类型,是注册用,还是其他用途) 字符串 默认register(注册)(register、login、reset_password) * $road(是手机还是邮箱还是其他) 字符串 默认tel或email */ - public function phone_email_code(){ - $data = input(); - if(!array_key_exists('data', $data) || !array_key_exists('type', $data) || !array_key_exists('road', $data)){ + public function send_phone_email_code($data = ['data'=>'18530934717','type'=>'login']){ + // $data = input(); + if(count(input()) > 0){ + $data = input(); + } + if(!array_key_exists('data', $data) || !array_key_exists('type', $data)){ return $this->msg(10001,'数据&场景&通道必须'); } $num = $this->rand_int(); - if($data['road'] == 'tel'){ + if (preg_match('/^\d{11}$/', $data['data'])) { $result = $this->send_tel_code($data['data'],$num); - }else if($data['road'] == 'email'){ + $road = 'tel'; + }else{ $result = $this->send_email_code($data['data'],['title'=>'体测APP验证码','from_user_name'=>'体测APP','content'=>$num]); + $road = 'email'; } - if(is_array($result) && $result['code'] == 0){ - cache($data['data']."_".$data['road']."_".$data['type'], $num, 60); + cache($data['data']."_".$road."_".$data['type'], $num, 60); // dump($data['data']."_".$data['road']."_".$data['type']); - return $this->msg(0,'success'); + return $this->msg(0,'success',$num); + // return true; }else{ return $this->msg(10001,'error'); + // return false; } } + + + + + public function check_code($data = []){ + + } + + ################################内部调用################################ /* 接口说明(发邮件) * $address(收件人的邮箱地址) 数组 格式: ['460834639@qq.com','460834639@qq.com'.......] * $content(邮件的主题数据信息) 数组 格式:['title'=>'123','from_user_name'=>'123','content'=>'123'] @@ -171,8 +209,6 @@ class Login extends Controller{ echo "未收到响应"; } } - - ################################################################other################################################################ ################################################################other################################################################ ################################################################other################################################################ diff --git a/application/app/controller/Skip.php b/application/app/controller/Skip.php index bc8e866..8933641 100644 --- a/application/app/controller/Skip.php +++ b/application/app/controller/Skip.php @@ -103,8 +103,8 @@ class Skip extends Base{ } // 运动曲线 - // public function skip_motion_curve($data = ['aud_id'=>'11','time_data'=>['2024']]){ - public function skip_motion_curve($data = ['aud_id'=>'11','time_data'=>['2024','04']]){ + public function skip_motion_curve($data = ['aud_id'=>'11','time_data'=>['2024']]){ + // public function skip_motion_curve($data = ['aud_id'=>'11','time_data'=>['2024','04']]){ // public function skip_motion_curve($data = ['aud_id'=>'11','time_data'=>['2024','12','31']]){ // 确保传入的$data是一个数组且包含所需的键 if (!is_array($data) || !isset($data['aud_id'], $data['time_data'])) { diff --git a/application/app/controller/Vitalcapacity.php b/application/app/controller/Vitalcapacity.php index a2e97e4..8cdb13b 100644 --- a/application/app/controller/Vitalcapacity.php +++ b/application/app/controller/Vitalcapacity.php @@ -25,7 +25,7 @@ class Vitalcapacity extends Base{ // 今日数据 - public function skip_today_data($data = ['aud_id'=>11]){ + public function vitalcapacity_today_data($data = ['aud_id'=>11]){ $result = Db::query(" select jump_num, @@ -153,71 +153,33 @@ class Vitalcapacity extends Base{ - ################################################################跳绳数据卡片接口################################################################ - ################################################################跳绳数据卡片接口################################################################ - - public function get_skip_record_data(){} - - - ################################################################other################################################################ - ################################################################other################################################################ - ################################################################other################################################################ - - // 假随机数据插入 - public function generateRandomJumpData($n = 666) { - $return_data = []; - $startDate = new \DateTime('2024-01-01 00:00:00'); - $endDate = new \DateTime('2024-12-31 23:59:59'); - - // 为了保证在$startDate和$endDate之间随机生成日期,先确定两个日期之间的天数差 - $diff = $endDate->diff($startDate)->format('%a'); - - $startTime = strtotime('2024-01-01 00:00:00'); - $endTime = strtotime('2024-12-31 23:59:59'); + ################################################################肺活量数据卡片接口################################################################ + ################################################################肺活量数据卡片接口################################################################ + // 记录肺活量数据 + public function vitalcapacity_data_set($data = ['aud_id'=>'11','acd_id'=>8,'times'=>[1991,2001,2024],'average'=>2005]){ + $result = Db::name('app_card_vitalcapacity_data')->insert([ + 'one'=>$data['times'][0], + 'two'=>$data['times'][1], + 'three'=>$data['times'][2], + 'average'=>$data['average'], + 'aud_id'=>$data['aud_id'], + 'acd_id'=>$data['acd_id'], + 'create_time'=>date('Y-m-d H:i:s')]); - - for ($i = 0; $i < $n; $i++) { - // 生成随机日期 - $randomSeconds = random_int($startTime, $endTime); - $randomDateTime = date('Y-m-d H:i:s', $randomSeconds); - - // 生成随机jump_num - $jump_num = rand(30, 70); - - // 生成随机jump_time - $jump_time = rand(60, 150); - - // 生成随机jump_kcal - $jump_kcal = rand(100, 400); - - // 生成随机jump_type - $jump_types = ['free', 'time', 'num']; - $jump_type = $jump_types[array_rand($jump_types)]; - - // 固定的aud_id和acd_id - $aud_id = 11; - $acd_id = 5; - - // 将生成的数据存入数组 - $return_data[] = [ - 'create_time' => date('Y-m-d H:i:s'), - 'record_time' => $randomDateTime, - 'jump_num' => $jump_num, - 'jump_time' => $jump_time, - 'jump_kcal' => $jump_kcal, - 'aud_id' => $aud_id, - 'acd_id' => $acd_id, - 'jump_type' => $jump_type - ]; - } - // dump($return_data); - // die; - $user_data = Db::table('app_card_skip_data')->insertAll($return_data); - dump($user_data); - dump($return_data); - die; - } + if($result){ + return $this->msg(0,'success'); + }else{ + return $this->msg(10001,'数据记录失败'); + } + + } + + + ################################################################other################################################################ + ################################################################other################################################################ + ################################################################other################################################################ + } \ No newline at end of file diff --git a/application/route.php b/application/route.php index 3c460df..bbb4223 100644 --- a/application/route.php +++ b/application/route.php @@ -15,15 +15,17 @@ use think\Route; // // ################################################################下载################################################################ //下载页 -Route::get('/download', 'app/download/demo'); +Route::any('/download', 'app/download/demo'); // // ################################################################管理后台################################################################ // // ################################################################管理后台################################################################ -// // // 管理后台登录 -// // Route::get('/admin/login', 'admin/login/login'); -// // Route::post('/admin/login_action', 'admin/login/login_action'); -// // // 管理后台首页 -// // Route::get('/admin/index', 'admin/index/index'); +// 管理后台登录 +// 登录页 +Route::any('/admin/login', 'admin/login/login'); +// 登录动作 +Route::post('/admin/login_action', 'admin/login/login_action'); +// 管理后台首页 +Route::any('/admin/index', 'admin/index/index'); // // Route::get('/admin/welcome', 'admin/index/welcome'); // // // APP账号角色管理 // // // APP账号数据列表 @@ -34,15 +36,34 @@ Route::get('/download', 'app/download/demo'); // // ################################################################APP接口################################################################ // // ################################################################APP接口################################################################ +// ################################登录接口################################ +// 注册接口 +Route::any('/register_action', 'app/login/register_action'); +// 登录接口 +Route::any('/login_action', 'app/login/login_action'); +// 手机或者邮箱验证码接口接口 +Route::any('/send_phone_email_code', 'app/login/send_phone_email_code'); +// ################################APP首页接口################################ +// 创建用户 +Route::any('/create_user_data', 'app/index/create_user_data'); +// 获取账号下用户列表 +Route::any('/user_card_list', 'app/index/user_card_list'); +// 获取指定用户详细信息 +Route::any('/user_data_information', 'app/index/user_data_information'); +// 获取所有卡片列表信息 +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('/get_card_record_data', 'app/card/get_card_record_data'); // // 今日数据 -// Route::any('/skip_today_data', 'app/skip/skip_today_data'); +Route::any('/card_data_contrast', 'app/card/card_data_contrast'); // // 数据记录 // Route::any('/skip_record_data', 'app/skip/skip_record_data'); // // 运动曲线 -// Route::any('/skip_motion_curve', 'app/skip/skip_motion_curve'); +Route::any('/skip_motion_curve', 'app/skip/skip_motion_curve'); +Route::any('/body_curve_data', 'app/card/body_curve_data'); // Route::any('/generateRandomJumpData', 'app/skip/generateRandomJumpData'); // ################################跳绳接口################################ // 查找设备 @@ -53,9 +74,10 @@ Route::any('/skip_today_data', 'app/skip/skip_today_data'); Route::any('/skip_record_data', 'app/skip/skip_record_data'); // 运动曲线 Route::any('/skip_motion_curve', 'app/skip/skip_motion_curve'); -Route::any('/generateRandomJumpData', 'app/skip/generateRandomJumpData'); - - +// Route::any('/generateRandomJumpData', 'app/skip/generateRandomJumpData'); +// ################################肺活量接口################################ +// 今日数据 +Route::any('/vitalcapacity_data_set', 'app/vitalcapacity/vitalcapacity_data_set'); // 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'); @@ -72,6 +94,7 @@ Route::any('/generateRandomJumpData', 'app/skip/generateRandomJumpData'); // // ################################################################其它测试################################################################ Route::any('/generateRandomJumpData', 'app/skip/generateRandomJumpData'); Route::any('/setdb', 'app/skip/setdb'); +// Route::any('/isNumericArray', 'app/base/isNumericArray'); // 处理404错误 z Route::miss(function(){