OrganizationInfo.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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[7] == null)
  28. {
  29. $latitude = 0;
  30. }else{
  31. $latitude = $row[7];
  32. }
  33. //纬度默认值
  34. if ($row[8] == 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. 'name' => $row[0],
  67. 'level' => $level,
  68. 'introduce' => $row[2],
  69. 'phone' => $row[3],
  70. 'address' => $address,
  71. 'latitude' => $latitude,
  72. 'longitude' => $longitude,
  73. ]);
  74. }
  75. public function uniqueBy()
  76. {
  77. return 'name';
  78. }
  79. }