12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package cn.com.qmth.mps.service.impl;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import org.apache.commons.collections4.CollectionUtils;
- import org.springframework.dao.DuplicateKeyException;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import cn.com.qmth.mps.bean.PaperDetailUnit;
- import cn.com.qmth.mps.dao.PaperDetailUnitDao;
- import cn.com.qmth.mps.entity.PaperDetailEntity;
- import cn.com.qmth.mps.entity.PaperDetailUnitEntity;
- import cn.com.qmth.mps.exception.DisruptedException;
- import cn.com.qmth.mps.service.PaperDetailUnitService;
- @Service
- public class PaperDetailUnitServiceImpl extends ServiceImpl<PaperDetailUnitDao, PaperDetailUnitEntity>
- implements PaperDetailUnitService {
- @Override
- public Map<Long, List<PaperDetailUnit>> getStructInfo(Long paperId) {
- List<PaperDetailUnitEntity> list = getStructUnitInfo(paperId);
- if (CollectionUtils.isEmpty(list)) {
- return null;
- }
- Map<Long, List<PaperDetailUnit>> ret = new HashMap<>();
- for (PaperDetailUnitEntity e : list) {
- List<PaperDetailUnit> tem = ret.get(e.getDetailId());
- if (tem == null) {
- tem = new ArrayList<>();
- ret.put(e.getDetailId(), tem);
- }
- PaperDetailUnit vo = new PaperDetailUnit();
- vo.setNumber(e.getNumber());
- vo.setScore(e.getScore());
- vo.setScoreStep(e.getScoreStep());
- tem.add(vo);
- }
- return ret;
- }
- private List<PaperDetailUnitEntity> getStructUnitInfo(Long paperId) {
- QueryWrapper<PaperDetailUnitEntity> wrapper = new QueryWrapper<>();
- LambdaQueryWrapper<PaperDetailUnitEntity> lw = wrapper.lambda();
- lw.eq(PaperDetailUnitEntity::getPaperId, paperId);
- lw.orderByAsc(PaperDetailUnitEntity::getNumber);
- return this.list(wrapper);
- }
- @Override
- public Integer countByPaperId(Long paperId) {
- QueryWrapper<PaperDetailUnitEntity> wrapper = new QueryWrapper<>();
- LambdaQueryWrapper<PaperDetailUnitEntity> lw = wrapper.lambda();
- lw.eq(PaperDetailUnitEntity::getPaperId, paperId);
- return this.count(wrapper);
- }
- @Transactional
- @Override
- public void clearByPaperId(Long paperId) {
- QueryWrapper<PaperDetailUnitEntity> wrapper = new QueryWrapper<>();
- LambdaQueryWrapper<PaperDetailUnitEntity> lw = wrapper.lambda();
- lw.eq(PaperDetailUnitEntity::getPaperId, paperId);
- this.remove(wrapper);
- }
- @Transactional
- @Override
- public void saveUnit(PaperDetailEntity detail, List<PaperDetailUnit> units) {
- List<PaperDetailUnitEntity> ret = new ArrayList<>();
- for (PaperDetailUnit u : units) {
- PaperDetailUnitEntity e = new PaperDetailUnitEntity();
- e.setDetailId(detail.getId());
- e.setDetailNumber(detail.getNumber());
- e.setObjective(false);
- e.setNumber(u.getNumber());
- e.setScore(u.getScore());
- e.setScoreStep(u.getScoreStep());
- e.setPaperId(detail.getPaperId());
- ret.add(e);
- }
- try {
- this.saveBatch(ret);
- } catch (DuplicateKeyException e) {
- throw new DisruptedException("小题号有重复");
- }
- }
- }
|