ResumeController.php 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284
  1. <?php
  2. namespace App\Http\Controllers\Web\Person;
  3. use App\Exceptions\ResponseException;
  4. use App\Http\Controllers\Web\WebBaseController;
  5. use App\Models\Member;
  6. use App\Models\PersonalCategory;
  7. use App\Models\PersonalTalents;
  8. use App\Models\Pms;
  9. use App\Models\RecruitAppointInfo;
  10. use App\Models\Resume;
  11. use App\Models\ResumeAuthInfo;
  12. use App\Services\Common\CategoryService;
  13. use App\Services\Common\QueueAutoRefreshService;
  14. use App\Services\HomeService;
  15. use App\Services\Person\ResumeCredentService;
  16. use App\Services\Person\ResumeEducationService;
  17. use App\Services\Person\ResumeMaterialService;
  18. use App\Services\Person\ResumeEntrustService;
  19. use App\Services\Person\ResumeLanguageService;
  20. use App\Services\Person\ResumeImageService;
  21. use App\Services\Person\ResumeService;
  22. use App\Services\Person\ResumeTrainService;
  23. use App\Services\Person\ResumeWorkService;
  24. use App\Services\Company\JobsService;
  25. use App\Services\Common\SearchService;
  26. use App\Services\Person\SubsiteResumeService;
  27. use App\Services\SubsiteService;
  28. use App\Validators\PersonValidatorRequest;
  29. use Illuminate\Http\Request;
  30. use Illuminate\Support\Facades\Cache;
  31. use Illuminate\Support\Facades\Storage;
  32. use App\Validators\RecruitValidatorRequest;
  33. use App\Models\RecruitAppointBasic;
  34. use App\Models\Recruit;
  35. class ResumeController extends WebBaseController
  36. {
  37. /**
  38. * @var ResumeService
  39. */
  40. protected $resumeService;
  41. protected $ResumeEducationService;
  42. protected $ResumeWorkService;
  43. protected $ResumeTrainService;
  44. protected $ResumeCredentService;
  45. protected $resumeMaterialService;
  46. protected $ResumeLanguageService;
  47. protected $homeService;
  48. protected $categoryService;
  49. protected $jobsService;
  50. protected $searchService;
  51. protected $subsiteService;
  52. protected $subsiteResumeService;
  53. protected $resumeEntrustService;
  54. protected $resumeImageService;
  55. protected $queueAutoRefreshService;
  56. /**
  57. * ResumeController constructor.
  58. * @param ResumeService $resumeService
  59. * @param ResumeEducationService $ResumeEducationService
  60. * @param ResumeWorkService $ResumeWorkService
  61. * @param ResumeTrainService $ResumeTrainService
  62. * @param ResumeCredentService $ResumeCredentService
  63. * @param ResumeLanguageService $ResumeLanguageService
  64. * @param HomeService $homeService
  65. * @param CategoryService $categoryService
  66. * @param JobsService $jobsService
  67. * @param SearchService $searchService
  68. * @param subsiteService $subsiteService
  69. * @param subsiteResumeService $subsiteResumeService
  70. */
  71. public function __construct(ResumeService $resumeService, ResumeEducationService $ResumeEducationService, ResumeWorkService $ResumeWorkService, ResumeTrainService $ResumeTrainService, ResumeCredentService $ResumeCredentService, ResumeLanguageService $ResumeLanguageService, HomeService $homeService, CategoryService $categoryService, JobsService $jobsService, SearchService $searchService, SubsiteService $subsiteService, SubsiteResumeService $subsiteResumeService, ResumeEntrustService $resumeEntrustService, QueueAutoRefreshService $queueAutoRefreshService,ResumeImageService $resumeImageService,ResumeMaterialService $resumeMaterialService)
  72. {
  73. $this->resumeService = $resumeService;
  74. $this->ResumeEducationService = $ResumeEducationService;
  75. $this->ResumeWorkService = $ResumeWorkService;
  76. $this->ResumeTrainService = $ResumeTrainService;
  77. $this->ResumeCredentService = $ResumeCredentService;
  78. $this->ResumeLanguageService = $ResumeLanguageService;
  79. $this->resumeMaterialService = $resumeMaterialService;
  80. $this->homeService = $homeService;
  81. $this->categoryService = $categoryService;
  82. $this->jobsService = $jobsService;
  83. $this->searchService = $searchService;
  84. $this->recommend_limit = 12;
  85. $this->recommend_need_limit = 100;
  86. $this->subsiteService = $subsiteService;
  87. $this->subsiteResumeService = $subsiteResumeService;
  88. $this->resumeEntrustService = $resumeEntrustService;
  89. $this->queueAutoRefreshService = $queueAutoRefreshService;
  90. $this->resumeImageService = $resumeImageService;
  91. }
  92. /**
  93. * @des 个人中心
  94. */
  95. public function index()
  96. {
  97. $res = $this->resumeService->loginValidate(auth('web-member')->user());
  98. //读取人才认证表信息
  99. $personaltalents = PersonalTalents::where('uid', $res['member']['uid'])->first();
  100. $rate_num = 0;
  101. if (!empty($personaltalents)) {
  102. $result = $personaltalents->toArray();
  103. //人才等级进度条
  104. if ($result['rc_level_id'] == 802) {
  105. //第一类人才
  106. $rate_num = 120;
  107. } elseif ($result['rc_level_id'] == 803) {
  108. //第二类人才
  109. $rate_num = 90;
  110. } elseif ($result['rc_level_id'] == 804) {
  111. //第三类人才
  112. $rate_num = 60;
  113. } elseif ($result['rc_level_id'] == 805) {
  114. //第四类人才
  115. $rate_num = 30;
  116. } elseif ($result['rc_level_id'] == 806) {
  117. //第五类人才
  118. $rate_num = 1;
  119. }
  120. //判断是否处于预判状态和提交的依据数量
  121. if ($result['rc_audit'] != 1 && $result['rc_num'] != 1 && $result['rc_level_id'] != 802) {
  122. //如果处于预判状态或不通过且不是第一类人才和提交的依据数量不是一条
  123. $rate_num += $result['rc_num'];
  124. }
  125. }
  126. if (Cache::has('recommend_click_jobs_'.get_subsite_id())) {
  127. Cache::forget('recommend_click_jobs_'.get_subsite_id());
  128. }
  129. //推荐职位
  130. $recommend_jobs = $this->getRecommendJobs($this->recommend_limit);
  131. $message = $this->resumeService->popPms(auth('web-member')->user());
  132. return view('app.person.index')->with(
  133. [
  134. 'talents'=>$personaltalents,
  135. 'rate_num'=>$rate_num,
  136. 'resume'=>$res['resume'],
  137. 'stick'=>$res['stick'],
  138. 'recommend_jobs'=>$recommend_jobs['jobs'],
  139. 'match_resume' => $recommend_jobs['match_resume'],
  140. 'has_resume' => $recommend_jobs['has_resume'],
  141. 'message'=>$message,
  142. 'member'=>$res['member']
  143. ]
  144. );
  145. }
  146. //切换会员工作状态
  147. public function changeneed(Request $request){
  148. $uid= $request->uid;
  149. $change = $request->change;
  150. if ($change == 2) {
  151. Member::where('id', $uid)->update(['member_status' => 2]);
  152. session('visitor.member_status', 2);
  153. } else {
  154. Member::where('id', $uid)->update(['member_status' => 1]);
  155. session('visitor.member_status', 1);
  156. }
  157. return redirect(route('person.index'));
  158. }
  159. //获取置顶、点击量高、刷新靠前的职位
  160. public function getClickJobs($limit)
  161. {
  162. $jobs = Cache::get('recommend_click_jobs_'.get_subsite_id());
  163. if ($jobs === null) {
  164. $where[] = array('valid','=',1);
  165. $where[] = array('display','=',1);
  166. if (config('aix.companyset.comset.show_set.jobs_display')==1) {
  167. $where[] = array('audit','=',1);
  168. } else {
  169. $where[] = array('audit','<>',3);
  170. }
  171. $where[] = array('subsite_ids','=',get_subsite_id());
  172. $order = array('click'=>'desc','stime'=>'desc','refresh_time'=> 'desc');
  173. $click_jobs = $this->searchService->search('Job', $where, $order, '', $limit);
  174. $jobs = $click_jobs->items();
  175. Cache::put('recommend_click_jobs_'.get_subsite_id(), $jobs, 600);
  176. }
  177. return $jobs;
  178. }
  179. //获取推荐职位
  180. public function getRecommendJobs($limit = 10)
  181. {
  182. $user = $this->getUser();
  183. $need_limit = $this->recommend_need_limit;
  184. $list = array();
  185. $click_jobs = $this->getClickJobs($need_limit); //获取置顶、点击量高、刷新靠前的职位
  186. $recommend_order = $this->jobsService->getRecommendOrder($user); //排序条件
  187. $resume = array();
  188. $has_resume = 1;
  189. if ($user && $user->utype == 2) {
  190. $recommend_where = $this->jobsService->getRecommendWhere($user);
  191. if ($recommend_where) {
  192. //添加30天的时间限制
  193. $recommend_where['and'][] = ['refresh_time','>=', strtotime(date("Y-m-d", strtotime("-30 day")))];
  194. $has_resume = 1;
  195. $recommend_job_lists = $this->searchService->getRecommends($user, 'Job', $recommend_where, $recommend_order, '', $limit);
  196. $jids = array();
  197. if ($recommend_job_lists) {
  198. $jids = $recommend_job_lists->pluck('id')->toArray();
  199. }
  200. if ($recommend_job_lists && $recommend_job_lists->total()>=$limit) {
  201. $list = array_slice($recommend_job_lists->items(), 0, $limit);
  202. } else {
  203. if ($click_jobs && $jids) {
  204. foreach ($click_jobs as $k => $v) {
  205. if (in_array($v->id, $jids)) {
  206. unset($click_jobs[$k]);
  207. }
  208. }
  209. }
  210. $recommend_jobs = $recommend_job_lists?$recommend_job_lists->items():array();
  211. $recommend_total = $recommend_job_lists?$recommend_job_lists->total():0;
  212. $need_jobs = array_slice($click_jobs, 0, $limit - $recommend_total);
  213. $all_jobs = array_merge($recommend_jobs, $need_jobs);
  214. $list = array_slice($all_jobs, 0, $limit);
  215. }
  216. } else {
  217. //没有可匹配的简历
  218. $list = null;
  219. $has_resume = 0;
  220. }
  221. } else {
  222. $list = array_slice($click_jobs, 0, $limit);
  223. }
  224. if ($list) {
  225. $list = $this->jobsService->dealjobFilelds($list);
  226. }
  227. return array(
  228. 'jobs' => $list,
  229. 'match_resume' => $resume,
  230. 'has_resume' => $has_resume
  231. );
  232. }
  233. public function popPms()
  234. {
  235. $content = $this->resumeService->popPms(auth('web-member')->user());
  236. if ($content) {
  237. $html = view('app.person.ajax.pop_pms', ['content'=>$content])->render();
  238. return $this->sendSuccessResponse(['html'=>$html,'code'=>1]);
  239. } else {
  240. return $this->sendSuccessResponse(['html'=>'','code'=>0]);
  241. }
  242. }
  243. public function getUser()
  244. {
  245. $user = array();
  246. if (auth('web-member')->check()) {
  247. $user = auth('web-member')->user();
  248. } elseif (auth('web-company')->check()) {
  249. $user = auth('web-company')->user();
  250. }
  251. return $user;
  252. }
  253. public function ajaxGetInterestJobs()
  254. {
  255. $params = request()->all();
  256. $limit = $this->recommend_limit;
  257. $need_limit = $this->recommend_need_limit;
  258. $list = array();
  259. $page = array_has($params, 'p')?$params['p']:1;
  260. $has_resume = 1;
  261. //推荐职位
  262. if ($params['type'] == 'recommend_jobs') {
  263. $user = $this->getUser();
  264. $recommend_order = $this->jobsService->getRecommendOrder($user);
  265. $recommend_where = $this->jobsService->getRecommendWhere($user);
  266. if ($recommend_where) {
  267. $has_resume = 1;
  268. //添加30天的时间限制
  269. $recommend_where['and'][] = ['refresh_time','>=', strtotime(date("Y-m-d", strtotime("-30 day")))];
  270. $recommend_job_lists = $this->searchService->getRecommends($user, 'Job', $recommend_where, $recommend_order, '', $need_limit);
  271. $jids = $recommend_job_lists->pluck('id')->toArray();
  272. $next_page = (int)$page + 1;
  273. if (count($recommend_job_lists->items()) >= $next_page*$limit) {
  274. $list = array_slice($recommend_job_lists->items(), $page*$limit, $limit);
  275. } else {
  276. $click_jobs = $this->getClickJobs($need_limit);
  277. if ($click_jobs && $jids) {
  278. foreach ($click_jobs as $k => $v) {
  279. if (in_array($v->id, $jids)) {
  280. unset($click_jobs[$k]);
  281. }
  282. }
  283. }
  284. $recommend_jobs = $recommend_job_lists->items();
  285. $recommend_total = count($recommend_job_lists->items());
  286. $need_jobs = array_slice($click_jobs, 0, $need_limit - $recommend_total);
  287. $all_jobs = array_merge($recommend_jobs, $need_jobs);
  288. $list = array_slice($all_jobs, $page*$limit, $limit);
  289. if (!$list) {
  290. $list = array_slice($all_jobs, 0, $limit);
  291. $next_page = 1;
  292. }
  293. }
  294. } else {
  295. $list = [];
  296. $has_resume = 0;
  297. $next_page = 1;
  298. }
  299. $list = $this->jobsService->dealjobFilelds($list);
  300. $html = view('app.person.ajax.jobs_list', ['content'=>$list, 'has_resume'=>$has_resume])->render();
  301. return $this->sendSuccessResponse(['html'=>$html,'page'=>$next_page]);
  302. } else {
  303. $next_page = 1;
  304. if ($params['type'] == 'new_jobs') {
  305. $jobs = $this->getNewJobs($limit, $page);
  306. } else {
  307. $jobs = $this->getNearByJobs($params, $limit, $page);
  308. }
  309. if ($jobs->isNotEmpty()) {
  310. $list = $this->jobsService->dealjobFilelds($jobs->items());
  311. $next_page = (int)$page + 1;
  312. } else {
  313. if ($params['type'] == 'new_jobs') {
  314. $first_jobs = $this->getNewJobs($limit, $next_page);
  315. } else {
  316. $first_jobs = $this->getNearByJobs($params, $limit, $next_page);
  317. }
  318. if ($first_jobs->isNotEmpty()) {
  319. $list = $this->jobsService->dealjobFilelds($first_jobs->items());
  320. $next_page = 2;
  321. }
  322. }
  323. $html = view('app.person.ajax.jobs_list', ['content'=>$list, 'has_resume'=>$has_resume])->render();
  324. return $this->sendSuccessResponse(['html'=>$html,'page'=>$next_page]);
  325. }
  326. }
  327. public function getNearByJobs($params, $limit, $page)
  328. {
  329. $where[] = array('valid','=',1);
  330. $where[] = array('display','=',1);
  331. if (config('aix.companyset.comset.show_set.jobs_display')==1) {
  332. $where[] = array('audit','=',1);
  333. } else {
  334. $where[] = array('audit','<>',3);
  335. }
  336. $where[] = array('subsite_ids','=',get_subsite_id());
  337. //获取坐标
  338. $lng = array_has($params, 'lng') ? $params['lng']: '';
  339. $lat = array_has($params, 'lat') ? $params['lat']: '';
  340. if ($lng && $lat) {
  341. $where[] = array('lng', '=', $lng);
  342. $where[] = array('lat', '=', $lat);
  343. $where[] = array('range', '=',round(config('aix.system.map.map.map_range'), 2));
  344. }
  345. $order = array('click'=>'desc','stime'=>'desc','refresh_time'=> 'desc');
  346. return $recommend_job_lists = $this->searchService->search('Job', $where, $order, '', $limit, $page);
  347. }
  348. public function getNewJobs($limit, $page)
  349. {
  350. $where[] = array('valid','=',1);
  351. $where[] = array('display','=',1);
  352. if (config('aix.companyset.comset.show_set.jobs_display')==1) {
  353. $where[] = array('audit','=',1);
  354. } else {
  355. $where[] = array('audit','<>',3);
  356. }
  357. $where[] = array('subsite_ids','=',get_subsite_id());
  358. $order = array('refresh_time'=>'desc');
  359. return $recommend_job_lists = $this->searchService->search('Job', $where, $order, '', $limit, $page);
  360. }
  361. public function popPmsRead()
  362. {
  363. return $this->resumeService->popPmsRead(request()->id);
  364. }
  365. /**
  366. * @des 签到
  367. */
  368. public function signIn()
  369. {
  370. $res = $this->resumeService->signIn(auth('web-member')->user());
  371. if ($res['code']==1) {
  372. return $this->sendSuccessResponse($res['info']);
  373. } else {
  374. return $this->sendErrorResponse($res['info']);
  375. }
  376. }
  377. public function resume()
  378. {
  379. $content = $this->resumeService->myResume(auth('web-member')->user());
  380. return view('app.person.resume', ['content'=>$content]);
  381. }
  382. public function resumeAjax()
  383. {
  384. $content = $this->resumeService->myResumeAjax(auth('web-member')->user());
  385. return view('app.person.ajax.addResume', ['content'=>$content]);
  386. }
  387. public function resumeAdd()
  388. {
  389. $res = $this->resumeService->loginValidate(auth('web-member')->user());
  390. $district = $this->categoryService->getDefaultDistrict();
  391. $subsite = $this->subsiteService->getSubsite(auth('web-member')->user());
  392. return view('app.person.resume_add',
  393. [
  394. 'member'=>$res['member'],
  395. 'resume'=>$res['resume'],
  396. 'defaultCity'=>$district->defaultCity,
  397. 'disCity'=>$district->disCity,
  398. 'disHan'=>$district->disHan,
  399. 'resumeTitle'=>$res['resumeTitle'],
  400. 'subsite'=>$subsite,
  401. ]
  402. );
  403. }
  404. public function resumeCreate(PersonValidatorRequest $request)
  405. {
  406. $res = $this->resumeService->resumeCreate($request->except(['add_tag','_token']), auth('web-member')->user());
  407. if ($res['code']==1) {
  408. return $this->sendSuccessResponse(['id'=>$res['info'],'tag'=>$request->add_tag]);
  409. } else {
  410. return $this->sendErrorResponse('更新简历失败', '', 400);
  411. }
  412. }
  413. public function resumeCheck()
  414. {
  415. return view('app.person.resume_check');
  416. }
  417. public function resumeUpdate()
  418. {
  419. $de_resume = Resume::find(request()->id);
  420. $back_url = \Illuminate\Support\Facades\URL::previous();
  421. if(!$de_resume){
  422. return $this->showMessage('对不起,您只能查看自己的简历!', $back_url, true, '上一页', '3');
  423. }
  424. if($de_resume->uid!=auth('web-member')->user()->id){
  425. return $this->showMessage('对不起,您只能查看自己的简历!', $back_url, true, '上一页', '3');
  426. }
  427. $res = $this->resumeService->getResumeById(request()->id, auth('web-member')->user());
  428. $district = $this->categoryService->getDefaultDistrict();
  429. $subsiteResume = $this->subsiteResumeService->getSubsiteResumeById(auth('web-member')->user(), request()->id);
  430. $subsiteAll = $this->subsiteService->getSubsite(auth('web-member')->user());
  431. $refresh = $this->queueAutoRefreshService->getQueuAutoRefresh(request()->id, auth('web-member')->user()->utype);
  432. $entrust = $this->resumeEntrustService->getEntrustByResumeId(request()->id);
  433. $where["uid"]=auth('web-member')->user()->id;
  434. $where["pid"]=request()->id;
  435. $resumeauth=ResumeAuthInfo::where($where)->select('duties','lager')->get();
  436. $resumeauths=array();
  437. foreach ($resumeauth as $value){
  438. $resumeauths[]=$value->duties;
  439. }
  440. $personal_category['positionpatentTag'] = PersonalCategory::select('id','name','rc_category_id','rc_category_group_id')->where('rc_category_group_id',808)->get();
  441. $personal_category['positionhonorTag'] = PersonalCategory::select('id','name','rc_category_id','rc_category_group_id')->where('rc_category_group_id',809)->get();
  442. $personal_category['positionjobTag'] = PersonalCategory::select('id','name','rc_category_id','rc_category_group_id')->where('rc_category_group_id',810)->get();
  443. $resumeauths_title = [];
  444. $resumeauths_title['positionpatentTag'] = [];
  445. $resumeauths_title['positionhonorTag'] = [];
  446. $resumeauths_title['positionjobTag'] = [];
  447. foreach ($personal_category['positionpatentTag'] as $value){
  448. if(in_array($value->id,$resumeauths)){
  449. $resumeauths_title['positionpatentTag'][] = $value->name;
  450. }
  451. }
  452. foreach ($personal_category['positionhonorTag'] as $value){
  453. if(in_array($value->id,$resumeauths)){
  454. $resumeauths_title['positionhonorTag'][] = $value->name;
  455. }
  456. }
  457. foreach ($personal_category['positionjobTag'] as $value){
  458. if(in_array($value->id,$resumeauths)){
  459. $resumeauths_title['positionjobTag'][] = $value->name;
  460. }
  461. }
  462. return view('app.person.resume_update', [
  463. 'resume'=>$res['resume'],
  464. 'member'=>$res['member'],
  465. 'imgs'=>$res['imgs'],
  466. 'defaultCity'=>$district->defaultCity,
  467. 'subsiteResume'=>$subsiteResume['sub'],
  468. 'personalCategory'=>$personal_category,
  469. 'resumeauths'=>$resumeauths,
  470. 'resumeauths_title'=>$resumeauths_title,
  471. 'subsiteAll'=>$subsiteAll,
  472. 'subId'=>$subsiteResume['subId'],
  473. 'refresh'=>$refresh,
  474. 'entrust'=>$entrust
  475. ]);
  476. }
  477. public function ajaxRongyuZhiwu(){
  478. $type=request()->type;
  479. $name = request()->name;
  480. $where["uid"]=auth('web-member')->user()->id;
  481. $where["pid"]=request()->id;
  482. $resumeauth=ResumeAuthInfo::where($where)->select('duties','lager')->get();
  483. $resumeauths=array();
  484. foreach ($resumeauth as $value){
  485. $resumeauths[]=$value->duties;
  486. }
  487. $honorTagWhere[] = array('name','like','%'.$name.'%');
  488. $honorTagWhere[] = array('rc_category_group_id','=',809);
  489. $jobTagWhere[] = array('name','like','%'.$name.'%');
  490. $jobTagWhere[] = array('rc_category_group_id','=',810);
  491. $personal_category['positionhonorTag'] = PersonalCategory::select('id','name','rc_category_id','rc_category_group_id')->where($honorTagWhere)->get();
  492. $personal_category['positionjobTag'] = PersonalCategory::select('id','name','rc_category_id','rc_category_group_id')->where($jobTagWhere)->get();
  493. if( $type == 1 ){ //荣誉
  494. $html = view('app.person.ajax.rongyu', ['personalCategory'=>$personal_category, 'resumeauths'=>$resumeauths])->render();
  495. }else{ // 职务。
  496. $html = view('app.person.ajax.zhiwu', ['personalCategory'=>$personal_category, 'resumeauths'=>$resumeauths])->render();
  497. }
  498. return $this->sendSuccessResponse(['html'=>$html]);
  499. }
  500. public function updateSubditeResume()
  501. {
  502. $resume_id = request()->get('id');
  503. $user = $this->getUser();
  504. $this->resumeService->isOwn($resume_id,$user);
  505. $res = $this->subsiteResumeService->updateSubditeResume($user, request()->all());
  506. if ($res['code']) {
  507. return $this->sendSuccessResponse($res['info']);
  508. } else {
  509. return $this->sendErrorResponse('更新失败', '', 400);
  510. }
  511. }
  512. public function updateTitle()
  513. {
  514. $res = $this->resumeService->updateTitle(request()->title, request()->id,auth('web-member')->user());
  515. if ($res) {
  516. return $this->sendSuccessResponse('更新成功');
  517. } else {
  518. return $this->sendErrorResponse('更新失败', '', 400);
  519. }
  520. }
  521. public function updateHunting()
  522. {
  523. $resume_id = request()->get('id');
  524. $user = $this->getUser();
  525. $this->resumeService->isOwn($resume_id,$user);
  526. $res = $this->resumeService->updateHunting(request()->except('_token'), auth('web-member')->user());
  527. if ($res) {
  528. return $this->sendSuccessResponse('更新成功');
  529. } else {
  530. return $this->sendErrorResponse('更新失败', '', 400);
  531. }
  532. }
  533. public function updateSpecialty()
  534. {
  535. $resume_id = request()->get('id');
  536. $user = $this->getUser();
  537. $this->resumeService->isOwn($resume_id,$user);
  538. $res = $this->resumeService->updateSpecialty(request()->except('_token'),auth('web-member')->user());
  539. if ($res['code']==1) {
  540. return $this->sendSuccessResponse('更新成功');
  541. } else {
  542. return $this->sendErrorResponse('更新失败', '', 400);
  543. }
  544. }
  545. public function resumeEducationAdd()
  546. {
  547. $res = $this->ResumeEducationService->resumeEducationAdd(request()->all(), auth('web-member')->user());
  548. if ($res['code']==1) {
  549. $html = view('app.person.ajax.resume_education', ['content'=>$res['info']])->render();
  550. return $this->sendSuccessResponse($html);
  551. } else {
  552. return $this->sendErrorResponse('更新失败', '', 400);
  553. }
  554. }
  555. public function resumeEducation()
  556. {
  557. $res = $this->ResumeEducationService->getResumeEducationByResumeId(request()->resume_id,auth('web-member')->user());
  558. return view('app.person.ajax.resume_education', ['content'=>$res]);
  559. }
  560. public function resumeEducationUpdate()
  561. {
  562. $res = $this->ResumeEducationService->resumeUpdate(request()->id,auth('web-member')->user());
  563. return $this->sendSuccessResponse($res);
  564. }
  565. public function resumeEduDelete()
  566. {
  567. if (request()->method()=='POST') {
  568. $res = $this->ResumeEducationService->resumeEduDelete(request()->id,auth('web-member')->user());
  569. if ($res['code']==1) {
  570. return $this->sendSuccessResponse('删除成功');
  571. } else {
  572. return $this->sendErrorResponse('删除失败', '', 400);
  573. }
  574. } else {
  575. return view('app.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除该教育经历吗?']);
  576. }
  577. }
  578. public function resumeWork()
  579. {
  580. $res = $this->ResumeWorkService->getResumeWorkByResumeId(request()->resume_id,auth('web-member')->user());
  581. return view('app.person.ajax.resume_work', ['content'=>$res]);
  582. }
  583. public function resumeWorkAdd()
  584. {
  585. $resume_id = request()->get('resume_id');
  586. $user = $this->getUser();
  587. $this->resumeService->isOwn($resume_id,$user);
  588. $res = $this->ResumeWorkService->resumeWorkAdd(request()->all(), auth('web-member')->user());
  589. if ($res['code']==1) {
  590. $html = view('app.person.ajax.resume_work', ['content'=>$res['info']])->render();
  591. return $this->sendSuccessResponse($html);
  592. } else {
  593. return $this->sendErrorResponse('更新失败', '', 400);
  594. }
  595. }
  596. public function resumeWorkUpdate()
  597. {
  598. $work_id = request()->get('id');
  599. $user = $this->getUser();
  600. $this->ResumeWorkService->isOwn($work_id,$user);
  601. $res = $this->ResumeWorkService->resumeUpdate(request()->id);
  602. return $this->sendSuccessResponse($res);
  603. }
  604. public function resumeWorkDelete()
  605. {
  606. if (request()->method()=='POST') {
  607. $work_id = request()->get('id');
  608. $resume_id = request()->get('resume_id');
  609. $user = $this->getUser();
  610. $this->ResumeWorkService->isOwn($work_id,$user,$resume_id);
  611. $res = $this->ResumeWorkService->resumeWorkDelete(request()->id);
  612. if ($res['code']==1) {
  613. return $this->sendSuccessResponse('删除成功');
  614. } else {
  615. return $this->sendErrorResponse('删除失败', '', 400);
  616. }
  617. } else {
  618. return view('app.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除该工作经历吗?']);
  619. }
  620. }
  621. public function resumeTrain()
  622. {
  623. $res = $this->ResumeTrainService->getResumeTrainByResumeId(request()->resume_id,auth('web-member')->user());
  624. return view('app.person.ajax.resume_train', ['content'=>$res]);
  625. }
  626. public function resumeTrainAdd()
  627. {
  628. $resume_id = request()->get('resume_id');
  629. $user = $this->getUser();
  630. $this->resumeService->isOwn($resume_id,$user);
  631. $res = $this->ResumeTrainService->resumeTrainAdd(request()->all(), auth('web-member')->user());
  632. if ($res['code']==1) {
  633. $html = view('app.person.ajax.resume_train', ['content'=>$res['info']])->render();
  634. return $this->sendSuccessResponse($html);
  635. } else {
  636. return $this->sendErrorResponse('更新失败', '', 400);
  637. }
  638. }
  639. public function resumeTrainUpdate()
  640. {
  641. $train_id = request()->get('id');
  642. $user = $this->getUser();
  643. $this->ResumeTrainService->isOwn($train_id,$user);
  644. $res = $this->ResumeTrainService->resumeUpdate(request()->id);
  645. return $this->sendSuccessResponse($res);
  646. }
  647. public function resumeTrainDelete()
  648. {
  649. if (request()->method()=='POST') {
  650. $train_id = request()->get('id');
  651. $resume_id = request()->get('resume_id');
  652. $user = $this->getUser();
  653. $this->ResumeTrainService->isOwn($train_id,$user,$resume_id);
  654. $res = $this->ResumeTrainService->resumeTrainDelete(request()->id);
  655. if ($res['code']==1) {
  656. return $this->sendSuccessResponse('删除成功');
  657. } else {
  658. return $this->sendErrorResponse('删除失败', '', 400);
  659. }
  660. } else {
  661. return view('app.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除该培训经历吗?']);
  662. }
  663. }
  664. public function resumeMaterialUpdate()
  665. {
  666. $user = $this->getUser();
  667. $this->resumeMaterialService->isOwn(request()->all(),$user);
  668. $res = $this->resumeMaterialService->resumeUpdate(request()->all(),$user);
  669. if ($res['code']==1) {
  670. return $this->sendSuccessResponse($res);
  671. } else {
  672. return $this->sendErrorResponse($res['info'], '', 400);
  673. }
  674. }
  675. public function resumeCredent()
  676. {
  677. $res = $this->ResumeCredentService->getResumeCredentByResumeId(request()->resume_id,auth('web-member')->user());
  678. return view('app.person.ajax.resume_credent', ['content'=>$res]);
  679. }
  680. public function resumeCredentAdd()
  681. {
  682. $resume_id = request()->get('resume_id');
  683. $user = $this->getUser();
  684. $this->resumeService->isOwn($resume_id,$user);
  685. $res = $this->ResumeCredentService->resumeCredentAdd(request()->all(), auth('web-member')->user());
  686. if ($res['code']==1) {
  687. $html = view('app.person.ajax.resume_credent', ['content'=>$res['info']])->render();
  688. return $this->sendSuccessResponse($html);
  689. } else {
  690. return $this->sendErrorResponse('更新失败', '', 400);
  691. }
  692. }
  693. public function resumeCredentUpdate()
  694. {
  695. $train_id = request()->get('id');
  696. $user = $this->getUser();
  697. $this->ResumeCredentService->isOwn($train_id,$user);
  698. $res = $this->ResumeCredentService->resumeUpdate(request()->id);
  699. return $this->sendSuccessResponse($res);
  700. }
  701. public function resumeCredentDelete()
  702. {
  703. if (request()->method()=='POST') {
  704. $train_id = request()->get('id');
  705. $resume_id = request()->get('resume_id');
  706. $user = $this->getUser();
  707. $this->ResumeCredentService->isOwn($train_id,$user,$resume_id);
  708. $res = $this->ResumeCredentService->resumeCredentDelete(request()->id);
  709. if ($res['code']==1) {
  710. return $this->sendSuccessResponse('删除成功');
  711. } else {
  712. return $this->sendErrorResponse('删除失败', '', 400);
  713. }
  714. } else {
  715. return view('app.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除该证书吗?']);
  716. }
  717. }
  718. public function resumeLanAdd()
  719. {
  720. $resume_id = request()->get('resume_id');
  721. $user = $this->getUser();
  722. $this->resumeService->isOwn($resume_id,$user);
  723. $res = $this->ResumeLanguageService->resumeLanAdd(request()->resume_id);
  724. return view('app.person.ajax.resume_edit_language', ['content'=>$res]);
  725. }
  726. public function getLanguageL()
  727. {
  728. $res = $this->ResumeLanguageService->getLanguageL(request()->resume_id,auth('web-member')->user());
  729. return view('app.person.ajax.get_language_list', ['content'=>$res]);
  730. }
  731. public function saveLanguage()
  732. {
  733. $resume_id = request()->get('resume_id');
  734. $user = $this->getUser();
  735. $this->resumeService->isOwn($resume_id,$user);
  736. $res = $this->ResumeLanguageService->saveLanguage(request()->all(), auth('web-member')->user());
  737. if ($res['code']==1) {
  738. $html = view('app.person.ajax.get_language_list', ['content'=>$res['info']])->render();
  739. return $this->sendSuccessResponse($html);
  740. } else {
  741. return $this->sendErrorResponse('添加失败', '', 400);
  742. }
  743. }
  744. public function delLanguage()
  745. {
  746. $language_id = request()->get('id');
  747. $resume_id = request()->get('resume_id');
  748. $user = $this->getUser();
  749. $this->ResumeLanguageService->isOwn($language_id,$user,$resume_id);
  750. $res = $this->ResumeLanguageService->delLanguage(request()->all());
  751. if ($res['code']==1) {
  752. return $this->sendSuccessResponse('删除成功');
  753. } else {
  754. return $this->sendErrorResponse('删除失败', '', 400);
  755. }
  756. }
  757. public function tagSave()
  758. {
  759. $resume_id = request()->get('resume_id');
  760. $user = $this->getUser();
  761. $this->resumeService->isOwn($resume_id,$user);
  762. $res = $this->resumeService->tagSave(request()->all());
  763. if ($res['code']==1) {
  764. return $this->sendSuccessResponse('更新成功');
  765. } else {
  766. return $this->sendErrorResponse('更新失败', '', 400);
  767. }
  768. }
  769. public function resumeCopy()
  770. {
  771. $res = $this->resumeService->resumeCopy(request()->id, auth('web-member')->user());
  772. if ($res['code']==1) {
  773. return $this->sendSuccessResponse($res['info']);
  774. } else {
  775. return $this->sendErrorResponse('创建简历失败', '', 400);
  776. }
  777. }
  778. public function saveBasicInfo()
  779. {
  780. $res = $this->resumeService->saveBasicInfo(request()->except('_token'),auth('web-member')->user());
  781. if ($res) {
  782. return $this->sendSuccessResponse('更新成功');
  783. } else {
  784. return $this->sendErrorResponse('更新失败', '', 400);
  785. }
  786. }
  787. public function refreshResume()
  788. {
  789. $res = $this->resumeService->refreshResume(request()->id, auth('web-member')->user());
  790. if ($res['code']==1) {
  791. return $this->sendSuccessResponse($res['info']);
  792. } else {
  793. return $this->sendErrorResponse($res['info']);
  794. }
  795. }
  796. public function resumeShow()
  797. {
  798. $user = $this->getUser();
  799. $res = $this->resumeService->resumeShow(request()->id,'',$user);
  800. return view('app.person.resume_show', ['content'=>$res,'resume'=>$res['resume'], 'redirect_url'=>url(\Illuminate\Support\Facades\Request::getRequestUri())]);
  801. }
  802. public function resumeDoc()
  803. {
  804. $res = $this->resumeService->resumeDoc(request()->id);
  805. if ($res) {
  806. $html = view('app.tpl.word_resume', ['content'=>$res])->render();
  807. return $this->resumeService->descript($res, $html);
  808. } else {
  809. return $this->sendErrorResponse('请选择简历!', '', 400);
  810. }
  811. }
  812. public function delResume()
  813. {
  814. $res = $this->resumeService->delResume(request()->id);
  815. $html = view('app.person.ajax.del_resume', ['content'=>$res['data']])->render();
  816. return json_encode(['code'=>$res['code'],'data'=>$html]);
  817. }
  818. public function setDelResume()
  819. {
  820. $res = $this->resumeService->setDelResume(request()->id, auth('web-member')->user());
  821. if ($res) {
  822. return $this->sendSuccessResponse('删除成功');
  823. } else {
  824. return $this->sendErrorResponse('删除失败', '', 400);
  825. }
  826. }
  827. public function setDef()
  828. {
  829. $res = $this->resumeService->setDef(request()->id, auth('web-member')->user());
  830. if ($res['code']==1) {
  831. return $this->sendSuccessResponse($res['info']);
  832. } else {
  833. return $this->sendErrorResponse($res['info'], '', 400);
  834. }
  835. }
  836. public function entrust()
  837. {
  838. $res = $this->resumeService->entrust(request()->id, auth('web-member')->user());
  839. if ($res['code']==0) {
  840. $html = view('app.person.ajax.entrust', ['content'=>$res['data']])->render();
  841. return json_encode(['code'=>0,'html'=>$html,'data'=>$res['data']['entrust']-time()]);
  842. } else {
  843. $html = view('app.person.ajax.entruct_cancle', ['content'=>$res['data']])->render();
  844. return json_encode(['code'=>0,'html'=>$html,'data'=>$res['data']['entrust_end']-time()]);
  845. }
  846. }
  847. public function setEntrust()
  848. {
  849. $res = $this->resumeService->setEntrust(request()->id, auth('web-member')->user());
  850. if ($res['code']==1) {
  851. return $this->sendSuccessResponse($res['info']);
  852. } else {
  853. return $this->sendErrorResponse($res['info'], '', 400);
  854. }
  855. }
  856. public function setEntrustDel()
  857. {
  858. $res = $this->resumeService->setEntrustDel(request()->id,auth('web-member')->user());
  859. if ($res['code']==1) {
  860. return $this->sendSuccessResponse($res['info']);
  861. } else {
  862. return $this->sendErrorResponse($res['info'], '', 400);
  863. }
  864. }
  865. public function tagCn()
  866. {
  867. if (request()->method()=='POST') {
  868. dd(11);
  869. } else {
  870. $result = $this->resumeService->tagCn(auth('web-member')->user());
  871. if ($result['code']==0) {
  872. return $result;
  873. } else {
  874. return view('app.person.ajax.resume_tag', $result);
  875. }
  876. }
  877. }
  878. public function resumeStick()
  879. {
  880. if (request()->method()=='POST') {
  881. dd(22);
  882. } else {
  883. $result = $this->resumeService->resumeStick(auth('web-member')->user());
  884. if ($result['code']==0) {
  885. return $result;
  886. } else {
  887. return view('app.person.ajax.resume_stick', $result);
  888. }
  889. }
  890. }
  891. public function incrementAddSave()
  892. {
  893. $result = $this->resumeService->incrementAddSave(request()->all(), auth('web-member')->user());
  894. if ($result['code']==1) {
  895. return $this->sendSuccessResponse($result['info']);
  896. } else {
  897. return $this->sendErrorResponse($result['info'], '', 400);
  898. }
  899. }
  900. public function incrementStickSave()
  901. {
  902. $result = $this->resumeService->incrementStickSave(request()->all(), auth('web-member')->user());
  903. if ($result['code']==1) {
  904. return $this->sendSuccessResponse($result['info']);
  905. } else {
  906. return $this->sendErrorResponse($result['info'], '', 400);
  907. }
  908. }
  909. public function uploadImages()
  910. {
  911. $resume_id = request()->get('resume_id');
  912. $user = $this->getUser();
  913. $this->resumeService->isOwn($resume_id,$user);
  914. $result = $this->resumeService->uploadImages(request()->all(), auth('web-member')->user());
  915. if ($result['code']==1) {
  916. return $this->sendSuccessResponse($result['info']);
  917. } else {
  918. return $this->sendErrorResponse($result['info']);
  919. }
  920. }
  921. public function uploadFiles()
  922. {
  923. $resume_id = request()->get('resume_id');
  924. $user = $this->getUser();
  925. $this->resumeService->isOwn($resume_id,$user);
  926. $result = $this->resumeService->uploadFiles(request()->all());
  927. if ($result) {
  928. return $this->sendSuccessResponse('上传成功!');
  929. } else {
  930. return $this->sendErrorResponse('上传失败,请重试!');
  931. }
  932. }
  933. public function delFile()
  934. {
  935. if (request()->method()=='POST') {
  936. $resume_id = request()->get('resume_id');
  937. $user = $this->getUser();
  938. $this->resumeService->isOwn($resume_id,$user);
  939. $result = $this->resumeService->delFile(request()->all());
  940. if ($result) {
  941. return $this->sendSuccessResponse('删除成功!');
  942. } else {
  943. return $this->sendErrorResponse('删除失败,请重试!');
  944. }
  945. } else {
  946. return view('app.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除该附件简历吗?']);
  947. }
  948. }
  949. public function autoRefresh()
  950. {
  951. $resume_id = request()->get('resume_id');
  952. $user = $this->getUser();
  953. $this->resumeService->isOwn($resume_id,$user);
  954. $result = $this->resumeService->autoRefresh(request()->all(),auth('web-member')->user());
  955. if ($result['code']==1) {
  956. return $this->sendSuccessResponse($result['info']);
  957. } else {
  958. return $this->sendErrorResponse($result['info']);
  959. }
  960. }
  961. public function del_images()
  962. {
  963. if (request()->method()=='POST') {
  964. $img_id = request()->get('id');
  965. $resume_id = request()->get('resume_id');
  966. $user = $this->getUser();
  967. $this->resumeImageService->isOwn($img_id,$user,$resume_id);
  968. $result = $this->resumeService->del_images(request()->all());
  969. if ($result['code']==1) {
  970. return $this->sendSuccessResponse('ok');
  971. } else {
  972. return $this->sendErrorResponse('删除失败!');
  973. }
  974. } else {
  975. return view('app.person.ajax.resume_delete', ['tpis'=>'删除后将无法恢复,您确定要删除该条数据吗?']);
  976. }
  977. }
  978. //职位匹配
  979. public function matchJobs($id)
  980. {
  981. $resume = $this->resumeService->getResumeInfo($id);
  982. if(!$resume){
  983. return $this->showMessage('您的简历审核未通过/审核中,无法匹配职位', \Illuminate\Support\Facades\URL::previous(), true, '上一页', '3');
  984. }
  985. //匹配职位
  986. $jobs = $this->searchService->searchRecommendJobs(5, $this->getUser(), 'show_page');
  987. /*
  988. $where = $this->jobsService->setRecommendJobWhere($resume);
  989. $order = array('refresh_time'=>'desc');
  990. $jobs = $this->searchService->search('Job', $where, $order, '', 10);
  991. */
  992. $list_items = array();
  993. if($jobs){
  994. if ($jobs->total()>0) {
  995. $list_items = $this->jobsService->dealjobFilelds($jobs->items());
  996. }
  997. }
  998. $return_data = array(
  999. 'list'=>$jobs,
  1000. 'jobs'=>$list_items
  1001. );
  1002. return view('app.person.jobs_match', $return_data);
  1003. }
  1004. public function resumeTpl(Request $request)
  1005. {
  1006. $res = $this->resumeService->resumeTpl(auth('web-member')->user(), $request->pid);
  1007. $html = view('app.person.ajax.resume_tpl', ['tpl'=>$res['tpl'],'resume_tpl'=>$res['resume_tpl'],'resume_id'=>$request->pid])->render();
  1008. return json_encode(['html'=>$html]);
  1009. }
  1010. public function resumeTplUpdate(Request $request)
  1011. {
  1012. $res = $this->resumeService->resumeTplUpdate($request->pid, $request->tpl,auth('web-member')->user());
  1013. if ($res) {
  1014. return $this->sendSuccessResponse('更新成功!');
  1015. } else {
  1016. return $this->sendErrorResponse('更新失败!');
  1017. }
  1018. }
  1019. public function incrementTplPoints(Request $request)
  1020. {
  1021. $res = $this->resumeService->incrementTplPoints(auth('web-member')->user(), $request->all());
  1022. if ($res['code']==1) {
  1023. return $this->sendSuccessResponse($res['info']);
  1024. } else {
  1025. return $this->sendErrorResponse($res['info']);
  1026. }
  1027. }
  1028. public function incrementTplPay(Request $request)
  1029. {
  1030. $res = $this->resumeService->incrementTplPay(auth('web-member')->user(), $request->all(), $request->route());
  1031. if ($res['code']=='wechat') {
  1032. if ($res['type']=='wap') {
  1033. return $res['tradeCode'];
  1034. } else {
  1035. return json_encode(['tradeCode'=>$res['tradeCode'],'tradeNo'=>$res['tradeNo']]);
  1036. }
  1037. } else {
  1038. return $res['tradeCode'];
  1039. }
  1040. }
  1041. public function downFile(Request $request)
  1042. {
  1043. $id = $request->id;
  1044. $user = $this->getUser();
  1045. $this->resumeService->isOwn($id,$user);
  1046. $back_url = \Illuminate\Support\Facades\URL::previous();
  1047. if(!$id){
  1048. return $this->showMessage('简历不存在!', $back_url, true, '上一页', '3');
  1049. }
  1050. $resume = Resume::find($id);
  1051. if(Storage::disk('public')->exists($resume->word_resume)){
  1052. return response()->download(Storage::disk('public')->path($resume->word_resume), $resume->word_resume_title);
  1053. }else{
  1054. return $this->showMessage('文件不存在!', $back_url, true, '上一页', '3');
  1055. }
  1056. }
  1057. public function resumeDisplay(Request $request)
  1058. {
  1059. $user = $this->getUser();
  1060. $res = $this->resumeService->resumeDisplay($request->display, $request->id,$user);
  1061. if ($res) {
  1062. return $this->sendSuccessResponse('更新成功!');
  1063. } else {
  1064. return $this->sendErrorResponse('更新失败!');
  1065. }
  1066. }
  1067. public function delRefreshResume(Request $request)
  1068. {
  1069. $user = $this->getUser();
  1070. $res = $this->queueAutoRefreshService->delRefreshResume($request->pid,$user);
  1071. if ($res) {
  1072. return $this->sendSuccessResponse('取消成功!');
  1073. } else {
  1074. return $this->sendErrorResponse('取消失败!');
  1075. }
  1076. }
  1077. public function delEntrustResume(Request $request)
  1078. {
  1079. $res = $this->resumeEntrustService->delEntrustResume($request->pid, $request->resume_id,auth('web-member')->user());
  1080. if ($res['code']==1) {
  1081. return $this->sendSuccessResponse($res['info']);
  1082. } else {
  1083. return $this->sendErrorResponse('取消失败!');
  1084. }
  1085. }
  1086. public function recruit()
  1087. {
  1088. $user = auth('web-member')->user();
  1089. $list = RecruitAppointInfo::where('uid',$user->id)
  1090. ->join('recruit', 'recruit.id', '=', 'recruit_appoint_info.recruit_id', 'left')
  1091. ->join('recruit_post', 'recruit_post.id', '=', 'recruit_appoint_info.post_id', 'left')
  1092. ->select('recruit.name as recruit_name','recruit_appoint_info.*','recruit_post.code','recruit_post.name')
  1093. ->get();
  1094. return view('app.person.recruit')->with(['list' => $list,'total' => count($list)]);
  1095. }
  1096. public function recruit_info(Request $request)
  1097. {
  1098. $user = auth('web-member')->user();
  1099. $info = RecruitAppointBasic::where('uid',$user->id)->first();
  1100. if(!$info){
  1101. $info = [
  1102. 'realname' => '',
  1103. 'sex' => '0',
  1104. 'birthday' => '',
  1105. 'avatar' => '',
  1106. 'nation' => '',
  1107. 'native_place' => '',
  1108. 'political_affiliation' => '',
  1109. 'titles' => '',
  1110. 'work' => '',
  1111. 'house_register' => '',
  1112. 'join_time' => '',
  1113. 'edu_type' => '',
  1114. 'education' => '',
  1115. 'school' => '',
  1116. 'degree' => '',
  1117. 'pro' => '',
  1118. 'address' => '',
  1119. 'card' => '',
  1120. 'mobile' => '',
  1121. 'email' => '',
  1122. 'concat_name' => '',
  1123. 'concat_mobile' => '',
  1124. 'resume' => '',
  1125. 'family' => [
  1126. [
  1127. 'relation' => '',
  1128. 'realname' => '',
  1129. 'birthday' => '',
  1130. 'political_affiliation' => '',
  1131. 'work' => ''
  1132. ]
  1133. ],
  1134. 'is_push' => '1'
  1135. ];
  1136. }else{
  1137. $info->sex = (string)$info->sex;
  1138. $info->edu_type = (string)$info->edu_type;
  1139. $info->is_push = (string)$info->is_push;
  1140. $info->family = empty($info->family) ? [[
  1141. 'relation' => '',
  1142. 'realname' => '',
  1143. 'birthday' => '',
  1144. 'political_affiliation' => '',
  1145. 'work' => ''
  1146. ]] : json_decode($info->family);
  1147. }
  1148. $recruit_id = $request->input('recruit_id',0);
  1149. return view('app.person.recruit_info',[
  1150. 'info' => json_encode($info),
  1151. 'recruit_id'=> $recruit_id
  1152. ]);
  1153. }
  1154. public function saveRecruitInfo(RecruitValidatorRequest $request)
  1155. {
  1156. $user = auth('web-member')->user();
  1157. $basic = RecruitAppointBasic::where('uid',$user->id)->first();
  1158. $data = $request->only('realname','sex','birthday','avatar','nation','native_place','political_affiliation','titles','work','house_register','join_time','education','school','degree','pro','address','card','mobile','email','concat_name','concat_mobile','resume','family','is_push');
  1159. if(count($data['family']) > 0){
  1160. $data['family'] = json_encode($data['family']);
  1161. }
  1162. if($basic){
  1163. //更新基础信息
  1164. $res = RecruitAppointBasic::where('uid',$user->id)->update($data);
  1165. if (!$res) {
  1166. return response()->json(['status'=>0,'msg'=>'保存失败,请联系客服']);
  1167. }else{
  1168. return response()->json(['status'=>1,'msg'=>'个人基础信息保存成功,快去报名吧!']);
  1169. }
  1170. }else{
  1171. //新增基础信息
  1172. $data['uid'] = $user->id;
  1173. $res = RecruitAppointBasic::create($data);
  1174. if (!$res) {
  1175. return response()->json(['status'=>0,'msg'=>'保存失败,请联系客服']);
  1176. }else{
  1177. return response()->json(['status'=>1,'msg'=>'个人基础信息保存成功,快去报名吧!']);
  1178. }
  1179. }
  1180. }
  1181. }