(int)site('is_open_tailwind'), 'is_open_userapp' => (int)site('is_open_userapp'), ]); } /** * 手机号国际区号 * @return string */ public function mobile_area_code() { $model = new MobileAreaCodeModel(); $model->select = ['id', 'area_code', 'area']; $list = $model->getList( orderBy: ['weigh' => 'desc', 'id' => 'desc'] ); return AppResult::success('success', $list); } /** * 客服中心 * @return string */ public function customer_service() { // 问答 $model = new QuestionAnswerModel(); $model->select = ['id', 'question', 'answer']; $list = $model->getList( params : ['type' => 1], orderBy: ['weigh' => 'desc', 'id' => 'desc'] ); // 客服二维码 return AppResult::success('success', [ 'service_qr_code' => cdn_url(site('service_qr_code')), 'service_telephone' => site('service_telephone'), 'question_answer' => $list, ]); } // 生活服务页面 public function life_service() { $life_banner = site('life_banner'); foreach ($life_banner as &$item){ $item = cdn_url($item); } // 客服二维码 return AppResult::success('success', [ 'life_banner' => $life_banner, 'life_wechat' => cdn_url(site('life_wechat')), 'service_qr_code' => cdn_url(site('service_qr_code')) ]); } // 下载页面二维码 public function down_qr_code() { // 客服二维码 return AppResult::success('success', [ 'down_user_app' => cdn_url(site('down_user_app')), 'down_driver_app' => cdn_url(site('down_driver_app')), 'down_bg_img' => cdn_url(site('down_bg_img')) ]); } /** * 人数和行行李数 * @return string */ public function people_luggage() { // 最大人数和最大行李数 $model = new CarSeatModel(); $info = $model->query()->select([ Db::raw('max(people_num) as people_num'), Db::raw('max(luggage_num) as luggage_num'), ])->first(); $people_num = $info['people_num'] ?? 1;// 最大人数 $luggage_num = $info['luggage_num'] ?? 0;// 最大行李数 $list['people'] = []; for ($i = 1; $i <= $people_num; $i++) { $list['people'][] = [ 'label' => "{$i}人", 'value' => $i ]; } $list['luggage'] = []; for ($i = 0; $i <= $luggage_num; $i++) { $list['luggage'][] = [ 'label' => "{$i}托运行李", 'value' => $i ]; } return AppResult::success('success', $list); } /** * 加价金额 * @return string */ public function raise_amount() { // 最大人数和最大行李数 $model = new RaiseAmountModel(); $model->setSelect(['id', 'price']); $list = $model->getList(orderBy: ['weight' => 'desc', 'id' => 'desc']); return AppResult::success('success', $list); } /** * 谷歌地址搜索 * @param PlaceSearchRequest $request * @return string */ public function place_search(PlaceSearchRequest $request) { $params = $request->validated(); $googleMap = new Maps(); if (!$googleMap->place_search($params['input'])) { return AppResult::error($googleMap->getMessage()); } return AppResult::success('获取成功', $googleMap->getData()); } /** * 谷歌地址搜索(自动补全) * @param PlaceAutoSearchRequest $request * @return string */ public function place_auto_search(PlaceAutoSearchRequest $request) { $params = $request->validated(); $googleMap = new Maps(); if (!$googleMap->place_auto_search($params['input'],$params['latitude'] ?? '',$params['longitude'] ?? '',$params['sessionToken'] ?? '')) { return AppResult::error($googleMap->getMessage()); } return AppResult::success('获取成功', $googleMap->getData()); } /** * 谷歌地址详情 * @param PlaceDetailsRequest $request * @return string */ public function place_details(PlaceDetailsRequest $request) { $params = $request->validated(); $googleMap = new Maps(); if (!$googleMap->place_details($params['place_id'])) { return AppResult::error($googleMap->getMessage()); } return AppResult::success('获取成功', $googleMap->getData()); } /** * 谷歌逆地理编码 * @param GeocodeRequest $request * @return string */ public function geocode(GeocodeRequest $request) { $params = $request->validated(); $googleMap = new Maps(); if (!$googleMap->geocode($params['latlng'])) { return AppResult::error($googleMap->getMessage()); } return AppResult::success('获取成功', $googleMap->getData()); } /** * 谷歌路线规划 * @param DirectionsRequest $request * @return string */ public function directions(DirectionsRequest $request) { $params = $request->validated(); $googleMap = new Maps(); if (!$googleMap->directions($params['destination'], $params['origin'], $params['waypoints'] ?? '')) { return AppResult::error($googleMap->getMessage()); } return AppResult::success('获取成功', $googleMap->getData()); } // 系统消息数量 public function message_num() { $user = AuthUser::getInstance()->get(); $model = new MessageModel(); $message = $model->getDetail( params : ['user_id' => $user['id']], orderBy: ['create_time' => 'desc'] ); if ($driver_chat_id = RedisUtil::getInstance(RedisKeyEnum::USER_DRIVER_CHAT_DEL,"user_{$user['id']}")->get()){ RedisUtil::getInstance(RedisKeyEnum::USER_DRIVER_CHAT_DEL,"user_{$user['id']}")->del(); $tencent = new TencentIm(); $tencent->delete_chat("user_{$user['id']}",$driver_chat_id); } LogUtil::warning('系统错误', self::LOG_MODULE, __FUNCTION__, [ 'message_num' => MessageModel::getNumByUserId($user['id']), 'name' => $message['name'] ?? '暂无新的消息', 'create_time' => !empty($message['create_time']) ? unix_time(strtotime($message['create_time'])) : '', 'driver_chat_id' => $driver_chat_id ?: '', ]); return AppResult::success(result: [ 'message_num' => MessageModel::getNumByUserId($user['id']), 'name' => $message['name'] ?? '暂无新的消息', 'create_time' => !empty($message['create_time']) ? unix_time(strtotime($message['create_time'])) : '', 'driver_chat_id' => $driver_chat_id ?: '', ]); } /** * 系统消息列表 * @param MessageRequest $request * @return \Psr\Http\Message\MessageInterface|\Psr\Http\Message\ResponseInterface * @throws \Psr\Container\ContainerExceptionInterface * @throws \Psr\Container\NotFoundExceptionInterface */ public function message(MessageRequest $request) { $params = $request->validated(); $user = AuthUser::getInstance()->get(); $model = new MessageModel(); $list = $model->setSelect(['id', 'user_id', 'name', 'type', 'content', 'create_time'])->getList( params : array_merge($params, ['user_id' => $user['id']]), orderBy: ['create_time' => 'desc'], with : ['reads'], ); foreach ($list as $key => $val) { $list[$key]['is_read'] = 0; if (!empty($val['reads'])) { $list[$key]['is_read'] = 1; } unset($list[$key]['reads']); } MessageModel::read($user['id']); return AppResult::success(result: $list); } // 获取腾讯 userSig public function get_user_sig() { $user = AuthUser::getInstance()->get(); return AppResult::success(result: [ 'userSig' => (new TencentIm())->userSig("user_{$user['id']}") ]); } /** * 协议信息 * @param AgreementRequest $request * @return \Psr\Http\Message\MessageInterface|\Psr\Http\Message\ResponseInterface * @throws \Psr\Container\ContainerExceptionInterface * @throws \Psr\Container\NotFoundExceptionInterface */ public function agreement(AgreementRequest $request) { $params = $request->validated(); $agreement = (new AgreementModel())->getDetail($params); return AppResult::success(result: [ 'name' => $agreement['name'] ?? '', 'content' => $agreement['content'] ?? '', ]); } public function reason() { // 问答 $model = new QuestionReasonModel(); $model->select = ['reason']; $list = $model->getList( orderBy: ['weigh' => 'desc', 'id' => 'desc'] ); // 客服二维码 return AppResult::success('success', $list); } // 升级app public function version(VersionRequest $request) { $params = $request->validated(); $version = (new VersionAppModel())->getDetail(array_merge(['platform' => 1],$params)); $version['is_force'] = (bool)$version['is_force']; return AppResult::success(result: $version); } }