package com.mindskip.xzs.service.impl; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.mindskip.xzs.domain.QuestionAnswer; import com.mindskip.xzs.domain.enums.QuestionAnswerStatusEnum; import com.mindskip.xzs.domain.vo.QuestionAnswerVO; import com.mindskip.xzs.repository.QuestionAnswerMapper; import com.mindskip.xzs.service.QuestionAnswerService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import java.util.List; /** * @author gonghl * @description 针对表【t_question_answer(问答)】的数据库操作Service实现 * @createDate 2024-05-11 11:53:55 */ @Service @RequiredArgsConstructor public class QuestionAnswerServiceImpl extends ServiceImpl implements QuestionAnswerService { private final QuestionAnswerMapper questionAnswerMapper; @Override public void updateStatus(Integer id) { new LambdaUpdateChainWrapper<>(questionAnswerMapper) .eq(QuestionAnswer::getId, id) .set(QuestionAnswer::getStatus, "1".equals(getById(id).getStatus().getCode()) ? QuestionAnswerStatusEnum.DISABLE : QuestionAnswerStatusEnum.ENABLE) .update(); } @Override public PageInfo questionAnswerPage(QuestionAnswerVO questionAnswerVO) { return PageHelper.startPage(questionAnswerVO.getPageIndex(), questionAnswerVO.getPageSize()).doSelectPageInfo(() -> new LambdaQueryChainWrapper<>(questionAnswerMapper) .like(StringUtils.hasText(questionAnswerVO.getQuestion()), QuestionAnswer::getQuestion, questionAnswerVO.getQuestion()) .or(StringUtils.hasText(questionAnswerVO.getQuestion()), wrapper -> wrapper.like(QuestionAnswer::getAnswer, questionAnswerVO.getQuestion())) .orderByAsc(QuestionAnswer::getSequence) .list()); } @Override public List list() { return new LambdaQueryChainWrapper<>(questionAnswerMapper) .eq(QuestionAnswer::getStatus, QuestionAnswerStatusEnum.ENABLE.getCode()) .orderByAsc(QuestionAnswer::getSequence) .list(); } @Override public Integer getLastSequence() { return questionAnswerMapper.getLastSequence(); } }