You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
remotebelongstous/online-exam-backend/src/main/java/com/shanzhu/oe/serviceimpl/ExamManageServiceImpl.java

118 lines
2.9 KiB

package com.shanzhu.oe.serviceimpl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.shanzhu.oe.entity.ExamManage;
import com.shanzhu.oe.mapper.ExamManageMapper;
import com.shanzhu.oe.service.ExamManageService;
import com.shanzhu.oe.service.PaperService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 考试管理 服务层实现类
*
* @author: ShanZhu
* @date: 2023-11-20
*/
@Service
@RequiredArgsConstructor
public class ExamManageServiceImpl implements ExamManageService {
private final ExamManageMapper examManageMapper;
private final PaperService paperService;
/**
* 查询所有考试
*
* @return 考试列表
*/
@Override
public List<ExamManage> findAll() {
Page<ExamManage> examManage = new Page<>(0, 9999);
List<ExamManage> examManageList = examManageMapper.findAll(examManage).getRecords();
setMaxScore(examManageList);
return examManageList;
}
/**
* 查询考试 分页
*
* @param page 分页对象
* @return 考试列表
*/
@Override
public IPage<ExamManage> findAll(Page<ExamManage> page) {
IPage<ExamManage> iPage = examManageMapper.findAll(page);
setMaxScore(iPage.getRecords());
return iPage;
}
/**
* 根据考试编号查询考试信息
*
* @param examCode 考试编好
* @return 考试信息
*/
@Override
public ExamManage findById(Integer examCode) {
ExamManage examManage = examManageMapper.findById(examCode);
examManage.setTotalScore(paperService.getMaxScore(examManage.getPaperId()));
return examManage;
}
/**
* 根据考试编号删除
*
* @param examCode 考试编号
*/
@Override
public Integer delete(Integer examCode) {
return examManageMapper.delete(examCode);
}
/**
* 更新考试信息
*
* @param examManage 考试信息
*/
@Override
public Integer update(ExamManage examManage) {
return examManageMapper.update(examManage);
}
/**
* 添加考试信息
*
* @param examManage 考试信息
*/
@Override
public Integer add(ExamManage examManage) {
return examManageMapper.add(examManage);
}
/**
* 查询最后一条记录的paperId,返回给前端达到自增效果
*
* @return 最后一条记录
*/
@Override
public ExamManage findOnlyPaperId() {
return examManageMapper.findOnlyPaperId();
}
/**
* 设置最高分
*
* @param examManageList
*/
private void setMaxScore(List<ExamManage> examManageList) {
for (ExamManage examManage : examManageList) {
examManage.setTotalScore(paperService.getMaxScore(examManage.getPaperId()));
}
}
}