package com.qxgmat.service.inline; import com.github.pagehelper.Page; import com.nuliji.tools.AbstractService; import com.nuliji.tools.exception.ParameterException; import com.nuliji.tools.exception.SystemException; import com.nuliji.tools.mybatis.Example; import com.qxgmat.data.dao.CourseStudentOnlineMapper; import com.qxgmat.data.dao.entity.CourseStudentOnline; import com.qxgmat.data.dao.entity.CourseTime; import com.qxgmat.data.relation.CourseStudentOnlineRelationMapper; import com.qxgmat.data.relation.entity.CourseStudentNumberRelation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Collection; import java.util.List; import java.util.Map; @Service public class CourseStudentOnlineService extends AbstractService { private static final Logger logger = LoggerFactory.getLogger(CourseStudentOnlineService.class); @Resource private CourseStudentOnlineMapper courseStudentOnlineMapper; @Resource private CourseStudentOnlineRelationMapper courseStudentOnlineRelationMapper; public Page listAdmin(int page, int size, Integer courseId, Integer timeId){ Example example = new Example(CourseStudentOnline.class); if(courseId != null){ example.and( example.createCriteria() .andEqualTo("courseId", courseId) ); } if(timeId != null){ example.and( example.createCriteria() .andEqualTo("timeId", timeId) ); } return select(courseStudentOnlineMapper, example, page, size); } public List groupByCourse(Collection ids){ return courseStudentOnlineRelationMapper.groupByTime(ids); } public CourseStudentOnline getByUserAndTime(Integer userId, Integer timeId){ Example example = new Example(CourseStudentOnline.class); example.and( example.createCriteria() .andEqualTo("userId", userId) .andEqualTo("timeId", timeId) ); return one(courseStudentOnlineMapper, example); } public CourseStudentOnline addStudent(CourseStudentOnline course){ CourseStudentOnline in = getByUserAndTime(course.getUserId(), course.getTimeId()); if(in != null){ throw new ParameterException("已添加"); } return add(course); } public CourseStudentOnline add(CourseStudentOnline course){ int result = insert(courseStudentOnlineMapper, course); course = one(courseStudentOnlineMapper, course.getId()); if(course == null){ throw new SystemException("课时添加失败"); } return course; } public CourseStudentOnline edit(CourseStudentOnline course){ CourseStudentOnline in = one(courseStudentOnlineMapper, course.getId()); if(in == null){ throw new ParameterException("课时不存在"); } int result = update(courseStudentOnlineMapper, course); return course; } public boolean delete(Number id){ CourseStudentOnline in = one(courseStudentOnlineMapper, id); if(in == null){ throw new ParameterException("课时不存在"); } int result = delete(courseStudentOnlineMapper, id); return result > 0; } public CourseStudentOnline get(Number id){ CourseStudentOnline in = one(courseStudentOnlineMapper, id); if(in == null){ throw new ParameterException("课时不存在"); } return in; } public Page select(int page, int pageSize){ return select(courseStudentOnlineMapper, page, pageSize); } public Page select(Integer[] ids){ return page(()->select(courseStudentOnlineMapper, ids), 1, ids.length); } public List select(Collection ids){ return select(courseStudentOnlineMapper, ids); } }