123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- package com.qxgmat.service.inline;
- import com.github.pagehelper.Page;
- import com.nuliji.tools.AbstractService;
- import com.nuliji.tools.PageResult;
- import com.nuliji.tools.Tools;
- import com.nuliji.tools.Transform;
- import com.nuliji.tools.exception.ParameterException;
- import com.nuliji.tools.exception.SystemException;
- import com.nuliji.tools.mybatis.Example;
- import com.qxgmat.data.constants.enums.QuestionType;
- import com.qxgmat.data.constants.enums.module.CourseModule;
- import com.qxgmat.data.constants.enums.module.PaperModule;
- import com.qxgmat.data.constants.enums.module.PaperOrigin;
- import com.qxgmat.data.constants.enums.module.QuestionModule;
- import com.qxgmat.data.constants.enums.status.DirectionStatus;
- import com.qxgmat.data.constants.enums.status.PreviewStatus;
- import com.qxgmat.data.dao.PreviewPaperMapper;
- import com.qxgmat.data.dao.entity.PreviewPaper;
- import com.qxgmat.data.dao.entity.UserPaper;
- import com.qxgmat.data.dao.entity.UserReport;
- import com.qxgmat.data.relation.PreviewPaperRelationMapper;
- import com.qxgmat.data.relation.UserPaperRelationMapper;
- import com.qxgmat.data.relation.UserReportRelationMapper;
- import com.qxgmat.data.relation.entity.UserPreviewPaperRelation;
- import com.qxgmat.service.UserPaperService;
- import com.qxgmat.service.extend.ToolsService;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import javax.annotation.Resource;
- import java.util.*;
- import java.util.stream.Collectors;
- @Service
- public class PreviewPaperService extends AbstractService {
- private static final Logger logger = LoggerFactory.getLogger(PreviewPaperService.class);
- @Resource
- private PreviewPaperMapper previewPaperMapper;
- @Resource
- private PreviewPaperRelationMapper previewPaperRelationMapper;
- private Map<String, String> adminMap = new HashMap<String, String>(){{
- put("", "pp");
- }};
- public Page<PreviewPaper> listAdmin(int page, int size, CourseModule courseModule, QuestionType questionType, Integer structId, Integer courseId, String order, DirectionStatus direction){
- if(order == null || order.isEmpty()){
- order = "id";
- }
- if(adminMap.containsKey(order)){
- order = adminMap.get(order)+".`"+Tools.underscoreName(order)+"`";
- }else{
- order = adminMap.get("")+".`"+Tools.underscoreName(order)+"`";
- }
- if (direction == null){
- direction = DirectionStatus.DESC;
- }
- String finalOrder = order;
- DirectionStatus finalDirection = direction;
- Page<PreviewPaper> p = page(() -> {
- previewPaperRelationMapper.listAdmin(courseModule != null ? courseModule.key : null, questionType != null ? questionType.key : null, structId, courseId, finalOrder, finalDirection.key);
- }, page, size);
- Collection ids = Transform.getIds(p, PreviewPaper.class, "id");
- // 获取详细数据
- List<PreviewPaper> list = select(ids);
- Transform.replace(p, list, PreviewPaper.class, "id");
- return p;
- }
- public PreviewPaper addCourseNo(PreviewPaper previewPaper){
- Example example = new Example(PreviewPaper.class);
- example.and(
- example.createCriteria()
- .andEqualTo("courseId", previewPaper.getCourseId())
- .andEqualTo("courseNo", previewPaper.getCourseNo())
- );
- PreviewPaper in = one(previewPaperMapper, example);
- if (in != null){
- throw new ParameterException("该课时已经创建");
- }
- return add(previewPaper);
- }
- public boolean removeCourseNo(Integer courseId, Integer no){
- Example example = new Example(PreviewPaper.class);
- example.and(
- example.createCriteria()
- .andEqualTo("courseId", courseId)
- .andEqualTo("courseNo", no)
- );
- return delete(previewPaperMapper, example) > 0;
- }
- public PreviewPaper add(PreviewPaper paper){
- int result = insert(previewPaperMapper, paper);
- paper = one(previewPaperMapper, paper.getId());
- if(paper == null){
- throw new SystemException("预习作业添加失败");
- }
- return paper;
- }
- public PreviewPaper edit(PreviewPaper paper){
- PreviewPaper in = one(previewPaperMapper, paper.getId());
- if(in == null){
- throw new ParameterException("预习作业不存在");
- }
- int result = update(previewPaperMapper, paper);
- return paper;
- }
- public boolean delete(Number id){
- PreviewPaper in = one(previewPaperMapper, id);
- if(in == null){
- throw new ParameterException("预习作业不存在");
- }
- int result = delete(previewPaperMapper, id);
- return result > 0;
- }
- public PreviewPaper get(Number id){
- PreviewPaper in = one(previewPaperMapper, id);
- if(in == null){
- throw new ParameterException("预习作业不存在");
- }
- return in;
- }
- public Page<PreviewPaper> select(int page, int pageSize){
- return select(previewPaperMapper, page, pageSize);
- }
- public Page<PreviewPaper> select(Integer[] ids){
- return page(()->select(previewPaperMapper, ids), 1, ids.length);
- }
- public List<PreviewPaper> select(Collection ids){
- return select(previewPaperMapper, ids);
- }
- }
|