package cc.mrbird.febs.ai.service.impl; import cc.mrbird.febs.ai.entity.AiMemberAnswerItem; import cc.mrbird.febs.ai.mapper.AiMemberAnswerItemMapper; import cc.mrbird.febs.ai.service.AiMemberAnswerItemService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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; /** * AI用户答题记录子表 Service实现类 * * @author yourname * @date 2025-07-29 */ @Slf4j @Service @RequiredArgsConstructor public class AiMemberAnswerItemServiceImpl extends ServiceImpl implements AiMemberAnswerItemService { private final AiMemberAnswerItemMapper aiMemberAnswerItemMapper; @Override public AiMemberAnswerItem getById(String id) { return this.getById(id); } @Override public List getByAnswerId(String answerId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(AiMemberAnswerItem::getAnswerId, answerId); queryWrapper.orderByAsc(AiMemberAnswerItem::getCreatedTime); return this.list(queryWrapper); } @Override public List getByMemberId(String memberId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(AiMemberAnswerItem::getMemberId, memberId); queryWrapper.orderByDesc(AiMemberAnswerItem::getCreatedTime); return this.list(queryWrapper); } @Override public List getByProductId(String productId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(AiMemberAnswerItem::getProductId, productId); queryWrapper.orderByDesc(AiMemberAnswerItem::getCreatedTime); return this.list(queryWrapper); } @Override public List getByProductQuestionParentId(String productQuestionParentId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(AiMemberAnswerItem::getProductQuestionParentId, productQuestionParentId); queryWrapper.orderByAsc(AiMemberAnswerItem::getCreatedTime); return this.list(queryWrapper); } @Override public List getByProductQuestionId(String productQuestionId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(AiMemberAnswerItem::getProductQuestionId, productQuestionId); queryWrapper.orderByAsc(AiMemberAnswerItem::getCreatedTime); return this.list(queryWrapper); } @Override public List getByMemberAnswerState(Integer memberAnswerState) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(AiMemberAnswerItem::getMemberAnswerState, memberAnswerState); queryWrapper.orderByDesc(AiMemberAnswerItem::getCreatedTime); return this.list(queryWrapper); } @Override public List getByIsCollected(Integer isCollected) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(AiMemberAnswerItem::getIsCollected, isCollected); queryWrapper.orderByDesc(AiMemberAnswerItem::getCreatedTime); return this.list(queryWrapper); } @Override public List getByCompanyIdAndMemberId(String companyId, String memberId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(AiMemberAnswerItem::getCompanyId, companyId); queryWrapper.eq(AiMemberAnswerItem::getMemberId, memberId); queryWrapper.orderByDesc(AiMemberAnswerItem::getCreatedTime); return this.list(queryWrapper); } @Override @Transactional(rollbackFor = Exception.class) public boolean saveAnswerItem(AiMemberAnswerItem aiMemberAnswerItem) { try { return this.save(aiMemberAnswerItem); } catch (Exception e) { log.error("保存答题记录项失败: ", e); return false; } } @Override @Transactional(rollbackFor = Exception.class) public boolean saveBatchAnswerItems(List answerItems) { try { return this.saveBatch(answerItems); } catch (Exception e) { log.error("批量保存答题记录项失败: ", e); return false; } } @Override @Transactional(rollbackFor = Exception.class) public boolean updateAnswerItem(AiMemberAnswerItem aiMemberAnswerItem) { try { return this.updateById(aiMemberAnswerItem); } catch (Exception e) { log.error("更新答题记录项失败: ", e); return false; } } @Override @Transactional(rollbackFor = Exception.class) public boolean deleteById(String id) { try { return this.removeById(id); } catch (Exception e) { log.error("删除答题记录项失败: ", e); return false; } } @Override @Transactional(rollbackFor = Exception.class) public boolean deleteByAnswerId(String answerId) { try { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(AiMemberAnswerItem::getAnswerId, answerId); return this.remove(queryWrapper); } catch (Exception e) { log.error("根据答题记录ID删除答题记录项失败: ", e); return false; } } }