| | |
| | | package cc.mrbird.febs.ai.service.impl; |
| | | |
| | | import cc.mrbird.febs.ai.entity.AiProductQuestion; |
| | | import cc.mrbird.febs.ai.entity.AiProductQuestionLink; |
| | | import cc.mrbird.febs.ai.mapper.AiProductQuestionMapper; |
| | | import cc.mrbird.febs.ai.service.AiProductQuestionLinkService; |
| | | import cc.mrbird.febs.ai.service.AiProductQuestionService; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.RandomUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.List; |
| | | import java.util.Set; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * AI产品题目 Service实现类 |
| | |
| | | public class AiProductQuestionServiceImpl extends ServiceImpl<AiProductQuestionMapper, AiProductQuestion> implements AiProductQuestionService { |
| | | |
| | | private final AiProductQuestionMapper aiProductQuestionMapper; |
| | | private final AiProductQuestionLinkService aiProductQuestionLinkService; |
| | | |
| | | |
| | | @Override |
| | | public AiProductQuestion getById(String id) { |
| | | return aiProductQuestionMapper.selectById( id); |
| | | } |
| | | |
| | | @Override |
| | | public List<AiProductQuestion> getListByQuery(LambdaQueryWrapper<AiProductQuestion> questionLambdaQueryWrapper) { |
| | | return aiProductQuestionMapper.selectList(questionLambdaQueryWrapper); |
| | | } |
| | | |
| | | @Override |
| | | public AiProductQuestion createQuestion(String productId) { |
| | | AiProductQuestion aiProductQuestion = new AiProductQuestion(); |
| | | |
| | | LambdaQueryWrapper<AiProductQuestionLink> aiProductQuestionLinkLambdaQueryWrapper = Wrappers.lambdaQuery(AiProductQuestionLink.class); |
| | | aiProductQuestionLinkLambdaQueryWrapper.eq(AiProductQuestionLink::getProductId, productId); |
| | | List<AiProductQuestionLink> linkList = aiProductQuestionLinkService.getListByQuery(aiProductQuestionLinkLambdaQueryWrapper); |
| | | if(CollUtil.isNotEmpty(linkList)){ |
| | | List<String> collect = linkList.stream().map(AiProductQuestionLink::getProductQuestionId).collect(Collectors.toList()); |
| | | if(CollUtil.isNotEmpty( collect)){ |
| | | String questionId = RandomUtil.randomEle(collect); |
| | | aiProductQuestion = this.getById(questionId); |
| | | } |
| | | } |
| | | return aiProductQuestion; |
| | | } |
| | | } |