PaperExercisesServiceImpl.java 2.02 KB
package com.meishu.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.meishu.common.exception.HttpException;
import com.meishu.dto.paper.AddPaperExerciseDTO;
import com.meishu.mapper.PaperExercisesMapper;
import com.meishu.model.PaperExercisesDO;
import com.meishu.service.PaperExercisesService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.meishu.util.ConstantUtils;
import com.meishu.vo.exercise.LabelExercisesVO;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 * 考试-题目映射表 服务实现类
 * </p>
 *
 * @author Tuyp
 * @since 2023-07-11
 */
@Service
public class PaperExercisesServiceImpl extends ServiceImpl<PaperExercisesMapper, PaperExercisesDO> implements PaperExercisesService {

    public List<LabelExercisesVO> exercises(PaperExercisesDO paperExercisesDO) {
        return this.baseMapper.getPaperExercises(paperExercisesDO.getPaperId());
    }

    public String deletePaperExercise(LabelExercisesVO labelExercisesVO) {
        this.baseMapper.deleteById(labelExercisesVO.getPaperExerciseId());
        return ConstantUtils.DELETE_SUCCESS;
    }

    public String addPaperExercise(AddPaperExerciseDTO addPaperExerciseDTO) {

        List<Long> exerciseIds = addPaperExerciseDTO.getExerciseIds();

        for (Long exerciseId : exerciseIds){
            int count = this.baseMapper.selectCount(new QueryWrapper<PaperExercisesDO>()
                    .lambda()
                    .eq(PaperExercisesDO::getPaperId,addPaperExerciseDTO.getPaperId())
                    .eq(PaperExercisesDO::getExerciseId,exerciseId));
            PaperExercisesDO paperExercisesDO = new PaperExercisesDO();
            paperExercisesDO.setPaperId(addPaperExerciseDTO.getPaperId());
            paperExercisesDO.setExerciseId(exerciseId);
            if (count > 0){
                throw new HttpException(30002);
            }
            this.baseMapper.insert(paperExercisesDO);
        }
        return ConstantUtils.ADD_SUCCESS;
    }

}