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.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Set; import java.util.stream.Collectors; /** * AI产品题目 Service实现类 * * @author yourname * @date 2025-07-29 */ @Slf4j @Service @RequiredArgsConstructor public class AiProductQuestionServiceImpl extends ServiceImpl implements AiProductQuestionService { private final AiProductQuestionMapper aiProductQuestionMapper; private final AiProductQuestionLinkService aiProductQuestionLinkService; @Override public AiProductQuestion getById(String id) { return aiProductQuestionMapper.selectById( id); } @Override public List getListByQuery(LambdaQueryWrapper questionLambdaQueryWrapper) { return aiProductQuestionMapper.selectList(questionLambdaQueryWrapper); } @Override public AiProductQuestion createQuestion(String productId) { AiProductQuestion aiProductQuestion = new AiProductQuestion(); LambdaQueryWrapper aiProductQuestionLinkLambdaQueryWrapper = Wrappers.lambdaQuery(AiProductQuestionLink.class); aiProductQuestionLinkLambdaQueryWrapper.eq(AiProductQuestionLink::getProductId, productId); List linkList = aiProductQuestionLinkService.getListByQuery(aiProductQuestionLinkLambdaQueryWrapper); if(CollUtil.isNotEmpty(linkList)){ List collect = linkList.stream().map(AiProductQuestionLink::getProductQuestionId).collect(Collectors.toList()); if(CollUtil.isNotEmpty( collect)){ String questionId = RandomUtil.randomEle(collect); aiProductQuestion = this.getById(questionId); } } return aiProductQuestion; } }