392 lines
15 KiB
Java
392 lines
15 KiB
Java
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.*;
|
||
import com.yzdx.AiInterviewer.entity.dto.JobSettingDto;
|
||
import com.yzdx.AiInterviewer.mapper.*;
|
||
import com.yzdx.AiInterviewer.service.InterviewSettingService;
|
||
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.ArrayList;
|
||
import java.util.HashMap;
|
||
import java.util.List;
|
||
import java.util.Map;
|
||
import java.util.stream.Collectors;
|
||
|
||
@Service
|
||
public class InterviewSettingServiceImpl extends ServiceImpl<InterviewSettingMapper, InterviewSetting> implements InterviewSettingService {
|
||
|
||
@Autowired
|
||
private InterviewSettingMapper interviewSettingMapper;
|
||
@Autowired
|
||
private JobMapper jobMapper;
|
||
@Autowired
|
||
private InterviewBackgroundMapper backgroundMapper;
|
||
@Autowired
|
||
private InterviewImagesMapper imagesMapper;
|
||
@Autowired
|
||
private InterviewLogoMapper logoMapper;
|
||
@Autowired
|
||
private QuestionBankMapper bankMapper;
|
||
@Autowired
|
||
private QuestionMapper questionMapper;
|
||
|
||
|
||
@Override
|
||
public Integer addJobSetting(Integer jobId, Integer imagesId, Integer backgroundId,
|
||
Integer logoId, Integer Professional, Integer Comprehensive,
|
||
Integer Psychology, Integer userId, String jobPromote,String encoding) {
|
||
//查询jobId是否存在,存在的话只能修改
|
||
LambdaQueryWrapper<InterviewSetting> queryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
queryWrapper.eq(InterviewSetting::getJobId,jobId);
|
||
|
||
InterviewSetting findSetting = interviewSettingMapper.selectOne(queryWrapper);
|
||
|
||
if(findSetting!=null){
|
||
return -1;
|
||
}
|
||
//不存在,继续添加
|
||
InterviewSetting newSetting=new InterviewSetting();
|
||
|
||
newSetting.setJobId(jobId);
|
||
newSetting.setImagesId(imagesId);
|
||
newSetting.setBackgroundId(backgroundId);
|
||
newSetting.setJobPromote(jobPromote);
|
||
newSetting.setLogoId(logoId);
|
||
newSetting.setProfessional(Professional);
|
||
newSetting.setComprehensive(Comprehensive);
|
||
newSetting.setPsychology(Psychology);
|
||
newSetting.setCreateUser(userId);
|
||
newSetting.setCreateTime(TimeUtil.getTime());
|
||
newSetting.setEncoding(encoding);
|
||
|
||
return interviewSettingMapper.insert(newSetting);
|
||
|
||
}
|
||
|
||
@Override
|
||
public List<JobSettingDto> getJobSettingList(String encoding) {
|
||
LambdaQueryWrapper<InterviewSetting> queryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
queryWrapper.eq(InterviewSetting::getEncoding,encoding);
|
||
|
||
List<InterviewSetting> interviewSettingList = interviewSettingMapper.selectList(queryWrapper);
|
||
|
||
List<JobSettingDto> jobSettingDtoList= interviewSettingList.stream().map((item) -> {
|
||
JobSettingDto jobSettingDto=new JobSettingDto();
|
||
|
||
BeanUtils.copyProperties(item,jobSettingDto);
|
||
|
||
//得到岗位名称
|
||
LambdaQueryWrapper<JobEntity> jobEntityLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
jobEntityLambdaQueryWrapper.eq(JobEntity::getId,jobSettingDto.getJobId());
|
||
|
||
JobEntity findJob = jobMapper.selectOne(jobEntityLambdaQueryWrapper);
|
||
|
||
jobSettingDto.setJobName(findJob.getJobName());
|
||
|
||
//得到背景图片Url地址
|
||
LambdaQueryWrapper<BackgroundEntity> backgroundEntityLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
backgroundEntityLambdaQueryWrapper.eq(BackgroundEntity::getId,jobSettingDto.getBackgroundId());
|
||
|
||
BackgroundEntity findBackground = backgroundMapper.selectOne(backgroundEntityLambdaQueryWrapper);
|
||
|
||
jobSettingDto.setBackgroundUrl(findBackground.getImage());
|
||
|
||
//得到形象图片Url地址
|
||
LambdaQueryWrapper<ImagesEntity> imagesEntityLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
imagesEntityLambdaQueryWrapper.eq(ImagesEntity::getId,jobSettingDto.getImagesId());
|
||
|
||
ImagesEntity findImage = imagesMapper.selectOne(imagesEntityLambdaQueryWrapper);
|
||
|
||
if(findImage.getImage()==null||findImage.getImage().equals("")){
|
||
jobSettingDto.setVideoUrl(findImage.getVideo());
|
||
}else {
|
||
jobSettingDto.setImageUrl(findImage.getImage());
|
||
|
||
}
|
||
|
||
//得到logo地址
|
||
LambdaQueryWrapper<LogoEntity> logoEntityLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
logoEntityLambdaQueryWrapper.eq(LogoEntity::getId,jobSettingDto.getLogoId());
|
||
|
||
LogoEntity findLogo = logoMapper.selectOne(logoEntityLambdaQueryWrapper);
|
||
|
||
jobSettingDto.setLogoUrl(findLogo.getImage());
|
||
|
||
List<String> questionTypes=new ArrayList<>();
|
||
|
||
if (jobSettingDto.getProfessional()!=0) {
|
||
LambdaQueryWrapper<QuestionBank> professionalQueryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
professionalQueryWrapper.eq(QuestionBank::getId,jobSettingDto.getProfessional());
|
||
|
||
QuestionBank findProfessional = bankMapper.selectOne(professionalQueryWrapper);
|
||
|
||
questionTypes.add(findProfessional.getTypeName());
|
||
}
|
||
|
||
if (jobSettingDto.getComprehensive()!=0) {
|
||
LambdaQueryWrapper<QuestionBank> comprehensiveQueryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
comprehensiveQueryWrapper.eq(QuestionBank::getId,jobSettingDto.getComprehensive());
|
||
|
||
QuestionBank findComprehensive = bankMapper.selectOne(comprehensiveQueryWrapper);
|
||
|
||
questionTypes.add(findComprehensive.getTypeName());
|
||
}
|
||
if (jobSettingDto.getPsychology()!=0) {
|
||
LambdaQueryWrapper<QuestionBank> 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 List<JobSettingDto> searchJobSetting(String jobName, String encoding) {
|
||
if(jobName.equals("")){
|
||
return null;
|
||
}
|
||
LambdaQueryWrapper<JobEntity> queryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
queryWrapper.like(JobEntity::getJobName,jobName).eq(JobEntity::getCompanyEncoding,encoding);
|
||
|
||
List<JobEntity> jobEntities = jobMapper.selectList(queryWrapper);
|
||
|
||
List<Integer> 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<InterviewSetting> interviewSettingLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
interviewSettingLambdaQueryWrapper.in(InterviewSetting::getJobId,jobIdList);
|
||
|
||
List<InterviewSetting> interviewSettings = interviewSettingMapper.selectList(interviewSettingLambdaQueryWrapper);
|
||
//数据处理
|
||
|
||
List<JobSettingDto> jobSettingDtoList= interviewSettings.stream().map((item) -> {
|
||
JobSettingDto jobSettingDto=new JobSettingDto();
|
||
|
||
BeanUtils.copyProperties(item,jobSettingDto);
|
||
|
||
//得到岗位名称
|
||
LambdaQueryWrapper<JobEntity> jobEntityLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
jobEntityLambdaQueryWrapper.eq(JobEntity::getId,jobSettingDto.getJobId());
|
||
|
||
JobEntity findJob = jobMapper.selectOne(jobEntityLambdaQueryWrapper);
|
||
|
||
jobSettingDto.setJobName(findJob.getJobName());
|
||
|
||
//得到背景图片Url地址
|
||
LambdaQueryWrapper<BackgroundEntity> backgroundEntityLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
backgroundEntityLambdaQueryWrapper.eq(BackgroundEntity::getId,jobSettingDto.getBackgroundId());
|
||
|
||
BackgroundEntity findBackground = backgroundMapper.selectOne(backgroundEntityLambdaQueryWrapper);
|
||
|
||
jobSettingDto.setBackgroundUrl(findBackground.getImage());
|
||
|
||
//得到形象图片Url地址
|
||
LambdaQueryWrapper<ImagesEntity> imagesEntityLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
imagesEntityLambdaQueryWrapper.eq(ImagesEntity::getId,jobSettingDto.getImagesId());
|
||
|
||
ImagesEntity findImage = imagesMapper.selectOne(imagesEntityLambdaQueryWrapper);
|
||
|
||
if(findImage==null||findImage.equals("")){
|
||
jobSettingDto.setImageUrl(findImage.getVideo());
|
||
}else {
|
||
jobSettingDto.setImageUrl(findImage.getImage());
|
||
|
||
}
|
||
//得到logo地址
|
||
LambdaQueryWrapper<LogoEntity> logoEntityLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
logoEntityLambdaQueryWrapper.eq(LogoEntity::getId,jobSettingDto.getLogoId());
|
||
|
||
LogoEntity findLogo = logoMapper.selectOne(logoEntityLambdaQueryWrapper);
|
||
|
||
jobSettingDto.setLogoUrl(findLogo.getImage());
|
||
|
||
List<String> questionTypes=new ArrayList<>();
|
||
|
||
if (jobSettingDto.getProfessional()!=0) {
|
||
LambdaQueryWrapper<QuestionBank> professionalQueryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
professionalQueryWrapper.eq(QuestionBank::getId,jobSettingDto.getProfessional());
|
||
|
||
QuestionBank findProfessional = bankMapper.selectOne(professionalQueryWrapper);
|
||
|
||
questionTypes.add(findProfessional.getTypeName());
|
||
}
|
||
|
||
if (jobSettingDto.getComprehensive()!=0) {
|
||
LambdaQueryWrapper<QuestionBank> comprehensiveQueryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
comprehensiveQueryWrapper.eq(QuestionBank::getId,jobSettingDto.getComprehensive());
|
||
|
||
QuestionBank findComprehensive = bankMapper.selectOne(comprehensiveQueryWrapper);
|
||
|
||
questionTypes.add(findComprehensive.getTypeName());
|
||
}
|
||
if (jobSettingDto.getPsychology()!=0) {
|
||
LambdaQueryWrapper<QuestionBank> 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<InterviewSetting> queryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
queryWrapper.eq(InterviewSetting::getId,id);
|
||
|
||
InterviewSetting findJobSetting = interviewSettingMapper.selectOne(queryWrapper);
|
||
|
||
if(findJobSetting==null){
|
||
return -1;
|
||
}
|
||
Integer rows = interviewSettingMapper.deleteById(id);
|
||
|
||
return rows;
|
||
}
|
||
|
||
@Override
|
||
public Integer updateJobSetting(Integer id, Integer jobId, Integer imagesId, Integer backgroundId, Integer logoId, Integer Professional, Integer Comprehensive, Integer Psychology, Integer userId, String jobPromote, String encoding) {
|
||
//根据id查找岗位设置
|
||
LambdaQueryWrapper<InterviewSetting> queryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
queryWrapper.eq(InterviewSetting::getId,id);
|
||
|
||
InterviewSetting findSetting = interviewSettingMapper.selectOne(queryWrapper);
|
||
|
||
if(findSetting==null){
|
||
return -1;
|
||
}
|
||
|
||
findSetting.setImagesId(imagesId);
|
||
findSetting.setLogoId(logoId);
|
||
findSetting.setBackgroundId(backgroundId);
|
||
findSetting.setPsychology(Psychology);
|
||
findSetting.setProfessional(Professional);
|
||
findSetting.setComprehensive(Comprehensive);
|
||
findSetting.setUpdateTime(TimeUtil.getTime());
|
||
findSetting.setUpdateUser(userId);
|
||
|
||
return interviewSettingMapper.updateById(findSetting);
|
||
|
||
}
|
||
|
||
@Override
|
||
public Map<String, Object> getJobSettingByJobId(Integer jobId) {
|
||
Map<String,Object> result=new HashMap<>();
|
||
|
||
LambdaQueryWrapper<InterviewSetting> queryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
queryWrapper.eq(InterviewSetting::getJobId,jobId);
|
||
|
||
InterviewSetting interviewSetting = interviewSettingMapper.selectOne(queryWrapper);
|
||
|
||
if(interviewSetting.getProfessional()!=0){
|
||
|
||
Map<String ,Object> Professional=new HashMap<>();
|
||
|
||
LambdaQueryWrapper<Question> questionQueryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
questionQueryWrapper.eq(Question::getBankId,interviewSetting.getProfessional());
|
||
|
||
List<Question> ProfessionalQuestionList = questionMapper.selectList(questionQueryWrapper);
|
||
|
||
QuestionBank questionBank = bankMapper.selectById(interviewSetting.getProfessional());
|
||
|
||
Professional.put("ProfessionalName",questionBank.getTypeName());
|
||
|
||
Professional.put("ProfessionalQuestionList",ProfessionalQuestionList);
|
||
|
||
result.put("Professional",Professional);
|
||
}
|
||
|
||
if(interviewSetting.getComprehensive()!=0){
|
||
|
||
Map<String ,Object> Comprehensive=new HashMap<>();
|
||
|
||
LambdaQueryWrapper<Question> questionQueryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
questionQueryWrapper.eq(Question::getBankId,interviewSetting.getComprehensive());
|
||
|
||
List<Question> ComprehensiveQuestionList = questionMapper.selectList(questionQueryWrapper);
|
||
|
||
QuestionBank questionBank = bankMapper.selectById(interviewSetting.getComprehensive());
|
||
|
||
Comprehensive.put("ComprehensiveName",questionBank.getTypeName());
|
||
|
||
Comprehensive.put("ComprehensiveQuestionList",ComprehensiveQuestionList);
|
||
|
||
result.put("Comprehensive",Comprehensive);
|
||
|
||
}
|
||
|
||
if(interviewSetting.getPsychology()!=0){
|
||
|
||
Map<String ,Object> Psychology=new HashMap<>();
|
||
|
||
LambdaQueryWrapper<Question> questionQueryWrapper=new LambdaQueryWrapper<>();
|
||
|
||
questionQueryWrapper.eq(Question::getBankId,interviewSetting.getPsychology());
|
||
|
||
List<Question> PsychologyQuestionList = questionMapper.selectList(questionQueryWrapper);
|
||
|
||
QuestionBank questionBank = bankMapper.selectById(interviewSetting.getPsychology());
|
||
|
||
Psychology.put("PsychologyName",questionBank.getTypeName());
|
||
|
||
Psychology.put("PsychologyQuestionList",PsychologyQuestionList);
|
||
|
||
result.put("Psychology",Psychology);
|
||
|
||
}
|
||
|
||
return result;
|
||
|
||
}
|
||
}
|