HomeService.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2018/11/9
  6. * Time: 9:58
  7. */
  8. namespace App\Services;
  9. use App\Repositories\AdCategoryRepository;
  10. use App\Repositories\AdRepository;
  11. use App\Repositories\MemberInfoRepository;
  12. use App\Repositories\PersonalJobsApplyRepository;
  13. use App\Repositories\PmsRepository;
  14. use App\Repositories\TaskLogRepository;
  15. use App\Repositories\ResumeRepository;
  16. use App\Repositories\CompanyInterviewRepository;
  17. use App\Repositories\companyFavoriteRepository;
  18. use App\Repositories\ViewJobRepository;
  19. class HomeService
  20. {
  21. protected $adRepository;
  22. protected $adCategoryRepository;
  23. protected $memberInfoRepository;
  24. protected $taskLogRepository;
  25. protected $resumeRepository;
  26. protected $companyInterviewRepository;
  27. protected $companyFavoriteRepository;
  28. protected $personalJobsApplyRepository;
  29. protected $viewJobRepository;
  30. protected $pmsRepository;
  31. /**
  32. * HomeService constructor.
  33. * @param AdRepository $adRepository
  34. * @param AdCategoryRepository $adCategoryRepository
  35. * @param MemberInfoRepository $memberInfoRepository
  36. * @param TaskLogRepository $taskLogRepository
  37. * @param ResumeRepository $resumeRepository
  38. * @param CompanyInterviewRepository $companyInterviewRepository
  39. * @param companyFavoriteRepository $companyFavoriteRepository
  40. * @param PmsRepository $pmsRepository
  41. * @param $personalJobsApplyRepository
  42. * @param $viewJobRepository
  43. */
  44. public function __construct(AdRepository $adRepository, ViewJobRepository $viewJobRepository, PersonalJobsApplyRepository $personalJobsApplyRepository, AdCategoryRepository $adCategoryRepository, MemberInfoRepository $memberInfoRepository, TaskLogRepository $taskLogRepository, ResumeRepository $resumeRepository, CompanyInterviewRepository $companyInterviewRepository, companyFavoriteRepository $companyFavoriteRepository, PmsRepository $pmsRepository)
  45. {
  46. $this->adRepository = $adRepository;
  47. $this->adCategoryRepository = $adCategoryRepository;
  48. $this->memberInfoRepository = $memberInfoRepository;
  49. $this->taskLogRepository = $taskLogRepository;
  50. $this->resumeRepository = $resumeRepository;
  51. $this->companyInterviewRepository = $companyInterviewRepository;
  52. $this->companyFavoriteRepository = $companyFavoriteRepository;
  53. $this->personalJobsApplyRepository = $personalJobsApplyRepository;
  54. $this->viewJobRepository = $viewJobRepository;
  55. $this->pmsRepository = $pmsRepository;
  56. }
  57. public function getAds($filter)
  58. {
  59. $whereIn = array_keys($filter);
  60. $where = array();
  61. $where = array(
  62. 'c.theme' => 'default',
  63. 'c.org' => 'Home',
  64. 'is_display' => 1
  65. );
  66. $ads = $this->adRepository->getFilterAds($where, $whereIn);
  67. $lists = array();
  68. if ($ads->toArray()) {
  69. foreach ($ads as $k => $v) {
  70. $lists[$v->alias][] = $v;
  71. }
  72. foreach ($lists as $key => $val) {
  73. if ($filter[$key]) {
  74. if (count($val)>$filter[$key]) {
  75. $lists[$key] = array_slice($val, 0, $filter[$key]);
  76. }
  77. }
  78. }
  79. }
  80. return $lists;
  81. }
  82. public function getUserInfo($user)
  83. {
  84. $utype = $user->utype;
  85. $id = $user->id;
  86. if ($utype==2) {
  87. $member = $this->memberInfoRepository->getMemberInfo($id);
  88. $sign = $this->taskLogRepository->getTaskLogCount($id, 3, $utype);
  89. $resume = $this->resumeRepository->getPersonInfo($id);
  90. $pms = $this->pmsRepository->getPmsCountByUid(['utype'=>$utype,'msgtouid'=>$id]);
  91. if ($resume) {
  92. $interview = $this->companyInterviewRepository->getInterview($id, getJobsStatus());
  93. $viewResume = $this->companyFavoriteRepository->getAttentionByResume($resume->id);
  94. } else {
  95. $interview = 0;
  96. $viewResume = 0;
  97. }
  98. return ['member'=>$member,'sign'=>$sign,'resume'=>$resume,'interview'=>$interview,'viewResume'=>$viewResume,'pms'=>$pms];
  99. } else {
  100. //是否签到
  101. $sign = $this->taskLogRepository->getTaskLogCount($id, 18, $utype);
  102. //待处理简历
  103. $condition1 = [
  104. 'is_reply'=>0,
  105. 'company_id'=>$user->id,
  106. ];
  107. $noDoneResume = $this->personalJobsApplyRepository->resumesCount($condition1);
  108. //谁看过我
  109. $map['company_id'] = auth('web-company')->user()->id;
  110. $lookMe = $this->viewJobRepository->browseJobsCount($map);
  111. //我的消息
  112. $where['msgtouid'] = auth('web-company')->user()->id;
  113. $where['utype'] = auth('web-company')->user()->utype;
  114. $where['new'] = 1;
  115. $myPms = $this->pmsRepository->getPmsCount($where);
  116. return ['company'=>$user,'sign'=>$sign,'noDoneResume'=>$noDoneResume,'lookMe'=>$lookMe,'myPms' => $myPms];
  117. }
  118. }
  119. public function getTime()
  120. {
  121. $Morning = strtotime(date('Y-m-d 06:00:00'));
  122. $Noon = strtotime(date('Y-m-d 12:00:00'));
  123. $Night = strtotime(date('Y-m-d 18:00:00'));
  124. return (object)['morning'=>$Morning,'noon'=>$Noon,'night'=>$Night];
  125. }
  126. public function getSpringLive()
  127. {
  128. $arr = [
  129. ['name'=>'硕博专场','images'=>theme_asset('mobile/images/online2021/qrcode_doctor.png').'?v=1','time'=>'2022年1月14日 15:00-17:00','company'=>'','status'=>'end','url'=>'https://wx.vzan.com/live/tvchat-1417467221?v=1642678440955#/'],
  130. ['name'=>'省外专场','images'=>theme_asset('mobile/images/online2021/qrcode_province_out.jpg').'?v=1','time'=>'2022年1月27日 15:00-17:00','company'=>'','status'=>'unstart','url'=>'#'],
  131. ['name'=>'综合专场','images'=>theme_asset('mobile/images/online2021/qrcode_comprehensive.jpg').'?v=1','time'=>'2022年2月8日-10日 10:00-12:00','company'=>'','status'=>'unstart','url'=>'#'],
  132. ['name'=>'省外专场','images'=>theme_asset('mobile/images/online2021/qrcode_province_out.jpg').'?v=1','time'=>'以新春晋江市企业赴云南招聘会时间为准','company'=>'','status'=>'unstart','url'=>'#'],
  133. ['name'=>'零工专场','images'=>theme_asset('mobile/images/online2021/qrcode_odd_job.jpg').'?v=1','time'=>'以零工市场建成揭幕仪式时间为准','company'=>'','status'=>'unstart','url'=>'#'],
  134. ];
  135. return $arr;
  136. }
  137. }