Ai-interviewer-system/src/main/java/com/yzdx/AiInterviewer/service/impl/SharedQuestionBankServiceIm...

289 lines
12 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.comment.R;
import com.yzdx.AiInterviewer.entity.*;
import com.yzdx.AiInterviewer.entity.dto.SharedQuestionBankDto;
import com.yzdx.AiInterviewer.mapper.QuestionBankMapper;
import com.yzdx.AiInterviewer.mapper.QuestionMapper;
import com.yzdx.AiInterviewer.mapper.SharedQuestionBankMapper;
import com.yzdx.AiInterviewer.mapper.SharedQuestionMapper;
import com.yzdx.AiInterviewer.service.CompanyService;
import com.yzdx.AiInterviewer.service.SharedQuestionBankService;
import com.yzdx.AiInterviewer.service.UserService;
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.List;
import java.util.stream.Collectors;
@Service
public class SharedQuestionBankServiceImpl extends ServiceImpl<SharedQuestionBankMapper,SharedQuestionBank> implements SharedQuestionBankService{
@Autowired
private SharedQuestionBankMapper sharedQuestionBankMapper;
@Autowired
private CompanyService companyService;
@Autowired
private UserService userService;
@Autowired
private QuestionBankMapper questionBankMapper;
@Autowired
private SharedQuestionMapper sharedQuestionMapper;
@Autowired
private QuestionMapper questionMapper;///
@Override
public SharedQuestionBank addSharedQuestionBank(String typeName, Integer type, String description, Integer userId,String encoding) {
LambdaQueryWrapper<SharedQuestionBank> queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.eq(SharedQuestionBank::getTypeName,typeName).eq(SharedQuestionBank::getCreateCompany,encoding);
SharedQuestionBank sharedQuestionBank = sharedQuestionBankMapper.selectOne(queryWrapper);
if (sharedQuestionBank!=null){
return null;
}
SharedQuestionBank newSharedBank=new SharedQuestionBank();
newSharedBank.setTypeName(typeName);
newSharedBank.setType(type);
newSharedBank.setDescription(description);
newSharedBank.setCreateUser(userId);
newSharedBank.setUpdateUser(userId);
newSharedBank.setUpdateTime(TimeUtil.getTime());
newSharedBank.setCreateTime(TimeUtil.getTime());
newSharedBank.setCreateCompany(encoding);
sharedQuestionBankMapper.insert(newSharedBank);
LambdaQueryWrapper<SharedQuestionBank> bankLambdaQueryWrapper=new LambdaQueryWrapper<>();
bankLambdaQueryWrapper.eq(SharedQuestionBank::getTypeName,typeName).eq(BaseEntity::getCreateUser,userId);
return sharedQuestionBankMapper.selectOne(bankLambdaQueryWrapper);
}
@Override
public SharedQuestionBank getSharedQuestionBankById(Integer bankId) {
LambdaQueryWrapper<SharedQuestionBank> queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.eq(SharedQuestionBank::getId,bankId);
SharedQuestionBank sharedQuestionBank = sharedQuestionBankMapper.selectOne(queryWrapper);
return sharedQuestionBank;
}
@Override
public List<SharedQuestionBankDto> getSharedQuestionBank() {
List<SharedQuestionBank> sharedQuestionBanks = sharedQuestionBankMapper.selectList(null);
List<SharedQuestionBankDto> sharedQuestionBankDtos=sharedQuestionBanks.stream().map(item->{
SharedQuestionBankDto sharedQuestionBankDto=new SharedQuestionBankDto();
BeanUtils.copyProperties(item,sharedQuestionBankDto);
Company companyDetail = companyService.getCompanyDetail(sharedQuestionBankDto.getCreateCompany());
sharedQuestionBankDto.setCreateCompany(null);
sharedQuestionBankDto.setCreateCompanyName(companyDetail.getCompanyName());
User createUser = userService.getUserById(sharedQuestionBankDto.getCreateUser());
sharedQuestionBankDto.setCreateUserName(createUser.getUsername());
User updateUser = userService.getUserById(sharedQuestionBankDto.getUpdateUser());
sharedQuestionBankDto.setUpdateUserName(updateUser.getUsername());
return sharedQuestionBankDto;
}).collect(Collectors.toList());
return sharedQuestionBankDtos;
}
@Override
public SharedQuestionBank getShareQuestionTypeByCompany(String encoding){
LambdaQueryWrapper<SharedQuestionBank> queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.eq(SharedQuestionBank::getCreateCompany,encoding);
SharedQuestionBank sharedQuestionBank =sharedQuestionBankMapper.selectOne(queryWrapper);
return sharedQuestionBank;
}
@Override
public List<SharedQuestionBankDto> searchSharedQuestionType(String searchName) {
LambdaQueryWrapper<SharedQuestionBank> queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.like(SharedQuestionBank::getTypeName,searchName);
List<SharedQuestionBank> sharedQuestionBanks = sharedQuestionBankMapper.selectList(queryWrapper);
List<SharedQuestionBankDto> sharedQuestionBankDtos=sharedQuestionBanks.stream().map(item->{
SharedQuestionBankDto sharedQuestionBankDto=new SharedQuestionBankDto();
BeanUtils.copyProperties(item,sharedQuestionBankDto);
Company companyDetail = companyService.getCompanyDetail(sharedQuestionBankDto.getCreateCompany());
sharedQuestionBankDto.setCreateCompany(null);
sharedQuestionBankDto.setCreateCompanyName(companyDetail.getCompanyName());
User createUser = userService.getUserById(sharedQuestionBankDto.getCreateUser());
sharedQuestionBankDto.setCreateUserName(createUser.getUsername());
User updateUser = userService.getUserById(sharedQuestionBankDto.getUpdateUser());
sharedQuestionBankDto.setUpdateUserName(updateUser.getUsername());
return sharedQuestionBankDto;
}).collect(Collectors.toList());
return sharedQuestionBankDtos;
}
@Override
public String addQuestionTypeFromShare(List<Integer>SharedBankIds, Integer userId, String encoding) {
String bankResult="题库:";
String questionResult="题目:";
//遍历分享题库id
for (Integer SharedBankId:SharedBankIds) {
//根据分享题库id查找每条分享题库的信息
LambdaQueryWrapper<SharedQuestionBank> queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.eq(SharedQuestionBank::getId,SharedBankId);
SharedQuestionBank sharedQuestionBank = sharedQuestionBankMapper.selectOne(queryWrapper);
//根据分享题库的信息添加题库信息
LambdaQueryWrapper<QuestionBank> queryWrapper1=new LambdaQueryWrapper<>();
queryWrapper1.eq(QuestionBank::getTypeName,sharedQuestionBank.getTypeName());
QuestionBank questionBank1 = questionBankMapper.selectOne(queryWrapper1);
if (questionBank1!=null){
bankResult=bankResult+sharedQuestionBank.getTypeName();
continue;
}
QuestionBank questionBank=new QuestionBank();
questionBank.setTypeName(sharedQuestionBank.getTypeName());
questionBank.setType(sharedQuestionBank.getType());
questionBank.setDescription(sharedQuestionBank.getDescription());
questionBank.setCompanyEncoding(encoding);
questionBank.setCreateUser(userId);
questionBank.setUpdateUser(userId);
questionBank.setCreateTime(TimeUtil.getTime());
questionBank.setUpdateTime(TimeUtil.getTime());
//将新数据插入到题库中
questionBankMapper.insert(questionBank);
//根据题库名字公司编码查找题库中的题库id
LambdaQueryWrapper<QuestionBank> queryWrapper2=new LambdaQueryWrapper<>();
queryWrapper2.eq(QuestionBank::getTypeName,sharedQuestionBank.getTypeName()).eq(QuestionBank::getCompanyEncoding,encoding);
QuestionBank questionBank2 = questionBankMapper.selectOne(queryWrapper2);
Integer bankId = questionBank2.getId();
//根据题库id查找分享题目的信息
LambdaQueryWrapper<SharedQuestion> queryWrapper3=new LambdaQueryWrapper<>();
queryWrapper3.eq(SharedQuestion::getBankId,sharedQuestionBank.getId());
List<SharedQuestion> sharedQuestions = sharedQuestionMapper.selectList(queryWrapper3);
for (SharedQuestion sharedQuestion:
sharedQuestions) {
//根据题目信息添加题目
LambdaQueryWrapper<Question> queryWrapper4=new LambdaQueryWrapper<>();
queryWrapper4.eq(Question::getTitle,sharedQuestion.getTitle()).eq(Question::getCompanyEncoding,encoding);
Question questions = questionMapper.selectOne(queryWrapper4);
if(questions!=null){
questionResult=questionResult+sharedQuestion.getTitle();
continue;
}
Question question=new Question();
question.setDetails(sharedQuestion.getDetails());
question.setBankId(bankId);
question.setPromote(sharedQuestion.getPromote());
question.setCompanyEncoding(encoding);
question.setTitle(sharedQuestion.getTitle());
question.setCreateTime(TimeUtil.getTime());
question.setUpdateTime(TimeUtil.getTime());
question.setCreateUser(userId);
question.setUpdateUser(userId);
questionMapper.insert(question);
}
}
return bankResult+"/n"+questionResult+"已存在添加题库中";
}
@Override
public List<SharedQuestionBankDto> getOurQuestionTypeList(String encoding) {
LambdaQueryWrapper<SharedQuestionBank> queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.eq(SharedQuestionBank::getCreateCompany,encoding);
List<SharedQuestionBank> sharedQuestionBanks = sharedQuestionBankMapper.selectList(queryWrapper);
List<SharedQuestionBankDto> sharedQuestionBankDtos=sharedQuestionBanks.stream().map(item->{
SharedQuestionBankDto sharedQuestionBankDto=new SharedQuestionBankDto();
BeanUtils.copyProperties(item,sharedQuestionBankDto);
Company companyDetail = companyService.getCompanyDetail(sharedQuestionBankDto.getCreateCompany());
sharedQuestionBankDto.setCreateCompany(null);
sharedQuestionBankDto.setCreateCompanyName(companyDetail.getCompanyName());
User createUser = userService.getUserById(sharedQuestionBankDto.getCreateUser());
sharedQuestionBankDto.setCreateUserName(createUser.getUsername());
User updateUser = userService.getUserById(sharedQuestionBankDto.getUpdateUser());
sharedQuestionBankDto.setUpdateUserName(updateUser.getUsername());
return sharedQuestionBankDto;
}).collect(Collectors.toList());
return sharedQuestionBankDtos;
}
@Override
public List<SharedQuestionBankDto> searchOurSharedQuestionType(String encoding, String searchName) {
LambdaQueryWrapper<SharedQuestionBank> queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.like(SharedQuestionBank::getCreateCompany,encoding).like(SharedQuestionBank::getTypeName,searchName);
List<SharedQuestionBank> sharedQuestionBanks = sharedQuestionBankMapper.selectList(queryWrapper);
List<SharedQuestionBankDto> sharedQuestionBankDtos=sharedQuestionBanks.stream().map(item->{
SharedQuestionBankDto sharedQuestionBankDto=new SharedQuestionBankDto();
BeanUtils.copyProperties(item,sharedQuestionBankDto);
Company companyDetail = companyService.getCompanyDetail(sharedQuestionBankDto.getCreateCompany());
sharedQuestionBankDto.setCreateCompany(null);
sharedQuestionBankDto.setCreateCompanyName(companyDetail.getCompanyName());
User createUser = userService.getUserById(sharedQuestionBankDto.getCreateUser());
sharedQuestionBankDto.setCreateUserName(createUser.getUsername());
User updateUser = userService.getUserById(sharedQuestionBankDto.getUpdateUser());
sharedQuestionBankDto.setUpdateUserName(updateUser.getUsername());
return sharedQuestionBankDto;
}).collect(Collectors.toList());
return sharedQuestionBankDtos;
}
}