OrganizationInfo.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. namespace App\Imports\Docter;
  3. use App\Models\Organization;
  4. use Maatwebsite\Excel\Concerns\ToModel;
  5. use phpDocumentor\Reflection\Types\Nullable;
  6. class OrganizationInfo implements ToModel
  7. {
  8. /**
  9. * @param array $row
  10. *
  11. * @return \Illuminate\Database\Eloquent\Model|null
  12. */
  13. public function model(array $row)
  14. {
  15. //跳过首行
  16. if (($row[0] == "名称")) {
  17. return null;
  18. }
  19. //地址默认值
  20. if ($row[5]== null)
  21. {
  22. $address = '';
  23. }else{
  24. $address = $row[5];
  25. }
  26. //经度默认值
  27. if ($row[6] == null)
  28. {
  29. $latitude = 0;
  30. }else{
  31. $latitude = $row[6];
  32. }
  33. //纬度默认值
  34. if ($row[7] == null)
  35. {
  36. $longitude = 0;
  37. }else{
  38. $longitude = $row[7];
  39. }
  40. //判断机构等级
  41. switch ($row[1]){
  42. case "未定级" :
  43. $level = 0;
  44. break;
  45. case "一级" :
  46. $level = 1;
  47. break;
  48. case "二级" :
  49. $level = 2;
  50. break;
  51. case "三级" :
  52. $level = 3;
  53. break;
  54. default :
  55. $level = 0;
  56. break;
  57. }
  58. $num = Organization::where('name',$row[0])->count();
  59. if ($num > 0)
  60. {
  61. \Log::info('重复的机构'.$row[0]);
  62. return null ;
  63. }
  64. return new Organization([
  65. //
  66. 'type' => 1,
  67. 'name' => $row[0],
  68. 'level' => $level,
  69. 'introduce' => $row[2],
  70. 'phone' => $row[3],
  71. 'address' => $address,
  72. 'latitude' => $latitude,
  73. 'longitude' => $longitude,
  74. ]);
  75. }
  76. public function uniqueBy()
  77. {
  78. return 'name';
  79. }
  80. }