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.PcEducationMapper; import com.hz.employmentsite.mapper.PcExperienceMapper; import com.hz.employmentsite.mapper.PcJobuserMapper; import com.hz.employmentsite.mapper.PcJobhuntMapper; import com.hz.employmentsite.mapper.PcPostMapper; 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.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 getList(Integer pageIndex, Integer pageSize, List jobUserIDList, String name, String siteId, String jobStatus, Integer sexId, Integer educationTypeId, Integer emphasisTypeId) { PageHelper.startPage(pageIndex, pageSize); List list = jobUserCQuery.selectJobUserList(stringUtils.ListToInSql(jobUserIDList), name, siteId, jobStatus, sexId, educationTypeId, emphasisTypeId); PageInfo result = new PageInfo(list); return result; } @Override public List getDataList() { var dataList = getList(1,99999,null,null,null,null,null,null,null).getList(); List 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 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).stream().findFirst().orElse(null); } @Override public List getJobUserEducationList(String jobuserID) { PcEducationExample exp = new PcEducationExample(); PcEducationExample.Criteria cro = exp.or(); cro.andJobuserIDEqualTo(jobuserID); List educationList = pcEducationMapper.selectByExample(exp); return educationList; } @Override public List getJobUserPcExperienceList(String jobuserID) { PcExperienceExample exp = new PcExperienceExample(); PcExperienceExample.Criteria cro = exp.or(); cro.andJobuserIDEqualTo(jobuserID); List educationList = pcExperienceMapper.selectByExample(exp); return educationList; } @Override public List getUserHuntList(String jobuserID) { PcJobhuntExample huntExp = new PcJobhuntExample(); PcJobhuntExample.Criteria huntCro = huntExp.or(); huntCro.andJobUserIDEqualTo(jobuserID); List jobHuntList = pcJobhuntMapper.selectByExample(huntExp); List 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 curPostList = pcPostMapper.selectByExample(postExp); return curPostList; }else{ return null; } } private int deleteEducation(List 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 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 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()); 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 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; } @Override public int baseInfoSave(JobUserVo data, String userId) { int result = 0; 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.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); } return result; } }