123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418 |
- package com.hz.employmentsite.services.impl.jobUserManager;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- import com.hz.employmentsite.filter.exception.BaseException;
- import com.hz.employmentsite.mapper.*;
- import com.hz.employmentsite.mapper.cquery.JobUserCQuery;
- import com.hz.employmentsite.model.*;
- import com.hz.employmentsite.services.service.jobUserManager.JobUserService;
- import com.hz.employmentsite.util.StringUtils;
- import com.hz.employmentsite.vo.companyService.CompanyVo;
- import com.hz.employmentsite.vo.jobUserManager.JobUserVo;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import java.util.UUID;
- @Service("JobUserService")
- public class JobUserServiceImpl implements JobUserService {
- @Autowired
- private JobUserCQuery jobUserCQuery;
- @Autowired
- private StringUtils stringUtils;
- @Autowired
- private PcEducationMapper pcEducationMapper;
- @Autowired
- private PcJobuserMapper pcJobuserMapper;
- @Autowired
- private PcExperienceMapper pcExperienceMapper;
- @Autowired
- private PcJobhuntMapper pcJobhuntMapper;
- @Autowired
- private PcPostMapper pcPostMapper;
- @Override
- public PageInfo<JobUserVo> getList(Integer pageIndex, Integer pageSize,
- List<String> jobUserIDList, String name,
- String siteId, String jobStatus,
- Integer sexId, Integer educationTypeId,
- Integer emphasisTypeId, String createUserId,
- String workTime) {
- PageHelper.startPage(pageIndex, pageSize);
- List<JobUserVo> list = jobUserCQuery.selectJobUserList(stringUtils.ListToInSql(jobUserIDList), name, siteId, jobStatus, sexId, educationTypeId, emphasisTypeId, createUserId, workTime);
- PageInfo<JobUserVo> result = new PageInfo(list);
- return result;
- }
- @Override
- public List<SelectProps> getDataList() {
- var dataList = getList(1, 99999, null, null, null, null, null, null, null, null, null).getList();
- List<SelectProps> dataResult = new ArrayList<>();
- for (var item: dataList) {
- SelectProps itemResult = new SelectProps();
- itemResult.setText(item.getName());
- itemResult.setValue(item.getJobUserID());
- dataResult.add(itemResult);
- }
- return dataResult;
- }
- @Override
- public JobUserVo getDataById(String id) {
- List<String> ids = new ArrayList<>();
- if (stringUtils.IsNullOrEmpty(id)) {
- return null;
- }else{
- ids.add(id);
- }
- return jobUserCQuery.selectJobUserList(stringUtils.ListToInSql(ids), null, null, null, null, null, null, null, null).stream().findFirst().orElse(null);
- }
- @Override
- public List<PcEducation> getJobUserEducationList(String jobuserID) {
- PcEducationExample exp = new PcEducationExample();
- PcEducationExample.Criteria cro = exp.or();
- cro.andJobuserIDEqualTo(jobuserID);
- List<PcEducation> educationList = pcEducationMapper.selectByExample(exp);
- return educationList;
- }
- @Override
- public List<PcExperience> getJobUserPcExperienceList(String jobuserID) {
- PcExperienceExample exp = new PcExperienceExample();
- PcExperienceExample.Criteria cro = exp.or();
- cro.andJobuserIDEqualTo(jobuserID);
- List<PcExperience> educationList = pcExperienceMapper.selectByExample(exp);
- return educationList;
- }
- @Override
- public List<PcPost> getUserHuntList(String jobuserID) {
- PcJobhuntExample huntExp = new PcJobhuntExample();
- PcJobhuntExample.Criteria huntCro = huntExp.or();
- huntCro.andJobUserIDEqualTo(jobuserID);
- List<PcJobhunt> jobHuntList = pcJobhuntMapper.selectByExample(huntExp);
- List<String> professionIDList = new ArrayList<>();
- if (jobHuntList.size()>0){
- jobHuntList.stream().forEach(item->{
- professionIDList.add(item.getProfessionID());
- });
- PcPostExample postExp = new PcPostExample();
- PcPostExample.Criteria postCro = postExp.or();
- postCro.andPostIDIn(professionIDList);
- List<PcPost> curPostList = pcPostMapper.selectByExample(postExp);
- return curPostList;
- }else{
- return null;
- }
- }
- private int deleteEducation(List<String> ids) {
- int educationRows = 0;
- PcEducationExample expEducation = new PcEducationExample();
- PcEducationExample.Criteria croEducation = expEducation.or();
- croEducation.andJobuserIDIn(ids);
- educationRows = pcEducationMapper.deleteByExample(expEducation);
- return educationRows;
- }
- private int deleteExperience(List<String> ids) {
- int experienceRows = 0;
- PcExperienceExample expExperi = new PcExperienceExample();
- PcExperienceExample.Criteria croExperi = expExperi.or();
- croExperi.andJobuserIDIn(ids);
- experienceRows = pcExperienceMapper.deleteByExample(expExperi);
- return experienceRows;
- }
- @Override
- public int delete(List<String> ids) {
- deleteEducation(ids);
- deleteExperience(ids);
- int result = 0;
- for(String curJobUserID: ids){
- PcJobhuntExample jobHuntExample = new PcJobhuntExample();
- jobHuntExample.or().andJobUserIDEqualTo(curJobUserID);
- var curJobUserHuntList = pcJobhuntMapper.selectByExample(jobHuntExample).stream().toList();
- if( curJobUserHuntList != null && curJobUserHuntList.size()>0){
- throw new BaseException("10004","所选求职人员已有关联的求职意向,不允许删除!");
- }else{
- PcJobuserExample jobuserExp = new PcJobuserExample();
- jobuserExp.or().andJobuserIDIn(ids);
- result += pcJobuserMapper.deleteByExample(jobuserExp);
- }
- }
- return result;
- }
- @Override
- public int save(JobUserVo data, String userId) {
- int result = 0;
- PcJobuser dbData = pcJobuserMapper.selectByPrimaryKey(data.getJobUserID());
- PcJobuserExample emp = new PcJobuserExample();
- PcJobuserExample.Criteria cir = emp.or();
- //验证身份证是否已经录入
- if (dbData != null){
- cir.andJobuserIDNotEqualTo(data.getJobUserID());
- }
- cir.andIdentityNumberEqualTo(data.getIdentityNumber());
- if(pcJobuserMapper.selectByExample(emp).size()>0){
- throw new BaseException("500","该身份证号已绑定其他人员");
- }
- //验证联系电话是否已经录入
- cir = emp.or();
- if (dbData != null){
- cir.andJobuserIDNotEqualTo(data.getJobUserID());
- }
- cir.andUserMobileEqualTo(data.getUserMobile());
- if(pcJobuserMapper.selectByExample(emp).size()>0){
- throw new BaseException("500","该联系电话已绑定其他人员");
- }
- if (dbData == null) {
- dbData = new PcJobuser();
- dbData.setJobuserID(data.getJobUserID());
- dbData.setSiteID(data.getSiteID());
- dbData.setIdentityNumber(data.getIdentityNumber());
- dbData.setName(data.getName());
- dbData.setPyName(data.getPyName());
- dbData.setEngName(data.getEngName());
- dbData.setJobStatusID(data.getJobStatusID());
- dbData.setSex(data.getSex());
- dbData.setNation(data.getNation());
- dbData.setPoliticsStatusID(data.getPoliticsStatusID());
- dbData.setBirthplace(data.getBirthPlace());
- dbData.setBirthDay(data.getBirthDay());
- dbData.setFamilyNatureID(data.getFamilyNatureID());
- dbData.setFamilyAddress(data.getFamilyAddress());
- dbData.setCultureRank(data.getCultureRank());
- dbData.setHealthID(data.getHealthID());
- dbData.setHeight(data.getHeight());
- dbData.setBloodTypeID(data.getBloodTypeID());
- dbData.setVision(data.getVision());
- dbData.setWeight(data.getWeight());
- dbData.setMaritalStatusID(data.getMaritalStatusID());
- dbData.setProvinceCode(data.getProvinceCode());
- dbData.setRegionCode(data.getRegionCode());
- dbData.setStreetCode(data.getStreetCode());
- dbData.setUserName(data.getUserName());
- dbData.setUserMobile(data.getUserMobile());
- dbData.setAddress(data.getAddress());
- dbData.setPostalCode(data.getPostalCode());
- dbData.setEmail(data.getEmail());
- dbData.setHobby(data.getHobby());
- dbData.setKeyPersonTypeID(data.getKeyPersonTypeID());
- dbData.setPersonalSkills(data.getPersonalSkills());
- dbData.setCreateTime(new Date());
- dbData.setCreateUserID(userId);
- result = pcJobuserMapper.insert(dbData);
- } else {
- dbData.setJobuserID(data.getJobUserID());
- dbData.setSiteID(data.getSiteID());
- dbData.setIdentityNumber(data.getIdentityNumber());
- dbData.setName(data.getName());
- dbData.setPyName(data.getPyName());
- dbData.setEngName(data.getEngName());
- dbData.setSex(data.getSex());
- dbData.setJobStatusID(data.getJobStatusID());
- dbData.setNation(data.getNation());
- dbData.setPoliticsStatusID(data.getPoliticsStatusID());
- dbData.setBirthplace(data.getBirthPlace());
- dbData.setBirthDay(data.getBirthDay());
- dbData.setFamilyNatureID(data.getFamilyNatureID());
- dbData.setFamilyAddress(data.getFamilyAddress());
- dbData.setCultureRank(data.getCultureRank());
- dbData.setHealthID(data.getHealthID());
- dbData.setHeight(data.getHeight());
- dbData.setBloodTypeID(data.getBloodTypeID());
- dbData.setVision(data.getVision());
- dbData.setWeight(data.getWeight());
- dbData.setMaritalStatusID(data.getMaritalStatusID());
- dbData.setProvinceCode(data.getProvinceCode());
- dbData.setRegionCode(data.getRegionCode());
- dbData.setStreetCode(data.getStreetCode());
- dbData.setUserName(data.getUserName());
- dbData.setUserMobile(data.getUserMobile());
- dbData.setAddress(data.getAddress());
- dbData.setPostalCode(data.getPostalCode());
- dbData.setEmail(data.getEmail());
- dbData.setHobby(data.getHobby());
- dbData.setKeyPersonTypeID(data.getKeyPersonTypeID());
- dbData.setPersonalSkills(data.getPersonalSkills());
- dbData.setModifyTime(new Date());
- dbData.setModifyUserID(userId);
- result = pcJobuserMapper.updateByPrimaryKeySelective(dbData);
- }
- if (result >= 1) {
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
- String jobUserId = dbData.getJobuserID();
- List<String> ids = new ArrayList<>();
- ids.add(jobUserId);
- deleteEducation(ids);
- deleteExperience(ids);
- data.getJobEducation().stream().forEach(x -> {
- PcEducation education = new PcEducation();
- education.setEducationID(UUID.randomUUID().toString());
- education.setJobuserID(jobUserId);
- education.setCultureRank(Integer.parseInt(x.get("cultureRank") + ""));
- education.setSchoolName(x.get("schoolName").toString());
- try {
- education.setSchoolTime(dateFormat.parse(x.get("schoolTime").toString()));
- education.setOverTime(dateFormat.parse(x.get("overTime").toString()));
- } catch (ParseException e) {
- e.printStackTrace();
- }
- education.setMajor(x.get("major").toString());
- education.setCreateTime(new Date());
- education.setCreateUserID(userId);
- pcEducationMapper.insert(education);
- });
- data.getJobExperience().stream().forEach(x -> {
- PcExperience experience = new PcExperience();
- experience.setExperienceID(UUID.randomUUID().toString());
- experience.setJobuserID(jobUserId);
- try {
- experience.setStartTime(dateFormat.parse(x.get("startTime").toString()));
- experience.setEndTime(dateFormat.parse(x.get("endTime").toString()));
- } catch (ParseException e) {
- e.printStackTrace();
- }
- experience.setDuties(x.get("duties").toString());
- experience.setWorkAddress(x.get("workAddress").toString());
- experience.setCreateTime(new Date());
- experience.setCreateUserID(userId);
- pcExperienceMapper.insert(experience);
- });
- }
- return result;
- }
- private int ifHadRepeatData(JobUserVo data){
- var result = 0;
- PcJobuserExample jobUserExp1 = new PcJobuserExample();
- jobUserExp1.or().andIdentityNumberEqualTo(data.getIdentityNumber()).andJobuserIDNotEqualTo(data.getJobUserID());
- var ifRepeatIdentity = pcJobuserMapper.selectByExample(jobUserExp1).size()>0;
- PcJobuserExample jobUserExp2= new PcJobuserExample();
- jobUserExp2.or().andUserMobileEqualTo(data.getUserMobile()).andJobuserIDNotEqualTo(data.getJobUserID());
- var ifRepeatMobile = pcJobuserMapper.selectByExample(jobUserExp2).size()>0;
- result += ifRepeatIdentity? 1:0;
- result += ifRepeatMobile? 2:0;
- return result;
- }
- @Override
- public int baseInfoSave(JobUserVo data, String userId) {
- int result = 0;
- var repeatResult = ifHadRepeatData(data);
- switch (repeatResult){
- default:
- case 0:
- break;
- case 1:
- throw new BaseException("1004","身份证号码已存在!");
- case 2:
- throw new BaseException("1004","联系电话已存在!");
- case 3:
- throw new BaseException("1004","身份证号码、联系电话重复!");
- }
- PcJobuser dbData = pcJobuserMapper.selectByPrimaryKey(data.getJobUserID());
- if (dbData == null) {
- dbData = new PcJobuser();
- dbData.setJobuserID(data.getJobUserID());
- dbData.setSiteID(data.getSiteID());
- dbData.setIdentityNumber(data.getIdentityNumber());
- dbData.setName(data.getName());
- dbData.setPyName(data.getPyName());
- dbData.setEngName(data.getEngName());
- dbData.setJobStatusID(data.getJobStatusID());
- dbData.setSex(data.getSex());
- dbData.setNation(data.getNation());
- dbData.setPoliticsStatusID(data.getPoliticsStatusID());
- dbData.setBirthplace(data.getBirthPlace());
- dbData.setBirthDay(data.getBirthDay());
- dbData.setFamilyNatureID(data.getFamilyNatureID());
- dbData.setFamilyAddress(data.getFamilyAddress());
- dbData.setCultureRank(data.getCultureRank());
- dbData.setHealthID(data.getHealthID());
- dbData.setHeight(data.getHeight());
- dbData.setBloodTypeID(data.getBloodTypeID());
- dbData.setVision(data.getVision());
- dbData.setWeight(data.getWeight());
- dbData.setMaritalStatusID(data.getMaritalStatusID());
- dbData.setProvinceCode(data.getProvinceCode());
- dbData.setRegionCode(data.getRegionCode());
- dbData.setStreetCode(data.getStreetCode());
- dbData.setUserName(data.getUserName());
- dbData.setUserMobile(data.getUserMobile());
- dbData.setAddress(data.getAddress());
- dbData.setPostalCode(data.getPostalCode());
- dbData.setEmail(data.getEmail());
- dbData.setHobby(data.getHobby());
- dbData.setKeyPersonTypeID(data.getKeyPersonTypeID());
- dbData.setPersonalSkills(data.getPersonalSkills());
- dbData.setOpenId(data.getOpenId());
- dbData.setCreateTime(new Date());
- dbData.setCreateUserID(userId);
- result = pcJobuserMapper.insert(dbData);
- } else {
- dbData.setJobuserID(data.getJobUserID());
- dbData.setSiteID(data.getSiteID());
- dbData.setIdentityNumber(data.getIdentityNumber());
- dbData.setName(data.getName());
- dbData.setPyName(data.getPyName());
- dbData.setEngName(data.getEngName());
- dbData.setSex(data.getSex());
- dbData.setJobStatusID(data.getJobStatusID());
- dbData.setNation(data.getNation());
- dbData.setPoliticsStatusID(data.getPoliticsStatusID());
- dbData.setBirthplace(data.getBirthPlace());
- dbData.setBirthDay(data.getBirthDay());
- dbData.setFamilyNatureID(data.getFamilyNatureID());
- dbData.setFamilyAddress(data.getFamilyAddress());
- dbData.setCultureRank(data.getCultureRank());
- dbData.setHealthID(data.getHealthID());
- dbData.setHeight(data.getHeight());
- dbData.setBloodTypeID(data.getBloodTypeID());
- dbData.setVision(data.getVision());
- dbData.setWeight(data.getWeight());
- dbData.setMaritalStatusID(data.getMaritalStatusID());
- dbData.setProvinceCode(data.getProvinceCode());
- dbData.setRegionCode(data.getRegionCode());
- dbData.setStreetCode(data.getStreetCode());
- dbData.setUserName(data.getUserName());
- dbData.setUserMobile(data.getUserMobile());
- dbData.setAddress(data.getAddress());
- dbData.setPostalCode(data.getPostalCode());
- dbData.setEmail(data.getEmail());
- dbData.setHobby(data.getHobby());
- dbData.setKeyPersonTypeID(data.getKeyPersonTypeID());
- dbData.setPersonalSkills(data.getPersonalSkills());
- dbData.setOpenId(data.getOpenId());
- dbData.setModifyTime(new Date());
- dbData.setModifyUserID(userId);
- result = pcJobuserMapper.updateByPrimaryKeySelective(dbData);
- }
- return result;
- }
- }
|