ResumeController.php 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: xiaaomi
  5. * Date: 2019/3/12
  6. * Time: 14:07
  7. */
  8. namespace App\Http\Controllers\Mobile\Person;
  9. use App\Exceptions\ResponseException;
  10. use App\Http\Controllers\Mobile\MobileBaseController;
  11. use App\Models\CategoryDistrict;
  12. use App\Models\PersonalTalents;
  13. use App\Models\RecruitAppointBasic;
  14. use App\Models\RecruitAppointInfo;
  15. use App\Models\Resume;
  16. use App\Services\Common\CategoryService;
  17. use App\Services\Person\MemberInfoService;
  18. use App\Services\Person\MemberPointService;
  19. use App\Services\Person\ResumeCredentService;
  20. use App\Services\Person\ResumeEducationService;
  21. use App\Services\Person\ResumeImageService;
  22. use App\Services\Person\ResumeLanguageService;
  23. use App\Services\Person\ResumeService;
  24. use App\Services\Person\ResumeTrainService;
  25. use App\Services\Person\ResumeWorkService;
  26. use App\Services\Person\SubsiteResumeService;
  27. use App\Services\SubsiteService;
  28. use App\Validators\PersonValidatorRequest;
  29. use App\Validators\RecruitValidatorRequest;
  30. use Illuminate\Http\Request;
  31. class ResumeController extends MobileBaseController
  32. {
  33. protected $resumeService;
  34. protected $memberPointService;
  35. protected $categoryService;
  36. protected $subsiteService;
  37. protected $resumeWorkService;
  38. protected $educationService;
  39. protected $subsiteResumeService;
  40. protected $resumeEducationService;
  41. protected $resumeTrainService;
  42. protected $resumeCredentService;
  43. protected $resumeLanguageService;
  44. protected $memberInfoService;
  45. protected $resumeImageService;
  46. public function __construct(
  47. ResumeService $resumeService,
  48. MemberPointService $memberPointService,
  49. CategoryService $categoryService,
  50. SubsiteService $subsiteService,
  51. ResumeWorkService $resumeWorkService,
  52. ResumeEducationService $educationService,
  53. SubsiteResumeService $subsiteResumeService,
  54. ResumeEducationService $resumeEducationService,
  55. ResumeTrainService $resumeTrainService,
  56. ResumeCredentService $resumeCredentService,
  57. ResumeLanguageService $resumeLanguageService,
  58. MemberInfoService $memberInfoService,
  59. ResumeImageService $resumeImageService
  60. )
  61. {
  62. $this->resumeService = $resumeService;
  63. $this->memberPointService = $memberPointService;
  64. $this->categoryService = $categoryService;
  65. $this->subsiteService = $subsiteService;
  66. $this->resumeWorkService = $resumeWorkService;
  67. $this->educationService = $educationService;
  68. $this->subsiteResumeService = $subsiteResumeService;
  69. $this->resumeEducationService = $resumeEducationService;
  70. $this->resumeTrainService = $resumeTrainService;
  71. $this->resumeCredentService = $resumeCredentService;
  72. $this->resumeLanguageService = $resumeLanguageService;
  73. $this->memberInfoService = $memberInfoService;
  74. $this->resumeImageService = $resumeImageService;
  75. }
  76. public function index()
  77. {
  78. if (get_subsite_id() > 0) {
  79. return view('mobile.app.jkq.person_index');
  80. } else {
  81. $personaltalents = PersonalTalents::where('uid', auth('web-member')->user()->id)->first();
  82. return view('mobile.app.person.index', ['talents' => $personaltalents]);
  83. }
  84. }
  85. public function signIn()
  86. {
  87. if (request()->method() == 'POST') {
  88. $res = $this->resumeService->signIn(auth('web-member')->user());
  89. if ($res['code'] == 1) {
  90. return $this->sendSuccessResponse($res['info']);
  91. } else {
  92. return $this->sendErrorResponse($res['info']);
  93. }
  94. } else {
  95. return view('mobile.app.person.service.index', ['wap_title' => '我的积分']);
  96. }
  97. }
  98. public function task()
  99. {
  100. return view('mobile.app.person.service.gold_task', $this->memberPointService->getTask(auth('web-member')->user(), 1));
  101. }
  102. public function taskDetail(Request $request)
  103. {
  104. $res = $this->memberPointService->getPointsById(auth('web-member')->user());
  105. $result = $res['memhanselGet'];
  106. if ($request->has('operate') && !empty($request->operate)) {
  107. $result = $res['memhanselPo'];
  108. }
  109. if ($request->ajax()) {
  110. if ($result->lastPage() < $result->currentPage()) {
  111. return response()->json(['status' => 0]);
  112. }
  113. return response()->json([
  114. 'status' => 1,
  115. 'data' => view('mobile.app.person.ajax_tpl.ajax_gold_log',
  116. ['result' => $result])->render(), 'wap_title' => '积分收支明细']);
  117. }
  118. return view('mobile.app.person.service.gold_log')->with([
  119. 'result' => $result,
  120. 'pointGet' => $res['pointGet'],
  121. 'pointPo' => $res['pointPo'],
  122. 'wap_title' => '积分收支明细',
  123. ]);
  124. }
  125. public function incrementAdd()
  126. {
  127. $res = $this->memberPointService->increment_add(request()->type, auth('web-member')->user());
  128. return view('mobile.app.person.service.' . $res['tpl'], ['resume' => $res['resume'],
  129. 'info' => $res['info'], 'points' => $res['points'], 'payment' => $res['payment'], 'wap_title' => $res['wap_title']]);
  130. }
  131. public function resumeAdd()
  132. {
  133. $res = $this->resumeService->loginValidate(auth('web-member')->user());
  134. $district = $this->categoryService->getDefaultDistrict();
  135. $subsite = $this->subsiteService->getSubsite(auth('web-member')->user());
  136. $deSubsite = [];
  137. foreach ($subsite as $key => $val) {
  138. $deSubsite[] = $val['id'] . ',' . $val['sitename'];
  139. }
  140. return view('mobile.app.person.resume_add', [
  141. 'member' => $res['member'],
  142. 'resume' => $res['resume'],
  143. 'defaultCity' => $district->defaultCity,
  144. 'disCity' => $district->disCity,
  145. 'disHan' => $district->disHan,
  146. 'resumeTitle' => $res['resumeTitle'],
  147. 'subsite' => $deSubsite,
  148. 'wap_title' => '创建简历',
  149. ]
  150. );
  151. }
  152. public function resumeCreate(PersonValidatorRequest $request)
  153. {
  154. $res = $this->resumeService->resumeCreate($request->except(['add_tag', '_token']), auth('web-member')->user());
  155. if ($res['code'] == 1) {
  156. return $this->sendSuccessResponse(['id' => $res['info'], 'tag' => $request->add_tag]);
  157. } else {
  158. return $this->sendErrorResponse('更新简历失败', '', 400);
  159. }
  160. }
  161. public function resumeCheck()
  162. {
  163. return view('mobile.app.person.resume_guidance', ['wap_title' => '完善简历']);
  164. }
  165. public function resume_add_success()
  166. {
  167. return view('mobile.app.person.resume_add_success', ['wap_title' => '创建简历']);
  168. }
  169. public function resumeWorkAdd()
  170. {
  171. $res = $this->resumeWorkService->resumeWorkAdd(request()->all(), auth('web-member')->user());
  172. if ($res['code'] == 1) {
  173. $html = view('mobile.app.person.ajax_tpl.ajax_get_work_list', ['content' => $res['info']])->render();
  174. return $this->sendSuccessResponse($html);
  175. } else {
  176. return $this->sendErrorResponse('更新失败', '', 400);
  177. }
  178. }
  179. public function resumeEducationAdd()
  180. {
  181. $res = $this->educationService->resumeEducationAdd(request()->all(), auth('web-member')->user());
  182. if ($res['code'] == 1) {
  183. $html = view('mobile.app.person.ajax_tpl.ajax_get_education_list', ['content' => $res['info']])->render();
  184. return $this->sendSuccessResponse($html);
  185. } else {
  186. return $this->sendErrorResponse('更新失败', '', 400);
  187. }
  188. }
  189. public function resumeTrainAdd()
  190. {
  191. $res = $this->resumeTrainService->resumeTrainAdd(request()->all(), auth('web-member')->user());
  192. if ($res['code'] == 1) {
  193. $html = view('mobile.app.person.ajax_tpl.ajax_get_training_list', ['content' => $res['info']])->render();
  194. return $this->sendSuccessResponse($html);
  195. } else {
  196. return $this->sendErrorResponse('更新失败', '', 400);
  197. }
  198. }
  199. public function resumeCredentAdd()
  200. {
  201. $res = $this->resumeCredentService->resumeCredentAdd(request()->all(), auth('web-member')->user());
  202. if ($res['code'] == 1) {
  203. $html = view('mobile.app.person.ajax_tpl.ajax_get_credent_list', ['content' => $res['info']])->render();
  204. return $this->sendSuccessResponse($html);
  205. } else {
  206. return $this->sendErrorResponse('更新失败', '', 400);
  207. }
  208. }
  209. public function saveLanguage()
  210. {
  211. $res = $this->resumeLanguageService->mobileSaveLanguage(request()->all(), auth('web-member')->user());
  212. if ($res['code'] == 1) {
  213. $html = view('mobile.app.person.ajax_tpl.ajax_get_language_list', ['content' => $res['info']])->render();
  214. return $this->sendSuccessResponse($html);
  215. } else {
  216. return $this->sendErrorResponse('添加失败', '', 400);
  217. }
  218. }
  219. public function updateSpecialty()
  220. {
  221. $res = $this->resumeService->updateSpecialty(request()->except('_token'), auth('web-member')->user());
  222. if ($res['code'] == 1) {
  223. return $this->sendSuccessResponse('更新成功');
  224. } else {
  225. return $this->sendErrorResponse('更新失败', '', 400);
  226. }
  227. }
  228. public function refreshResume()
  229. {
  230. $res = $this->resumeService->refreshResume(request()->id, auth('web-member')->user());
  231. if ($res['code'] == 1) {
  232. return $this->sendSuccessResponse($res['info']);
  233. } else {
  234. return $this->sendErrorResponse($res['info']);
  235. }
  236. }
  237. public function resume()
  238. {
  239. $content = $this->resumeService->myResume(auth('web-member')->user());
  240. return view('mobile.app.person.resume_list', ['content' => $content, 'wap_title' => '简历管理']);
  241. }
  242. public function set_entrust()
  243. {
  244. $res = $this->resumeService->setEntrust(request()->id, auth('web-member')->user());
  245. if ($res['code'] == 1) {
  246. return $this->sendSuccessResponse($res['info']);
  247. } else {
  248. return $this->sendErrorResponse($res['info'], '', 400);
  249. }
  250. }
  251. public function set_entrust_del()
  252. {
  253. $res = $this->resumeService->setEntrustDel(request()->id, auth('web-member')->user());
  254. if ($res['code'] == 1) {
  255. return $this->sendSuccessResponse($res['info']);
  256. } else {
  257. return $this->sendErrorResponse($res['info'], '', 400);
  258. }
  259. }
  260. public function setDelResume()
  261. {
  262. $res = $this->resumeService->setDelResume(request()->id, auth('web-member')->user());
  263. if ($res) {
  264. return $this->sendSuccessResponse('删除成功');
  265. } else {
  266. return $this->sendErrorResponse('删除失败', '', 400);
  267. }
  268. }
  269. public function setDef()
  270. {
  271. $res = $this->resumeService->setDef(request()->id, auth('web-member')->user());
  272. if ($res['code'] == 1) {
  273. return $this->sendSuccessResponse($res['info']);
  274. } else {
  275. return $this->sendErrorResponse($res['info'], '', 400);
  276. }
  277. }
  278. public function resumeUpdate()
  279. {
  280. $de_resume = Resume::find(request()->id);
  281. $back_url = \Illuminate\Support\Facades\URL::previous();
  282. if (!$de_resume) {
  283. return $this->showMessage('对不起,您只能查看自己的简历!', $back_url, true, '上一页', '3');
  284. }
  285. if ($de_resume->uid != auth('web-member')->user()->id) {
  286. return $this->showMessage('对不起,您只能查看自己的简历!', $back_url, true, '上一页', '3');
  287. }
  288. $res = $this->resumeService->getResumeById(request()->id, auth('web-member')->user());
  289. $district = $this->categoryService->getDefaultDistrict();
  290. $subsiteResume = $this->subsiteResumeService->getSubsiteResumeById(auth('web-member')->user(), request()->id);
  291. $subsiteAll = $this->subsiteService->getSubsite(auth('web-member')->user());
  292. return view('mobile.app.person.resume_edit', [
  293. 'resume' => $res['resume'],
  294. 'member' => $res['member'],
  295. 'imgs' => $res['imgs'],
  296. 'defaultCity' => $district->defaultCity,
  297. 'subsiteResume' => $subsiteResume['sub'],
  298. 'subsiteAll' => $subsiteAll,
  299. 'subId' => $subsiteResume['subId'],
  300. 'wap_title' => '编辑简历',
  301. ]);
  302. }
  303. public function updateTitle()
  304. {
  305. $res = $this->resumeService->updateTitle(request()->title, request()->id, auth('web-member')->user());
  306. if ($res) {
  307. return $this->sendSuccessResponse('更新成功');
  308. } else {
  309. return $this->sendErrorResponse('更新失败', '', 400);
  310. }
  311. }
  312. public function resumeEducation()
  313. {
  314. $res = $this->resumeEducationService->getResumeEducationByResumeId(request()->resume_id, auth('web-member')->user());
  315. return view('mobile.app.person.ajax_tpl.default_education', ['content' => $res]);
  316. }
  317. public function resumeWork()
  318. {
  319. $res = $this->resumeWorkService->getResumeWorkByResumeId(request()->resume_id, auth('web-member')->user());
  320. return view('mobile.app.person.ajax_tpl.default_work', ['content' => $res]);
  321. }
  322. public function resumeTrain()
  323. {
  324. $res = $this->resumeTrainService->getResumeTrainByResumeId(request()->resume_id, auth('web-member')->user());
  325. return view('mobile.app.person.ajax_tpl.default_train', ['content' => $res]);
  326. }
  327. public function resumeCredent()
  328. {
  329. $res = $this->resumeCredentService->getResumeCredentByResumeId(request()->resume_id, auth('web-member')->user());
  330. return view('mobile.app.person.ajax_tpl.default_credent', ['content' => $res]);
  331. }
  332. public function getLanguageL()
  333. {
  334. $res = $this->resumeLanguageService->getLanguageL(request()->resume_id, auth('web-member')->user());
  335. return view('mobile.app.person.ajax_tpl.default_language', ['content' => $res]);
  336. }
  337. public function memberInfo()
  338. {
  339. $resume_id = [];
  340. $resume = $this->resumeService->myResumeAjax(auth('web-member')->user());
  341. if (!$resume->isEmpty()) {
  342. $resume_id = array_column($resume->toArray(), 'id');
  343. }
  344. $res = $this->resumeService->getUserInfo(auth('web-member')->user(), $resume_id);
  345. $district = $this->categoryService->getDefaultDistrict();
  346. return view('mobile.app.person.resume_edit_basis')->with([
  347. 'content' => $res->member,
  348. 'defaultCity' => $district->defaultCity,
  349. 'memberInfo' => $res,
  350. 'resume_id' => request()->resume_id,
  351. 'wap_title' => '个人资料',
  352. ]);
  353. }
  354. public function uploadHead()
  355. {
  356. $res = $this->memberInfoService->updateHead(request()->pic1, auth('web-member')->user());
  357. return response()->json($res);
  358. }
  359. public function updateInfo(PersonValidatorRequest $request)
  360. {
  361. $res = $this->memberInfoService->updateInfo(request()->all(), auth('web-member')->user());
  362. if ($res['code']) {
  363. return $this->sendSuccessResponse($res['info']);
  364. } else {
  365. return $this->sendErrorResponse('更新失败', '', 400);
  366. }
  367. }
  368. public function updateHunt()
  369. {
  370. $res = Resume::findOrFail(request()->resume_id);
  371. $district = $this->categoryService->getDefaultDistrict();
  372. $subsiteResume = $this->subsiteResumeService->getSubsiteResumeById(
  373. auth('web-member')->user(), request()->resume_id);
  374. $SubsitTitle = '';
  375. foreach ($subsiteResume['sub'] as $key => $val) {
  376. if ($val['subsites']) {
  377. $SubsitTitle .= $val['subsites']['sitename'] . ',';
  378. } else {
  379. $SubsitTitle .= '总站' . ',';
  380. }
  381. }
  382. $subsiteAll = $this->subsiteService->getSubsite(auth('web-member')->user());
  383. $deSubsite = [];
  384. foreach ($subsiteAll as $key => $val) {
  385. $deSubsite[] = $val['id'] . ',' . $val['sitename'];
  386. }
  387. return view('mobile.app.person.resume_edit_intent', [
  388. 'resume' => $res,
  389. 'defaultCity' => $district->defaultCity,
  390. 'subsite' => $deSubsite,
  391. 'SubsitTitle' => trim($SubsitTitle, ','),
  392. 'subsiteId' => implode(',', $subsiteResume['subId']),
  393. 'wap_title' => '求职意向',
  394. ]);
  395. }
  396. public function updHunt()
  397. {
  398. $res = $this->resumeService->updateHunting(request()->except('_token'), auth('web-member')->user());
  399. if ($res) {
  400. return $this->sendSuccessResponse('更新成功');
  401. } else {
  402. return $this->sendErrorResponse('更新失败', '', 400);
  403. }
  404. }
  405. public function updateDescription()
  406. {
  407. $res = Resume::findOrFail(request()->resume_id);
  408. return view('mobile.app.person.resume_edit_description', [
  409. 'resume' => $res,
  410. 'wap_title' => '自我描述',
  411. ]);
  412. }
  413. public function educationEdit(Request $request)
  414. {
  415. $resumeEdu = $this->resumeEducationService->educationEdit($request->id);
  416. return view('mobile.app.person.resume_edit_edu', [
  417. 'resume_id' => request()->resume_id,
  418. 'resumeEdu' => $resumeEdu,
  419. 'wap_title' => '教育经历',
  420. ]);
  421. }
  422. public function workEdit(Request $request)
  423. {
  424. $workEdu = $this->resumeWorkService->workEdit($request->id);
  425. return view('mobile.app.person.resume_edit_work', [
  426. 'resume_id' => request()->resume_id,
  427. 'workEdu' => $workEdu,
  428. 'wap_title' => '工作经历',
  429. ]);
  430. }
  431. public function trainEdit(Request $request)
  432. {
  433. $trainEdu = $this->resumeTrainService->trainEdit($request->id);
  434. return view('mobile.app.person.resume_edit_train', [
  435. 'resume_id' => request()->resume_id,
  436. 'trainEdu' => $trainEdu,
  437. 'wap_title' => '培训经历',
  438. ]);
  439. }
  440. public function certificate(Request $request)
  441. {
  442. $certificateEdu = $this->resumeCredentService->certificate($request->id);
  443. return view('mobile.app.person.resume_edit_certificate', [
  444. 'resume_id' => request()->resume_id,
  445. 'certificateEdu' => $certificateEdu,
  446. 'wap_title' => '获得证书',
  447. ]);
  448. }
  449. public function language(Request $request)
  450. {
  451. $languageEdu = $this->resumeLanguageService->language($request->id);
  452. return view('mobile.app.person.resume_edit_lang', [
  453. 'resume_id' => request()->resume_id,
  454. 'languageEdu' => $languageEdu,
  455. 'wap_title' => '语言能力',
  456. ]);
  457. }
  458. public function speciality()
  459. {
  460. $resume = Resume::findOrFail(request()->resume_id);
  461. return view('mobile.app.person.resume_edit_speciality', [
  462. 'resume' => $resume,
  463. 'wap_title' => '特长标签',
  464. ]);
  465. }
  466. public function tagSave()
  467. {
  468. $resume_id = request()->resume_id;
  469. $this->resumeService->isOwn($resume_id, auth('web-member')->user());
  470. $res = $this->resumeService->tagSave(request()->all());
  471. if ($res['code'] == 1) {
  472. return $this->sendSuccessResponse('更新成功');
  473. } else {
  474. return $this->sendErrorResponse('更新失败', '', 400);
  475. }
  476. }
  477. public function tagDelete(Request $request)
  478. {
  479. $res = $this->resumeService->tagDelete($request->input('resume_id', ''), $request->input('tag_cn', ''), auth('web-member')->user());
  480. if ($res['code'] == 1) {
  481. return $this->sendSuccessResponse('删除成功');
  482. } else {
  483. return $this->sendErrorResponse('删除失败', '', 400);
  484. }
  485. }
  486. public function images(Request $request)
  487. {
  488. $imagesEdu = $this->resumeImageService->images($request->id);
  489. return view('mobile.app.person.resume_edit_img', [
  490. 'resume_id' => $request->resume_id,
  491. 'imagesEdu' => $imagesEdu,
  492. 'wap_title' => '照片作品',
  493. ]);
  494. }
  495. public function resumeImages(Request $request)
  496. {
  497. $res = $this->resumeImageService->resumeImages
  498. (
  499. $request->input('images', ''),
  500. $request->input('title', ''),
  501. $request->input('id', ''),
  502. $request->input('resume_id', ''),
  503. auth('web-member')->user()
  504. );
  505. return response()->json($res);
  506. }
  507. public function recruit(Request $request)
  508. {
  509. $user = auth('web-member')->user();
  510. $list = RecruitAppointInfo::where('uid', $user->id)
  511. ->join('recruit', 'recruit.id', '=', 'recruit_appoint_info.recruit_id', 'left')
  512. ->join('recruit_post', 'recruit_post.id', '=', 'recruit_appoint_info.post_id', 'left')
  513. ->select('recruit.name as recruit_name', 'recruit_appoint_info.*', 'recruit_post.code', 'recruit_post.name')
  514. ->get();
  515. return view('mobile.app.person.recruit')->with(['list' => $list, 'total' => count($list)]);
  516. }
  517. public function recruit_info(Request $request)
  518. {
  519. $info = $this->_getRecruitInfo();
  520. $recruit_id = $request->input('recruit_id', 0);
  521. return view('mobile.app.person.recruit_info', [
  522. 'info' => $info,
  523. 'recruit_id' => $recruit_id,
  524. 'political_affiliation' => RecruitAppointBasic::$political_affiliation,
  525. ]);
  526. }
  527. public function recruit_family(Request $request)
  528. {
  529. $key = $request->input('key', '');
  530. $recruit_id = $request->input('recruit_id', 0);
  531. if ($key !== '') {
  532. $user = auth('web-member')->user();
  533. $basic = RecruitAppointBasic::where('uid', $user->id)->first();
  534. $family = json_decode($basic->family, true);
  535. $info = $family[$key];
  536. } else {
  537. $info = [
  538. 'work' => '',
  539. 'birthday' => '',
  540. 'realname' => '',
  541. 'relation' => '',
  542. 'political_affiliation' => '13',
  543. ];
  544. }
  545. return view('mobile.app.person.recruit_family', [
  546. 'info' => $info,
  547. 'key' => $key,
  548. 'recruit_id' => $recruit_id,
  549. 'political_affiliation' => RecruitAppointBasic::$political_affiliation,
  550. ]);
  551. }
  552. public function delRecruitFamily(Request $request)
  553. {
  554. $key = $request->input('key');
  555. $user = auth('web-member')->user();
  556. $info = RecruitAppointBasic::where('uid', $user->id)->first();
  557. $family = json_decode($info->family, true);
  558. unset($family[$key]);
  559. RecruitAppointBasic::where('uid', $user->id)->update(['family' => json_encode($family)]);
  560. return response()->json(['status' => 1]);
  561. }
  562. public function postRecruitFamily(Request $request)
  563. {
  564. $data = $request->post();
  565. $user = auth('web-member')->user();
  566. $info = RecruitAppointBasic::where('uid', $user->id)->first();
  567. $family = json_decode($info->family, true);
  568. if (isset($data['key'])) {
  569. $key = $data['key'];
  570. unset($data['key']);
  571. $family[$key] = $data;
  572. } else {
  573. $family[] = $data;
  574. }
  575. RecruitAppointBasic::where('uid', $user->id)->update(['family' => json_encode($family)]);
  576. return response()->json(['status' => 1]);
  577. }
  578. public function recruit_basic(Request $request)
  579. {
  580. $info = $this->_getRecruitInfo();
  581. $recruit_id = $request->input('recruit_id', 0);
  582. return view('mobile.app.person.recruit_basic', [
  583. 'info' => $info,
  584. 'recruit_id' => $recruit_id,
  585. 'political_affiliation' => RecruitAppointBasic::$political_affiliation,
  586. 'edu_type' => RecruitAppointBasic::$edu_type,
  587. 'education' => RecruitAppointBasic::$education,
  588. ]);
  589. }
  590. public function saveRecruitBasic(RecruitValidatorRequest $request)
  591. {
  592. $user = auth('web-member')->user();
  593. $basic = RecruitAppointBasic::where('uid', $user->id)->first();
  594. $data = $request->only('realname', 'sex', 'birthday', 'avatar', 'nation', 'native_place', 'political_affiliation', 'titles', 'work', 'house_register', 'join_time', 'edu_type', 'education', 'school', 'degree', 'pro', 'address', 'card', 'mobile', 'email', 'concat_name', 'concat_mobile', 'resume', 'is_push');
  595. $data['avatar'] = $data['avatar'] ?: '';
  596. if ($basic) {
  597. //更新基础信息
  598. $res = RecruitAppointBasic::where('uid', $user->id)->update($data);
  599. if (!$res) {
  600. return response()->json(['status' => 0, 'msg' => '保存失败,请联系客服']);
  601. } else {
  602. return response()->json(['status' => 1]);
  603. }
  604. } else {
  605. //新增基础信息
  606. $data['uid'] = $user->id;
  607. $res = RecruitAppointBasic::create($data);
  608. if (!$res) {
  609. return response()->json(['status' => 0, 'msg' => '保存失败,请联系客服']);
  610. } else {
  611. return response()->json(['status' => 1]);
  612. }
  613. }
  614. }
  615. private function _getRecruitInfo()
  616. {
  617. $user = auth('web-member')->user();
  618. $info = RecruitAppointBasic::where('uid', $user->id)->first();
  619. if (!$info) {
  620. $info = [
  621. 'uid' => $user->id,
  622. 'realname' => '',
  623. 'sex' => 0,
  624. 'birthday' => '',
  625. 'avatar' => '',
  626. 'nation' => '',
  627. 'native_place' => '',
  628. 'political_affiliation' => '13',
  629. 'titles' => '',
  630. 'work' => '',
  631. 'house_register' => '',
  632. 'join_time' => '',
  633. 'edu_type' => 1,
  634. 'education' => '本科',
  635. 'school' => '',
  636. 'degree' => '',
  637. 'pro' => '',
  638. 'address' => '',
  639. 'card' => '',
  640. 'mobile' => '',
  641. 'email' => '',
  642. 'concat_name' => '',
  643. 'concat_mobile' => '',
  644. 'resume' => '',
  645. 'family' => [],
  646. 'is_push' => 1,
  647. ];
  648. RecruitAppointBasic::create($info);
  649. } else {
  650. $info->sex = (string)$info->sex;
  651. $info->edu_type = (string)$info->edu_type;
  652. $info->is_push = (string)$info->is_push;
  653. $info->family = empty($info->family) ? [] : json_decode($info->family,true);
  654. }
  655. return $info;
  656. }
  657. }