812 lines
39 KiB
PHP
812 lines
39 KiB
PHP
<?php
|
||
|
||
namespace app\testapp\controller;
|
||
|
||
use think\Db;
|
||
use \think\Validate;
|
||
|
||
class Index extends Base{
|
||
protected $moren_gufen_diqu = '上海,上海';
|
||
protected $db_name = ['2'=>'test_app_card_body_data','6'=>'test_app_card_skip_data','8'=>'test_app_card_vitalcapacity_data','10'=>'test_app_card_data_sub_item_data'];
|
||
protected $index_use_db_name = [
|
||
'1'=>'test_app_version_log',
|
||
'2'=>'test_app_user_data',
|
||
'3'=>'test_app_card_body_data',
|
||
'4'=>'test_app_device_code_data',
|
||
'5'=>'test_app_device_data',
|
||
'6'=>'test_app_card_data',
|
||
'7'=>'test_app_account_number',
|
||
'8'=>'test_app_card_data_sub_item',
|
||
'9'=>'test_app_card_data_sub_item_data',
|
||
];
|
||
// 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','test_pc_heightstand2'],
|
||
'weight'=>['体重','公斤','test_pc_weightstand2'],
|
||
'bmi'=>['BMI','','test_pc_bmistand2'],
|
||
'average'=>['肺活量','ml','test_pc_vitalcapacity_standard']
|
||
];
|
||
|
||
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'=>'大学三、四年级']
|
||
];
|
||
|
||
################################################################个人资料卡################################################################
|
||
################################################################个人资料卡################################################################
|
||
################################################################个人资料卡################################################################
|
||
|
||
// 检测版本及判断是否登录失效
|
||
public function login_invalid_version($data = ['token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
|
||
try {
|
||
// 你的业务逻辑
|
||
if(count(input('post.')) > 0){
|
||
$data = input('post.');
|
||
}
|
||
if(!array_key_exists('token', $data)){
|
||
return $this->msg(10001);
|
||
}
|
||
$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 = '';
|
||
}
|
||
if($this->token_time_validate($data['token']) === false){
|
||
|
||
$this->record_api_log($data, null, ['code'=>-1,'msg'=>'未登录',['version'=>$version,'url'=>$url]]);
|
||
return $this->msg(-1,'未登录',['version'=>$version,'url'=>$url]);
|
||
}else{
|
||
$this->record_api_log($data, null, ['code'=>0,'msg'=>'success',['version'=>$version,'url'=>$url]]);
|
||
return $this->msg(['version'=>$version,'url'=>$url]);
|
||
}
|
||
|
||
} 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 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','token'=>'57bd45e3a963b372ea2d873e4bd8d1f8']){
|
||
|
||
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_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'] .= "行号: " . $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'=>'二年级','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'] .= "行号: " . $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);
|
||
}
|
||
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'] .= "行号: " . $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'=>1,'type'=>1,'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)){
|
||
// 失败
|
||
$this->record_api_log($data, null, ['code'=>10001,'msg'=>'',[]]);
|
||
return $this->msg(10001);
|
||
}
|
||
unset($data['token']);
|
||
$result = Db::table($this->index_use_db_name['2'])->where(['aan_id'=>$data['aan_id'],'is_del'=>0])->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']]);
|
||
}
|
||
}else{
|
||
for ($i=0; $i < count($result); $i++) {
|
||
$result[$i]['age'] = $this->calculate_age($result[$i]['birthday']);
|
||
}
|
||
$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'] .= "行号: " . $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'=>1]){
|
||
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);
|
||
}
|
||
|
||
// 获取用户信息
|
||
$result = Db::table($this->index_use_db_name['2'])->where(['id'=>$data['aud_id']])->field('id,aan_id,nickname,head_pic,birthday,gender,card_order,target_weight,initial_weight,initial_date,weight')->find();
|
||
// 获取用户身体卡片信息
|
||
$weight_data_pd = Db::table($this->index_use_db_name['3'])->where(['aud_id'=>$data['aud_id']])->order('record_time desc')->field('id,weight_val,record_time')->find();
|
||
|
||
// dump($card_pic_color);
|
||
// die;
|
||
if(!$result){
|
||
// 失败
|
||
$this->record_api_log($data, null, ['code'=>10003,'msg'=>'',[]]);
|
||
return $this->msg(10003);
|
||
}
|
||
unset($result['ROW_NUMBER']);
|
||
$result['age'] = $this->calculate_age($result['birthday']);
|
||
if($result['card_order'] === ''){
|
||
$result['card_order'] = [];
|
||
$result['card_data_list'] = [];
|
||
$result['target_current'] = $this->base_target_initial_cumulative_weight([]);
|
||
|
||
}else{
|
||
$result['card_order'] = explode(',',$result['card_order']);
|
||
$calculation_results = $this->get_user_card_data_list($result,$result['id']);
|
||
$result['card_data_list'] = $calculation_results[0];
|
||
$result['target_current'] = $calculation_results[1];
|
||
}
|
||
|
||
|
||
if($weight_data_pd){
|
||
$result['weight'] = $weight_data_pd['weight_val'];
|
||
}
|
||
|
||
unset($result['target_weight']);
|
||
unset($result['initial_weight']);
|
||
unset($result['initial_date']);
|
||
|
||
// 获取设备信息进入卡片 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'=>$result['aan_id']])
|
||
->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']);
|
||
}
|
||
}
|
||
// dump($device_arr);
|
||
// die;
|
||
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;
|
||
}
|
||
// // 处理卡片的背景色背景图
|
||
// foreach ($card_pic_color as $ck => $cv) {
|
||
// if($cv['id'] == $value['acd_id']){
|
||
// $result['card_data_list'][$key]['background_color'] = $cv['background_color'];
|
||
// $result['card_data_list'][$key]['background_pic'] = $cv['background_pic'];
|
||
// }
|
||
// }
|
||
}
|
||
// 获取设备信息进入卡片 end
|
||
// 插入肺活量的卡片标准
|
||
$result['address'] = $this->moren_gufen_diqu;
|
||
$result['vitalcapacity_data'] = $this->get_vitalcapacity_data($result['id']);
|
||
// 成功
|
||
$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'=>1,'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);
|
||
}
|
||
|
||
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']);
|
||
$all_card_list = Db::table($this->index_use_db_name['6'])->where(['is_del'=>0])->field('id,name,pic')->select();
|
||
|
||
$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'] .= "行号: " . $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,8','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);
|
||
}
|
||
|
||
unset($data['token']);
|
||
if(!$this->is_num_array(explode(',',$data['card_order']))){
|
||
// 失败
|
||
$this->record_api_log($data, null, ['code'=>10001,'msg'=>'',[]]);
|
||
return $this->msg(10001,'数据内参数格式或值错误');
|
||
}
|
||
$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'] .= "行号: " . $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 = input('post.');
|
||
if(!array_key_exists('token', $data)){
|
||
return $this->msg(10001);
|
||
}
|
||
|
||
|
||
return $this->msg($this->grade_list);
|
||
|
||
}
|
||
################################获取账号下信息操作################################
|
||
|
||
// 获取账号下首页卡片的基础数据
|
||
public function get_user_card_data_list($data,$aud_id){
|
||
// try {
|
||
// 你的业务逻辑
|
||
$result = [];
|
||
$db_arr = [];
|
||
foreach ($data['card_order'] as $key => $value) {
|
||
if($value<10){
|
||
$db_arr[$value] = Db::table($this->db_name[$value])->where(['aud_id'=>$aud_id,'is_del'=>'0'])->order('record_time desc')->limit(1)->select();
|
||
}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]);
|
||
}
|
||
}
|
||
// 获取卡片背景图,及背景色信息及其他信息
|
||
$card_all_data = Db::table($this->index_use_db_name['6'])->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'] = [];
|
||
if(array_key_exists($value, $this->card_data)){
|
||
foreach ($this->card_data[$value][2] as $k => $v) {
|
||
array_push($temporary_arr['inside_data'],[
|
||
'key'=>$k,
|
||
'name'=>$v[0],
|
||
'value'=>$v[2],
|
||
'unit'=>$v[1]!='无'?$v[1]:'',
|
||
'standard'=>'',
|
||
'color'=>''
|
||
]);
|
||
}
|
||
}else{
|
||
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, $this->card_data)){
|
||
if(array_key_exists($value,$db_arr)){
|
||
$temporary_arr['id'] = $db_arr[$value]['id'];
|
||
$temporary_arr['record_time'] = $db_arr[$value]['record_time'];
|
||
foreach ($this->card_data[$value][2] as $k => $v) {
|
||
if($value == '2'){
|
||
$tem_arr_2 = explode(',', $db_arr[$value][$k]);
|
||
}else if($value == '6' && $k == 'jump_time'){
|
||
$time_conversion = $this->handle_hour_branch_second($db_arr[$value][$k]);
|
||
$tem_arr_2 = [$time_conversion['h'].':'.$time_conversion['m'].':'.$time_conversion['s'],'',''];
|
||
}else{
|
||
$tem_arr_2 = [$db_arr[$value][$k],'',''];
|
||
}
|
||
array_push($temporary_arr['inside_data'],[
|
||
'key'=>$k,
|
||
'name'=>$v[0],
|
||
'value'=>$tem_arr_2[0],
|
||
'unit'=>$v[1]!='无'?$v[1]:'',
|
||
'standard'=>$tem_arr_2[1]!='无'?$tem_arr_2[1]:'',
|
||
'color'=>$tem_arr_2[2]!='无'?$tem_arr_2[2]:''
|
||
]);
|
||
}
|
||
}else{
|
||
$temporary_arr['id'] = '';
|
||
$temporary_arr['record_time'] = '';
|
||
foreach ($this->card_data[$value][2] as $k => $v) {
|
||
array_push($temporary_arr['inside_data'],[
|
||
'key'=>$k,
|
||
'name'=>$v[0],
|
||
'value'=>$v[2],
|
||
'unit'=>$v[1]!='无'?$v[1]:'',
|
||
'standard'=>'',
|
||
'color'=>''
|
||
]);
|
||
}
|
||
}
|
||
}else{
|
||
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'],
|
||
'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);
|
||
}
|
||
}
|
||
// 成功
|
||
// $this->record_api_log($data, null, ['code'=>0,'msg'=>'success',[$result,$target_current]]);
|
||
return [$result,$target_current];
|
||
// } catch (\Exception $e) {
|
||
// // 捕获异常
|
||
// $this->record_api_log($data, $e->getMessage(), null);
|
||
// }
|
||
|
||
}
|
||
|
||
|
||
|
||
################################################################other################################################################
|
||
################################################################other################################################################
|
||
################################################################other################################################################
|
||
|
||
|
||
public function verify_parameters($data,$type){
|
||
// 设置验证
|
||
$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',
|
||
// 'identity' => 'require|number',
|
||
];
|
||
$msg = [
|
||
'aan_id.require' => '账号信息缺失',
|
||
'nickname.require' => '昵称缺失',
|
||
'birthday.require' => '生日缺失',
|
||
'gender.require' => '性别缺失',
|
||
'grade.require' => '年级缺失',
|
||
'height.require' => '身高缺失',
|
||
'weight.require' => '体重缺失',
|
||
// 'identity.require' => '身份缺失',
|
||
|
||
'aan_id.number' => '账号信息格式错误',
|
||
'nickname.chsAlphaNum' => '昵称只能是只能是汉字、字母',
|
||
'birthday.date' => '生日信息格式错误',
|
||
'gender.number' => '性别格式错误',
|
||
'gender.in' => '性别信息错误',
|
||
'height.number' => '身高必须为数字',
|
||
'weight.number' => '体重必须为数字',
|
||
// 'identity.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['grade'] = $data['grade'];
|
||
$parameter['card_order'] = '2,6,8';
|
||
$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['identity_data'] = $data['identity'];
|
||
$parameter['create_time'] = date('Y-m-d H:i:s');
|
||
$parameter['last_update_time'] = date('Y-m-d H:i:s');
|
||
|
||
$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){
|
||
// 设置验证
|
||
$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',
|
||
// 'identity' => 'require|number',
|
||
];
|
||
$msg = [
|
||
'id.require' => '用户信息缺失',
|
||
'nickname.require' => '昵称缺失',
|
||
'birthday.require' => '生日缺失',
|
||
'gender.require' => '性别缺失',
|
||
'grade.require' => '年级缺失',
|
||
'height.require' => '身高缺失',
|
||
'weight.require' => '体重缺失',
|
||
// 'identity.require' => '身份缺失',
|
||
|
||
'id.number' => '用户信息格式错误',
|
||
'nickname.chsAlphaNum' => '昵称只能是只能是汉字、字母、数字',
|
||
'birthday.date' => '生日信息格式错误',
|
||
'gender.number' => '性别格式错误',
|
||
'gender.in' => '性别信息错误',
|
||
'height.number' => '身高必须为数字',
|
||
'weight.number' => '体重必须为数字',
|
||
// 'identity.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['height'] = $data['height'];
|
||
$parameter['weight'] = $data['weight'];
|
||
$parameter['gender'] = $data['gender'];
|
||
$parameter['grade'] = $data['grade'];
|
||
$parameter['head_pic'] = $data['gender'] == 2?'http://tc.pcxbc.com/tsf/2.png':'http://tc.pcxbc.com/tsf/1.png';
|
||
// $parameter['identity_data'] = $data['identity'];
|
||
$parameter['last_update_time'] = date('Y-m-d H:i:s');
|
||
return $parameter;
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
} |