'test_app_data_log', ]; protected $return_data_all = [ '10001'=>'关键参数缺失', '10002'=>'操作失败', '10003'=>'信息核实错误', '10004'=>'未找到有效数据', '10005'=>'参数格式错误', '10006'=>'参数不能为空', '10007'=>'参数错误', '10008'=>'', '10009'=>'', '10010'=>'自定义信息', '20001'=>'登录失效', '99999'=>'网络异常,请稍后重试', ]; protected $file_size = 1024*1024*10;//10M // 加 bcadd(,,20) // 减 bcsub(,,20) // 乘 bcmul(,,20) // 除 bcdiv(,,20) ################################################################接口################################################################ ################################################################接口################################################################ ################################################################接口################################################################ // 接口记录 public function record_api_log($params, $error = null, $response = null){ // dump($params); // dump($error); // die; $logContent = "接口请求参数:" . json_encode($params, JSON_UNESCAPED_UNICODE) . PHP_EOL; if ($error) { $logContent .= "错误信息:" . $error['all_content'] . PHP_EOL; if(!cache($error['flie']."_".$error['line'])){ cache($error['flie']."_".$error['line'],"API错误",3600); $this->send_email_api_error(["tsf3920322@126.com"],['title'=>'接口报错','from_user_name'=>'厨房秤(后台)','content'=>$logContent]); } } if ($response) { $logContent .= "返回信息:" . json_encode($response, JSON_UNESCAPED_UNICODE) . PHP_EOL; } // 使用ThinkPHP的日志记录方法 Log::record($logContent, 'api_log'); } /* 接口说明(发邮件) * $address(收件人的邮箱地址) 数组 格式: ['460834639@qq.com','460834639@qq.com'.......] * $content(邮件的主题数据信息) 数组 格式:['title'=>'123','from_user_name'=>'123','content'=>'123'] * $annex(附件路径信息) 字符串 */ public function send_email_api_error($address,$content,$annex=''){ // $ad = '460834639@qq.com'; $ad1 = '295155911@qq.com'; $mail = new PHPMailer(); //实例化 $mail->IsSMTP(); // 启用SMTP $mail->Host = "smtp.126.com"; //SMTP服务器 163邮箱例子 $mail->Port = 465; //邮件发送端口 $mail->SMTPAuth = true; //启用SMTP认证 $mail->SMTPSecure = 'ssl'; $mail->CharSet = "UTF-8"; //字符集 $mail->Encoding = "base64"; //编码方式 $mail->Username = "tsf3920322@126.com"; //你的邮箱 $mail->Password = "HLWXNRPUCTHJFIIX"; //你的密码(邮箱后台的授权密码) $mail->From = "tsf3920322@126.com"; //发件人地址(也就是你的邮箱) // $mail->Subject = "微盟测试邮件"; //邮件标题 $mail->Subject = $content['title']; //邮件标题 // $mail->FromName = "微盟体测中心"; //发件人姓名 $mail->FromName = $content['from_user_name']; //发件人姓名 for ($i=0; $i < count($address); $i++) { $mail->AddAddress($address[$i], ""); //添加收件人(地址,昵称) } if($annex != ''){ // $url = ROOT_PATH. 'public' . DS . 'tsf' . DS .'demoooo.jpg'; $mail->AddAttachment($annex,''); // 添加附件,并指定名称 } $mail->IsHTML(true); //支持html格式内容 $neirong = $content['content']; $mail->Body = $neirong; //邮件主体内容 //发送 if (!$mail->Send()) { return ['code' => 10003,'msg'=>$mail->ErrorInfo]; // return $mail->ErrorInfo; } else { return ['code' => 0]; // return 'success'; } } // 验证数据类型 public function verify_data_is_ok($data = 2,$type){ if($type == 'str'){ if (is_string($data)) { return true; } else { $this->record_api_log($data, null, ['code'=>10005,'msg'=>'校验参数不为字符串',[]]); return false; } }else if($type == 'num'){ if (is_numeric($data)) { return true; } else { $this->record_api_log($data, null, ['code'=>10005,'msg'=>'校验参数不为数字',[]]); return false; } }else if($type == 'intnum'){ $pattern = '/^\d+$/'; // dump($data); if (preg_match($pattern, $data)) { return true; // 匹配成功,返回 true } else { $this->record_api_log($data, null, ['code'=>10005,'msg'=>'校验参数不为整数数字',[]]); return false; // 匹配失败,返回 false } }else if($type == 'datetime'){ $formats = ['Y-m-d','Y-m-d H:i:s']; foreach ($formats as $format) { $dateTime = \DateTime::createFromFormat($format, $data); // 检查时间字符串是否成功解析,并且解析后的日期时间与原始字符串表示的时间一致 if ($dateTime && $dateTime->format($format) === $data) { return true; } } // 如果所有格式都解析失败,则返回 false $this->record_api_log($data, null, ['code'=>10005,'msg'=>'校验参数不为日期格式',[]]); return false; }else if($type == 'other'){ } } ####################################################图片选择上传start############################################################## public function pic_upload($page = 1) { $data = input(); $pd = true; if(array_key_exists('page',$data)){ $page = $data['page']; $pd = false; } $zzt_db = Db::connect('zzt_db'); $num = $zzt_db->table('pc_pic_manage')->count(); $result = $zzt_db->table('pc_pic_manage')->order('id desc')->page($page,20)->select(); if(!$pd){ $return_result['num'] = $num; $return_result['result'] = $result; return $this->msg(0,'success',$return_result); } $this->assign([ 'result' => $result, 'num' => $num, ]); return $this->fetch(); } public function pic_upload_action(){ // $file1 = request()->file('file'); $file = request()->file('cover_image'); if($file){ $name = $file->getInfo()['name']; // 使用 pathinfo() 函数获取文件名的扩展名 $pathinfo = pathinfo($name); $extension = strtolower($pathinfo['extension']); // 转换为小写以进行不区分大小写的比较 $file_name = $pathinfo['filename']; // 判断扩展名是否不是 .png 或 .gif if ($extension !== 'png' && $extension !== 'gif') { // 修改文件名,将扩展名改为 .jpg $new_filename = date('YmdHis').$file_name . '.jpg'; } else { $new_filename = date('YmdHis').$name; } $info = $file->validate(['size'=>$this->file_size,'ext'=>'jpg,png,gif'])->move(ROOT_PATH . 'public' . DS . 'outside_interface' . DS . 'zzt',$new_filename); if($info){ $insert_data = [ 'url_data'=>"https://tc.pcxbc.com/outside_interface/zzt/".$new_filename, 'name'=>$new_filename, 'create_time'=>date('Y-m-d H:i:s'), ]; $zzt_db = Db::connect('zzt_db'); $pic_result = $zzt_db->table('pc_pic_manage')->insertGetId($insert_data); if($pic_result){ return $this->msg(['url'=>$insert_data['url_data'],'id'=>$pic_result]); }else{ return $this->msg(10002,'图片数据保存失败'); } }else{ return $this->msg(10002,'图片上传失败'); } } } ####################################################图片选择上传end############################################################## ####################################################富文本编辑器内start############################################################## // 上传图片动作 public function upload_pic_action(){ // $file1 = request()->file('file'); $file = request()->file('wangeditor-uploaded-image'); if($file){ $name = $file->getInfo()['name']; // 使用 pathinfo() 函数获取文件名的扩展名 $pathinfo = pathinfo($name); $extension = strtolower($pathinfo['extension']); // 转换为小写以进行不区分大小写的比较 // 判断扩展名是否不是 .png 或 .gif if ($extension !== 'png' && $extension !== 'gif') { // 修改文件名,将扩展名改为 .jpg $new_filename = time().$pathinfo['filename'] . '.jpg'; } else { $new_filename = time().$name; } $info = $file->move(ROOT_PATH . 'public' . DS . 'outside_interface' . DS . 'zzt' . DS . 'wangeditor' . DS . 'pic',$new_filename); if($info){ $return_data = [ 'errno'=>0, 'data'=>[ 'url'=>'https://tc.pcxbc.com/outside_interface/zzt/wangeditor/pic/'.$new_filename, ] ]; return json($return_data); }else{ // 上传失败获取错误信息 // echo $file->getError(); $return_data = [ 'errno'=>9999, 'message'=>$file->getError() ]; return json($return_data); } } } // 上传视频动作 public function upload_video_action(){ // $file1 = request()->file('file'); $file = request()->file('wangeditor-uploaded-video'); // dump($file); // die; if($file){ $name = time().$file->getInfo()['name']; $info = $file->move(ROOT_PATH . 'public' . DS . 'outside_interface' . DS . 'zzt' . DS . 'wangeditor' . DS . 'video',$name); if($info){ $return_data = [ 'errno'=>0, 'data'=>[ 'url'=>'https://tc.pcxbc.com/outside_interface/zzt/wangeditor/video/'.$name, ] ]; return json($return_data); }else{ // 上传失败获取错误信息 // echo $file->getError(); $return_data = [ 'errno'=>9999, 'message'=>$file->getError() ]; return json($return_data); } } } ####################################################富文本编辑器内end############################################################## #################################################################其他################################################################# public function msg($data,$str='',$result = []){ if(is_array($data)){ if($str != ''){ return json(['code'=>0,'msg'=>$str,'data'=>$data]); }else{ 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]); } } }