ProvinceService.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace App\Services;
  3. use App\Province;
  4. use Illuminate\Support\Str;
  5. use App\Traits\ServiceAppAop;
  6. class ProvinceService
  7. {
  8. use ServiceAppAop;
  9. protected $modelClass=Province::class;
  10. public static $provinces = ['青海','新疆','内蒙古','广西','西藏','宁夏','北京','上海','重庆','天津'];
  11. public function findByName($name)
  12. {
  13. if(!$name)return null;
  14. $province = Province::query()->where('name',$name)->first();
  15. if(isset($province))return $province;
  16. foreach (ProvinceService::$provinces as $province) {
  17. if(strstr($province,$name) != null || strstr($name,$province) != null){
  18. return Province::query()->where('name',$province)->first();
  19. }
  20. }
  21. if(str_ends_with($name,'市')){
  22. $province_name = Str::before($name,'市');
  23. return Province::query()->where('name','like',$province_name.'%')->first();
  24. }
  25. if(str_ends_with($name,'省')){
  26. $province_name = Str::before($name,'省');
  27. return Province::query()->where('name','like',$province_name.'%')->first();
  28. }
  29. return null;
  30. }
  31. public function first(array $params)
  32. {
  33. $query = Province::query();
  34. foreach ($params as $column=>$param){
  35. $query->where($column,$param);
  36. }
  37. return $query->first();
  38. }
  39. }