'app_card_body_data_copy1','6'=>'app_card_skip_data_copy1','8'=>'app_card_vitalcapacity_data_copy1','10'=>'app_card_data_sub_item_data_copy1']; protected $index_use_db_name = [ '1'=>'app_version_log_copy1', '2'=>'app_user_data_copy1', '3'=>'app_card_body_data_copy1', '4'=>'app_device_code_data_copy1', '5'=>'app_device_data_copy1', '6'=>'app_card_data_copy1', '7'=>'app_account_number_copy1', '8'=>'app_card_data_sub_item_copy1', '9'=>'app_card_data_sub_item_data_copy1', '10'=>'admin_estimate_copy1' ]; // protected $card_key = ['2'=>'body','6'=>'skip','8'=>'vitalcapacity']; protected $default_card = ['2','6','8']; protected $card_data = [ '2'=>['身体数据','body',['height'=>['身高','cm','-'],'weight'=>['体重','公斤','-'],'bmi'=>['BMI','无','-']]], // '6'=>['跳绳数据','skip',['jump_time'=>['用时','无','--:--:--'],'jump_num'=>['本次次数','次','-'],'average_num'=>['平均成绩','个','-'],'jump_kcal'=>['卡路里','kcal','-']]], '6'=>['跳绳数据','skip',['jump_time'=>['用时','无','--:--:--'],'jump_num'=>['本次次数','次','-'],'jump_kcal'=>['卡路里','kcal','-']]], '8'=>['肺活量','vitalcapacity',['average'=>['平均成绩','ml','-']]], ]; protected $data_name_unit = [ 'height'=>['身高','cm','pc_heightstand2'], 'weight'=>['体重','公斤','pc_weightstand2'], 'bmi'=>['BMI','','pc_bmistand2'], 'average'=>['肺活量','ml','pc_vitalcapacity_standard'] ]; protected $identity_list = ['P0'=>'陌生人','P1'=>'爸爸','P2'=>'妈妈','P3'=>'大宝','P4'=>'二宝','P5'=>'三宝','P6'=>'四宝','P7'=>'爷爷','P8'=>'奶奶']; // protected $nickname_data2 = ['爸爸','妈妈','大宝','二宝','爷爷','奶奶','外公','外婆']; protected $grade_list = [ ['id'=>'nothing','name'=>'无'], ['id'=>'grade_s_1','name'=>'小学一年级'], ['id'=>'grade_s_2','name'=>'小学二年级'], ['id'=>'grade_s_3','name'=>'小学三年级'], ['id'=>'grade_s_4','name'=>'小学四年级'], ['id'=>'grade_s_5','name'=>'小学五年级'], ['id'=>'grade_s_6','name'=>'小学六年级'], ['id'=>'grade_m_1','name'=>'初中一年级'], ['id'=>'grade_m_2','name'=>'初中二年级'], ['id'=>'grade_m_3','name'=>'初中三年级'], ['id'=>'grade_h_1','name'=>'高中一年级'], ['id'=>'grade_h_2','name'=>'高中二年级'], ['id'=>'grade_h_3','name'=>'高中三年级'], ['id'=>'grade_u_12','name'=>'大学一、二年级'], ['id'=>'grade_u_34','name'=>'大学三、四年级'] ]; // 阶段性称谓 protected $stage_appellation = [ ['min'=>'0','max'=>'3','value'=>'婴儿'], ['min'=>'3','max'=>'16','value'=>'儿童'], ['min'=>'16','max'=>'500','value'=>'成人'] ]; protected $language_country = [ 'en' => 'English', // 英语(通用)★ 'zh-Hans' => '中文', // 中文(简体)★ // 'es' => 'Español', // 西班牙语(西班牙)★ // 'fr' => 'Français', // 法语(法国)★ // 'pt' => 'Português', // 葡萄牙语(巴西)★ // 'ar' => 'العربية', // 阿拉伯语(标准)★ // 'ru' => 'Русский', // 俄语(俄罗斯)★ // 'de' => 'Deutsch', // 德语(德国)★ // 'ja' => '日本語', // 日语 // 'ko' => '한국어', // 韩语 // 'it' => 'Italiano', // 意大利语 // 'nl' => 'Nederlands', // 荷兰语 // 'hi' => 'हिन्दी', // 印地语 // 'tr' => 'Türkçe', // 土耳其语 // 'vi' => 'Tiếng Việt', // 越南语 // 'th' => 'ไทย', // 泰语 // 'pl' => 'Polski', // 波兰语 // 'sv' => 'Svenska', // 瑞典语 // 'fi' => 'Suomi', // 芬兰语 // 'da' => 'Dansk', // 丹麦语 // 'no' => 'Norsk', // 挪威语 // 'he' => 'עברית', // 希伯来语 // 'id' => 'Bahasa Indonesia', // 印尼语 // 'ms' => 'Bahasa Melayu', // 马来语 // 'cs' => 'Čeština', // 捷克语 // 'hu' => 'Magyar', // 匈牙利语 // 'el' => 'Ελληνικά', // 希腊语 // 'ro' => 'Română', // 罗马尼亚语 // 'sk' => 'Slovenčina', // 斯洛伐克语 // 'uk' => 'Українська', // 乌克兰语 ]; ################################################################个人资料卡################################################################ ################################################################个人资料卡################################################################ ################################################################个人资料卡################################################################ // 检测版本及判断是否登录失效 public function login_invalid_version($data = ['token'=>'2d4ea9b3f44b169ddf64b2f3d2725ceb','is_wechat'=>false]){ // try { // 获取客户端IP $ip = request()->ip(); // 调用IP识别方法 $region = $this->getIpInfo($ip); // 解析地区信息 $regionParts = explode('|', $region); $country = $regionParts[0] ?? ''; // 判断国家是否在支持的语言列表中 $language = ''; if ($country && $country !== '0') { $languageMap = [ '中国' => 'zh-Hans', '美国' => 'en', '英国' => 'en', '西班牙' => 'es', '法国' => 'fr', '葡萄牙' => 'pt', '阿拉伯联合酋长国' => 'ar', '俄罗斯' => 'ru', '德国' => 'de' ]; $language = $languageMap[$country] ?? ''; } // 检查语言是否在支持列表中 $language_all = new Language(); $isSupportedLanguage = array_key_exists($language, $language_all->getSupportedLanguages()); // 你的业务逻辑 if(count(input('post.')) > 0){ $data = input('post.'); } if(!array_key_exists('token', $data)){ return $this->msg(10001); } if(!array_key_exists('is_wechat', $data)){ $data['is_wechat'] = false; } $result = Db::table($this->index_use_db_name['1'])->order('is_del,id desc')->find(); if($result){ $version = $result['version_num_original']; $url = $result['download_url']; }else{ $version = ''; $url = ''; } $user_token_state = $this->token_time_validate($data['token']); // dump($user_token_state); $language_data = $this->pd_language($user_token_state['language'],$isSupportedLanguage,$language); if($user_token_state['state'] === false){ return $this->msg(-1,'未登录',[ 'version'=>$version, 'url'=>$url, 'language'=>$data['is_wechat']?'zh-Hans':$language_data['user_language'], 'ip_address'=>$language_data['address'], 'language_arr'=>$this->process_Language() ]); }else{ if($data['is_wechat'] == true){ $result = Db::table($this->index_use_db_name['7'])->where(['token'=>$data['token']])->update(['language'=>'zh-Hans']); } return $this->msg([ 'version'=>$version, 'url'=>$url, 'language'=>$data['is_wechat']?'zh-Hans':$language_data['user_language'], 'ip_address'=>$language_data['address'], 'language_arr'=>$this->process_Language() ]); } // } catch (\Exception $e) { // // 捕获异常 // $logContent["flie"] = $e->getFile(); // $logContent["line"] = $e->getLine(); // $logContent['all_content'] = "异常信息:\n"; // $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; // $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; // $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; // $logContent['all_content'] .= "方法: " . __METHOD__ . "\n"; // $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; // $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; // $this->record_api_log($data, $logContent, null); // return $this->msg(99999); // } } // 添加IP信息获取方法 protected function getIpInfo($ip) { // 默认IP $ip = $ip ?: request()->ip(); try { $ip2region = new \Ip2Region(); $info = $ip2region->memorySearch($ip); // 返回国家信息 return $info['region'] ?: '未知'; } catch (\Exception $e) { return '未知'; } } public function set_language_country($data = ['token'=>'caadd1be045a65f30b92aa805f1de54a','language'=>'zh-Hans']){ try { // 你的业务逻辑 if(count(input('post.')) > 0){ $data = input('post.'); } if(!array_key_exists('token', $data) || !array_key_exists('language', $data)){ return $this->msg(10001); } if(!array_key_exists($data['language'],$this->language_country)){ return $this->msg(10007); } $result = Db::table($this->index_use_db_name['7'])->where(['token'=>$data['token']])->update(['language'=>$data['language']]); if($result){ return $this->msg([]); }else{ return $this->msg(10002); } } catch (\Exception $e) { $logContent["flie"] = $e->getFile(); $logContent["line"] = $e->getLine(); $logContent['all_content'] = "异常信息:\n"; $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; $logContent['all_content'] .= "方法: " . __METHOD__ . "\n"; $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; $this->record_api_log($data, $logContent, null); return $this->msg(99999); } } // 创建用户 public function create_user_data($data = ['aan_id'=>1,'height'=>'152.3','weight'=>'35.4','nickname'=>'钮祜禄测试1','birthday'=>'2019-04-20','gender'=>1,'grade'=>'grade_s_3','identity_id'=>'P3','identity_name'=>'大宝','address'=>'河南,郑州','token'=>'57bd45e3a963b372ea2d873e4bd8d1f8']){ try { // 你的业务逻辑 if(count(input('post.')) > 0){ $data = input('post.'); } if(!array_key_exists('token', $data) || !array_key_exists('measure_model', $data)){ return $this->msg(10001); } if($data['measure_model'] != '1' && $data['measure_model'] != '2'){ return $this->msg(10001); } unset($data['token']); $verify_result = $this->verify_parameters($data,'register'); if(!is_array($verify_result)){ return $this->msg(10001,$verify_result); } $result = Db::table($this->index_use_db_name['2'])->insertGetId($verify_result); if($result){ $this->record_api_log($data, null, ['code'=>0,'msg'=>'success',['aud_id'=>$result]]); return $this->msg(['aud_id'=>$result]); }else{ $this->record_api_log($data, null, ['code'=>10002,'msg'=>'',[]]); return $this->msg(10002); } } catch (\Exception $e) { $logContent["flie"] = $e->getFile(); $logContent["line"] = $e->getLine(); $logContent['all_content'] = "异常信息:\n"; $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; $logContent['all_content'] .= "方法: " . __METHOD__ . "\n"; $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; $this->record_api_log($data, $logContent, null); return $this->msg(99999); } } // 修改用户 public function update_user_data($data = ['id'=>66,'nickname'=>'王小二','birthday'=>'2019-01-01','gender'=>1,'grade'=>'二年级','identity_id'=>'P3','identity_name'=>'大宝','address'=>'河南,郑州','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){ try { // 你的业务逻辑 if(count(input('post.')) > 0){ $data = input('post.'); } if(!array_key_exists('token', $data)){ return $this->msg(10001); } 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($this->index_use_db_name['2'])->where(['id'=>$id_val])->update($verify_result); if($result){ // 成功 $this->record_api_log($data, null, ['code'=>0,'msg'=>'success',[]]); return $this->msg([]); }else{ // 失败 $this->record_api_log($data, null, ['code'=>10002,'msg'=>'',[]]); return $this->msg(10002); } } catch (\Exception $e) { $logContent["flie"] = $e->getFile(); $logContent["line"] = $e->getLine(); $logContent['all_content'] = "异常信息:\n"; $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; $logContent['all_content'] .= "方法: " . __METHOD__ . "\n"; $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; $this->record_api_log($data, $logContent, null); return $this->msg(99999); } } // 删除用户 public function del_user_data($data = ['id'=>'26','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){ try { // 你的业务逻辑 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->verify_data_is_ok($data['id'],'intnum')){ return $this->msg(10005); } unset($data['token']); $result = Db::table($this->index_use_db_name['2'])->where(['id'=>$data['id']])->update(['is_del'=>1]); if($result){ // 成功 $this->record_api_log($data, null, ['code'=>0,'msg'=>'success',[]]); return $this->msg([]); }else{ // 失败 $this->record_api_log($data, null, ['code'=>10002,'msg'=>'',[]]); return $this->msg(10002); } } catch (\Exception $e) { // 捕获异常 $logContent["flie"] = $e->getFile(); $logContent["line"] = $e->getLine(); $logContent['all_content'] = "异常信息:\n"; $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; $logContent['all_content'] .= "方法: " . __METHOD__ . "\n"; $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; $this->record_api_log($data, $logContent, null); return $this->msg(99999); } } // 获取账号下用户列表 // $type 1获取列表,2获取详细信息 public function get_user_card_list($data = ['aan_id'=>87,'type'=>2,'token'=>'0dafb98a10995c98b5a33b7d59d986ca']){ try { // 你的业务逻辑 if(count(input('post.')) > 0){ $data = input('post.'); } if(!array_key_exists('token', $data) || !array_key_exists('aan_id', $data) || !array_key_exists('type', $data)){ // 失败 return $this->msg(10001); } if(!$this->verify_data_is_ok($data['aan_id'],'intnum')){ return $this->msg(10005); } if(!$this->verify_data_is_ok($data['type'],'intnum')){ return $this->msg(10005); } unset($data['token']); $result = Db::table($this->index_use_db_name['2']) ->where(['aan_id'=>$data['aan_id'],'is_del'=>0]) ->field('id,aan_id,nickname,birthday,gender,card_order,target_weight,initial_weight,initial_date,grade,head_pic,weight,height,identity_name,address,identity_id,measure_model') ->select(); $temporary_data = []; if($data['type'] == 1){ for ($i=0; $i < count($result); $i++) { array_push($temporary_data,[ 'id'=>$result[$i]['id'], 'nickname'=>$result[$i]['nickname'], 'identity_name'=>$result[$i]['identity_name'], 'identity_id'=>$result[$i]['identity_id'], ]); } }else{ for ($i=0; $i < count($result); $i++) { $result[$i]['age'] = $this->calculate_age($result[$i]['birthday']); // 添加阶段称谓、婴儿、儿童、成人 foreach ($this->stage_appellation as $key => $value) { if($result[$i]['age'] >= $value['min'] && $result[$i]['age'] < $value['max']){ $result[$i]['stage'] = $value['value']; } } } $temporary_data = $result; } // 成功 $this->record_api_log($data, null, ['code'=>0,'msg'=>'success',$temporary_data]); return $this->msg($temporary_data); } catch (\Exception $e) { // 捕获异常 $logContent["flie"] = $e->getFile(); $logContent["line"] = $e->getLine(); $logContent['all_content'] = "异常信息:\n"; $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; $logContent['all_content'] .= "方法: " . __METHOD__ . "\n"; $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; $this->record_api_log($data, $logContent, null); return $this->msg(99999); } } // 获取指定用户详细信息 public function get_user_data_information($data = ['aud_id'=>144]){ // try { // 你的业务逻辑 if(count(input('post.')) > 0){ $data = input('post.'); } if(!array_key_exists('aud_id', $data)){ // 失败 $this->record_api_log($data, null, ['code'=>10001,'msg'=>'',[]]); return $this->msg(10001); } if(!$this->verify_data_is_ok($data['aud_id'],'intnum')){ return $this->msg(10005); } // 获取用户信息 $result = Db::table($this->index_use_db_name['2'])->where(['id'=>$data['aud_id'],'is_del'=>0])->field('id,aan_id,nickname,head_pic,birthday,gender,card_order,target_weight,initial_weight,initial_date,height,weight,address,identity_id,measure_model,head_data')->find(); if(!$result){ return $this->msg(10004); } $result['age'] = $this->calculate_age($result['birthday']); foreach ($this->stage_appellation as $key => $value) { if($result['age'] >= $value['min'] && $result['age'] < $value['max']){ $result['stage'] = $value['value']; } } // 从这里开始进入体脂还是体测的判断 $result['card_order'] = $result['card_order'] == ""?[]:explode(',',$result['card_order']); if($result['measure_model'] == 1){// 这里是体测 $calculation_results = $this->get_user_card_data_list($result,$result['id']); $result['card_data_list'] = $calculation_results[0]; $result['card_order'] = $calculation_results[1]; }else if($result['measure_model'] == 2){// 这里是体脂 $result['card_data_list'] = []; $result['card_order'] = []; }else{ $this->record_api_log($data, null, ['code'=>10001,'msg'=>'measure_model数据不是1或者2',[]]); return $this->msg(10004); } // // 获取设备信息进入卡片 start // $likePattern = '%' . $result['aan_id'] . '%'; // $result_device = Db::table($this->index_use_db_name['4']) // ->alias('adcd') // ->join(''.$this->index_use_db_name['5'].' add','adcd.add_id = add.id','LEFT') // ->where("adcd.bind_account_id LIKE ?", [$likePattern]) // ->field('adcd.id,add.acd_id') // ->select(); // $device_arr = []; // foreach ($result_device as $key => $value) { // if(!in_array($value['acd_id'],$device_arr)){ // array_push($device_arr,$value['acd_id']); // } // } // foreach ($result['card_data_list'] as $key => $value) { // if(in_array($value['acd_id'],$device_arr)){ // $result['card_data_list'][$key]['device_determine'] = true; // }else{ // $result['card_data_list'][$key]['device_determine'] = false; // } // } // // 获取设备信息进入卡片 end if($result['address'] == ''){ $result['address'] = $this->moren_gufen_diqu; } if($result['head_data'] == null){ $result['head_data'] = 0; } $this->record_api_log($data, null, ['code'=>0,'msg'=>'success',$result]); return $this->msg($result); // } catch (\Exception $e) { // // 捕获异常 // $logContent["flie"] = $e->getFile(); // $logContent["line"] = $e->getLine(); // $logContent['all_content'] = "异常信息:\n"; // $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; // $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; // $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; // $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; // $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; // $this->record_api_log($data, $logContent, null); // return $this->msg(99999); // } } // 获取所有卡片列表信息 public function get_card_all_list($data = ['aud_id'=>11,'token'=>'57bd45e3a963b372ea2d873e4bd8d1f8']){ try { // 你的业务逻辑 if(count(input('post.')) > 0){ $data = input('post.'); } if(!array_key_exists('token', $data)){ // 失败 $this->record_api_log($data, null, ['code'=>10001,'msg'=>'',[]]); return $this->msg(10001); } if(!$this->verify_data_is_ok($data['aud_id'],'intnum')){ return $this->msg(10005); } unset($data['token']); $user_card_list = Db::table($this->index_use_db_name['2'])->where(['id'=>$data['aud_id'],'is_del'=>0])->field('id,card_order')->find(); if(!$user_card_list){ // 失败 $this->record_api_log($data, null, ['code'=>10003,'msg'=>'',[]]); return $this->msg(10003); } unset($user_card_list['ROW_NUMBER']); $user_card_list['card_order'] = explode(',',$user_card_list['card_order']); foreach ($user_card_list['card_order'] as $key => $value) { if(in_array($value,$this->default_card)){ unset($user_card_list['card_order'][$key]); } } $user_card_list['card_order'] = array_values($user_card_list['card_order']); $all_card_list = Db::table($this->index_use_db_name['6'])->where(['is_del'=>0])->field('id,name,pic')->select(); // die; $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'],'pic'=>$value['pic']]; }else{ array_push($result['all'],['id'=>$value['id'],'name'=>$value['name'],'pic'=>$value['pic']]); } } ksort($result['user']); // 成功 $this->record_api_log($data, null, ['code'=>0,'msg'=>'success',$result]); return $this->msg($result); } catch (\Exception $e) { // 捕获异常 $logContent["flie"] = $e->getFile(); $logContent["line"] = $e->getLine(); $logContent['all_content'] = "异常信息:\n"; $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; $logContent['all_content'] .= "方法: " . __METHOD__ . "\n"; $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; $this->record_api_log($data, $logContent, null); return $this->msg(99999); } } // 保存用户的卡片排序 public function save_user_card_order($data=['aud_id'=>11,'card_order'=>'2,6,10,12,13,8,14,16,15','token'=>'0dafb98a10995c98b5a33b7d59d986ca']){ try { // 你的业务逻辑 if(count(input('post.')) > 0){ $data = input('post.'); } if(!array_key_exists('aud_id', $data) || !array_key_exists('card_order', $data) || !array_key_exists('token', $data)){ // 失败 $this->record_api_log($data, null, ['code'=>10001,'msg'=>'',[]]); return $this->msg(10001); } if(!$this->verify_data_is_ok($data['aud_id'],'intnum')){ return $this->msg(10005); } unset($data['token']); if(!$this->is_num_array(explode(',',$data['card_order']))){ // 失败 $this->record_api_log($data, null, ['code'=>10001,'msg'=>'数据内参数格式或值错误',[]]); return $this->msg(10005,'数据内参数格式或值错误'); } $result = Db::table($this->index_use_db_name['2'])->where(['id'=>$data['aud_id']])->update(['card_order'=>$data['card_order']]); if($result){ // 成功 $this->record_api_log($data, null, ['code'=>0,'msg'=>'success',[]]); return $this->msg([]); }else{ // 失败 $this->record_api_log($data, null, ['code'=>10002,'msg'=>'',[]]); return $this->msg(10002); } } catch (\Exception $e) { // 捕获异常 $logContent["flie"] = $e->getFile(); $logContent["line"] = $e->getLine(); $logContent['all_content'] = "异常信息:\n"; $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; $logContent['all_content'] .= "方法: " . __METHOD__ . "\n"; $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; $this->record_api_log($data, $logContent, null); return $this->msg(99999); } } // 获取年级key列表 public function get_grade_list($data=['token'=>'0dafb98a10995c98b5a33b7d59d986ca']){ try { if(count(input('post.')) > 0){ $data = input('post.'); } // if(!array_key_exists('token', $data)){ // $this->record_api_log($data, null, ['code'=>10001,'msg'=>'',[]]); // return $this->msg(10001); // } $address_data = Db::table($this->base_use_db_name['5'])->where(['type' => '2'])->cache(3600)->field('id,content,city,area')->find(); $return_data['area_list'] = json_decode($address_data['content'],true); $return_data['identity_list'] = []; foreach ($this->identity_list as $key => $value) { array_push($return_data['identity_list'],['id'=>$key,'name'=>$value]); } $return_data['grade_list'] = $this->grade_list; $this->record_api_log($data, null, ['code'=>0,'msg'=>'success',[]]); return $this->msg($return_data); } catch (\Exception $e) { // 捕获异常 $logContent["flie"] = $e->getFile(); $logContent["line"] = $e->getLine(); $logContent['all_content'] = "异常信息:\n"; $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; $logContent['all_content'] .= "方法: " . __METHOD__ . "\n"; $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; $this->record_api_log($data, $logContent, null); return $this->msg(99999); } } // 修改用户所属区域 public function update_user_address($data=['aud_id'=>'1','address_data'=>'上海,上海']){ try { if(count(input('post.')) > 0){ $data = input('post.'); } if(!array_key_exists('aud_id', $data) || !array_key_exists('address_data', $data)){ $this->record_api_log($data, null, ['code'=>10001,'msg'=>'',[]]); return $this->msg(10001); } if(!$this->verify_data_is_ok($data['aud_id'],'intnum')){ return $this->msg(10005); } $user_data = Db::table($this->base_use_db_name['2'])->where(['id' => $data['aud_id']])->count(); if($user_data<=0){ $this->record_api_log($data, null, ['code'=>10003,'msg'=>'',[]]); return $this->msg(10003); } $address_data = explode(',',$data['address_data']); $address_result = Db::table($this->base_use_db_name['10'])->where(['province' => $address_data[0]])->cache(3600)->field('id,recommend_cards')->find(); if(!$address_result){ $this->record_api_log($data, null, ['code'=>10003,'msg'=>'',[]]); return $this->msg(10003); } $user_result = Db::table($this->base_use_db_name['2'])->where(['id' => $data['aud_id']])->update(['card_order'=>$address_result['recommend_cards']]); if($user_result){ $this->record_api_log($data, null, ['code'=>0,'msg'=>'success',[]]); return $this->msg([]); }else{ $this->record_api_log($data, null, ['code'=>10002,'msg'=>'',[]]); return $this->msg(10002); } } catch (\Exception $e) { // 捕获异常 $logContent["flie"] = $e->getFile(); $logContent["line"] = $e->getLine(); $logContent['all_content'] = "异常信息:\n"; $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; $logContent['all_content'] .= "方法: " . __METHOD__ . "\n"; $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; $this->record_api_log($data, $logContent, null); return $this->msg(99999); } } ################################获取账号下信息操作################################ // 获取账号下首页卡片的基础数据 public function get_user_card_data_list($data,$aud_id){ $result = []; $db_arr = []; foreach ($data['card_order'] as $key => $value) { if(in_array($value,$this->default_card)){ // 过滤掉老版本的(268选项卡) unset($data['card_order'][$key]); continue; }else{ // 公共卡牌 $db_arr[$value] = Db::table($this->index_use_db_name['9'])->where(['aud_id'=>$aud_id,'acd_id'=>$value,'is_del'=>'0'])->order('record_time desc')->limit(1)->select(); if(count($db_arr[$value]) > 0){ $temporary_data = Db::table($this->index_use_db_name['8'])->where(['id'=>$db_arr[$value][0]['acdsi_id']])->field('id,name')->find(); $db_arr[$value][0]['acdsi_name'] = $temporary_data['name']; } if(count($db_arr[$value]) > 0){ $db_arr[$value] = $db_arr[$value][0]; }else{ unset($db_arr[$value]); } } } $data['card_order'] = array_values($data['card_order']); // 获取卡片背景图,及背景色信息及其他信息 $card_all_data = Db::table($this->index_use_db_name['6'])->where(['is_del'=>0])->field('id,name,page_url_record,page_url_report,page_url_bluetooth,key_word,background_color,background_pic')->select(); $card_all_data_result = []; foreach ($card_all_data as $key => $value) { $card_all_data_result[$value['id']] = $value; } // 获取卡片路径及卡片数组处理end // // 添加目标体重于当前体重差数据 // if(array_key_exists('2', $db_arr)){ // $target_current = $this->base_target_initial_cumulative_weight([ // 'weight'=>$db_arr['2']['weight']>0?$db_arr['2']['weight']:0, // 'target_weight'=>$data['target_weight']>0?$data['target_weight']:0, // 'initial_weight'=>$data['initial_weight']>0?$data['initial_weight']:0, // 'initial_date'=>$data['initial_date']!=null?$data['initial_date']:0, // ]); // }else{ // $target_current = $this->base_target_initial_cumulative_weight([ // 'weight'=>0, // 'target_weight'=>$data['target_weight']>0?$data['target_weight']:0, // 'initial_weight'=>$data['initial_weight']>0?$data['initial_weight']:0, // 'initial_date'=>$data['initial_date']!=null?$data['initial_date']:0, // ]); // } if(count($db_arr) <= 0){ // 没有数据,传递一个空的卡片 foreach ($data['card_order'] as $key => $value) { $temporary_arr = []; $temporary_arr['id'] = ''; $temporary_arr['acd_id'] = $value; $temporary_arr['record_time'] = ''; $temporary_arr['card_name'] = $card_all_data_result[$value]['name']; $temporary_arr['card_key'] = $card_all_data_result[$value]['key_word']; $temporary_arr['page_url_record'] = $card_all_data_result[$value]['page_url_record']; $temporary_arr['page_url_report'] = $card_all_data_result[$value]['page_url_report']; $temporary_arr['page_url_bluetooth'] = $card_all_data_result[$value]['page_url_bluetooth']; $temporary_arr['background_color'] = $card_all_data_result[$value]['background_color']; $temporary_arr['background_pic'] = $card_all_data_result[$value]['background_pic']; $temporary_arr['inside_data'] = []; array_push($temporary_arr['inside_data'],[ 'key'=>'last_time', 'name'=>'最近一次', 'value'=>"--", 'unit'=>'', 'standard'=>'*分', 'color'=>'' ]); array_push($result,$temporary_arr); } }else{ foreach ($data['card_order'] as $key => $value) { $temporary_arr = []; $temporary_arr['acd_id'] = $value; $temporary_arr['card_name'] = $card_all_data_result[$value]['name']; $temporary_arr['card_key'] = $card_all_data_result[$value]['key_word']; $temporary_arr['page_url_record'] = $card_all_data_result[$value]['page_url_record']; $temporary_arr['page_url_report'] = $card_all_data_result[$value]['page_url_report']; $temporary_arr['page_url_bluetooth'] = $card_all_data_result[$value]['page_url_bluetooth']; $temporary_arr['background_color'] = $card_all_data_result[$value]['background_color']; $temporary_arr['background_pic'] = $card_all_data_result[$value]['background_pic']; $temporary_arr['inside_data'] = []; if(array_key_exists($value,$db_arr)){ // 公共卡片内容 $temporary_arr['id'] = $db_arr[$value]['id']; $temporary_arr['record_time'] = $db_arr[$value]['record_time']; array_push($temporary_arr['inside_data'],[ 'key'=>'last_time', // 'name'=>'最近一次', 'name'=>"项目名称", 'value'=>$db_arr[$value]['acdsi_name'], 'unit'=>'', 'standard'=>'', 'color'=>'' ]); array_push($temporary_arr['inside_data'],[ 'key'=>'last_time', // 'name'=>'最近一次', 'name'=>"成绩", 'value'=>$db_arr[$value]['achievement'], 'unit'=>$db_arr[$value]['unit'], 'standard'=>'', 'color'=>'' ]); array_push($temporary_arr['inside_data'],[ 'key'=>'last_time', // 'name'=>'最近一次', 'name'=>'得分', // 'value'=>$db_arr[$value]['score'], 'value'=>$this->convertStringToNumber($db_arr[$value]['score']), 'unit'=>'分', 'standard'=>"", 'color'=>'' ]); }else{ $temporary_arr['id'] = ''; $temporary_arr['record_time'] = ''; array_push($temporary_arr['inside_data'],[ 'key'=>'last_time', 'name'=>'最近一次', 'value'=>"--", 'unit'=>'', 'standard'=>'*分', 'color'=>'' ]); } array_push($result,$temporary_arr); } } return [$result,$data['card_order']]; } ################################################################other################################################################ ################################################################other################################################################ ################################################################other################################################################ public function verify_parameters($data,$type){ // 设置验证 if($data['measure_model'] == 1){ $rule = [ 'aan_id' => 'require|number', 'nickname' => 'require|chsAlphaNum', 'birthday' => 'require|date', 'gender' => 'require|number|in:0,1,2', 'grade' => 'require', 'height' => 'require|number', 'weight' => 'require|number', 'measure_model' => 'require|in:1,2', 'identity_id' => 'require', 'identity_name' => 'require', 'address' => 'require', ]; $msg = [ 'aan_id.require' => '账号信息缺失', 'nickname.require' => '昵称缺失', 'birthday.require' => '生日缺失', 'gender.require' => '性别缺失', 'grade.require' => '年级缺失', 'height.require' => '身高缺失', 'weight.require' => '体重缺失', 'measure_model.require' => '测量模式缺失', 'identity_id.require' => '身份缺失', 'identity_name.require' => '身份缺失', 'address.require' => '区域缺失', 'aan_id.number' => '账号信息格式错误', 'nickname.chsAlphaNum' => '昵称只能是只能是汉字、字母和数字', 'birthday.date' => '生日信息格式错误', 'gender.number' => '性别格式错误', 'gender.in' => '性别信息错误', 'measure_model.number' => '测量模式错误', 'measure_model.in' => '测量模式信息错误', 'height.number' => '身高必须为数字', 'weight.number' => '体重必须为数字', ]; $validate = new Validate($rule,$msg); $result = $validate->check($data); if(!$result){ return $validate->getError(); } $parameter['aan_id'] = $data['aan_id']; $parameter['nickname'] = $data['nickname']; $parameter['birthday'] = $data['birthday']; $parameter['gender'] = $data['gender']; $parameter['card_order'] = ''; $parameter['height'] = $data['height']; $parameter['weight'] = $data['weight']; $parameter['head_pic'] = $data['gender'] == 2?'http://tc.pcxbc.com/tsf/2.png':'http://tc.pcxbc.com/tsf/1.png'; $parameter['create_time'] = date('Y-m-d H:i:s'); $parameter['last_update_time'] = date('Y-m-d H:i:s'); $parameter['measure_model'] = $data['measure_model']; $parameter['grade'] = $data['grade']; $parameter['identity_id'] = $data['identity_id']; $parameter['identity_name'] = $data['identity_name']; $parameter['address'] = $data['address']; if(!array_key_exists($parameter['identity_id'],$this->identity_list)){ return '身份信息错误'; }else{ if($parameter['identity_id'] != 'P0'){ $parameter['identity_name'] = $this->identity_list[$data['identity_id']]; $result = Db::table($this->index_use_db_name['2'])->where(['identity_id'=>$parameter['identity_id'],'aan_id'=>$parameter['aan_id'],'is_del'=>0])->count(); if($result>0){ return '该身份已存在'; } } } $address_data = Db::table($this->index_use_db_name['10'])->where(['province'=>explode(',',$parameter['address'])[0],'is_del'=>0])->field('id,recommend_cards')->find(); $parameter['card_order'] = $address_data['recommend_cards']; }else{ $rule = [ 'aan_id' => 'require|number', 'nickname' => 'require|chsAlphaNum', 'birthday' => 'require|date', 'gender' => 'require|number|in:0,1,2', // 'grade' => 'require', 'height' => 'require|number', 'weight' => 'require|number', 'measure_model' => 'require|in:1,2', // 'identity_id' => 'require', // 'identity_name' => 'require', // 'address' => 'require', ]; $msg = [ 'aan_id.require' => '账号信息缺失', 'nickname.require' => '昵称缺失', 'birthday.require' => '生日缺失', 'gender.require' => '性别缺失', // 'grade.require' => '年级缺失', 'height.require' => '身高缺失', 'weight.require' => '体重缺失', 'measure_model.require' => '测量模式缺失', // 'identity_id.require' => '身份缺失', // 'identity_name.require' => '身份缺失', // 'address.require' => '区域缺失', 'aan_id.number' => '账号信息格式错误', 'nickname.chsAlphaNum' => '昵称只能是只能是汉字、字母和数字', 'birthday.date' => '生日信息格式错误', 'gender.number' => '性别格式错误', 'gender.in' => '性别信息错误', 'measure_model.number' => '测量模式错误', 'measure_model.in' => '测量模式信息错误', 'height.number' => '身高必须为数字', 'weight.number' => '体重必须为数字', ]; $validate = new Validate($rule,$msg); $result = $validate->check($data); if(!$result){ return $validate->getError(); } $parameter['aan_id'] = $data['aan_id']; $parameter['nickname'] = $data['nickname']; $parameter['birthday'] = $data['birthday']; $parameter['gender'] = $data['gender']; $parameter['card_order'] = '2'; $parameter['height'] = $data['height']; $parameter['weight'] = $data['weight']; $parameter['head_pic'] = $data['gender'] == 2?'http://tc.pcxbc.com/tsf/2.png':'http://tc.pcxbc.com/tsf/1.png'; $parameter['create_time'] = date('Y-m-d H:i:s'); $parameter['last_update_time'] = date('Y-m-d H:i:s'); $parameter['measure_model'] = $data['measure_model']; $parameter['grade'] = "nothing"; $parameter['identity_id'] = "P0"; $parameter['identity_name'] = "陌生人"; $parameter['address'] = ''; $parameter_pd = Db::table($this->index_use_db_name['7'])->where(['id'=>$parameter['aan_id']])->count(); if($parameter_pd <= 0){ return '该账户不存在'; } $result = Db::table($this->index_use_db_name['2'])->where(['nickname'=>$parameter['nickname'],'aan_id'=>$parameter['aan_id'],'is_del'=>0])->count(); if($result>0){ return '该成员已存在'; } } return $parameter; } public function verify_parameters2($data,$type){ if($data['measure_model'] == 1){ $rule = [ 'id' => 'require|number', 'nickname' => 'require|chsAlphaNum', 'birthday' => 'require|date', 'gender' => 'require|number|in:0,1,2', 'grade' => 'require', 'height' => 'require|number', 'weight' => 'require|number', 'measure_model' => 'require|in:1,2', 'identity_id' => 'require', 'identity_name' => 'require', 'address' => 'require', ]; $msg = [ 'id.require' => '账号信息缺失', 'nickname.require' => '昵称缺失', 'birthday.require' => '生日缺失', 'gender.require' => '性别缺失', 'grade.require' => '年级缺失', 'height.require' => '身高缺失', 'weight.require' => '体重缺失', 'measure_model.require' => '测量模式缺失', 'identity_id.require' => '身份缺失', 'identity_name.require' => '身份缺失', 'address.require' => '区域缺失', 'id.number' => '账号信息格式错误', 'nickname.chsAlphaNum' => '昵称只能是只能是汉字、字母和数字', 'birthday.date' => '生日信息格式错误', 'gender.number' => '性别格式错误', 'gender.in' => '性别信息错误', 'measure_model.number' => '测量模式错误', 'measure_model.in' => '测量模式信息错误', 'height.number' => '身高必须为数字', 'weight.number' => '体重必须为数字', ]; $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['card_order'] = '2'; $parameter['height'] = $data['height']; $parameter['weight'] = $data['weight']; $parameter['head_pic'] = $data['gender'] == 2?'http://tc.pcxbc.com/tsf/2.png':'http://tc.pcxbc.com/tsf/1.png'; $parameter['create_time'] = date('Y-m-d H:i:s'); $parameter['last_update_time'] = date('Y-m-d H:i:s'); $parameter['measure_model'] = $data['measure_model']; $parameter['grade'] = $data['grade']; $parameter['identity_id'] = $data['identity_id']; $parameter['identity_name'] = $data['identity_name']; $parameter['address'] = $data['address']; $aan_id = $data['aan_id']; if(!array_key_exists($parameter['identity_id'],$this->identity_list)){ return '身份信息错误'; }else{ if($parameter['identity_id'] != 'P0'){ $parameter['identity_name'] = $this->identity_list[$data['identity_id']]; $result = Db::table($this->index_use_db_name['2']) // ->where(['identity_id'=>$parameter['identity_id'],'aan_id'=>$aan_id,'is_del'=>0]) ->where("identity_id = '".$parameter['identity_id']."' and aan_id = '".$aan_id."' and is_del = 0 and id <> ".$parameter['id']."") ->field('id,identity_id') ->find(); if($result && $parameter['id'] != $result['id']){ return '该身份已存在'; } } } $address_data = Db::table($this->index_use_db_name['10'])->where(['province'=>explode(',',$parameter['address'])[0],'is_del'=>0])->field('id,recommend_cards')->find(); $parameter['card_order'] = $address_data['recommend_cards']; }else{ $rule = [ 'aan_id' => 'require|number', 'nickname' => 'require|chsAlphaNum', 'birthday' => 'require|date', 'gender' => 'require|number|in:0,1,2', // 'grade' => 'require', 'height' => 'require|number', 'weight' => 'require|number', 'measure_model' => 'require|in:1,2', // 'identity_id' => 'require', // 'identity_name' => 'require', // 'address' => 'require', ]; $msg = [ 'aan_id.require' => '账号信息缺失', 'nickname.require' => '昵称缺失', 'birthday.require' => '生日缺失', 'gender.require' => '性别缺失', // 'grade.require' => '年级缺失', 'height.require' => '身高缺失', 'weight.require' => '体重缺失', 'measure_model.require' => '测量模式缺失', // 'identity_id.require' => '身份缺失', // 'identity_name.require' => '身份缺失', // 'address.require' => '区域缺失', 'aan_id.number' => '账号信息格式错误', 'nickname.chsAlphaNum' => '昵称只能是只能是汉字、字母和数字', 'birthday.date' => '生日信息格式错误', 'gender.number' => '性别格式错误', 'gender.in' => '性别信息错误', 'measure_model.number' => '测量模式错误', 'measure_model.in' => '测量模式信息错误', 'height.number' => '身高必须为数字', 'weight.number' => '体重必须为数字', ]; $validate = new Validate($rule,$msg); $result = $validate->check($data); if(!$result){ return $validate->getError(); } $parameter['id'] = $data['id']; $parameter['aan_id'] = $data['aan_id']; $parameter['nickname'] = $data['nickname']; $parameter['birthday'] = $data['birthday']; $parameter['gender'] = $data['gender']; // $parameter['card_order'] = '2'; $parameter['height'] = $data['height']; $parameter['weight'] = $data['weight']; $parameter['head_pic'] = $data['gender'] == 2?'http://tc.pcxbc.com/tsf/2.png':'http://tc.pcxbc.com/tsf/1.png'; $parameter['create_time'] = date('Y-m-d H:i:s'); $parameter['last_update_time'] = date('Y-m-d H:i:s'); $parameter['measure_model'] = $data['measure_model']; $parameter_pd = Db::table($this->index_use_db_name['7'])->where(['id'=>$parameter['aan_id']])->count(); if($parameter_pd <= 0){ return '该账户不存在'; } $result = Db::table($this->index_use_db_name['2']) // ->where(['nickname'=>$parameter['nickname'],'aan_id'=>$parameter['aan_id'],'is_del'=>0]) ->where("nickname = '".$parameter['nickname']."' and aan_id = '".$parameter['aan_id']."' and is_del = 0 and id <> ".$parameter['id']."") ->count(); if($result>0){ return '该成员已存在'; } unset($parameter['aan_id']); } return $parameter; } public function pd_language($user_language,$isSupportedLanguage,$language){ if(!$user_language){ if($isSupportedLanguage){ // $result = $language; $result['user_language'] = null; $result['address'] = $language; }else{ $result = null; // 默认语言为中文 $result['user_language'] = null; $result['address'] = null; } }else{ $result['user_language'] = $user_language; $result['address'] = $language; } return $result; } // 处理返回的语言数组 public function process_Language(){ $temporary_arr = []; foreach ($this->language_country as $key => $value) { array_push($temporary_arr,['key'=>$key,'value'=>$value]); } return $temporary_arr; } }