CourseServiceImpl.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package cn.seecoder.courselearning.serviceimpl;
  2. import cn.seecoder.courselearning.mapperservice.CourseMapper;
  3. import cn.seecoder.courselearning.mapperservice.CourseOrderMapper;
  4. import cn.seecoder.courselearning.po.Course;
  5. import cn.seecoder.courselearning.po.CourseOrder;
  6. import cn.seecoder.courselearning.service.CourseService;
  7. import cn.seecoder.courselearning.util.Constant;
  8. import cn.seecoder.courselearning.util.PageInfoUtil;
  9. import cn.seecoder.courselearning.vo.CourseVO;
  10. import cn.seecoder.courselearning.vo.ResultVO;
  11. import com.github.pagehelper.PageHelper;
  12. import com.github.pagehelper.PageInfo;
  13. import org.springframework.stereotype.Service;
  14. import javax.annotation.Resource;
  15. import java.util.ArrayList;
  16. import java.util.Date;
  17. import java.util.List;
  18. @Service
  19. public class CourseServiceImpl implements CourseService {
  20. @Resource
  21. private CourseMapper courseMapper;
  22. @Resource
  23. private CourseOrderMapper orderMapper;
  24. @Override
  25. public PageInfo<CourseVO> getCourses(Integer currPage, Integer pageSize, Integer uid, String key) {
  26. if(currPage==null || currPage<1) currPage=1;
  27. PageHelper.startPage(currPage, pageSize);
  28. PageInfo<Course> po = new PageInfo<>(courseMapper.queryAll(key));
  29. return getCourseVOPageInfo(uid, po);
  30. }
  31. @Override
  32. public PageInfo<CourseVO> getCoursesByType(Integer currPage, Integer pageSize, Integer uid, String type) {
  33. if(currPage==null || currPage<1) currPage=1;
  34. PageHelper.startPage(currPage, pageSize);
  35. PageInfo<Course> po = new PageInfo<>(courseMapper.selectByType(type));
  36. return getCourseVOPageInfo(uid, po);
  37. }
  38. @Override
  39. public List<CourseVO> getBoughtCourses(Integer uid) {
  40. List<CourseVO> ret = new ArrayList<>();
  41. List<Course> courseList = courseMapper.selectByStudentId(uid);
  42. for(Course course: courseList){
  43. ret.add(new CourseVO(course, true, false));
  44. }
  45. return ret;
  46. }
  47. @Override
  48. public List<CourseVO> getManageableCourses(Integer uid) {
  49. List<CourseVO> ret = new ArrayList<>();
  50. List<Course> courseList = courseMapper.selectByTeacherId(uid);
  51. for(Course course: courseList){
  52. ret.add(new CourseVO(course, false, true));
  53. }
  54. return ret;
  55. }
  56. @Override
  57. public CourseVO getCourse(Integer courseId, Integer uid) {
  58. Course course = courseMapper.selectByPrimaryKey(courseId);
  59. boolean bought = false;
  60. boolean manageable = false;
  61. if(uid != null && uid > 0) {
  62. CourseOrder order = orderMapper.queryMostRecentOrder(uid, courseId);
  63. if(order != null)
  64. bought = order.getStatus().equals(Constant.ORDER_STATUS_SUCCESS);
  65. manageable = uid.equals(course.getTeacherId());
  66. }
  67. return new CourseVO(course, bought, manageable);
  68. }
  69. @Override
  70. public ResultVO<CourseVO> createCourse(CourseVO courseVO) {
  71. courseVO.setCreateTime(new Date());
  72. for(Course course: courseMapper.selectByTeacherId(courseVO.getTeacherId())){
  73. if (course.getName().equals(courseVO.getName()))
  74. return new ResultVO<>(Constant.REQUEST_FAIL, "已存在同名课程!");
  75. }
  76. Course course = new Course(courseVO);
  77. if(courseMapper.insert(course) > 0){
  78. return new ResultVO<CourseVO>(Constant.REQUEST_SUCCESS, "课程创建成功。", new CourseVO(course, false, true));
  79. }
  80. return new ResultVO<>(Constant.REQUEST_FAIL, "服务器错误");
  81. }
  82. private PageInfo<CourseVO> getCourseVOPageInfo(Integer uid, PageInfo<Course> po) {
  83. PageInfo<CourseVO> result = PageInfoUtil.convert(po, CourseVO.class);
  84. if(uid != null && uid > 0){
  85. List<CourseVO> voList = result.getList();
  86. for(CourseVO vo: voList){
  87. CourseOrder order = orderMapper.queryMostRecentOrder(uid, vo.getId());
  88. if(order != null)
  89. vo.setBought(order.getStatus().equals(Constant.ORDER_STATUS_SUCCESS));
  90. vo.setManageable(uid.equals(vo.getTeacherId()));
  91. }
  92. }
  93. return result;
  94. }
  95. }