CompanyExport.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019/4/13
  6. * Time: 10:29
  7. */
  8. namespace App\Admin\Exports\Jobfair;
  9. use App\Admin\Exports\RowExport;
  10. use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
  11. class CompanyExport extends RowExport
  12. {
  13. /**
  14. * 设置标题,返回标题数组
  15. * @return array
  16. */
  17. public function headings(): array
  18. {
  19. return [
  20. '招聘会名称',
  21. '举办时间',
  22. '举办地点',
  23. '参会企业',
  24. '预定展位',
  25. '审核状态',
  26. '签到状态',
  27. '参会职位数',
  28. '报名时间',
  29. ];
  30. }
  31. /**
  32. * 处理行数据
  33. * @param Model $row
  34. * @return array
  35. */
  36. public function map($row): array
  37. {
  38. if(!isset($row->jobfair)) {
  39. $result['title'] = '此招聘会已被删除';
  40. $result['predetermined'] = '';
  41. $result['address'] = '';
  42. }else {
  43. $result['title'] = $row->jobfair->title;
  44. $result['predetermined'] = date('Y-m-d H:i:s',$row->jobfair->predetermined_start).'~'. date('Y-m-d H:i:s',$row->jobfair->predetermined_end);
  45. $result['address'] = $row->jobfair->address;
  46. }
  47. $result['companyname'] = $row->companys->companyname;
  48. $result['position'] = $row->position;
  49. switch ($row->audit) {
  50. case 1:
  51. $result['audit'] = '预订成功';
  52. break;
  53. case 2:
  54. $result['audit'] = '等待确认';
  55. break;
  56. case 3:
  57. $result['audit'] = '审核未通过';
  58. break;
  59. }
  60. switch ($row->type) {
  61. case 0:
  62. $result['type'] = '未签到';
  63. break;
  64. case 1:
  65. $result['type'] = '迟到';
  66. break;
  67. case 2:
  68. $result['type'] = '早退';
  69. break;
  70. case 3:
  71. $result['type'] = '迟到/早退';
  72. break;
  73. case 4:
  74. $result['type'] = '已签到';
  75. break;
  76. }
  77. $result['number'] = count($row->jobfairPutJob);
  78. $result['created_at'] = $row->created_at;
  79. return $result;
  80. }
  81. /**
  82. * 设置文件名
  83. * @return string
  84. */
  85. public function getFilename(): string
  86. {
  87. return "jobfair_company.xlsx";
  88. }
  89. /**
  90. * 格式化指定列.
  91. * 只有在需要的时候设置,例如在身份证不要显示科学计数时设定列格式:['A'=>NumberFormat::FORMAT_NUMBER]
  92. * @return array
  93. */
  94. public function columnFormats(): array
  95. {
  96. return [
  97. ];
  98. }
  99. }