ComjobsService.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace app\common\service;
  3. use app\common\model\RensheCode;
  4. use app\common\model\Comjobs as ComjobsModel;
  5. use app\common\model\ComjobsCate as ComjobsCateModel;
  6. class ComjobsService extends BaseService
  7. {
  8. public function importComjobs($file_url, $worker_id)
  9. {
  10. $data = ['title', 'cate', 'address', 'community', 'agegroup', 'enddate', 'comdetails', 'requirement', 'wtype', 'zwagall', 'telephone', 'remark', 'recruit_num', 'education'];
  11. $list = importExecl($file_url, $data, 1);
  12. $data = [];
  13. $wtype = ['按月' => 1, '按时' => 2, '按件' => 3, '按项目' => 4, '其他' => 5];
  14. $rensheCode = RensheCode::select();
  15. $renshe = [];
  16. foreach ($rensheCode as $v) {
  17. $renshe[$v['type']][$v['name']] = $v['code'];
  18. }
  19. $cateList = ComjobsCateModel::column('id', 'title');
  20. foreach ($list as $k => $v) {
  21. $empty_check = [
  22. 'title' => '标题',
  23. 'cate' => '岗位',
  24. 'address' => '地址',
  25. 'community' => '社区',
  26. 'agegroup' => '招工年龄',
  27. 'enddate' => '截止日期',
  28. 'wtype' => '结算类型',
  29. 'zwagall' => '薪酬',
  30. 'telephone' => '咨询电话',
  31. 'recruit_num' => '招聘人数',
  32. 'education' => '最低学历',
  33. ];
  34. foreach ($empty_check as $key => $value) {
  35. if (empty($v[$key])) {
  36. return $this->error('第' . ($k + 2) . '行的' . $value . '不能为空');
  37. }
  38. }
  39. $item = [];
  40. if (empty($cateList[$v['cate']])) {
  41. return $this->error('第' . ($k + 2) . '行的岗位选择有误');
  42. }
  43. $item['cateid'] = $cateList[$v['cate']];
  44. $item['title'] = $v['title'];
  45. $item['province'] = '福建省';
  46. $item['city'] = '泉州市';
  47. $item['district'] = '晋江市';
  48. $item['address'] = $v['address'];
  49. if (empty($renshe['community'][$v['community']])) {
  50. return $this->error('第' . ($k + 2) . '行的社区选择有误');
  51. }
  52. $item['community'] = $renshe['community'][$v['community']];
  53. $item['agegroup'] = $v['agegroup'];
  54. $enddate = strtotime($v['enddate']);
  55. if ($enddate <= 0) {
  56. return $this->error('第' . ($k + 2) . '行的截止日期填写错误,格式2022-10-20');
  57. }
  58. $item['enddate'] = strtotime($v['enddate']);
  59. $item['comdetails'] = $v['comdetails'];
  60. $item['requirement'] = $v['requirement'];
  61. if (empty($wtype[$v['wtype']])) {
  62. return $this->error('第' . ($k + 2) . '行的结算类型选择有误');
  63. }
  64. $item['wtype'] = $wtype[$v['wtype']];
  65. $item['zwagall'] = $item['bwagall'] = $v['zwagall'];
  66. if (empty($renshe['education'][$v['education']])) {
  67. return $this->error('第' . ($k + 2) . '行的最低学历选择有误');
  68. }
  69. $item['telephone'] = $v['telephone'];
  70. $item['remark'] = $v['remark'];
  71. if ($v['recruit_num'] < 1) {
  72. return $this->error('第' . ($k + 2) . '行的招聘人数需要大于等于1');
  73. }
  74. $item['recruit_num'] = (int)$v['recruit_num'];
  75. $item['education'] = $v['education'];
  76. $item['is_worry'] = 0;
  77. $item['picall'] = [];
  78. $item['tags'] = [];
  79. $item['emp_time'] = [];
  80. $item['companydetails'] = '';
  81. $item['video'] = '';
  82. $item['priority'] = 0;
  83. $item['status'] = 3;
  84. $item['createtime'] = $item['updatetime'] = time();
  85. $item['workerid'] = $worker_id;
  86. $data[] = $item;
  87. }
  88. foreach ($data as $v) {
  89. ComjobsModel::create($v);
  90. }
  91. return $this->success('导入成功');
  92. }
  93. }