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;
|
import java.util.Objects;
|
|
/**
|
* @author gonghl
|
* @description 针对表【t_question_answer(问答)】的数据库操作Service实现
|
* @createDate 2024-05-11 11:53:55
|
*/
|
@Service
|
@RequiredArgsConstructor
|
public class QuestionAnswerServiceImpl extends ServiceImpl<QuestionAnswerMapper, QuestionAnswer> 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<QuestionAnswerVO> 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<QuestionAnswer> list() {
|
return new LambdaQueryChainWrapper<>(questionAnswerMapper)
|
.eq(QuestionAnswer::getStatus, QuestionAnswerStatusEnum.ENABLE.getCode())
|
.orderByAsc(QuestionAnswer::getSequence)
|
.list();
|
}
|
|
|
@Override
|
public Integer getLastSequence() {
|
QuestionAnswer one = new LambdaQueryChainWrapper<>(questionAnswerMapper)
|
.orderByDesc(QuestionAnswer::getSequence)
|
.last("limit 1")
|
.one();
|
return Objects.isNull(one) ? 1 : one.getSequence() + 1;
|
}
|
|
}
|