['success',[]], '10001'=>'关键参数缺失', '10002'=>'操作失败', '10003'=>'信息核实错误', '10004'=>'未找到有效数据', '10005'=>'参数格式错误', '10006'=>'参数不能为空', '10007'=>'', '10008'=>'', '10009'=>'', '10010'=>'', '20001'=>'登录失效', ]; ################################################################接口################################################################ ################################################################接口################################################################ ################################################################接口################################################################ // 操作记录留存 // $data = ['aud_id'=>'xxxxxxxxxxxxxxx','order_list'=>[1,2,3,4,5]] public function abnormal_data_log_action($dacall_methoda = 0,$content='未记录的内容',$use_database_name='未记录的数据库名'){ $result = Db::table('app_data_log')->insert([ 'create_time'=>date('Y-m-d H:i:s'), 'call_method'=>$this->base_call_method[$dacall_methoda], 'content'=>$content, 'use_database_name'=>$use_database_name, ]); } // 检查变量是否是一个只有数字的一维数组 public function is_num_array($array = [1,2,3],$type=1) { if (!is_array($array)) { return false; // 变量不是数组 } foreach ($array as $value) { if (!is_numeric($value)) { return false; // 数组中包含非数字元素 } } if($type!=1){ return true; } $result = Db::table('app_card_data')->where(['is_del'=>0])->cache(true,3600)->select();//查询结果缓存3600秒 if(empty(array_diff($array, array_column($result, 'id')))){ return true;// 数组是一维的且只包含数字,且已经跟数据库比对过,每个数值都是有效 }else{ return false;//跟数据库比对过,存在无效数值 } } public function validate_user_identity($data) { $validate_user = Db::table('app_user_data')->where(['id'=>$data])->count(); if($validate_user<=0){ return false; }else{ return true; } } // 判断字符串是手机还是邮箱 public function is_tel_email($str) { // 手机号码的正则表达式(中国大陆格式)(下面正则实际判断的是是否为11位数字) $mobilePattern = '/^\d{11}$/'; // 电子邮件地址的正则表达式 $emailPattern = '/^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/'; // 判断是否为手机号码 if (preg_match($mobilePattern, $str)) { return 'tel'; } // 判断是否为电子邮件地址 if (preg_match($emailPattern, $str)) { return 'email'; } // 如果都不是,返回其他 return false; } // 计算年龄 public function calculate_age($data = '1991-04-20'){ $today = time(); // 获取当前时间的 Unix 时间戳 $birthDate = strtotime($data); // 将出生日期字符串转换为 Unix 时间戳 if ($birthDate !== false) { $age = date('Y', $today) - date('Y', $birthDate); // 如果当前年份的月份和日期小于出生年份的月份和日期,那么年龄减一 if (date('m-d', $today) < date('m-d', $birthDate)) { $age--; } return $age; } else { return false; } } // 秒转化格式,00:00:00 public function handle_hour_branch_second($data = '2000'){ $hours = intval($data / 3600); $minutes = intval(($data % 3600) / 60); $remainingSeconds = $data % 60; return [ 'h' => str_pad($hours, 2, '0', STR_PAD_LEFT), 'm' => str_pad($minutes, 2, '0', STR_PAD_LEFT), 's' => str_pad($remainingSeconds, 2, '0', STR_PAD_LEFT) ]; } // 判断token是否过期 public function token_time_validate($token){ // cache($token,time()); // return true; $time = cache($token); // dump($time); if($time === false){ return false; } $diff_time = time() - $time; // dump($diff_time); if($diff_time > $this->token_time){ return false; } cache($token, time()); return true; } // 计算天数 public function daysSince($pastDate,$now = false) { // 创建一个表示过去日期的 DateTime 对象 $past = new \DateTime($pastDate); if($now === false){ // 创建一个表示当前日期的 DateTime 对象 $now = new \DateTime(); }else{ $now = new \DateTime($now); } // 使用 DateTime::diff() 方法计算两个日期之间的差值 $interval = $past->diff($now); // 返回相差的天数 return $interval->format('%a'); } // 计算月份 public function calculateAgeInMonthsWithPrecision($birthDateStr) { // 获取当前日期 $now = new \DateTime(); // 将出生日期字符串转换为 DateTime 对象 $birthDate = \DateTime::createFromFormat('Y-m-d', $birthDateStr); // 计算两者之间的差距(以月为单位,包含部分月份的小数) $interval = $now->diff($birthDate); $ageInMonths = $interval->y * 12 + $interval->m; // 年份乘以12加上月份 $remainingDays = $interval->d; // 当前月内的剩余天数 // 将剩余天数转换为小数月份(假设一个月为30天,进行近似计算) $partialMonth = $remainingDays / 30; // 结果精确到小数点后两位 $ageInMonthsPrecise = round($ageInMonths + $partialMonth, 2); return $ageInMonthsPrecise; } // 曲线页面-底部统计动作 public function base_target_initial_cumulative_weight($data = []){ // 第一种:用户详情(所有数据都有) // 第二种:手动记录(只有最新体重) // 第三种:修改原始体重(只有原始体重) // dump($data); if(count($data) > 0){ $result_data['target_weight'] = $data['target_weight']; $result_data['initial_weight'] = $data['initial_weight']; $result_data['cumulative_weight'] = bcsub($data['weight'],$data['initial_weight'],2); $result_data['cumulative_day'] = $data['initial_date'] == 0?0:$this->daysSince($data['initial_date']); }else{ $result_data['target_weight'] = 0; $result_data['initial_weight'] = 0; $result_data['cumulative_weight'] = 0; $result_data['cumulative_day'] = 0; } // dump($result_data); return $result_data; } // 判断一个参数是否为数字且大于等于0 function isPositiveNumber($value) { return is_numeric($value) && $value >= 0; } public function msg($data,$str='',$result = []){ if(is_array($data)){ return json(['code'=>0,'msg'=>'操作成功','data'=>$data]); }else{ if($str != ''){ return json(['code'=>$data,'msg'=>$str,'data'=>$result]); } return json(['code'=>$data,'msg'=>$this->return_data_all[$data],'data'=>$result]); } } public function ceshiyong(){ $result = Db::query("select * from app_card_data"); dump($result); $result2 = Db::table('app_card_data')->select(); dump($result2); } }