ResumeEducationService.php 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  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\ResumeEducation;
  7. use App\Models\ResumeEntrust;
  8. use App\Repositories\CategoryRepository;
  9. use App\Repositories\MemberLogRepository;
  10. use App\Repositories\ResumeEducationRepository;
  11. use App\Repositories\ResumeRepository;
  12. use App\Services\Common\TaskService;
  13. use Illuminate\Support\Facades\DB;
  14. class ResumeEducationService
  15. {
  16. /**
  17. * @var ResumeEducationRepository
  18. */
  19. protected $ResumeEducationRepository;
  20. protected $CategoryRepository;
  21. protected $ResumeRepository;
  22. protected $taskService;
  23. protected $memberLogRepository;
  24. /**
  25. * ResumeEducationService constructor.
  26. * @param ResumeEducationRepository $ResumeEducationRepository
  27. * @param CategoryRepository $CategoryRepository
  28. * @param ResumeRepository $ResumeRepository
  29. * @param TaskService $taskService
  30. */
  31. public function __construct
  32. (ResumeEducationRepository $ResumeEducationRepository,
  33. CategoryRepository $CategoryRepository,
  34. ResumeRepository $ResumeRepository,
  35. TaskService $taskService,
  36. MemberLogRepository $memberLogRepository
  37. )
  38. {
  39. $this->ResumeEducationRepository = $ResumeEducationRepository;
  40. $this->CategoryRepository = $CategoryRepository;
  41. $this->ResumeRepository = $ResumeRepository;
  42. $this->taskService = $taskService;
  43. $this->memberLogRepository=$memberLogRepository;
  44. }
  45. public function getResumeEducationByResumeId($resumeId,$user)
  46. {
  47. $res = Resume::where(['uid'=>$user->id])->get()->toArray();
  48. $array_ids = array_column($res,'id');
  49. if(!in_array($resumeId,$array_ids)){
  50. throw new ResponseException('简历不存在');
  51. }
  52. return $this->ResumeEducationRepository->getResumeEducationByResumeId($resumeId);
  53. }
  54. public function resumeEducationAdd($date, $user)
  55. {
  56. $arr = [];
  57. $arr['resume_id'] = array_get($date,'resume_id');
  58. $res = Resume::where(['uid'=>$user->id])->get()->toArray();
  59. $array_id = array_column($res,'id');
  60. if(array_key_exists('id',$date) && $date['id']){
  61. $exist = ResumeEducation::where(['uid'=>$user->id,'id'=>$date['id']])->get()->toArray();
  62. if(!$exist){
  63. throw new ResponseException('只能修改自己的简历');
  64. }
  65. }
  66. if(!in_array($arr['resume_id'],$array_id)){
  67. throw new ResponseException('简历不存在');
  68. }
  69. if (!$date['todate']) {
  70. $arr['endyear'] = $date['endyear'];
  71. $arr['endmonth'] = $date['endmonth'];
  72. $arr['todate'] = 0;
  73. } else {
  74. $arr['endyear'] = 0;
  75. $arr['endmonth'] = 0;
  76. $arr['todate'] = 1;
  77. }
  78. $currentArr = $this->CategoryRepository->getCategory($date['education']);
  79. $arr['education_cn'] = $currentArr['demand'];
  80. $arr['uid'] = $user->id;
  81. $arr['school'] = $date['school'];
  82. $arr['speciality'] = $date['speciality'];
  83. $arr['education'] = $date['education'];
  84. $arr['startyear'] = $date['startyear'];
  85. $arr['startmonth'] = $date['startmonth'];
  86. $result = $this->ResumeEducationRepository->getResumeEducationByResumeId($arr['resume_id']);
  87. DB::beginTransaction();
  88. try {
  89. if (empty($result)) {
  90. $resumeArr = $this->ResumeRepository->getResumeById($arr['resume_id']);
  91. if($resumeArr->complete_percent+15<=100){
  92. if ($resumeArr->complete_percent+15>=70 && $resumeArr->complete_percent+15<90) {
  93. $this->taskService->doTask(12);
  94. $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent+15,'level'=>2], $arr['resume_id']);
  95. } elseif ($resumeArr->complete_percent+15>=90 && $resumeArr->complete_percent+15<=100) {
  96. $this->taskService->doTask(11);
  97. $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent+15,'level'=>1], $arr['resume_id']);
  98. } else {
  99. $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent+15,'level'=>0], $arr['resume_id']);
  100. }
  101. }
  102. }
  103. if ($date['id']) {
  104. $resd = $this->ResumeEducationRepository->updateResume($arr, $date['id']);
  105. if ($resd) {
  106. $this->ResumeRepository->updateById(['audit'=>1], $date['resume_id']);
  107. $resd = $this->ResumeEducationRepository->getResumeEducationByResumeId($date['resume_id']);
  108. }
  109. } else {
  110. $resd = $this->ResumeEducationRepository->resumeEducationAdd($arr);
  111. if ($resd) {
  112. $das['audit'] =1;
  113. $expires = config('aix.personal_set.per_set.per_set.resume_expires');
  114. if($expires){
  115. $das['expires'] = strtotime("+{$expires} days");
  116. }
  117. $this->ResumeRepository->updateById($das, $date['resume_id']);
  118. event_search_update(Resume::class, (string)$date['resume_id'], 'update');
  119. $resd = $this->ResumeEducationRepository->getResumeEducationByResumeId($date['resume_id']);
  120. }
  121. }
  122. DB::commit();
  123. if(!$this->memberLogRepository->createLog(auth('web-member')->user(),2018,$arr['resume_id'])){
  124. throw new \Exception("日志记失败!");
  125. }
  126. return ['code'=>1,'info'=>$resd];
  127. } catch (\Exception $e) {
  128. DB::rollback();
  129. return ['code'=>0,'info'=>$e->getMessage()];
  130. }
  131. }
  132. public function resumeUpdate($id,$user)
  133. {
  134. if(!$this->memberLogRepository->createLog(auth('web-member')->user(),2019,$id)){
  135. throw new \Exception("日志记失败!");
  136. }
  137. $res = ResumeEducation::where(['uid'=>$user->id])->get()->toArray();
  138. $array_id = array_column($res,'id');
  139. if(!in_array($id,$array_id)){
  140. throw new ResponseException('教育信息不存在');
  141. }
  142. return $this->ResumeEducationRepository->getResumeById($id);
  143. }
  144. public function resumeEduDelete($id,$user)
  145. {
  146. $resume_id = request()->resume_id;
  147. $res_k = ResumeEducation::find($id);
  148. if(!$res_k){
  149. throw new ResponseException('教育信息不存在');
  150. }
  151. if($res_k->uid != $user->id){
  152. throw new ResponseException('简历不存在');
  153. }
  154. if($res_k->resume_id != $resume_id){
  155. throw new ResponseException('简历不存在');
  156. }
  157. $count = $this->ResumeEducationRepository->getResumeEduCount(request()->resume_id);
  158. DB::beginTransaction();
  159. try {
  160. $res = $this->ResumeEducationRepository->resumeEduDelete($id);
  161. if ($count==1) {
  162. $resumeArr = $this->ResumeRepository->getResumeById(request()->resume_id);
  163. if ($resumeArr->complete_percent-15>0) {
  164. if ($resumeArr->complete_percent-15>=70 && $resumeArr->complete_percent-15<90) {
  165. $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent-15,'level'=>2], request()->resume_id);
  166. } elseif ($resumeArr->complete_percent-15>=90 && $resumeArr->complete_percent-15<=100) {
  167. $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent-15,'level'=>1], request()->resume_id);
  168. } else {
  169. $this->ResumeRepository->updateById(['complete_percent'=>$resumeArr->complete_percent-15,'level'=>0], request()->resume_id);
  170. }
  171. event_search_update(Resume::class, (string)request()->resume_id, 'update');
  172. }
  173. }
  174. if(!$this->memberLogRepository->createLog(auth('web-member')->user(),2013,$id)){
  175. throw new \Exception("日志记失败!");
  176. }
  177. DB::commit();
  178. return ['code'=>1,'info'=>$res];
  179. } catch (\Exception $e) {
  180. DB::rollback();
  181. return ['code'=>0,'info'=>$e->getMessage()];
  182. }
  183. }
  184. public function educationEdit($id)
  185. {
  186. if ($id) {
  187. return $this->ResumeEducationRepository->find($id);
  188. }
  189. return false;
  190. }
  191. }