123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 |
- package com.qxgmat.service.inline;
- import com.github.pagehelper.Page;
- import com.nuliji.tools.AbstractService;
- 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.status.DirectionStatus;
- import com.qxgmat.data.constants.enums.status.PreviewStatus;
- import com.qxgmat.data.dao.PreviewAssignMapper;
- import com.qxgmat.data.dao.PreviewPaperMapper;
- import com.qxgmat.data.dao.entity.PreviewAssign;
- import com.qxgmat.data.dao.entity.PreviewPaper;
- import com.qxgmat.data.relation.PreviewAssignRelationMapper;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.Date;
- import java.util.List;
- @Service
- public class PreviewAssignService extends AbstractService {
- private static final Logger logger = LoggerFactory.getLogger(PreviewAssignService.class);
- @Resource
- private PreviewAssignMapper previewAssignMapper;
- @Resource
- private PreviewAssignRelationMapper previewAssignRelationMapper;
- public Page<PreviewAssign> listAdmin(int page, int size, Integer paperId, String order, DirectionStatus direction){
- Example example = new Example(PreviewAssign.class);
- if(paperId != null){
- example.and(
- example.createCriteria()
- .andEqualTo("paperId", paperId)
- );
- }
- if(order == null || order.isEmpty()) order = "id";
- switch(direction){
- case ASC:
- example.orderBy(order).asc();
- break;
- case DESC:
- default:
- example.orderBy(order).desc();
- }
- return select(previewAssignMapper, example, page, size);
- }
- public PreviewAssign getByCourseNo(Integer courseId, Integer no){
- Example example = new Example(PreviewAssign.class);
- example.and(
- example.createCriteria()
- .andEqualTo("courseId", courseId)
- .andEqualTo("courseNo", no)
- );
- return one(previewAssignMapper, example);
- }
- public PreviewAssign addCourseNo(Integer paperId, Integer courseId, Integer no){
- PreviewAssign assign = getByCourseNo(courseId, no);
- if (assign != null){
- throw new ParameterException("该课时已创建");
- }
- return add(PreviewAssign.builder()
- .courseId(courseId)
- .courseNo(no)
- .paperId(paperId)
- .build());
- }
- public boolean removeCourseNo(Integer courseId, Integer no){
- Example example = new Example(PreviewAssign.class);
- example.and(
- example.createCriteria()
- .andEqualTo("courseId", courseId)
- .andEqualTo("courseNo", no)
- );
- return delete(previewAssignMapper, example) > 0;
- }
- /**
- * 用于查询视频课程所有作业
- * @param courseId
- * @return
- */
- public List<PreviewAssign> listByCourse(int page, int size, Integer courseId, Integer userId, Integer times){
- Page<PreviewAssign> p = page(()->previewAssignRelationMapper.listByCourse(courseId, userId, times), page, size);
- Collection ids = Transform.getIds(p, PreviewAssign.class, "id");
- // 获取详细数据
- List<PreviewAssign> list = select(ids);
- Transform.replace(p, list, PreviewAssign.class, "id");
- return p;
- }
- /**
- * 用于查询视频课程指定课时作业
- * @param courseId
- * @return
- */
- public List<PreviewAssign> listByCourseNos(Integer courseId, Collection ids){
- if(ids == null || ids.size() == 0) return new ArrayList<>();
- Example example = new Example(PreviewAssign.class);
- example.and(
- example.createCriteria()
- .andEqualTo("courseId", courseId)
- .andIn("courseNo", ids)
- );
- return select(previewAssignMapper, example);
- }
- /**
- * 用户查询1v1相对的预约作业
- * @param appointmentIds
- * @return
- */
- public List<PreviewAssign> listWithAppointment(Collection appointmentIds){
- if(appointmentIds == null || appointmentIds.size() == 0) return new ArrayList<>();
- Example example = new Example(PreviewAssign.class);
- example.and(
- example.createCriteria()
- .andIn("courseAppointment", appointmentIds)
- );
- return select(previewAssignMapper, example);
- }
- /**
- * 用户查询1v1相对的预约作业
- * @param appointmentIds
- * @return
- */
- public List<PreviewAssign> listByAppointment(int page, int size, Integer courseId, Collection appointmentIds, Integer userId, String endTime, Integer times){
- if(appointmentIds==null || appointmentIds.size() == 0) return new ArrayList<>();
- Page<PreviewAssign> p = page(()->previewAssignRelationMapper.listByAppointment(courseId, appointmentIds, userId, endTime, times), page, size);
- Collection ids = Transform.getIds(p, PreviewAssign.class, "id");
- // 获取详细数据
- List<PreviewAssign> list = select(ids);
- Transform.replace(p, list, PreviewAssign.class, "id");
- return p;
- }
- public boolean removeCourseAppointment(Integer courseId, Integer id){
- Example example = new Example(PreviewAssign.class);
- example.and(
- example.createCriteria()
- .andEqualTo("courseId", courseId)
- .andEqualTo("courseAppointment", id)
- );
- return delete(previewAssignMapper, example) > 0;
- }
- /**
- * 用户查询小班课时间段内的预习作业
- * @param timeId
- * @return
- */
- public List<PreviewAssign> listByTime(int page, int size, Integer courseId, Integer timeId, Integer userId, String endTime, Integer times){
- Page<PreviewAssign> p = page(()->previewAssignRelationMapper.listByTime(courseId, timeId, userId, endTime, times), page, size);
- Collection ids = Transform.getIds(p, PreviewAssign.class, "id");
- // 获取详细数据
- List<PreviewAssign> list = select(ids);
- Transform.replace(p, list, PreviewAssign.class, "id");
- return p;
- }
- public boolean removeCourseTime(Integer courseId, Integer timeId){
- Example example = new Example(PreviewAssign.class);
- example.and(
- example.createCriteria()
- .andEqualTo("courseId", courseId)
- .andEqualTo("courseTime", timeId)
- );
- return delete(previewAssignMapper, example) > 0;
- }
- /**
- * 查询1v1即将过期的作业
- * @param startTime
- * @param endTime
- * @return
- */
- public List<PreviewAssign> listAppointmentExpire(String startTime, String endTime){
- Example example = new Example(PreviewAssign.class);
- example.and(
- example.createCriteria()
- .andGreaterThan("courseAppointment", 0)
- .andGreaterThanOrEqualTo("endTime", startTime)
- .andLessThan("endTime", endTime)
- );
- return select(previewAssignMapper, example);
- }
- public PreviewAssign add(PreviewAssign assign){
- int result = insert(previewAssignMapper, assign);
- assign = one(previewAssignMapper, assign.getId());
- if(assign == null){
- throw new SystemException("预习作业添加失败");
- }
- return assign;
- }
- public PreviewAssign edit(PreviewAssign assign){
- PreviewAssign in = one(previewAssignMapper, assign.getId());
- if(in == null){
- throw new ParameterException("预习作业不存在");
- }
- int result = update(previewAssignMapper, assign);
- return assign;
- }
- public boolean delete(Number id){
- PreviewAssign in = one(previewAssignMapper, id);
- if(in == null){
- throw new ParameterException("预习作业不存在");
- }
- int result = delete(previewAssignMapper, id);
- return result > 0;
- }
- public PreviewAssign get(Number id){
- PreviewAssign in = one(previewAssignMapper, id);
- if(in == null){
- throw new ParameterException("预习作业不存在");
- }
- return in;
- }
- public Page<PreviewAssign> select(int page, int pageSize){
- return select(previewAssignMapper, page, pageSize);
- }
- public Page<PreviewAssign> select(Integer[] ids){
- return page(()->select(previewAssignMapper, ids), 1, ids.length);
- }
- public List<PreviewAssign> select(Collection ids){
- return select(previewAssignMapper, ids);
- }
- }
|