ResumeEntrustService.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace App\Services\Person;
  3. use App\Exceptions\ResponseException;
  4. use App\Models\Order;
  5. use App\Models\Resume;
  6. use App\Models\ResumeEntrust;
  7. use App\Repositories\ResumeEntrustRepository;
  8. use Illuminate\Support\Facades\DB;
  9. class ResumeEntrustService
  10. {
  11. /**
  12. * @var ResumeEntrustRepository
  13. */
  14. protected $ResumeEntrustRepository;
  15. /**
  16. * ResumeEntrustService constructor.
  17. * @param ResumeEntrustRepository $ResumeEntrustRepository
  18. */
  19. public function __construct(ResumeEntrustRepository $ResumeEntrustRepository)
  20. {
  21. $this->ResumeEntrustRepository = $ResumeEntrustRepository;
  22. }
  23. public function getEntrustByResumeId($resume_id)
  24. {
  25. $status = false;
  26. $entrust_start = '';
  27. $entrust_end = '';
  28. $id = '';
  29. $res = $this->ResumeEntrustRepository->getEntrustByResumeId($resume_id);
  30. if($res){
  31. if($res->entrust_end>=time() && $res->entrust_start){
  32. $status = true;
  33. $entrust_start = date('Y-m-d', $res->entrust_start);
  34. $entrust_end = date('Y-m-d', $res->entrust_end);
  35. $id = $res->id;
  36. }
  37. }
  38. return ['status'=>$status,'entrust_start'=>$entrust_start,'entrust_end'=>$entrust_end,'id'=>$id];
  39. }
  40. public function delEntrustResume($id, $resume_id, $user)
  41. {
  42. if(!$id || !$resume_id){
  43. throw new ResponseException('简历不存在');
  44. }
  45. $ress = Resume::where(['uid'=>$user->id])->get()->toArray();
  46. $array_id = array_column($ress,'id');
  47. if(!in_array($resume_id,$array_id)){
  48. throw new ResponseException('简历不存在');
  49. }
  50. $res = ResumeEntrust::where(['uid'=>$user->id])->get()->toArray();
  51. $array_ids = array_column($res,'id');
  52. if(!in_array($id,$array_ids)){
  53. throw new ResponseException('简历不存在');
  54. }
  55. DB::beginTransaction();//检查数据库事务
  56. try {
  57. Resume::where('id', $resume_id)->update(['entrust'=>0]);
  58. $this->ResumeEntrustRepository->delRefreshResume(['id'=>$id]);
  59. DB::commit();
  60. return ['code'=>1,'info'=>'取消成功'];
  61. } catch (\Exception $e) {
  62. DB::rollback();
  63. return ['code'=>0,'info'=>$e->getMessage()];
  64. }
  65. }
  66. }