HpResumeService.java 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784
  1. /**
  2. * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
  3. */
  4. package com.jeeplus.modules.hpuser.service;
  5. import com.alibaba.fastjson.JSONObject;
  6. import com.jeeplus.common.config.Global;
  7. import com.jeeplus.common.json.AjaxJson;
  8. import com.jeeplus.common.oss.OSSClientUtil;
  9. import com.jeeplus.common.utils.StringUtils;
  10. import com.jeeplus.core.persistence.Page;
  11. import com.jeeplus.core.service.CrudService;
  12. import com.jeeplus.modules.dpposition.service.DpPositionService;
  13. import com.jeeplus.modules.hpuser.entity.HpApplyPosition;
  14. import com.jeeplus.modules.hpuser.entity.HpResume;
  15. import com.jeeplus.modules.hpuser.entity.HpResumeWorkExperience;
  16. import com.jeeplus.modules.hpuser.mapper.HpResumeMapper;
  17. import com.jeeplus.modules.sys.entity.HpMember;
  18. import com.jeeplus.modules.sys.entity.HpUser;
  19. import com.jeeplus.modules.sys.service.HpMemberService;
  20. import com.jeeplus.modules.sys.service.HpUserService;
  21. import com.jeeplus.modules.sys.wxUtils.TokenUtil;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.stereotype.Service;
  24. import org.springframework.transaction.annotation.Transactional;
  25. import org.springframework.web.multipart.MultipartFile;
  26. import org.springframework.web.multipart.MultipartHttpServletRequest;
  27. import org.springframework.web.multipart.commons.CommonsMultipartResolver;
  28. import javax.servlet.http.HttpServletRequest;
  29. import javax.servlet.http.HttpServletResponse;
  30. import java.io.IOException;
  31. import java.util.*;
  32. /**
  33. * 用户简历Service
  34. *
  35. * @author zwq
  36. * @version 2019-04-22
  37. */
  38. @Service
  39. @Transactional(readOnly = true)
  40. public class HpResumeService extends CrudService<HpResumeMapper, HpResume> {
  41. @Autowired
  42. private HpResumeWorkExperienceService hpResumeWorkExperienceService;
  43. @Autowired
  44. private HpUserService hpUserService;
  45. @Autowired
  46. private DpPositionService dpPositionService;
  47. @Autowired
  48. private HpMemberService hpMemberService;
  49. @Autowired
  50. private HpApplyPositionService hpApplyPositionService;
  51. public HpResume get(String id) {
  52. return super.get(id);
  53. }
  54. public List<HpResume> findList(HpResume hpResume) {
  55. return super.findList(hpResume);
  56. }
  57. public Page<HpResume> findPage(Page<HpResume> page, HpResume hpResume) {
  58. return super.findPage(page, hpResume);
  59. }
  60. @Transactional(readOnly = false)
  61. public void save(HpResume hpResume) {
  62. super.save(hpResume);
  63. }
  64. @Transactional(readOnly = false)
  65. public void delete(HpResume hpResume) {
  66. super.delete(hpResume);
  67. }
  68. /**
  69. * 保存基本资料
  70. *
  71. * @param request
  72. * @param response
  73. * @return
  74. */
  75. @Transactional(readOnly = false)
  76. public Map<String, Object> saveBaseData(HttpServletRequest request, HttpServletResponse response) {
  77. Map<String, Object> returnMap = new HashMap<String, Object>();
  78. String userId = request.getParameter("user_id");
  79. String userToken = request.getParameter("user_token");
  80. String memberId = request.getParameter("member_id");
  81. //验证用户是否处于登录态
  82. if (TokenUtil.validateLogin(memberId, userId)) {
  83. //验证用户合法性
  84. if (TokenUtil.validateToken(userId, userToken)) {
  85. String realName = request.getParameter("realName");
  86. String gender = request.getParameter("gender");
  87. String phone = request.getParameter("phone");
  88. String birthYear = request.getParameter("birthYear");
  89. String highestQualification = request.getParameter("highestQualification");
  90. String avatar = request.getParameter("avatar");
  91. String wechatNumber = request.getParameter("wechatNumber");
  92. HpResume hpResume = new HpResume();
  93. HpMember hpMember = hpMemberService.get(memberId);
  94. List<HpResume> hpResumeList = this.findListByMemberId(memberId);
  95. if (hpResumeList != null && hpResumeList.size() > 0) {
  96. hpResume = hpResumeList.get(0);
  97. } else {
  98. hpResume.setHpMember(hpMember);
  99. }
  100. //小程序使用
  101. if (StringUtils.isNotBlank(avatar)) {
  102. hpResume.setHeadImg(avatar);
  103. } else {
  104. //头像上传调用
  105. try {
  106. if (request instanceof MultipartHttpServletRequest) {
  107. AjaxJson j = webupload(request, "files", hpMember, "/hpuser/resume");
  108. if (j.isSuccess()) {
  109. hpResume.setHeadImg((String) j.getBody().get("url"));
  110. } else {
  111. System.out.println("wpload========" + j.getMsg());
  112. }
  113. } else {
  114. System.out.println("wpnonono========没有文件上传");
  115. }
  116. } catch (IOException e) {
  117. e.printStackTrace();
  118. }
  119. }
  120. if (StringUtils.isNotBlank(realName)) {
  121. hpResume.setRealName(realName);
  122. }
  123. if (StringUtils.isNotBlank(gender)) {
  124. hpResume.setGender(gender);
  125. }
  126. if (StringUtils.isNotBlank(birthYear)) {
  127. hpResume.setBirthYear(birthYear);
  128. }
  129. if (StringUtils.isNotBlank(phone)) {
  130. hpResume.setPhone(phone);
  131. }
  132. if (StringUtils.isNotBlank(highestQualification)) {
  133. hpResume.setHighestQualification(highestQualification);
  134. }
  135. hpResume.setWechatNumber(wechatNumber);
  136. this.save(hpResume);
  137. List<HpResumeWorkExperience> hpResumeWorkExperienceList = hpResumeWorkExperienceService.findListByResumeId(hpResume.getId());
  138. hpResume.setHpResumeWorkExperienceList(hpResumeWorkExperienceList);
  139. if (StringUtils.isNotBlank(hpResume.getHeadImg())) {
  140. if (!hpResume.getHeadImg().contains("http")) {
  141. hpResume.setHeadImg(Global.getAliyunUrl() + hpResume.getHeadImg());
  142. }
  143. }
  144. returnMap.put("userResume", hpResume);
  145. } else {
  146. returnMap.put("success", "1004");
  147. }
  148. } else {
  149. returnMap.put("success", "2010");
  150. }
  151. return returnMap;
  152. }
  153. /**
  154. * 查询用户简历是否存在
  155. *
  156. * @param memberId
  157. * @return
  158. */
  159. public List<HpResume> findListByMemberId(String memberId) {
  160. return mapper.findListByMemberId(memberId);
  161. }
  162. /**
  163. * 保存求职意向
  164. *
  165. * @param requestMap
  166. * @param request
  167. * @param response
  168. * @return
  169. */
  170. @Transactional(readOnly = false)
  171. public Map<String, Object> saveExpectationData(Map<String, String> requestMap, HttpServletRequest request, HttpServletResponse response) {
  172. Map<String, Object> returnMap = new HashMap<String, Object>();
  173. String userId = requestMap.get("user_id");
  174. String userToken = requestMap.get("user_token");
  175. String memberId = requestMap.get("member_id");
  176. //验证用户是否处于登录态
  177. if (TokenUtil.validateLogin(memberId, userId)) {
  178. //验证用户合法性
  179. if (TokenUtil.validateToken(userId, userToken)) {
  180. String expectationPosition = requestMap.get("expectationPosition");
  181. String expectationProvinceId = requestMap.get("expectationProvinceId");
  182. String expectationCityId = requestMap.get("expectationCityId");
  183. String expectationCountryId = requestMap.get("expectationCountryId");
  184. String expectationSalary = requestMap.get("expectationSalary");
  185. String expectationAddress = requestMap.get("expectationAddress");
  186. HpResume hpResume = new HpResume();
  187. List<HpResume> hpResumeList = this.findListByMemberId(memberId);
  188. if (hpResumeList != null && hpResumeList.size() > 0) {
  189. hpResume = hpResumeList.get(0);
  190. } else {
  191. returnMap.put("success", "1015");
  192. return returnMap;
  193. }
  194. if (StringUtils.isNotBlank(expectationPosition)) {
  195. hpResume.setExpectationPosition(expectationPosition);
  196. }
  197. if (StringUtils.isNotBlank(expectationProvinceId)) {
  198. hpResume.setExpectationProvinceId(expectationProvinceId);
  199. }
  200. if (StringUtils.isNotBlank(expectationCityId)) {
  201. hpResume.setExpectationCityId(expectationCityId);
  202. }
  203. if (StringUtils.isNotBlank(expectationCountryId)) {
  204. hpResume.setExpectationCountryId(expectationCountryId);
  205. }
  206. if (StringUtils.isNotBlank(expectationSalary)) {
  207. hpResume.setExpectationSalary(expectationSalary);
  208. }
  209. if (StringUtils.isNotBlank(expectationAddress)) {
  210. hpResume.setExpectationAddress(expectationAddress);
  211. }
  212. this.save(hpResume);
  213. List<HpResumeWorkExperience> hpResumeWorkExperienceList = hpResumeWorkExperienceService.findListByResumeId(hpResume.getId());
  214. hpResume.setHpResumeWorkExperienceList(hpResumeWorkExperienceList);
  215. if (StringUtils.isNotBlank(hpResume.getHeadImg())) {
  216. if (!hpResume.getHeadImg().contains("http")) {
  217. hpResume.setHeadImg(Global.getAliyunUrl() + hpResume.getHeadImg());
  218. }
  219. }
  220. returnMap.put("userResume", hpResume);
  221. } else {
  222. returnMap.put("success", "1004");
  223. }
  224. } else {
  225. returnMap.put("success", "2010");
  226. }
  227. return returnMap;
  228. }
  229. /**
  230. * 工作经验
  231. *
  232. * @param requestMap
  233. * @param request
  234. * @param response
  235. * @return
  236. */
  237. @Transactional(readOnly = false)
  238. public Map<String, Object> saveWorkExperience(Map<String, String> requestMap, HttpServletRequest request, HttpServletResponse response) {
  239. Map<String, Object> returnMap = new HashMap<String, Object>();
  240. String userId = requestMap.get("user_id");
  241. String userToken = requestMap.get("user_token");
  242. String memberId = requestMap.get("member_id");
  243. //验证用户是否处于登录态
  244. if (TokenUtil.validateLogin(memberId, userId)) {
  245. //验证用户合法性
  246. if (TokenUtil.validateToken(userId, userToken)) {
  247. String resumeId = requestMap.get("resumeId");
  248. String workCompany = requestMap.get("workCompany");
  249. String workPosition = requestMap.get("workPosition");
  250. String workStartDate = requestMap.get("workStartDate");
  251. String workEndDate = requestMap.get("workEndDate");
  252. String workExperienceId = requestMap.get("workExperienceId");
  253. HpResumeWorkExperience hpResumeWorkExperience = new HpResumeWorkExperience();
  254. if (StringUtils.isNotBlank(workExperienceId)) {
  255. hpResumeWorkExperience = hpResumeWorkExperienceService.get(workExperienceId);
  256. } else {
  257. hpResumeWorkExperience.setResumeId(resumeId);
  258. }
  259. if (StringUtils.isNotBlank(workCompany)) {
  260. hpResumeWorkExperience.setWorkCompany(workCompany);
  261. }
  262. if (StringUtils.isNotBlank(workPosition)) {
  263. hpResumeWorkExperience.setWorkPosition(workPosition);
  264. }
  265. if (StringUtils.isNotBlank(workStartDate)) {
  266. hpResumeWorkExperience.setWorkStartDate(workStartDate);
  267. }
  268. if (StringUtils.isNotBlank(workEndDate)) {
  269. hpResumeWorkExperience.setWorkEndDate(workEndDate);
  270. }
  271. hpResumeWorkExperienceService.save(hpResumeWorkExperience);
  272. HpResume hpResume = this.get(resumeId);
  273. List<HpResumeWorkExperience> hpResumeWorkExperienceList = hpResumeWorkExperienceService.findListByResumeId(hpResume.getId());
  274. hpResume.setHpResumeWorkExperienceList(hpResumeWorkExperienceList);
  275. if (StringUtils.isNotBlank(hpResume.getHeadImg())) {
  276. if (!hpResume.getHeadImg().contains("http")) {
  277. hpResume.setHeadImg(Global.getAliyunUrl() + hpResume.getHeadImg());
  278. }
  279. }
  280. returnMap.put("userResume", hpResume);
  281. } else {
  282. returnMap.put("success", "1004");
  283. }
  284. } else {
  285. returnMap.put("success", "2010");
  286. }
  287. return returnMap;
  288. }
  289. /**
  290. * 保存微信号
  291. *
  292. * @param requestMap
  293. * @param request
  294. * @param response
  295. * @return
  296. */
  297. @Transactional(readOnly = false)
  298. public Map<String, Object> saveWechatNumber(Map<String, String> requestMap, HttpServletRequest request, HttpServletResponse response) {
  299. Map<String, Object> returnMap = new HashMap<String, Object>();
  300. String userId = requestMap.get("user_id");
  301. String userToken = requestMap.get("user_token");
  302. String memberId = requestMap.get("member_id");
  303. //验证用户是否处于登录态
  304. if (TokenUtil.validateLogin(memberId, userId)) {
  305. //验证用户合法性
  306. if (TokenUtil.validateToken(userId, userToken)) {
  307. String wechatNumber = requestMap.get("wechatNumber");
  308. HpResume hpResume = new HpResume();
  309. List<HpResume> hpResumeList = this.findListByMemberId(memberId);
  310. if (hpResumeList != null && hpResumeList.size() > 0) {
  311. hpResume = hpResumeList.get(0);
  312. } else {
  313. returnMap.put("success", "1015");
  314. return returnMap;
  315. }
  316. hpResume.setWechatNumber(wechatNumber);
  317. this.save(hpResume);
  318. List<HpResumeWorkExperience> hpResumeWorkExperienceList = hpResumeWorkExperienceService.findListByResumeId(hpResume.getId());
  319. hpResume.setHpResumeWorkExperienceList(hpResumeWorkExperienceList);
  320. if (StringUtils.isNotBlank(hpResume.getHeadImg())) {
  321. if (!hpResume.getHeadImg().contains("http")) {
  322. hpResume.setHeadImg(Global.getAliyunUrl() + hpResume.getHeadImg());
  323. }
  324. }
  325. returnMap.put("userResume", hpResume);
  326. } else {
  327. returnMap.put("success", "1004");
  328. }
  329. } else {
  330. returnMap.put("success", "2010");
  331. }
  332. return returnMap;
  333. }
  334. /**
  335. * 获取用户简历详情
  336. *
  337. * @param requestMap
  338. * @param request
  339. * @param response
  340. * @return
  341. */
  342. public Map<String, Object> getUserResume(Map<String, String> requestMap, HttpServletRequest request, HttpServletResponse response) {
  343. Map<String, Object> returnMap = new HashMap<String, Object>();
  344. String userId = requestMap.get("user_id");
  345. String userToken = requestMap.get("user_token");
  346. String memberId = requestMap.get("member_id");
  347. //验证用户是否处于登录态
  348. if (TokenUtil.validateLogin(memberId, userId)) {
  349. //验证用户合法性
  350. if (TokenUtil.validateToken(userId, userToken)) {
  351. HpResume hpResume = new HpResume();
  352. List<HpResume> hpResumeList = this.findListByMemberId(memberId);
  353. if (hpResumeList != null && hpResumeList.size() > 0) {
  354. hpResume = hpResumeList.get(0);
  355. List<HpResumeWorkExperience> hpResumeWorkExperienceList = hpResumeWorkExperienceService.findListByResumeId(hpResume.getId());
  356. hpResume.setHpResumeWorkExperienceList(hpResumeWorkExperienceList);
  357. if (StringUtils.isNotBlank(hpResume.getHeadImg())) {
  358. if (!hpResume.getHeadImg().contains("http")) {
  359. hpResume.setHeadImg(Global.getAliyunUrl() + hpResume.getHeadImg());
  360. }
  361. }
  362. returnMap.put("userResume", hpResume);
  363. } else {
  364. returnMap.put("success", "1015");
  365. }
  366. } else {
  367. returnMap.put("success", "1004");
  368. }
  369. } else {
  370. returnMap.put("success", "2010");
  371. }
  372. return returnMap;
  373. }
  374. /**
  375. * app上传图片
  376. *
  377. * @param request
  378. * @param param
  379. * @param hpMember
  380. * @param uploadPath
  381. * @return
  382. * @throws IllegalStateException
  383. * @throws IOException
  384. */
  385. public AjaxJson webupload(HttpServletRequest request, String param, HpMember hpMember, String uploadPath) throws IllegalStateException, IOException {
  386. AjaxJson j = new AjaxJson();
  387. //创建一个通用的多部分解析器.
  388. CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
  389. //设置编码
  390. commonsMultipartResolver.setDefaultEncoding("utf-8");
  391. //判断 request 是否有文件上传,即多部分请求(multipart/form-data类型判定)
  392. if (commonsMultipartResolver.isMultipart(request)) {
  393. try {
  394. MultipartHttpServletRequest mulReq = (MultipartHttpServletRequest) request;
  395. MultipartFile file = mulReq.getFile(param);
  396. if (file == null) {
  397. j.setMsg("上传照片为空。");
  398. j.setSuccess(false);
  399. return j;
  400. }
  401. OSSClientUtil ossUtil = new OSSClientUtil();
  402. //获取当前年月
  403. Calendar cal = Calendar.getInstance();
  404. int year = cal.get(Calendar.YEAR);
  405. int month = cal.get(Calendar.MONTH) + 1;
  406. String fileDir = Global.USERFILES_BASE_URL + uploadPath + "/" + hpMember.getId() + "/" + year + "/" + month + "/";
  407. // 判断文件是否为空
  408. if (!file.isEmpty()) {
  409. String filePath = ossUtil.uploadImg2OSS(file, fileDir);
  410. System.out.println("lu" + filePath);
  411. j.put("url", filePath);
  412. j.setMsg("上传成功");
  413. j.setSuccess(true);
  414. }
  415. } catch (Exception e) {
  416. j.setMsg("上传失败" + e.getMessage());
  417. j.setSuccess(false);
  418. logger.error(e.getMessage());
  419. }
  420. } else {
  421. j.setMsg("上传照片不能为空。");
  422. j.setSuccess(false);
  423. }
  424. return j;
  425. }
  426. /**
  427. * 实名认证
  428. *
  429. * @param request
  430. * @param response
  431. * @return
  432. */
  433. @Transactional(readOnly = false)
  434. public Map<String, Object> realApprove(HttpServletRequest request, HttpServletResponse response) {
  435. Map<String, Object> returnMap = new HashMap<String, Object>();
  436. String userId = request.getParameter("user_id");
  437. String userToken = request.getParameter("user_token");
  438. String memberId = request.getParameter("member_id");
  439. //验证用户是否处于登录态
  440. if (TokenUtil.validateLogin(memberId, userId)) {
  441. //验证用户合法性
  442. if (TokenUtil.validateToken(userId, userToken)) {
  443. String realName = request.getParameter("realName");
  444. String idCardNumber = request.getParameter("idCardNumber");
  445. String minaType = request.getParameter("minaType");//1:代表小程序,app不传
  446. String idFrontPic = request.getParameter("idFrontPic");
  447. String idBackPic = request.getParameter("idBackPic");
  448. String idPersonPic = request.getParameter("idPersonPic");
  449. HpMember hpMember = hpMemberService.get(memberId);
  450. if (hpMember != null) {
  451. if (StringUtils.isNotBlank(minaType)) {
  452. if (StringUtils.isNotBlank(idFrontPic)) {
  453. hpMember.setIdCardFront(idFrontPic);
  454. }
  455. if (StringUtils.isNotBlank(idBackPic)) {
  456. hpMember.setIdCardBack(idBackPic);
  457. }
  458. if (StringUtils.isNotBlank(idPersonPic)) {
  459. hpMember.setIdCardHold(idPersonPic);
  460. }
  461. } else {
  462. //身份证照片上传调用
  463. try {
  464. if (request instanceof MultipartHttpServletRequest) {
  465. AjaxJson j = webupload(request, "idCardFront", hpMember, "/hpuser/idcard/front");
  466. if (j.isSuccess()) {
  467. hpMember.setIdCardFront((String) j.getBody().get("url"));
  468. } else {
  469. System.out.println("wpload========" + j.getMsg());
  470. }
  471. AjaxJson k = webupload(request, "idCardBack", hpMember, "/hpuser/idcard/back");
  472. if (k.isSuccess()) {
  473. hpMember.setIdCardBack((String) k.getBody().get("url"));
  474. } else {
  475. System.out.println("wpload========" + k.getMsg());
  476. }
  477. AjaxJson m = webupload(request, "idCardHold", hpMember, "/hpuser/idcard/hold");
  478. if (m.isSuccess()) {
  479. hpMember.setIdCardHold((String) m.getBody().get("url"));
  480. } else {
  481. System.out.println("wpload========" + m.getMsg());
  482. }
  483. } else {
  484. System.out.println("wpnonono========没有文件上传");
  485. }
  486. } catch (IOException e) {
  487. e.printStackTrace();
  488. }
  489. }
  490. if (StringUtils.isNotBlank(realName)) {
  491. hpMember.setRealName(realName);
  492. }
  493. if (StringUtils.isNotBlank(idCardNumber)) {
  494. hpMember.setIdCardNumber(idCardNumber);
  495. }
  496. //认证状态变为等待认证
  497. hpMember.setAuthenticationStatus(1);
  498. hpMemberService.save(hpMember);
  499. }
  500. } else {
  501. returnMap.put("success", "1004");
  502. }
  503. } else {
  504. returnMap.put("success", "2010");
  505. }
  506. return returnMap;
  507. }
  508. /**
  509. * 认证状态
  510. *
  511. * @param requestMap
  512. * @param request
  513. * @param response
  514. * @return
  515. */
  516. public Map<String, Object> approveStatus(Map<String, String> requestMap, HttpServletRequest request, HttpServletResponse response) {
  517. Map<String, Object> returnMap = new HashMap<String, Object>();
  518. String userId = requestMap.get("user_id");
  519. String userToken = requestMap.get("user_token");
  520. String memberId = requestMap.get("member_id");
  521. //验证用户是否处于登录态
  522. if (TokenUtil.validateLogin(memberId, userId)) {
  523. //验证用户合法性
  524. if (TokenUtil.validateToken(userId, userToken)) {
  525. HpMember hpMember = hpMemberService.get(memberId);
  526. if (hpMember != null) {
  527. Integer status = hpMember.getAuthenticationStatus();
  528. returnMap.put("approveStatus", status);
  529. }
  530. } else {
  531. returnMap.put("success", "1004");
  532. }
  533. } else {
  534. returnMap.put("success", "2010");
  535. }
  536. return returnMap;
  537. }
  538. public Page<HpResume> findRemuses(Page<HpResume> page, HpResume hpResume) {
  539. hpResume.setPage(page);
  540. page.setList(mapper.findList1(hpResume));
  541. return page;
  542. }
  543. public List<HpResume> findRemuseCount(HpResume hpResume) {
  544. return mapper.findRemuseList(hpResume);
  545. }
  546. private Page<HpResume> pageRecommendRemuse(Page<HpResume> page, HpResume hpResume) {
  547. hpResume.setPage(page);
  548. page.setList(mapper.findRecommendRemuse(hpResume));
  549. return page;
  550. }
  551. /**
  552. * 获取推荐简历
  553. */
  554. public Map<String, Object> getRecommendResume(Map<String, String> requestMap, HttpServletRequest request, HttpServletResponse response) {
  555. Map<String, Object> returnMap = new HashMap<String, Object>();
  556. String userId = requestMap.get("user_id");
  557. String userToken = requestMap.get("user_token");
  558. String memberId = requestMap.get("member_id");
  559. //验证用户是否处于登录态
  560. if (TokenUtil.validateLogin(memberId, userId)) {
  561. //验证用户合法性
  562. if (TokenUtil.validateToken(userId, userToken)) {
  563. //搜索条件
  564. String pageNo = requestMap.get("pageNo");
  565. String searchKey = requestMap.get("search_key");
  566. //搜索简历接口路径(c端)
  567. if (StringUtils.isBlank(searchKey)) {
  568. searchKey = "";
  569. }
  570. HpResume hpResume = new HpResume();
  571. if (StringUtils.isNotBlank(searchKey)) {
  572. hpResume.setSearchKey(searchKey);
  573. }
  574. Page<HpResume> page = this.pageRecommendRemuse(new Page<HpResume>(request, response), hpResume);
  575. if (Integer.parseInt(pageNo) > page.getLast()) {
  576. List<HpResume> list = new ArrayList<>();
  577. returnMap.put("searchResume", list);
  578. } else {
  579. List<HpResume> list1 = page.getList();
  580. if (list1 != null && !list1.isEmpty()) {
  581. returnMap.put("searchResume", list1);
  582. returnMap.put("pageNo", page.getPageNo());
  583. } else {
  584. returnMap.put("searchResume", list1);
  585. }
  586. //提示前端是否为最后一页
  587. if (Integer.parseInt(pageNo) == page.getLast()) {
  588. returnMap.put("isLast", true);
  589. } else {
  590. returnMap.put("isLast", false);
  591. }
  592. }
  593. return returnMap;
  594. } else {
  595. returnMap.put("success", "1004");
  596. }
  597. } else {
  598. returnMap.put("success", "2010");
  599. }
  600. return returnMap;
  601. }
  602. private Page<HpResume> pageApplyRemuse(Page<HpResume> page, HpResume hpResume) {
  603. hpResume.setPage(page);
  604. page.setList(mapper.findApplyRemuse(hpResume));
  605. return page;
  606. }
  607. /**
  608. * 投递简历分页列表
  609. */
  610. public Map<String, Object> getApplyResume(Map<String, String> requestMap, HttpServletRequest request, HttpServletResponse response) {
  611. Map<String, Object> returnMap = new HashMap<String, Object>();
  612. String userId = requestMap.get("user_id");
  613. String userToken = requestMap.get("user_token");
  614. String memberId = requestMap.get("member_id");
  615. //验证用户是否处于登录态
  616. if (TokenUtil.validateLogin(memberId, userId)) {
  617. //验证用户合法性
  618. if (TokenUtil.validateToken(userId, userToken)) {
  619. String searchKey = requestMap.get("searchKey");
  620. String pageNo = requestMap.get("pageNo");
  621. //该公司所有职位
  622. List<String> list3 = dpPositionService.findListByMemberId(memberId);
  623. StringBuilder stringBuilder = new StringBuilder();
  624. String positionIds = "";
  625. if (list3 != null && !list3.isEmpty()) {
  626. for (String str : list3) {
  627. stringBuilder.append(str + ",");
  628. }
  629. positionIds = stringBuilder.toString();
  630. positionIds = positionIds.substring(0, positionIds.length() - 1);
  631. } else {
  632. returnMap.put("applyResume", null);
  633. return returnMap;
  634. }
  635. HpResume hpResume = new HpResume();
  636. if (StringUtils.isNotBlank(searchKey)) {
  637. boolean isNum = searchKey.matches("[0-9]+");
  638. if (isNum) {
  639. Calendar cale = Calendar.getInstance();
  640. int year = cale.get(Calendar.YEAR);
  641. searchKey = String.valueOf(year - Integer.parseInt(searchKey) + 1);
  642. }
  643. hpResume.setSearchKey(searchKey);
  644. }
  645. //投递岗位id集
  646. if (StringUtils.isNotBlank(positionIds)) {
  647. hpResume.setPositionIds(positionIds);
  648. }
  649. Page<HpResume> page = this.pageApplyRemuse(new Page<HpResume>(request, response), hpResume);
  650. if (Integer.parseInt(pageNo) > page.getLast()) {
  651. List<HpResume> list = new ArrayList<>();
  652. returnMap.put("applyResume", list);
  653. } else {
  654. List<HpResume> list1 = page.getList();
  655. if (list1 != null && !list1.isEmpty()) {
  656. List<HpResume> list2 = new ArrayList<>();
  657. for (HpResume hpResume1 : list1) {
  658. //计算年龄
  659. if (StringUtils.isNotBlank(hpResume1.getBirthYear())) {
  660. Calendar cale = Calendar.getInstance();
  661. int year = cale.get(Calendar.YEAR);
  662. String birthYear = String.valueOf(year - Integer.parseInt(hpResume1.getBirthYear()) + 1);
  663. hpResume1.setBirthYear(birthYear);
  664. }
  665. HpApplyPosition hpApplyPosition = hpApplyPositionService.get(hpResume1.getApplyId());
  666. hpResume1.setCreateDate(hpApplyPosition.getApplyTime());
  667. if (StringUtils.isNotBlank(hpResume1.getHeadImg())) {
  668. if (!hpResume1.getHeadImg().contains("http")) {
  669. hpResume1.setHeadImg(Global.getAliyunUrl() + hpResume1.getHeadImg());
  670. }
  671. }
  672. list2.add(hpResume1);
  673. }
  674. returnMap.put("applyResume", list2);
  675. returnMap.put("pageNo", page.getPageNo());
  676. } else {
  677. returnMap.put("applyResume", list1);
  678. }
  679. //提示前端是否为最后一页
  680. if (Integer.parseInt(pageNo) == page.getLast()) {
  681. returnMap.put("isLast", true);
  682. } else {
  683. returnMap.put("isLast", false);
  684. }
  685. }
  686. return returnMap;
  687. } else {
  688. returnMap.put("success", "1004");
  689. }
  690. } else {
  691. returnMap.put("success", "2010");
  692. }
  693. return returnMap;
  694. }
  695. /**
  696. * 简历详情
  697. */
  698. public Map<String, Object> getResumeDetail(Map<String, String> requestMap, HttpServletRequest request, HttpServletResponse response) {
  699. Map<String, Object> returnMap = new HashMap<String, Object>();
  700. String userId = requestMap.get("user_id");
  701. String userToken = requestMap.get("user_token");
  702. String memberId = requestMap.get("member_id");
  703. //验证用户是否处于登录态
  704. if (TokenUtil.validateLogin(memberId, userId)) {
  705. //验证用户合法性
  706. if (TokenUtil.validateToken(userId, userToken)) {
  707. String resumeId = requestMap.get("resumeId");
  708. if (StringUtils.isNotBlank(resumeId)) {
  709. HpResume hpResume = mapper.get(resumeId);
  710. if (hpResume != null) {
  711. Calendar cale = Calendar.getInstance();
  712. int year = cale.get(Calendar.YEAR);
  713. String birthYear = String.valueOf(year - Integer.parseInt(hpResume.getBirthYear()) + 1);
  714. hpResume.setBirthYear(birthYear);
  715. List<HpResumeWorkExperience> hpResumeWorkExperienceList = hpResumeWorkExperienceService.findListByResumeId(hpResume.getId());
  716. hpResume.setHpResumeWorkExperienceList(hpResumeWorkExperienceList);
  717. if (StringUtils.isNotBlank(hpResume.getHeadImg())) {
  718. if (!hpResume.getHeadImg().contains("http")) {
  719. hpResume.setHeadImg(Global.getAliyunUrl() + hpResume.getHeadImg());
  720. }
  721. }
  722. }
  723. returnMap.put("hpResume", hpResume);
  724. }
  725. return returnMap;
  726. } else {
  727. returnMap.put("success", "1004");
  728. }
  729. } else {
  730. returnMap.put("success", "2010");
  731. }
  732. return returnMap;
  733. }
  734. public HpResume findResumeByMemberId(String memberId) {
  735. return mapper.findResumeByMemberId(memberId);
  736. }
  737. public void saveMenberIdByuserId(String userid, String hpMemberId) {
  738. mapper.saveMenberIdByuserId(userid, hpMemberId);
  739. }
  740. /**
  741. * 查询用户简历是否存在(userId)
  742. *
  743. * @param id
  744. * @return
  745. */
  746. public List<HpResume> findListByUserId(String id) {
  747. return mapper.findListByUserId(id);
  748. }
  749. }