JobsExport.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019/4/13
  6. * Time: 14:57
  7. */
  8. namespace App\Admin\Exports\Company;
  9. use App\Admin\Exports\RowExport;
  10. class JobsExport extends RowExport
  11. {
  12. /**
  13. * 设置标题,返回标题数组
  14. * @return array
  15. */
  16. public function headings(): array
  17. {
  18. return [
  19. '职位ID',
  20. '企业名称',
  21. '职位名称',
  22. '所属分站',
  23. '职位大类',
  24. '职位中类',
  25. '职位小类',
  26. '招聘人数',
  27. '性别',
  28. '年龄',
  29. '学历',
  30. '工资',
  31. '联系人',
  32. '联系方式',
  33. ];
  34. }
  35. /**
  36. * 处理行数据
  37. * @param Model $row
  38. * @return array
  39. */
  40. public function map($row): array
  41. {
  42. $result['id'] = $row->id;
  43. $result['companyname'] = $row->company->companyname;
  44. $result['jobs_name'] = $row->jobs_name;
  45. if ($row->subsite_id == 0) {
  46. $result['subsite_id'] = "总站";
  47. } else {
  48. $result['subsite_id'] = get_subsite_sitename($row->subsite_id);
  49. }
  50. $result['topclass'] = get_job_category($row->topclass);
  51. $result['category'] = get_job_category($row->category);
  52. $result['subclass'] = get_job_category($row->subclass);
  53. if ($row->amount == 0) {
  54. $result['amount'] = '0';
  55. } else {
  56. $result['amount'] = $row->amount;
  57. }
  58. switch ($row->sex) {
  59. case 0:
  60. $result['sex'] = '不限';
  61. break;
  62. case 1:
  63. $result['sex'] = '男';
  64. break;
  65. case 2:
  66. $result['sex'] = '女';
  67. break;
  68. }
  69. $age = implode('-', $row->age);
  70. if ($age == '-') {
  71. $result['age'] = '不限';
  72. } else {
  73. $result['age']= $age.'周岁';
  74. }
  75. $result['education'] = $row->education?get_category($row->education):'不限';
  76. if ($row->wage==-1) {
  77. $result['wage'] = '面议';
  78. } else if ($row->wage == 0) {
  79. $result['wage'] = $row->wage_min.'~'.$row->wage_max.'/月';
  80. } else {
  81. $result['wage'] = get_category($row->wage);
  82. }
  83. $result['contact'] = isset($row->jobsContact->contact)?$row->jobsContact->contact:$row->company->contact;
  84. $result['mobile'] = isset($row->jobsContact->telephone)?$row->jobsContact->telephone:$row->company->mobile;
  85. return $result;
  86. }
  87. /**
  88. * 设置文件名
  89. * @return string
  90. */
  91. public function getFilename(): string
  92. {
  93. return "jobs.xlsx";
  94. }
  95. /**
  96. * 格式化指定列.
  97. * 只有在需要的时候设置,例如在身份证不要显示科学计数时设定列格式:['A'=>NumberFormat::FORMAT_NUMBER]
  98. * @return array
  99. */
  100. public function columnFormats(): array
  101. {
  102. return [];
  103. }
  104. }