diff --git a/src/main/java/com/yzdx/AiInterviewer/controller/QuestionController.java b/src/main/java/com/yzdx/AiInterviewer/controller/QuestionController.java index 6032685..98ac35f 100644 --- a/src/main/java/com/yzdx/AiInterviewer/controller/QuestionController.java +++ b/src/main/java/com/yzdx/AiInterviewer/controller/QuestionController.java @@ -160,7 +160,11 @@ public class QuestionController { return R.success(questionDtoList); } - + @GetMapping("/search_questionList") + public R searchQuestionList(String name,String type,String encoding){ + List questionDtos = questionService.searchQuestionList(name, type, encoding); + return R.success(questionDtos); + } /** * 添加题目 * @param addQuestionInfo 添加题目信息 diff --git a/src/main/java/com/yzdx/AiInterviewer/controller/RecruitmentController.java b/src/main/java/com/yzdx/AiInterviewer/controller/RecruitmentController.java index d7d02aa..8be8ae2 100644 --- a/src/main/java/com/yzdx/AiInterviewer/controller/RecruitmentController.java +++ b/src/main/java/com/yzdx/AiInterviewer/controller/RecruitmentController.java @@ -64,29 +64,18 @@ public class RecruitmentController { if (encoding==null){ return R.error(401,"身份验证失败,请重新登陆"); } - List jobList = jobListService.getJobList(encoding); - List jobDtoList=new ArrayList<>(); + List jobList = jobListService.getJobList(encoding); + + return R.success(jobList); + } + + @GetMapping("/search_job") + public R searchJob(String jobName,String jobType,String encoding){ + + List jobEntities = jobListService.searchJob(jobName, jobType, encoding); + + return R.success(jobEntities); - for (JobEntity jobEntity: jobList) { - JobDto jobDto=new JobDto(); - jobDto.setId(jobEntity.getId()); - jobDto.setJobName(jobEntity.getJobName()); - jobDto.setJobType(jobEntity.getJobType()); - jobDto.setDetail(jobEntity.getDetails()); - String number=jobEntity.getMinNumber()+"-"+jobEntity.getMaxNumber(); - jobDto.setNumber(number); - String address= MyStringUtils.convertString(jobEntity.getAddress())+jobEntity.getAddressDetail(); - jobDto.setAddress(address); - String salary=jobEntity.getMinSalary()+"-"+jobEntity.getMaxSalary(); - jobDto.setSalary(salary); - jobDto.setStatus(jobEntity.getStatus()); - jobDto.setCreateUser(jobEntity.getCreateUser()); - jobDto.setCreateTime(jobEntity.getCreateTime()); - jobDto.setUpdateUser(jobEntity.getUpdateUser()); - jobDto.setUpdateTime(jobEntity.getUpdateTime()); - jobDtoList.add(jobDto); - } - return R.success(jobDtoList); } @GetMapping("/get_jobById") @@ -205,11 +194,19 @@ public class RecruitmentController { } return R.success("添加岗位设置成功!"); } + @GetMapping("/get_jobSettingList") public R getJobSettingList(String encoding){ List jobSettingList = interviewSettingService.getJobSettingList(encoding); return R.success(jobSettingList); } + + @GetMapping("/search_setting") + public R searchJobSettings(String jobName,String encoding){ + List jobSettingDtos = interviewSettingService.searchJobSetting(jobName, encoding); + + return R.success(jobSettingDtos); + } @GetMapping("/delete_jobJobSetting") public R deleteJobSetting(Integer id){ @@ -221,6 +218,7 @@ public class RecruitmentController { } return R.success("删除成功!"); } + @PostMapping("/update_jobJobSetting") public R updateJobSetting(@RequestBody Map updateInfo){ Integer id = (Integer) updateInfo.get("id"); diff --git a/src/main/java/com/yzdx/AiInterviewer/service/InterviewSettingService.java b/src/main/java/com/yzdx/AiInterviewer/service/InterviewSettingService.java index aa93b04..58dfdb6 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/InterviewSettingService.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/InterviewSettingService.java @@ -40,6 +40,15 @@ public interface InterviewSettingService extends IService { * */ List getJobSettingList(String encoding); + /** + * 搜索面试设置 + * @param jobName 搜索的面试设置的岗位名称 + * @param encoding 公司编码 + * @return 搜索列表 + * + * */ + + List searchJobSetting(String jobName,String encoding); /** * 根据没你事设置id删除面试设置 * @param id 岗位设置的id diff --git a/src/main/java/com/yzdx/AiInterviewer/service/JobListService.java b/src/main/java/com/yzdx/AiInterviewer/service/JobListService.java index 06aa1b9..19c3a84 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/JobListService.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/JobListService.java @@ -2,6 +2,7 @@ package com.yzdx.AiInterviewer.service; import com.baomidou.mybatisplus.extension.service.IService; import com.yzdx.AiInterviewer.entity.JobEntity; +import com.yzdx.AiInterviewer.entity.dto.JobDto; import java.util.List; @@ -48,7 +49,16 @@ public interface JobListService extends IService { * @param encoding 公司编码 * @return 岗位列表 * */ - List getJobList(String encoding); + List getJobList(String encoding); + /** + * 搜索岗位 + * @param jobName 搜索的岗位名称 + * @param jobType 搜索的岗位类型 + * @param encoding 公司编码 + * @return 返回jonList + * + * */ + List searchJob(String jobName,String jobType,String encoding); /** * 根据id查岗位 diff --git a/src/main/java/com/yzdx/AiInterviewer/service/QuestionService.java b/src/main/java/com/yzdx/AiInterviewer/service/QuestionService.java index 1f6e86c..6c0073c 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/QuestionService.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/QuestionService.java @@ -14,7 +14,16 @@ public interface QuestionService extends IService { * @return 题目列表 * */ List getQuestionList(String encoding); - +/** + * 搜索题目 + * @param name 题目名称 + * @param type 题库类型 + * @param encoding 公司编码 + * @return 题目列表 + * + * + * */ + List searchQuestionList(String name,String type,String encoding); /** * 增加题目 * @param encoding 公司编码 diff --git a/src/main/java/com/yzdx/AiInterviewer/service/impl/InterviewSettingServiceImpl.java b/src/main/java/com/yzdx/AiInterviewer/service/impl/InterviewSettingServiceImpl.java index d259b28..75e1807 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/impl/InterviewSettingServiceImpl.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/impl/InterviewSettingServiceImpl.java @@ -151,6 +151,115 @@ public class InterviewSettingServiceImpl extends ServiceImpl searchJobSetting(String jobName, String encoding) { + if(jobName.equals("")){ + return null; + } + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + + queryWrapper.like(JobEntity::getJobName,jobName).eq(JobEntity::getCompanyEncoding,encoding); + + List jobEntities = jobMapper.selectList(queryWrapper); + + List jobIdList=jobEntities.stream().map((item)->{ + Integer id=item.getId(); + + + return id; + }).collect(Collectors.toList()); + System.out.println(jobIdList.toString()); + if(jobIdList.size()==0){ + return null; + } + + LambdaQueryWrapper interviewSettingLambdaQueryWrapper=new LambdaQueryWrapper<>(); + + interviewSettingLambdaQueryWrapper.in(InterviewSetting::getJobId,jobIdList); + + List interviewSettings = interviewSettingMapper.selectList(interviewSettingLambdaQueryWrapper); + //数据处理 + + List jobSettingDtoList= interviewSettings.stream().map((item) -> { + JobSettingDto jobSettingDto=new JobSettingDto(); + + BeanUtils.copyProperties(item,jobSettingDto); + + //得到岗位名称 + LambdaQueryWrapper jobEntityLambdaQueryWrapper=new LambdaQueryWrapper<>(); + + jobEntityLambdaQueryWrapper.eq(JobEntity::getId,jobSettingDto.getJobId()); + + JobEntity findJob = jobMapper.selectOne(jobEntityLambdaQueryWrapper); + + jobSettingDto.setJobName(findJob.getJobName()); + + //得到背景图片Url地址 + LambdaQueryWrapper backgroundEntityLambdaQueryWrapper=new LambdaQueryWrapper<>(); + + backgroundEntityLambdaQueryWrapper.eq(BackgroundEntity::getId,jobSettingDto.getBackgroundId()); + + BackgroundEntity findBackground = backgroundMapper.selectOne(backgroundEntityLambdaQueryWrapper); + + jobSettingDto.setBackgroundUrl(findBackground.getImage()); + + //得到形象图片Url地址 + LambdaQueryWrapper imagesEntityLambdaQueryWrapper=new LambdaQueryWrapper<>(); + + imagesEntityLambdaQueryWrapper.eq(ImagesEntity::getId,jobSettingDto.getImagesId()); + + ImagesEntity findImage = imagesMapper.selectOne(imagesEntityLambdaQueryWrapper); + + jobSettingDto.setImageUrl(findImage.getImage()); + + //得到logo地址 + LambdaQueryWrapper logoEntityLambdaQueryWrapper=new LambdaQueryWrapper<>(); + + logoEntityLambdaQueryWrapper.eq(LogoEntity::getId,jobSettingDto.getLogoId()); + + LogoEntity findLogo = logoMapper.selectOne(logoEntityLambdaQueryWrapper); + + jobSettingDto.setLogoUrl(findLogo.getImage()); + + List questionTypes=new ArrayList<>(); + + if (jobSettingDto.getProfessional()!=0) { + LambdaQueryWrapper professionalQueryWrapper=new LambdaQueryWrapper<>(); + + professionalQueryWrapper.eq(QuestionBank::getId,jobSettingDto.getProfessional()); + + QuestionBank findProfessional = bankMapper.selectOne(professionalQueryWrapper); + + questionTypes.add(findProfessional.getTypeName()); + } + + if (jobSettingDto.getComprehensive()!=0) { + LambdaQueryWrapper comprehensiveQueryWrapper=new LambdaQueryWrapper<>(); + + comprehensiveQueryWrapper.eq(QuestionBank::getId,jobSettingDto.getComprehensive()); + + QuestionBank findComprehensive = bankMapper.selectOne(comprehensiveQueryWrapper); + + questionTypes.add(findComprehensive.getTypeName()); + } + if (jobSettingDto.getPsychology()!=0) { + LambdaQueryWrapper psychologyQueryWrapper=new LambdaQueryWrapper<>(); + + psychologyQueryWrapper.eq(QuestionBank::getId,jobSettingDto.getPsychology()); + + QuestionBank findPsychology = bankMapper.selectOne(psychologyQueryWrapper); + + questionTypes.add(findPsychology.getTypeName()); + } + jobSettingDto.setQuestionTypes(questionTypes); + + return jobSettingDto; + }).collect(Collectors.toList()); + + return jobSettingDtoList; + + } + @Override public Integer deleteJobSetting(Integer id) { LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); diff --git a/src/main/java/com/yzdx/AiInterviewer/service/impl/JobListServiceImpl.java b/src/main/java/com/yzdx/AiInterviewer/service/impl/JobListServiceImpl.java index 8d83cb5..08e0a9b 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/impl/JobListServiceImpl.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/impl/JobListServiceImpl.java @@ -3,13 +3,18 @@ package com.yzdx.AiInterviewer.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yzdx.AiInterviewer.entity.JobEntity; +import com.yzdx.AiInterviewer.entity.dto.JobDto; +import com.yzdx.AiInterviewer.entity.dto.QuestionDto; import com.yzdx.AiInterviewer.mapper.JobMapper; import com.yzdx.AiInterviewer.service.JobListService; +import com.yzdx.AiInterviewer.utiles.MyStringUtils; import com.yzdx.AiInterviewer.utiles.TimeUtil; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.stream.Collectors; @Service public class JobListServiceImpl extends ServiceImpl implements JobListService { @@ -55,14 +60,130 @@ public class JobListServiceImpl extends ServiceImpl implem } @Override - public List getJobList(String encoding) { + public List getJobList(String encoding) { LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); queryWrapper.eq(JobEntity::getCompanyEncoding,encoding); List jobEntities = jobMapper.selectList(queryWrapper); + List jobDtoList = jobEntities.stream().map((item) -> { - return jobEntities; + JobDto jobDto=new JobDto(); + + jobDto.setId(item.getId()); + jobDto.setJobName(item.getJobName()); + jobDto.setJobType(item.getJobType()); + jobDto.setDetail(item.getDetails()); + String number=item.getMinNumber()+"-"+item.getMaxNumber(); + jobDto.setNumber(number); + String address= MyStringUtils.convertString(item.getAddress())+item.getAddressDetail(); + jobDto.setAddress(address); + String salary=item.getMinSalary()+"-"+item.getMaxSalary(); + jobDto.setSalary(salary); + jobDto.setStatus(item.getStatus()); + jobDto.setCreateUser(item.getCreateUser()); + jobDto.setCreateTime(item.getCreateTime()); + jobDto.setUpdateUser(item.getUpdateUser()); + jobDto.setUpdateTime(item.getUpdateTime()); + return jobDto; + }).collect(Collectors.toList()); + + return jobDtoList; + + } + + @Override + public List searchJob(String jobName, String jobType, String encoding) { + if(!jobName.equals("")){ + if(!jobType.equals("")){ + LambdaQueryWrapper queryWrapper =new LambdaQueryWrapper<>(); + queryWrapper.like(JobEntity::getJobName,jobName).eq(JobEntity::getJobType,jobType).eq(JobEntity::getCompanyEncoding,encoding); + + List jobEntities = jobMapper.selectList(queryWrapper); + List jobDtoList = jobEntities.stream().map((item) -> { + + JobDto jobDto=new JobDto(); + + jobDto.setId(item.getId()); + jobDto.setJobName(item.getJobName()); + jobDto.setJobType(item.getJobType()); + jobDto.setDetail(item.getDetails()); + String number=item.getMinNumber()+"-"+item.getMaxNumber(); + jobDto.setNumber(number); + String address= MyStringUtils.convertString(item.getAddress())+item.getAddressDetail(); + jobDto.setAddress(address); + String salary=item.getMinSalary()+"-"+item.getMaxSalary(); + jobDto.setSalary(salary); + jobDto.setStatus(item.getStatus()); + jobDto.setCreateUser(item.getCreateUser()); + jobDto.setCreateTime(item.getCreateTime()); + jobDto.setUpdateUser(item.getUpdateUser()); + jobDto.setUpdateTime(item.getUpdateTime()); + return jobDto; + }).collect(Collectors.toList()); + return jobDtoList; + }else{ + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + + queryWrapper.like(JobEntity::getJobName,jobName).eq(JobEntity::getCompanyEncoding,encoding); + + List jobEntities = jobMapper.selectList(queryWrapper); + List jobDtoList = jobEntities.stream().map((item) -> { + + JobDto jobDto=new JobDto(); + + jobDto.setId(item.getId()); + jobDto.setJobName(item.getJobName()); + jobDto.setJobType(item.getJobType()); + jobDto.setDetail(item.getDetails()); + String number=item.getMinNumber()+"-"+item.getMaxNumber(); + jobDto.setNumber(number); + String address= MyStringUtils.convertString(item.getAddress())+item.getAddressDetail(); + jobDto.setAddress(address); + String salary=item.getMinSalary()+"-"+item.getMaxSalary(); + jobDto.setSalary(salary); + jobDto.setStatus(item.getStatus()); + jobDto.setCreateUser(item.getCreateUser()); + jobDto.setCreateTime(item.getCreateTime()); + jobDto.setUpdateUser(item.getUpdateUser()); + jobDto.setUpdateTime(item.getUpdateTime()); + return jobDto; + }).collect(Collectors.toList()); + return jobDtoList; + } + }else{ + if(!jobType.equals("")){ + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + + queryWrapper.eq(JobEntity::getJobType,jobType).eq(JobEntity::getCompanyEncoding,encoding); + + List jobEntities = jobMapper.selectList(queryWrapper); + List jobDtoList = jobEntities.stream().map((item) -> { + + JobDto jobDto=new JobDto(); + + jobDto.setId(item.getId()); + jobDto.setJobName(item.getJobName()); + jobDto.setJobType(item.getJobType()); + jobDto.setDetail(item.getDetails()); + String number=item.getMinNumber()+"-"+item.getMaxNumber(); + jobDto.setNumber(number); + String address= MyStringUtils.convertString(item.getAddress())+item.getAddressDetail(); + jobDto.setAddress(address); + String salary=item.getMinSalary()+"-"+item.getMaxSalary(); + jobDto.setSalary(salary); + jobDto.setStatus(item.getStatus()); + jobDto.setCreateUser(item.getCreateUser()); + jobDto.setCreateTime(item.getCreateTime()); + jobDto.setUpdateUser(item.getUpdateUser()); + jobDto.setUpdateTime(item.getUpdateTime()); + return jobDto; + }).collect(Collectors.toList()); + return jobDtoList; + }else{ + return null; + } + } } @Override diff --git a/src/main/java/com/yzdx/AiInterviewer/service/impl/QuestionBankServiceImpl.java b/src/main/java/com/yzdx/AiInterviewer/service/impl/QuestionBankServiceImpl.java index 712ffae..d61c34b 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/impl/QuestionBankServiceImpl.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/impl/QuestionBankServiceImpl.java @@ -36,8 +36,8 @@ public class QuestionBankServiceImpl extends ServiceImpl searchTypeList(String name, String type,String encoding) { - if (name!=null) { - if (type==null) { + if (!name.equals("")) { + if (type.equals("")) { LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); queryWrapper.like(QuestionBank::getTypeName,name).eq(QuestionBank::getCompanyEncoding,encoding); @@ -57,7 +57,7 @@ public class QuestionBankServiceImpl extends ServiceImpl queryWrapper=new LambdaQueryWrapper<>(); diff --git a/src/main/java/com/yzdx/AiInterviewer/service/impl/QuestionServiceImpl.java b/src/main/java/com/yzdx/AiInterviewer/service/impl/QuestionServiceImpl.java index d27812d..f30ae86 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/impl/QuestionServiceImpl.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/impl/QuestionServiceImpl.java @@ -74,6 +74,122 @@ public class QuestionServiceImpl extends ServiceImpl i return questionDtoList; } + @Override + public List searchQuestionList(String name, String type, String encoding) { + if(!name.equals("")){ + if(!type.equals("")){ + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.like(Question::getTitle,name).eq(Question::getCompanyEncoding,encoding).eq(Question::getBankId,type); + List questions = questionMapper.selectList(queryWrapper); + List questionDtoList = questions.stream().map((item) -> { + QuestionDto questionDto=new QuestionDto(); + + BeanUtils.copyProperties(item,questionDto); + + Integer createUserId = item.getCreateUser();//创建人id + //根据id查询创建对象名称 + User findCreateUser = userService.getUserById(createUserId); + if(findCreateUser != null){ + String createUserName = findCreateUser.getUsername(); + questionDto.setCreateUserName(createUserName); + } + Integer updateUserId = item.getUpdateUser(); + //根据id查询更新对象名称 + User findUpdateUser = userService.getUserById(updateUserId); + if(findUpdateUser != null){ + String updateUserName = findUpdateUser.getUsername(); + questionDto.setUpdateUserName(updateUserName); + } + Integer typeId = item.getBankId(); + //根据id查询题库名称 + QuestionBank findBank = questionBankService.getBankById(typeId); + if(findBank != null){ + String typeNameName = findBank.getTypeName(); + questionDto.setTypeName(typeNameName); + } + return questionDto; + }).collect(Collectors.toList()); + + return questionDtoList; + }else { + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.like(Question::getTitle,name).eq(Question::getCompanyEncoding,encoding); + List questions = questionMapper.selectList(queryWrapper); + List questionDtoList = questions.stream().map((item) -> { + QuestionDto questionDto=new QuestionDto(); + + BeanUtils.copyProperties(item,questionDto); + + Integer createUserId = item.getCreateUser();//创建人id + //根据id查询创建对象名称 + User findCreateUser = userService.getUserById(createUserId); + if(findCreateUser != null){ + String createUserName = findCreateUser.getUsername(); + questionDto.setCreateUserName(createUserName); + } + Integer updateUserId = item.getUpdateUser(); + //根据id查询更新对象名称 + User findUpdateUser = userService.getUserById(updateUserId); + if(findUpdateUser != null){ + String updateUserName = findUpdateUser.getUsername(); + questionDto.setUpdateUserName(updateUserName); + } + Integer typeId = item.getBankId(); + //根据id查询题库名称 + QuestionBank findBank = questionBankService.getBankById(typeId); + if(findBank != null){ + String typeNameName = findBank.getTypeName(); + questionDto.setTypeName(typeNameName); + } + return questionDto; + }).collect(Collectors.toList()); + + return questionDtoList; + + } + }else{ + if(!type.equals("")){ + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.like(Question::getCompanyEncoding,encoding).eq(Question::getBankId,type); + List questions = questionMapper.selectList(queryWrapper); + List questionDtoList = questions.stream().map((item) -> { + QuestionDto questionDto=new QuestionDto(); + + BeanUtils.copyProperties(item,questionDto); + + Integer createUserId = item.getCreateUser();//创建人id + //根据id查询创建对象名称 + User findCreateUser = userService.getUserById(createUserId); + if(findCreateUser != null){ + String createUserName = findCreateUser.getUsername(); + questionDto.setCreateUserName(createUserName); + } + Integer updateUserId = item.getUpdateUser(); + //根据id查询更新对象名称 + User findUpdateUser = userService.getUserById(updateUserId); + if(findUpdateUser != null){ + String updateUserName = findUpdateUser.getUsername(); + questionDto.setUpdateUserName(updateUserName); + } + Integer typeId = item.getBankId(); + //根据id查询题库名称 + QuestionBank findBank = questionBankService.getBankById(typeId); + if(findBank != null){ + String typeNameName = findBank.getTypeName(); + questionDto.setTypeName(typeNameName); + } + return questionDto; + }).collect(Collectors.toList()); + + return questionDtoList; + + }else{ + return null; + } + } + + } + @Override public Integer addQuestion(String title, Integer bankId, String details, String promote, String encoding, Integer userId) { //判断题目标题是否重复