HomeService.php 6.9 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 = [
  61. 'c.theme' => 'default',
  62. 'c.org' => 'Home',
  63. 'is_display' => 1,
  64. ];
  65. $ads = $this->adRepository->getFilterAds($where, $whereIn);
  66. $lists = [];
  67. if ($ads->toArray()) {
  68. foreach ($ads as $k => $v) {
  69. $lists[$v->alias][] = $v;
  70. }
  71. foreach ($lists as $key => $val) {
  72. if ($filter[$key]) {
  73. if (count($val) > $filter[$key]) {
  74. $lists[$key] = array_slice($val, 0, $filter[$key]);
  75. }
  76. }
  77. }
  78. }
  79. return $lists;
  80. }
  81. public function getUserInfo($user)
  82. {
  83. $utype = $user->utype;
  84. $id = $user->id;
  85. if ($utype == 2) {
  86. $member = $this->memberInfoRepository->getMemberInfo($id);
  87. $sign = $this->taskLogRepository->getTaskLogCount($id, 3, $utype);
  88. $resume = $this->resumeRepository->getPersonInfo($id);
  89. $pms = $this->pmsRepository->getPmsCountByUid(['utype' => $utype, 'msgtouid' => $id]);
  90. if ($resume) {
  91. $interview = $this->companyInterviewRepository->getInterview($id, getJobsStatus());
  92. $viewResume = $this->companyFavoriteRepository->getAttentionByResume($resume->id);
  93. } else {
  94. $interview = 0;
  95. $viewResume = 0;
  96. }
  97. return ['member' => $member, 'sign' => $sign, 'resume' => $resume, 'interview' => $interview, 'viewResume' => $viewResume, 'pms' => $pms];
  98. } else {
  99. //是否签到
  100. $sign = $this->taskLogRepository->getTaskLogCount($id, 18, $utype);
  101. //待处理简历
  102. $condition1 = [
  103. 'is_reply' => 0,
  104. 'company_id' => $user->id,
  105. ];
  106. $noDoneResume = $this->personalJobsApplyRepository->resumesCount($condition1);
  107. //谁看过我
  108. $map['company_id'] = auth('web-company')->user()->id;
  109. $lookMe = $this->viewJobRepository->browseJobsCount($map);
  110. //我的消息
  111. $where['msgtouid'] = auth('web-company')->user()->id;
  112. $where['utype'] = auth('web-company')->user()->utype;
  113. $where['new'] = 1;
  114. $myPms = $this->pmsRepository->getPmsCount($where);
  115. return ['company' => $user, 'sign' => $sign, 'noDoneResume' => $noDoneResume, 'lookMe' => $lookMe, 'myPms' => $myPms];
  116. }
  117. }
  118. public function getTime()
  119. {
  120. $Morning = strtotime(date('Y-m-d 06:00:00'));
  121. $Noon = strtotime(date('Y-m-d 12:00:00'));
  122. $Night = strtotime(date('Y-m-d 18:00:00'));
  123. return (object)['morning' => $Morning, 'noon' => $Noon, 'night' => $Night];
  124. }
  125. public function getSpringLive()
  126. {
  127. $arr = [
  128. ['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#/'],
  129. ['name' => '省外专场', 'images' => theme_asset('mobile/images/online2021/qrcode_province_out.jpg') . '?v=1', 'time' => '2022年1月27日 15:00-17:00', 'company' => '', 'status' => 'end', 'url' => 'https://wx.vzan.com/live/tvchat-1156791438?v=1643097082151#/'],
  130. ['name' => '综合专场', 'images' => theme_asset('mobile/images/online2021/qrcode_comprehensive.jpg') . '?v=1', 'time' => '2022年2月8日-10日 10:00-12:00', 'company' => '', 'status' => 'end', 'url' => 'https://wx.vzan.com/live/tvchat-1772059522?v=1643096232822#/'],
  131. ['name' => '省外专场', 'images' => theme_asset('mobile/images/online2021/qrcode_province_out.jpg') . '?v=1', 'time' => '以新春晋江市企业赴云南招聘会时间为准', 'company' => '', 'status' => 'unstart', 'url' => 'https://wx.vzan.com/live/tvchat-841571637?v=1643096279561#/'],
  132. ['name' => '零工专场', 'images' => theme_asset('mobile/images/online2021/qrcode_odd_job.jpg') . '?v=1', 'time' => '以零工市场建成揭幕仪式时间为准', 'company' => '', 'status' => 'unstart', 'url' => 'https://wx.vzan.com/live/tvchat-794586822?v=1643096295228#/'],
  133. ];
  134. return $arr;
  135. }
  136. }