PreviewAssignService.java 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. package com.qxgmat.service.inline;
  2. import com.github.pagehelper.Page;
  3. import com.nuliji.tools.AbstractService;
  4. import com.nuliji.tools.Transform;
  5. import com.nuliji.tools.exception.ParameterException;
  6. import com.nuliji.tools.exception.SystemException;
  7. import com.nuliji.tools.mybatis.Example;
  8. import com.qxgmat.data.constants.enums.status.DirectionStatus;
  9. import com.qxgmat.data.constants.enums.status.PreviewStatus;
  10. import com.qxgmat.data.dao.PreviewAssignMapper;
  11. import com.qxgmat.data.dao.PreviewPaperMapper;
  12. import com.qxgmat.data.dao.entity.PreviewAssign;
  13. import com.qxgmat.data.dao.entity.PreviewPaper;
  14. import com.qxgmat.data.relation.PreviewAssignRelationMapper;
  15. import org.slf4j.Logger;
  16. import org.slf4j.LoggerFactory;
  17. import org.springframework.stereotype.Service;
  18. import javax.annotation.Resource;
  19. import java.util.ArrayList;
  20. import java.util.Collection;
  21. import java.util.Date;
  22. import java.util.List;
  23. @Service
  24. public class PreviewAssignService extends AbstractService {
  25. private static final Logger logger = LoggerFactory.getLogger(PreviewAssignService.class);
  26. @Resource
  27. private PreviewAssignMapper previewAssignMapper;
  28. @Resource
  29. private PreviewAssignRelationMapper previewAssignRelationMapper;
  30. public Page<PreviewAssign> listAdmin(int page, int size, Integer paperId, String order, DirectionStatus direction){
  31. Example example = new Example(PreviewAssign.class);
  32. if(paperId != null){
  33. example.and(
  34. example.createCriteria()
  35. .andEqualTo("paperId", paperId)
  36. );
  37. }
  38. if(order == null || order.isEmpty()) order = "id";
  39. switch(direction){
  40. case ASC:
  41. example.orderBy(order).asc();
  42. break;
  43. case DESC:
  44. default:
  45. example.orderBy(order).desc();
  46. }
  47. return select(previewAssignMapper, example, page, size);
  48. }
  49. public PreviewAssign getByCourseNo(Integer courseId, Integer no){
  50. Example example = new Example(PreviewAssign.class);
  51. example.and(
  52. example.createCriteria()
  53. .andEqualTo("courseId", courseId)
  54. .andEqualTo("courseNo", no)
  55. );
  56. return one(previewAssignMapper, example);
  57. }
  58. public boolean removeCourseNo(Integer courseId, Integer no){
  59. Example example = new Example(PreviewAssign.class);
  60. example.and(
  61. example.createCriteria()
  62. .andEqualTo("courseId", courseId)
  63. .andEqualTo("courseNo", no)
  64. );
  65. return delete(previewAssignMapper, example) > 0;
  66. }
  67. /**
  68. * 用于查询视频课程所有作业
  69. * @param courseId
  70. * @return
  71. */
  72. public List<PreviewAssign> listByCourse(int page, int size, Integer courseId, Integer userId, Integer times){
  73. Page<PreviewAssign> p = page(()->previewAssignRelationMapper.listByCourse(courseId, userId, times), page, size);
  74. Collection ids = Transform.getIds(p, PreviewAssign.class, "id");
  75. // 获取详细数据
  76. List<PreviewAssign> list = select(ids);
  77. Transform.replace(p, list, PreviewAssign.class, "id");
  78. return p;
  79. }
  80. /**
  81. * 用于查询视频课程指定课时作业
  82. * @param courseId
  83. * @return
  84. */
  85. public List<PreviewAssign> listByCourseNos(Integer courseId, Collection ids){
  86. if(ids == null || ids.size() == 0) return new ArrayList<>();
  87. Example example = new Example(PreviewAssign.class);
  88. example.and(
  89. example.createCriteria()
  90. .andEqualTo("courseId", courseId)
  91. .andIn("courseNo", ids)
  92. );
  93. return select(previewAssignMapper, example);
  94. }
  95. /**
  96. * 用户查询1v1相对的预约作业
  97. * @param appointmentIds
  98. * @return
  99. */
  100. public List<PreviewAssign> listWithAppointment(Collection appointmentIds){
  101. if(appointmentIds == null || appointmentIds.size() == 0) return new ArrayList<>();
  102. Example example = new Example(PreviewAssign.class);
  103. example.and(
  104. example.createCriteria()
  105. .andIn("courseAppointment", appointmentIds)
  106. );
  107. return select(previewAssignMapper, example);
  108. }
  109. /**
  110. * 用户查询1v1相对的预约作业
  111. * @param appointmentIds
  112. * @return
  113. */
  114. public List<PreviewAssign> listByAppointment(int page, int size, Integer courseId, Collection appointmentIds, Integer userId, String endTime, Integer times){
  115. Page<PreviewAssign> p = page(()->previewAssignRelationMapper.listByAppointment(courseId, appointmentIds, userId, endTime, times), page, size);
  116. Collection ids = Transform.getIds(p, PreviewAssign.class, "id");
  117. // 获取详细数据
  118. List<PreviewAssign> list = select(ids);
  119. Transform.replace(p, list, PreviewAssign.class, "id");
  120. return p;
  121. }
  122. public boolean removeCourseAppointment(Integer courseId, Integer id){
  123. Example example = new Example(PreviewAssign.class);
  124. example.and(
  125. example.createCriteria()
  126. .andEqualTo("courseId", courseId)
  127. .andEqualTo("courseAppointment", id)
  128. );
  129. return delete(previewAssignMapper, example) > 0;
  130. }
  131. /**
  132. * 用户查询小班课时间段内的预习作业
  133. * @param timeId
  134. * @return
  135. */
  136. public List<PreviewAssign> listByTime(int page, int size, Integer courseId, Integer timeId, Integer userId, String endTime, Integer times){
  137. Page<PreviewAssign> p = page(()->previewAssignRelationMapper.listByTime(courseId, timeId, userId, endTime, times), page, size);
  138. Collection ids = Transform.getIds(p, PreviewAssign.class, "id");
  139. // 获取详细数据
  140. List<PreviewAssign> list = select(ids);
  141. Transform.replace(p, list, PreviewAssign.class, "id");
  142. return p;
  143. }
  144. public boolean removeCourseTime(Integer courseId, Integer timeId){
  145. Example example = new Example(PreviewAssign.class);
  146. example.and(
  147. example.createCriteria()
  148. .andEqualTo("courseId", courseId)
  149. .andEqualTo("courseTime", timeId)
  150. );
  151. return delete(previewAssignMapper, example) > 0;
  152. }
  153. public PreviewAssign add(PreviewAssign assign){
  154. int result = insert(previewAssignMapper, assign);
  155. assign = one(previewAssignMapper, assign.getId());
  156. if(assign == null){
  157. throw new SystemException("预习作业添加失败");
  158. }
  159. return assign;
  160. }
  161. public PreviewAssign edit(PreviewAssign assign){
  162. PreviewAssign in = one(previewAssignMapper, assign.getId());
  163. if(in == null){
  164. throw new ParameterException("预习作业不存在");
  165. }
  166. int result = update(previewAssignMapper, assign);
  167. return assign;
  168. }
  169. public boolean delete(Number id){
  170. PreviewAssign in = one(previewAssignMapper, id);
  171. if(in == null){
  172. throw new ParameterException("预习作业不存在");
  173. }
  174. int result = delete(previewAssignMapper, id);
  175. return result > 0;
  176. }
  177. public PreviewAssign get(Number id){
  178. PreviewAssign in = one(previewAssignMapper, id);
  179. if(in == null){
  180. throw new ParameterException("预习作业不存在");
  181. }
  182. return in;
  183. }
  184. public Page<PreviewAssign> select(int page, int pageSize){
  185. return select(previewAssignMapper, page, pageSize);
  186. }
  187. public Page<PreviewAssign> select(Integer[] ids){
  188. return page(()->select(previewAssignMapper, ids), 1, ids.length);
  189. }
  190. public List<PreviewAssign> select(Collection ids){
  191. return select(previewAssignMapper, ids);
  192. }
  193. }