input('p_id', 0); $list = Region::where('p_id', $p_id)->select(['id', 'name'])->get(); return $this->apiResponseSuccess('获取数据成功', $list); } /** * 发送短信 * @return \Illuminate\Http\JsonResponse * @throws \End01here\EasySms\Exceptions\CodeErrorException * @throws \End01here\EasySms\Exceptions\GatewayErrorException * @throws \End01here\EasySms\Exceptions\MessageException */ function sendSms() { $phone = request()->input('phone', ''); $send_type = request()->input('send_type', 'default'); if (empty($phone)) { return $this->apiResponseError('请输入手机号码'); } $send_server = SmsServer::creatServer(); $ret = $send_server->sendCode($phone, $send_type); if (!$ret) { return $this->apiResponseError($send_server->getErrorMsg() ?: '短信发送失败'); } else { return $this->apiResponseSuccess('短信发送成功'); } } /** * base64 图片上传 * @param Request $request * @return \Illuminate\Http\JsonResponse */ public function base64Image(Request $request) { $result = $this->base64ToImage($request->input('image', ""), 'attest'); if ($result['code'] === false) { return $this->apiResponseError('图片上传失败'); } else { if ($result) { return $this->apiResponseSuccess('图片上传成功', ['url' => $result['url']]); } else { return $this->apiResponseError('图片上传失败'); } } } // base64图片保存 protected function base64ToImage($base64ImageContent, $path) { $base64_image_content = $base64ImageContent; if (!empty($base64_image_content)) { $upload_path = "storage" . DIRECTORY_SEPARATOR . $path . DIRECTORY_SEPARATOR . date('Ymd', time()) . DIRECTORY_SEPARATOR; $img_url = md5(uniqid() . time()) . '.jpg'; $upload_path1 = public_path($upload_path); if (!is_dir($upload_path1)) { mkdir($upload_path1, 0777, true); } try { $base64_image_content = str_replace('[removed]', '', $base64_image_content); preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result); // oss 上传 $oss = Storage::disk('oss'); $pathA = "{$upload_path}{$img_url}"; if (empty($result[1])) { $update = $oss->put($pathA, base64_decode($base64_image_content)); if (!$update) { // 如果失败上传本地 file_put_contents($upload_path1 . $img_url, base64_decode($base64_image_content)); } } else { $update = $oss->put($pathA, base64_decode(str_replace($result[1], '', $base64_image_content))); if (!$update) { // 如果失败上传本地 file_put_contents($upload_path1 . $img_url, base64_decode(str_replace($result[1], '', $base64_image_content))); } } return [ 'code' => true, 'url' => $update ? ($oss->url($pathA) . '?x-oss-process=image/auto-orient,1/quality,q_90') : asset($pathA), ]; } catch (\Exception $e) { return [ 'code' => false, 'msg' => "图片错误" . $e->getMessage() . " " . $e->getLine(), ]; } } else { return [ 'code' => false, 'msg' => "请上传图片", ]; } } /** * @param Request $request * @param ResponseFactory $response * @return mixed * 单图上传 */ public function fileImage() { if (request()->isMethod('post')) { if (request()->hasFile('file_image')) { // 文件后缀判断 $ext = request()->file("file_image")->extension(); if (!in_array($ext, ["jpg", "jpeg", "gif", "png", "bmp", "webp"])) { return $this->apiResponseError('上传图片仅支持png、jpg、jpeg、gif、bmp、webp后缀'); } // 文件大小是否满足 2M = 2*1024*1024 B if (request()->file("file_image")->getClientSize() > 20971552) { return $this->apiResponseError('上传图片大小超过5M'); } // 上传过程是否出错 if (!request()->file("file_image")->isValid()) { return $this->apiResponseError('上传文件出错,请重试'); } // 文件保存 生成一个唯一的文件名称 $fileName = time() . str_random(4) . mt_rand(1000, 9999) . ".{$ext}"; $pathA = 'image/' . date('y-m', time()) . '/' . $fileName; // oss 上传图片 $oss = Storage::disk('oss'); $update = $oss->put($pathA, file_get_contents(request()->{'file_image'}->getRealPath())); if ($update) { return $this->apiResponseSuccess('图片上传成功', ['url' => $oss->url($pathA)]); } else { return $this->apiResponseError('图片上传保存失败,请重试'); } } else { return $this->apiResponseError('请上传图片文件'); } } } /** * 获取JS签名信息 * @return \Illuminate\Http\JsonResponse */ function getJsConfig() { $url = request()->input('url'); $ret = WeixinServer::creatServer()->getJsConfig($url); return $this->apiResponseSuccess('获取信息成功', $ret); } /** * 获取系统简介 * @return \Illuminate\Http\JsonResponse */ function getSysMessage() { $type = request()->input('type', '1'); $v = Config::where('key', 'about_us')->value('value'); return $this->apiResponseSuccess('获取信息成功', $v); } /** * 获取定位信息 */ function getLocation() { $ip = CommonServer::creatServer()->getClientIp(); $location = TxMapServer::creatServer()->getLocation($ip); if ($location['status'] === 0) { $data = $location['result']['location']; $address = TxMapServer::creatServer()->getLocationAddress($data['lat'], $data['lng']); if ($address['status'] != 0) { return $this->apiResponseError('定位失败'); } $data['addr'] = $address['result']['address']; return $this->apiResponseSuccess('获取信息成功', $data); } else { return $this->apiResponseError('定位错误'); } } /** * 根据经纬度获取地址信息 * @return \Illuminate\Http\JsonResponse */ function getLocationAddress() { $data['lat'] = request()->input('lat'); $data['lng'] = request()->input('lng'); if (empty($data['lat']) || empty($data['lng'])) { return $this->apiResponseError('缺少必要参数'); } $address = TxMapServer::creatServer()->getLocationAddress($data['lat'], $data['lng']); if ($address['status'] != 0) { return $this->apiResponseError('定位失败'); } $data['addr'] = $address['result']['address']; return $this->apiResponseSuccess('获取信息成功', $data); } /** * 获取阿里云临时权限 * @return \Illuminate\Http\JsonResponse */ function getAliSts() { $ret = CommonServer::creatServer()->getAliSts(); if (empty($ret['code'])) { return $this->apiResponseError($ret['msg']); } else { return $this->apiResponseSuccess($ret['msg'], $ret['data']); } } /** * 获取隐私协议 * @return \Illuminate\Http\JsonResponse */ function getPrivacyInfo() { $info = Config::where('key', 'privacy_protocol')->value('value'); return $this->apiResponseSuccess('获取成功', $info); } }