CityService.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. public static $cities = ['汕头','汕尾'];
  10. /*
  11. * array | string $column
  12. * 默认一些select字段,可传递string 或 array来指定select字段
  13. */
  14. public function getSelection($column = ['id','name']){
  15. if (!is_array($column)) {
  16. $column = [$column];
  17. }
  18. return City::query()->select($column)->get();
  19. }
  20. public function find($id){
  21. return City::query()->find($id);
  22. }
  23. public function findByName($name)
  24. {
  25. $city = City::query()->where('name',$name)->first();
  26. if(isset($city))return $city;
  27. foreach (CityService::$cities as $city) {
  28. if(strstr($city,$name) != null){
  29. return City::query()->where('name','like',$city.'%')->first();
  30. }
  31. }
  32. if(str_ends_with($name,'自治州')){
  33. $city_name = Str::before($name,'自治州');
  34. return City::query()->where('name','like',$city_name.'%')->first();
  35. }
  36. if(str_ends_with($name,'市')){
  37. $city_name = Str::before($name,'市');
  38. return City::query()->where('name','like',$city_name.'%')->first();
  39. }
  40. return null;
  41. }
  42. }