CityService.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace App\Services;
  3. use App\City;
  4. use Illuminate\Support\Str;
  5. use App\Traits\ServiceAppAop;
  6. class CityService
  7. {
  8. use ServiceAppAop;
  9. protected $modelClass=City::class;
  10. public static $cities = ['汕头','汕尾'];
  11. /*
  12. * array | string $column
  13. * 默认一些select字段,可传递string 或 array来指定select字段
  14. */
  15. public function getSelection($column = ['id','name']){
  16. if (!is_array($column)) {
  17. $column = [$column];
  18. }
  19. return City::query()->select($column)->get();
  20. }
  21. public function find($id){
  22. return City::query()->find($id);
  23. }
  24. public function findByName($name)
  25. {
  26. $city = City::query()->where('name',$name)->first();
  27. if(isset($city))return $city;
  28. foreach (CityService::$cities as $city) {
  29. if(strstr($city,$name) != null){
  30. return City::query()->where('name','like',$city.'%')->first();
  31. }
  32. }
  33. if(str_ends_with($name,'自治州')){
  34. $city_name = Str::before($name,'自治州');
  35. return City::query()->where('name','like',$city_name.'%')->first();
  36. }
  37. if(str_ends_with($name,'市')){
  38. $city_name = Str::before($name,'市');
  39. return City::query()->where('name','like',$city_name.'%')->first();
  40. }
  41. return null;
  42. }
  43. }