This commit is contained in:
tsf 2024-05-16 10:33:57 +08:00
parent 3c7d3db3f4
commit 518a622482
7 changed files with 231 additions and 198 deletions

View File

@ -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(){

View File

@ -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个']

View File

@ -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 = [

View File

@ -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################################################################

View File

@ -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'])) {

View File

@ -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################################################################
}

View File

@ -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(){