ResumePrivacyService.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <?php
  2. namespace App\Services\Person;
  3. use App\Exceptions\ResponseException;
  4. use App\Models\Company;
  5. use App\Models\PersonShieldCompany;
  6. use App\Models\Resume;
  7. use App\Repositories\MemberLogRepository;
  8. use App\Repositories\ResumeOutwardRepository;
  9. use App\Repositories\ResumePrivacyRepository;
  10. use App\Repositories\ResumeRepository;
  11. use Illuminate\Support\Facades\DB;
  12. class ResumePrivacyService
  13. {
  14. /**
  15. * @var ResumeOutwardRepository
  16. */
  17. protected $ResumePrivacyRepository;
  18. protected $ResumeRepository;
  19. protected $memberLogRepository;
  20. /**
  21. * ResumePrivacyService constructor.
  22. * @param ResumePrivacyRepository $ResumePrivacyRepository
  23. * @param ResumeRepository $ResumeRepository
  24. */
  25. public function __construct(
  26. ResumePrivacyRepository $ResumePrivacyRepository,
  27. ResumeRepository $ResumeRepository,
  28. MemberLogRepository $memberLogRepository
  29. )
  30. {
  31. $this->ResumePrivacyRepository = $ResumePrivacyRepository;
  32. $this->ResumeRepository = $ResumeRepository;
  33. $this->memberLogRepository=$memberLogRepository;
  34. }
  35. public function saveResumePrivacy($data)
  36. {
  37. $id = array_get($data,'id');
  38. $display = $data['display'];
  39. if (empty($id)) {
  40. throw new ResponseException('没有找到相应的简历!', '', 400);
  41. }
  42. $user=auth('web-member')->user();
  43. $res = Resume::where(['uid'=>$user->id])->get()->toArray();
  44. $array_id = array_column($res,'id');
  45. if(!in_array($id,$array_id)){
  46. throw new ResponseException('简历不存在');
  47. }
  48. if (!$this->memberLogRepository->createLog($user,2004,$id)){
  49. throw new \Exception("日志错误");
  50. }
  51. return $this->ResumeRepository->updateById(['display'=>$display], $id);
  52. }
  53. public function saveShieldCompany($company_id, $user)
  54. {
  55. if (empty($company_id)) {
  56. throw new ResponseException('请输入要屏蔽的企业!', '', 400);
  57. }
  58. $count = $this->ResumePrivacyRepository->sheidCount($user->id);
  59. if($count>=10){
  60. throw new ResponseException('您最多可以屏蔽10个!', '', 400);
  61. }
  62. $comkey = PersonShieldCompany::where(['uid'=>$user->id])->pluck('company_id')->all();
  63. if(in_array($company_id, $comkey)){
  64. throw new ResponseException('您已经屏蔽了该企业!', '', 400);
  65. }
  66. $company = Company::find($company_id);
  67. if(!$company){
  68. throw new ResponseException('企业信息不存在', '', 400);
  69. }
  70. $arr['uid'] = $user->id;
  71. $arr['company_id'] = $company_id;
  72. $arr['comkeyword'] = $company->companyname;
  73. $res = $this->ResumePrivacyRepository->saveShieldCompany($arr);
  74. if ($res) {
  75. if (!$this->memberLogRepository->createLog($user,2002,$arr['comkeyword'])){
  76. throw new \Exception("日志错误");
  77. }
  78. event_search_update(Resume::class, [['where','uid', $user->id]], 'update');
  79. $arr['id'] = $res->id;
  80. return $arr;
  81. } else {
  82. return false;
  83. }
  84. }
  85. public function getShieldCompany($user)
  86. {
  87. return $this->ResumePrivacyRepository->getShieldCompany($user->id);
  88. }
  89. public function delShieldCompany($id,$user)
  90. {
  91. if (empty($id)) {
  92. throw new ResponseException('没有找到相应的企业!', '', 400);
  93. }
  94. $res = PersonShieldCompany::where(['uid'=>$user->id])->get()->toArray();
  95. $array_id = array_column($res,'id');
  96. if(!in_array($id,$array_id)){
  97. throw new ResponseException('企业数据不存在');
  98. }
  99. $company_id=PersonShieldCompany::find($id)->company_id;
  100. $company_name=Company::find($company_id)->companyname;
  101. if (!$this->memberLogRepository->createLog($user,2003,$company_name)){
  102. throw new \Exception("日志错误");
  103. }
  104. return $this->ResumePrivacyRepository->delShieldCompany($id);
  105. }
  106. public function getShield($user)
  107. {
  108. return $this->ResumePrivacyRepository->getShield($user->id);
  109. }
  110. }