diff --git a/app/Controller/BasicDataController.php b/app/Controller/BasicDataController.php index 84fd685..708764a 100644 --- a/app/Controller/BasicDataController.php +++ b/app/Controller/BasicDataController.php @@ -114,7 +114,12 @@ class BasicDataController extends AbstractController return $this->response->json($data); } - // 搜索商品 + /** + * 搜索商品 + * @return ResponseInterface + * @throws ContainerExceptionInterface + * @throws NotFoundExceptionInterface + */ public function getProductSearch(): ResponseInterface { $request = $this->container->get(BasicDataRequest::class); @@ -124,4 +129,20 @@ class BasicDataController extends AbstractController $data = $BasicDataService->getProductSearch(); return $this->response->json($data); } + + /** + * 搜索平台疾病分类 + * @return ResponseInterface + * @throws ContainerExceptionInterface + * @throws NotFoundExceptionInterface + */ + public function getDiseaseIcdSearch(): ResponseInterface + { + $request = $this->container->get(BasicDataRequest::class); + $request->scene('getDiseaseIcdSearch')->validateResolved(); + + $BasicDataService = new BasicDataService(); + $data = $BasicDataService->getDiseaseIcdSearch(); + return $this->response->json($data); + } } \ No newline at end of file diff --git a/app/Model/DiseaseClassIcd.php b/app/Model/DiseaseClassIcd.php index a5e5a30..7ae909f 100644 --- a/app/Model/DiseaseClassIcd.php +++ b/app/Model/DiseaseClassIcd.php @@ -73,4 +73,24 @@ class DiseaseClassIcd extends Model { return self::where($params)->limit($limit)->get($fields); } + + /** + * 获取关键字搜索列表 + * @param array $params + * @param string $keyword + * @param array $fields + * @return Collection|array + */ + public static function getSearchKeywordList(array $params = [],string $keyword = '',array $fields = ['*']): Collection|array + { + return self::when($keyword, function ($query, $keyword) { + $query->where(function ($query) use ($keyword) { + $query->orwhere("icd_name", 'like', '%' . $keyword . '%'); + $query->orwhere("icd_code", 'like', '%' . $keyword . '%'); + $query->orwhere("icd_spell", 'like', '%' . $keyword . '%'); + }); + }) + ->where($params) + ->get($fields); + } } diff --git a/app/Request/BasicDataRequest.php b/app/Request/BasicDataRequest.php index 0a5e82f..2218faa 100644 --- a/app/Request/BasicDataRequest.php +++ b/app/Request/BasicDataRequest.php @@ -20,7 +20,10 @@ class BasicDataRequest extends FormRequest ], 'getProductSearch' => [ // 搜索商品 'product_keyword', - ] + ], + 'getDiseaseIcdSearch' => [ // 搜索平台疾病分类 + 'icd_keyword', + ], ]; /** @@ -40,7 +43,6 @@ class BasicDataRequest extends FormRequest 'province_id' => 'required_with:city_id,county_id', 'city_id' => 'required_with:county_id', 'disease_class_name' => 'required', - 'product_keyword' => 'required', ]; } @@ -53,7 +55,6 @@ class BasicDataRequest extends FormRequest 'province_id.required_with' => "请选择省份", 'city_id.required_with' => "请选择城市", 'disease_class_name.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), - 'product_keyword.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR), ]; } } diff --git a/app/Services/BasicDataService.php b/app/Services/BasicDataService.php index 20c7806..b367a7f 100644 --- a/app/Services/BasicDataService.php +++ b/app/Services/BasicDataService.php @@ -5,6 +5,7 @@ namespace App\Services; use App\Model\BasicBank; use App\Model\DiseaseClass; use App\Model\DiseaseClassExpertise; +use App\Model\DiseaseClassIcd; use App\Model\Hospital; use App\Model\HospitalDepartmentCustom; use App\Model\OperationManual; @@ -50,8 +51,8 @@ class BasicDataService extends BaseService 'hospital_name', ]; - $hospital = Hospital::getList($params,$fields); - if (empty($hospital)){ + $hospital = Hospital::getList($params, $fields); + if (empty($hospital)) { return success(); } @@ -71,8 +72,8 @@ class BasicDataService extends BaseService 'department_custom_id', 'department_custom_name', ]; - $hospital_department_custom = HospitalDepartmentCustom::getList($params,$fields); - if (empty($hospital_department_custom)){ + $hospital_department_custom = HospitalDepartmentCustom::getList($params, $fields); + if (empty($hospital_department_custom)) { return success(); } @@ -86,7 +87,7 @@ class BasicDataService extends BaseService public function getBank(): array { $basic_bank = BasicBank::getList([]); - if (empty($basic_bank)){ + if (empty($basic_bank)) { return success(); } @@ -108,7 +109,7 @@ class BasicDataService extends BaseService $params['status'] = 1; $operation_manual = OperationManual::getList($params); - if (empty($operation_manual)){ + if (empty($operation_manual)) { return success(); } @@ -128,7 +129,7 @@ class BasicDataService extends BaseService $params['status'] = 1; $operation_manual = OperationManual::getOne($params); - if (empty($operation_manual)){ + if (empty($operation_manual)) { return fail(); } @@ -148,12 +149,12 @@ class BasicDataService extends BaseService 'disease_class_name', ]; $params = array(); - $params[] = ["disease_class_status",1]; - $params[] = ["disease_class_enable",1]; + $params[] = ["disease_class_status", 1]; + $params[] = ["disease_class_enable", 1]; $params[] = ['disease_class_name', 'like', '%' . $disease_class_name . '%']; - $disease_class = DiseaseClass::getList($params,$fields); + $disease_class = DiseaseClass::getList($params, $fields); - return empty($disease_class) ? success() : success($disease_class->toArray()) ; + return empty($disease_class) ? success() : success($disease_class->toArray()); } /** @@ -168,12 +169,12 @@ class BasicDataService extends BaseService ]; $params = array(); - $params[] = ["disease_class_status",1]; - $params[] = ["disease_class_enable",1]; + $params[] = ["disease_class_status", 1]; + $params[] = ["disease_class_enable", 1]; $params[] = ['is_hot', 1]; - $disease_class = DiseaseClass::getLimit($params,10,$fields); + $disease_class = DiseaseClass::getLimit($params, 10, $fields); - return empty($disease_class) ? success() : success($disease_class->toArray()) ; + return empty($disease_class) ? success() : success($disease_class->toArray()); } /** @@ -187,11 +188,16 @@ class BasicDataService extends BaseService 'expertise_id', 'expertise_name', ]; - $disease_class_expertise = DiseaseClassExpertise::getOrderList($params,$fields); + $disease_class_expertise = DiseaseClassExpertise::getOrderList($params, $fields); return success($disease_class_expertise); } - public function getProductSearch(){ + /** + * 搜索商品 + * @return array + */ + public function getProductSearch(): array + { $product_keyword = $this->request->input('product_keyword'); $fields = [ @@ -207,14 +213,14 @@ class BasicDataService extends BaseService 'available_days', ]; $params = array(); - $params[] = ['product_name','like','%' . $product_keyword . '%']; + $params[] = ['product_name', 'like', '%' . $product_keyword . '%']; - $product = Product::getList($params,$fields); - if (empty($product)){ + $product = Product::getList($params, $fields); + if (empty($product)) { return success(); } - foreach ($product as &$item){ + foreach ($product as &$item) { $item['product_cover_img'] = addAliyunOssWebsite($item['product_cover_img']); $item['product_name'] = $item['product_name'] . ' ' . $item['product_spec']; @@ -222,4 +228,28 @@ class BasicDataService extends BaseService return success($product->toArray()); } + + /** + * 搜索平台疾病分类 + * @return array + */ + public function getDiseaseIcdSearch(): array + { + $icd_keyword = $this->request->input('icd_keyword',''); + + $fields = [ + 'icd_id', + 'icd_name', + ]; + $params = array(); + $params['icd_status'] = 1;// 状态(0:删除 1:正常) + $params['icd_enable'] = 1;// 是否启用(0:否 1:是) + $disease_class_icd = DiseaseClassIcd::getSearchKeywordList($params, $icd_keyword, $fields); + if (empty($disease_class_icd)){ + return success(); + } + + return success($disease_class_icd->toArray()); + + } } \ No newline at end of file diff --git a/config/routes.php b/config/routes.php index 14991fc..0ed2db1 100644 --- a/config/routes.php +++ b/config/routes.php @@ -287,6 +287,12 @@ Router::addGroup('/basic', function () { Router::get('/expertise', [BasicDataController::class, 'getDiseaseExpertiseList']); }); + // 平台疾病分类 + Router::addGroup('/icd', function () { + // 搜索平台疾病分类 + Router::get('/search', [BasicDataController::class, 'getDiseaseIcdSearch']); + }); + // 搜索商品 Router::addGroup('/product', function () { // 搜索商品