diff --git a/app/Controller/BasicDataController.php b/app/Controller/BasicDataController.php index 97ae592..a1ef98b 100644 --- a/app/Controller/BasicDataController.php +++ b/app/Controller/BasicDataController.php @@ -4,9 +4,7 @@ namespace App\Controller; use App\Model\BasicNation; use App\Request\BasicDataRequest; -use App\Request\DiseaseRequest; use App\Services\BasicDataService; -use App\Services\DiseaseService; use App\Services\SafeService; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; @@ -190,4 +188,20 @@ class BasicDataController extends AbstractController $data = $BasicDataService->getDoctorTitle(); return $this->response->json($data); } + + /** + * 获取热门搜索关键词 + * @return ResponseInterface + * @throws ContainerExceptionInterface + * @throws NotFoundExceptionInterface + */ + public function getHotSearchKeyword(): ResponseInterface + { + $request = $this->container->get(BasicDataRequest::class); + $request->scene('getHotSearchKeyword')->validateResolved(); + + $BasicDataService = new BasicDataService(); + $data = $BasicDataService->getHotSearchKeyword(); + return $this->response->json($data); + } } \ No newline at end of file diff --git a/app/Model/HotSearchKeyword.php b/app/Model/HotSearchKeyword.php new file mode 100644 index 0000000..75351c9 --- /dev/null +++ b/app/Model/HotSearchKeyword.php @@ -0,0 +1,57 @@ +first($fields); + } + + /** + * 获取数据-多 + * @param array $params + * @param array $fields + * @return Collection|array + */ + public static function getList(array $params = [], array $fields = ['*']): Collection|array + { + return self::where($params)->orderBy('keyword_sort')->get($fields); + } +} diff --git a/app/Request/BasicDataRequest.php b/app/Request/BasicDataRequest.php index 7c42c3e..af81eae 100644 --- a/app/Request/BasicDataRequest.php +++ b/app/Request/BasicDataRequest.php @@ -24,6 +24,10 @@ class BasicDataRequest extends FormRequest 'getDiseaseIcdSearch' => [ // 搜索平台疾病分类 'icd_keyword', ], + 'getHotSearchKeyword' => [ // 获取热门搜索关键词 + 'client_type', + 'keyword_place', + ], ]; /** @@ -43,6 +47,8 @@ class BasicDataRequest extends FormRequest 'province_id' => 'required_with:city_id,county_id', 'city_id' => 'required_with:county_id', 'disease_class_name' => 'required', + 'client_type' => 'required|integer|min:1|max:1', + 'keyword_place' => 'required|integer|min:1|max:1', ]; } @@ -55,6 +61,14 @@ class BasicDataRequest extends FormRequest 'province_id.required_with' => "请选择省份", 'city_id.required_with' => "请选择城市", 'disease_class_name.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), + 'client_type.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), + 'client_type.integer' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), + 'client_type.min' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), + 'client_type.max' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), + 'keyword_place.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), + 'keyword_place.integer' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), + 'keyword_place.min' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), + 'keyword_place.max' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), ]; } } diff --git a/app/Services/BasicDataService.php b/app/Services/BasicDataService.php index e4c5fbd..21b12b9 100644 --- a/app/Services/BasicDataService.php +++ b/app/Services/BasicDataService.php @@ -12,6 +12,7 @@ use App\Model\DiseaseClassExpertise; use App\Model\DiseaseClassIcd; use App\Model\Hospital; use App\Model\HospitalDepartmentCustom; +use App\Model\HotSearchKeyword; use App\Model\OperationManual; use App\Model\Product; use Hyperf\Redis\Redis; @@ -366,4 +367,31 @@ class BasicDataService extends BaseService } return success($basic_doctor_title->toArray()); } + + /** + * 获取热门搜索关键词 + * @return array + */ + public function getHotSearchKeyword(): array + { + $user_info = $this->request->getAttribute("userInfo") ?? []; + + $client_type = $this->request->input('client_type'); + $keyword_place = $this->request->input('keyword_place'); + + $params = array(); + $params['client_type'] = $client_type; + $params['keyword_status'] = 1; + $params['keyword_place'] = $keyword_place; + + $fields = [ + 'keyword_name' + ]; + $hot_search_keyword = HotSearchKeyword::getList($params,$fields); + if (empty($hot_search_keyword)){ + return success(); + } + + return success($hot_search_keyword->toArray()); + } } \ No newline at end of file diff --git a/app/Utils/Auth.php b/app/Utils/Auth.php index 5b668a1..d393d88 100644 --- a/app/Utils/Auth.php +++ b/app/Utils/Auth.php @@ -32,6 +32,7 @@ class Auth "/callback/platform/logistics" => "post", // 处方平台物流回调 "/callback/logistics" => "post", // 快递100订阅回调 "/popup" => "get", // 获取弹窗数据 + "/basic/keyword/search" => "get", // 获取热门搜索关键词 "/test/refund" => "get", // 测试退款 "/test" => "get", // 测试 diff --git a/config/routes.php b/config/routes.php index 714addf..1b13fa3 100644 --- a/config/routes.php +++ b/config/routes.php @@ -540,6 +540,9 @@ Router::addGroup('/basic', function () { // 获取医生职称数据 Router::get('/doctor/title', [BasicDataController::class, 'getDoctorTitle']); + + // 获取热门搜索关键词 + Router::get('/keyword/search', [BasicDataController::class, 'getHotSearchKeyword']); }); // 获取医生评价 @@ -653,4 +656,4 @@ Router::addGroup('/inquiry', function () { }); // 获取弹窗数据 -Router::get('/popup', [UserController::class, 'getUserPopup']); \ No newline at end of file +Router::get('/popup', [UserController::class, 'getUserPopup']);