diff --git a/src/main/java/com/yzdx/AiInterviewer/controller/QuestionController.java b/src/main/java/com/yzdx/AiInterviewer/controller/QuestionController.java index 7a84cf1..473f136 100644 --- a/src/main/java/com/yzdx/AiInterviewer/controller/QuestionController.java +++ b/src/main/java/com/yzdx/AiInterviewer/controller/QuestionController.java @@ -312,6 +312,29 @@ public class QuestionController { } return R.error(result); } + @GetMapping("/search_sharedQuestionType") + public R searchSharedQuestionType(String searchName){ + List sharedQuestionBankDtoList = sharedQuestionBankService.searchSharedQuestionType(searchName); + return R.success(sharedQuestionBankDtoList); + } + @GetMapping("/search_sharedQuestion") + public R searchSharedQuestion(String searchName){ + List sharedQuestionDtos = sharedQuestionService.searchSharedQuestion(searchName); + return R.success(sharedQuestionDtos); + + } + @PostMapping("/add_QuestionBankFromShare") + public R addQuestionBankFromShare(@RequestBody Map addInfo){ + List sharedBankIds = (List) addInfo.get("SharedBankIds"); + Integer userId =(Integer) addInfo.get("userId"); + String encoding =(String) addInfo.get("encoding"); + String result=sharedQuestionBankService.addQuestionTypeFromShare(sharedBankIds,userId,encoding); + + if(result.equals("题库:/n题目:已存在添加题库中")){ + return R.success("添加成功"); + } + return R.error(result); + } diff --git a/src/main/java/com/yzdx/AiInterviewer/service/SharedQuestionBankService.java b/src/main/java/com/yzdx/AiInterviewer/service/SharedQuestionBankService.java index 8acdcef..96a8210 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/SharedQuestionBankService.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/SharedQuestionBankService.java @@ -37,4 +37,21 @@ public interface SharedQuestionBankService extends IService */ SharedQuestionBank getShareQuestionTypeByCompany(String encoding); + /** + * 根据题库名称搜索分享题库 + * @param searchName 题库名称 + * @return 分享题库列表 + */ + List searchSharedQuestionType(String searchName); + + /** + * 根据分享题库添加题库 + * @param SharedBankIds + * @param userId + * @param encoding + * @return 题库 + */ + + String addQuestionTypeFromShare(ListSharedBankIds,Integer userId,String encoding); + } diff --git a/src/main/java/com/yzdx/AiInterviewer/service/SharedQuestionService.java b/src/main/java/com/yzdx/AiInterviewer/service/SharedQuestionService.java index f407fb6..eec8b76 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/SharedQuestionService.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/SharedQuestionService.java @@ -23,4 +23,13 @@ public interface SharedQuestionService extends IService { List getSharedQuestionListBySharedBankId(Integer SharedBankId); + /** + * 根据分享题目名称搜索分享题目 + * @param searchName + * @return 分享的题目 + */ + List searchSharedQuestion(String searchName); + + + } diff --git a/src/main/java/com/yzdx/AiInterviewer/service/impl/SharedQuestionBankServiceImpl.java b/src/main/java/com/yzdx/AiInterviewer/service/impl/SharedQuestionBankServiceImpl.java index ce6e475..eb1099b 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/impl/SharedQuestionBankServiceImpl.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/impl/SharedQuestionBankServiceImpl.java @@ -3,12 +3,12 @@ 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.BaseEntity; -import com.yzdx.AiInterviewer.entity.Company; -import com.yzdx.AiInterviewer.entity.SharedQuestionBank; -import com.yzdx.AiInterviewer.entity.User; +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; @@ -17,6 +17,7 @@ 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; @@ -28,6 +29,12 @@ public class SharedQuestionBankServiceImpl extends ServiceImpl searchSharedQuestionType(String searchName) { + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.like(SharedQuestionBank::getTypeName,searchName); + List sharedQuestionBanks = sharedQuestionBankMapper.selectList(queryWrapper); + List 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(ListSharedBankIds, Integer userId, String encoding) { + String bankResult="题库:"; + String questionResult="题目:"; + //遍历分享题库id + for (Integer SharedBankId:SharedBankIds) { + //根据分享题库id查找每条分享题库的信息 + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(SharedQuestionBank::getId,SharedBankId); + SharedQuestionBank sharedQuestionBank = sharedQuestionBankMapper.selectOne(queryWrapper); + //根据分享题库的信息添加题库信息 + LambdaQueryWrapper 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 queryWrapper2=new LambdaQueryWrapper<>(); + queryWrapper2.eq(QuestionBank::getTypeName,sharedQuestionBank.getTypeName()).eq(QuestionBank::getCompanyEncoding,encoding); + QuestionBank questionBank2 = questionBankMapper.selectOne(queryWrapper2); + Integer bankId = questionBank2.getId(); + //根据题库id查找分享题目的信息 + LambdaQueryWrapper queryWrapper3=new LambdaQueryWrapper<>(); + queryWrapper3.eq(SharedQuestion::getBankId,sharedQuestionBank.getId()); + List sharedQuestions = sharedQuestionMapper.selectList(queryWrapper3); + for (SharedQuestion sharedQuestion: + sharedQuestions) { + //根据题目信息添加题目 + LambdaQueryWrapper 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+"已存在添加题库中"; + } + + + } + + + diff --git a/src/main/java/com/yzdx/AiInterviewer/service/impl/SharedQuestionServiceImpl.java b/src/main/java/com/yzdx/AiInterviewer/service/impl/SharedQuestionServiceImpl.java index cc86097..3cc6c0e 100644 --- a/src/main/java/com/yzdx/AiInterviewer/service/impl/SharedQuestionServiceImpl.java +++ b/src/main/java/com/yzdx/AiInterviewer/service/impl/SharedQuestionServiceImpl.java @@ -152,5 +152,39 @@ public class SharedQuestionServiceImpl extends ServiceImpl searchSharedQuestion(String searchName) { + LambdaQueryWrapper sharedQuestionLambdaQueryWrapper =new LambdaQueryWrapper<>(); + sharedQuestionLambdaQueryWrapper.like(SharedQuestion::getTitle,searchName); + List list = sharedQuestionMapper.selectList(sharedQuestionLambdaQueryWrapper); + List sharedQuestionDtos=list.stream().map(item->{ + SharedQuestionDto sharedQuestionDto=new SharedQuestionDto(); + + BeanUtils.copyProperties(item,sharedQuestionDto); + + User findCreateUser = userService.getUserById(sharedQuestionDto.getCreateUser()); + + sharedQuestionDto.setCreateUserName(findCreateUser.getUsername()); + + User findUpdateUser = userService.getUserById(sharedQuestionDto.getUpdateUser()); + + sharedQuestionDto.setUpdateUserName(findUpdateUser.getUsername()); + + SharedQuestionBank sharedQuestionBankById = sharedQuestionBankService.getSharedQuestionBankById(sharedQuestionDto.getBankId()); + + sharedQuestionDto.setSharedQuestionBankName(sharedQuestionBankById.getTypeName()); + + Company companyDetail = companyService.getCompanyDetail(sharedQuestionDto.getCreateCompany()); + + sharedQuestionDto.setCreateCompanyName(companyDetail.getCompanyName()); + + return sharedQuestionDto; + + }).collect(Collectors.toList()); + + return sharedQuestionDtos; + } + + }