ResumeImageService.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <?php
  2. namespace App\Services\Person;
  3. use App\Exceptions\ResponseException;
  4. use App\Models\Resume;
  5. use App\Models\ResumeImg;
  6. use App\Repositories\ResumeRepository;
  7. use App\Repositories\ResumeWorkRepository;
  8. use App\Services\Common\TaskService;
  9. use Illuminate\Support\Facades\DB;
  10. use App\Repositories\ResumeImgRepository;
  11. class ResumeImageService
  12. {
  13. protected $ResumeWorkRepository;
  14. protected $ResumeRepository;
  15. protected $TaskService;
  16. protected $resumeImgRepository;
  17. public function __construct(
  18. ResumeWorkRepository $ResumeWorkRepository,
  19. ResumeRepository $ResumeRepository,
  20. TaskService $TaskService,
  21. ResumeImgRepository $resumeImgRepository
  22. )
  23. {
  24. $this->ResumeWorkRepository = $ResumeWorkRepository;
  25. $this->ResumeRepository = $ResumeRepository;
  26. $this->TaskService = $TaskService;
  27. $this->resumeImgRepository = $resumeImgRepository;
  28. }
  29. public function images($images_id)
  30. {
  31. if ($images_id) {
  32. return $this->resumeImgRepository->find($images_id);
  33. }
  34. return false;
  35. }
  36. public function resumeImages($images, $title, $id, $resume_id, $user)
  37. {
  38. if (!$images) {
  39. throw new ResponseException('请上传作品!');
  40. }
  41. if (!$resume_id) {
  42. throw new ResponseException('简历不存在!');
  43. }
  44. if($id){
  45. $res_k = ResumeImg::where(['id'=>$id])->first();
  46. if(!$res_k){
  47. throw new ResponseException('简历照片不存在!');
  48. }
  49. if($res_k->resume_id != $resume_id){
  50. throw new ResponseException('简历不存在!');
  51. }
  52. }else{
  53. $res_m = Resume::where(['uid'=>$user->id])->get()->toArray();
  54. $array_id = array_column($res_m,'id');
  55. if(!in_array($resume_id,$array_id)){
  56. throw new ResponseException('简历不存在!');
  57. }
  58. }
  59. $resumeCount = ResumeImg::where(['resume_id'=>$resume_id])->count();
  60. if ($resumeCount>=3) {
  61. throw new ResponseException('最多上传3张图片!');
  62. }
  63. $aveName = md5(time().uniqid()).'.jpg';
  64. $data= base64_decode($images);
  65. $stroge = storage_path('app/public/person/images/');
  66. DB::beginTransaction();
  67. try {
  68. $res = file_put_contents($stroge.$aveName, $data);
  69. $resume_imgs = ResumeImg::where(['uid'=>$user->id,'resume_id'=>$resume_id])->first();
  70. if (empty($resume_imgs)) {
  71. $resumeArr = $this->ResumeRepository->getResumeById($resume_id);
  72. if ($resumeArr->complete_percent+5<=100) {
  73. if ($resumeArr->complete_percent+5>=70 && $resumeArr->complete_percent+5<90) {
  74. $this->TaskService->doTask(12);
  75. $this->ResumeRepository->updateById([
  76. 'complete_percent'=>$resumeArr->complete_percent+5,
  77. 'level'=>2], $resume_id);
  78. } elseif ($resumeArr->complete_percent+5>=90 && $resumeArr->complete_percent+5<=100) {
  79. $this->TaskService->doTask(11);
  80. $this->ResumeRepository->updateById([
  81. 'complete_percent'=>$resumeArr->complete_percent+5,'level'=>1], $resume_id);
  82. } else {
  83. $this->ResumeRepository->updateById([
  84. 'complete_percent'=>$resumeArr->complete_percent+5,'level'=>0], $resume_id);
  85. }
  86. }
  87. }
  88. $drr['uid'] = $user->id;
  89. $drr['resume_id'] = $resume_id;
  90. $drr['img'] = 'person/images/'.$aveName;
  91. $drr['title'] = $title;
  92. if (!$id) {
  93. $result = ResumeImg::create($drr);
  94. } else {
  95. $result = ResumeImg::where('id', $id)->update($drr);
  96. }
  97. if ($result) {
  98. $this->ResumeRepository->updateById(['audit'=>1], $resume_id);
  99. event_search_update(Resume::class, (string)$resume_id, 'update');
  100. }
  101. DB::commit();
  102. return ['code'=>1,'info'=>'上传成功!','data'=>$drr['img']];
  103. } catch (\Exception $e) {
  104. DB::rollback();
  105. return ['code'=>0,'info'=>'上传成功!'];
  106. }
  107. }
  108. public function isOwn($id,$user,$resume_id = '')
  109. {
  110. $image = $this->resumeImgRepository->getImage(['id'=>$id]);
  111. if(!$image)
  112. {
  113. throw new ResponseException('该作品不存在!');
  114. }
  115. if($image->uid != $user->id) {
  116. throw new ResponseException('对不起,您只能操作自己的简历!');
  117. }
  118. //删除时候判断是否为一致
  119. if($resume_id && $image->resume_id != $resume_id) {
  120. throw new ResponseException('参数错误!');
  121. }
  122. }
  123. }