CompanyInterviewService.php 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?php
  2. namespace App\Services\Company;
  3. use App\Exceptions\ResponseException;
  4. use App\Models\CompanyInterView;
  5. use App\Repositories\CategoryRepository;
  6. use App\Repositories\CompanyInterviewRepository;
  7. use App\Repositories\MemberLogRepository;
  8. use App\Repositories\ResumeRepository;
  9. class CompanyInterviewService
  10. {
  11. /**
  12. * @var CompanyInterviewRepository
  13. */
  14. protected $CompanyInterviewRepository;
  15. protected $ResumeRepository;
  16. protected $memberLogRepository;
  17. protected $categoryRepository;
  18. protected $jobsService;
  19. /**
  20. * CompanyInterviewService constructor.
  21. * @param CompanyInterviewRepository $CompanyInterviewRepository
  22. * @param ResumeRepository $ResumeRepository
  23. */
  24. public function __construct(MemberLogRepository $memberLogRepository,CompanyInterviewRepository $CompanyInterviewRepository, ResumeRepository $ResumeRepository,CategoryRepository $categoryRepository,JobsService $jobsService)
  25. {
  26. $this->CompanyInterviewRepository = $CompanyInterviewRepository;
  27. $this->ResumeRepository = $ResumeRepository;
  28. $this->memberLogRepository=$memberLogRepository;
  29. $this->categoryRepository=$categoryRepository;
  30. $this->jobsService=$jobsService;
  31. }
  32. public function getInterviewByUid($user, $all)
  33. {
  34. $param_array = array('resume_id','look','settr');
  35. $params= array();
  36. if ($all) {
  37. foreach ($all as $k => $v) {
  38. if (in_array($k, $param_array)) {
  39. $params[$k] = $v;
  40. }
  41. }
  42. }
  43. $data[] = ['resume_uid','=',$user->id];
  44. if (request()->resume_id) {
  45. $data[] = ['resume_id','=',request()->resume_id];
  46. }
  47. if (request()->look) {
  48. $data[] = ['personal_look','=',request()->look];
  49. }
  50. if (request()->settr) {
  51. switch (request()->settr) {
  52. case '3':
  53. $data[] = ['created_at' ,'>=' ,date('Y-m-d H:i:s',strtotime("-3 day"))];
  54. break;
  55. case '7':
  56. $data[] = ['created_at' ,'>=' , date('Y-m-d H:i:s',strtotime("-7 day"))];
  57. break;
  58. case '15':
  59. $data[] = ['created_at' ,'>=' , date('Y-m-d H:i:s',strtotime("-15 day"))];
  60. break;
  61. case '30':
  62. $data[] = ['created_at' ,'>=' , date('Y-m-d H:i:s',strtotime("-30 day"))];
  63. break;
  64. default:
  65. $data[] = ['created_at' ,'>=' , date('Y-m-d H:i:s',strtotime("-3 day"))];
  66. break;
  67. }
  68. }
  69. $count = $this->CompanyInterviewRepository->getInterviewCount($user->id, getJobsStatus());
  70. $interview = $this->CompanyInterviewRepository->getInterviewByUid($data, getJobsStatus());
  71. $getCategoriess = $this->categoryRepository->getCategoriess();
  72. foreach ($interview as $key => $val) {
  73. //薪资字段
  74. if (isset($val->jobs->wage)) {
  75. $wage = $val->jobs->wage;
  76. $wage_min= $val->jobs->wage_min;
  77. $wage_max = $val->jobs->wage_max;
  78. if ($wage > 0) {
  79. if ($getCategoriess) {
  80. if (config('aix.system.site_other.site_other.site_salary') == 1) {
  81. $interview[$key]['jobs']['wage_cn'] = array_has($getCategoriess['AIX_wage_k'], [$wage])?$getCategoriess['AIX_wage_k'][$wage]:'面议';
  82. } elseif (config('aix.system.site_other.site_other.site_salary') == 2) {
  83. $interview[$key]['jobs']['wage_cn'] = array_has($getCategoriess['AIX_wage_c'], [$wage])?$getCategoriess['AIX_wage_c'][$wage]:'面议';
  84. }
  85. }
  86. } elseif ($wage==0) {
  87. $interview[$key]['jobs']['wage_cn'] = $this->jobsService->dealWage($val->wage, $wage_min, $wage_max);
  88. } else {
  89. $interview[$key]['jobs']['wage_cn'] = '面议';
  90. }
  91. if($val->jobs->ygxs == 363) {
  92. $interview[$key]['jobs']['wage_cn'] = $wage_min.'元/小时';
  93. }
  94. }
  95. }
  96. return ['count'=>$count,'interview'=>$interview,'params'=>$params];
  97. }
  98. public function setInterview($id,$user)
  99. {
  100. if (empty($id)) {
  101. throw new ResponseException('未提供简历!', '', 400);
  102. }
  103. $res = CompanyInterView::where(['resume_uid'=>$user->id])->get()->toArray();
  104. $array_id = array_column($res,'id');
  105. $res_k = string_to_array(',',$id);
  106. foreach ($res_k as $key=>$val){
  107. if(!in_array($val,$array_id)){
  108. throw new ResponseException('面试邀请记录不存在', '', 400);
  109. }
  110. }
  111. return $this->CompanyInterviewRepository->setInterview(explode(',', $id), ['personal_look'=>2]);
  112. }
  113. public function delInterview($id,$user)
  114. {
  115. if (empty($id)) {
  116. throw new ResponseException('未提供简历!', '', 400);
  117. }
  118. $res = CompanyInterView::where(['resume_uid'=>$user->id])->get()->toArray();
  119. $array_id = array_column($res,'id');
  120. $res_k = string_to_array(',',$id);
  121. foreach ($res_k as $key=>$val){
  122. if(!in_array($val,$array_id)){
  123. throw new ResponseException('面试邀请记录不存在', '', 400);
  124. }
  125. }
  126. return $this->CompanyInterviewRepository->delInterview(explode(',', $id));
  127. }
  128. public function ajaxInterviewDetail($id,$user)
  129. {
  130. if (empty($id)) {
  131. throw new ResponseException('未提供面试邀请!', '', 400);
  132. }
  133. $res = CompanyInterView::where(['resume_uid'=>$user->id])->get()->toArray();
  134. $array_id = array_column($res,'id');
  135. $res_k = string_to_array(',',$id);
  136. foreach ($res_k as $key=>$val){
  137. if(!in_array($val,$array_id)){
  138. throw new ResponseException('面试邀请记录不存在', '', 400);
  139. }
  140. }
  141. if(!$this->memberLogRepository->createLog($user,2034,$id)){
  142. throw new \Exception("日志记失败!");
  143. }
  144. $this->CompanyInterviewRepository->setInterview(explode(',', $id), ['personal_look'=>2]);
  145. return $this->CompanyInterviewRepository->getInterviewById($id);
  146. }
  147. }