CourseServiceImpl.java 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package com.njuzr.eaibackend.service.impl;
  2. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  3. import com.njuzr.eaibackend.dto.CourseDTO;
  4. import com.njuzr.eaibackend.exception.MyException;
  5. import com.njuzr.eaibackend.mapper.CourseMapper;
  6. import com.njuzr.eaibackend.po.Course;
  7. import com.njuzr.eaibackend.service.CourseService;
  8. import com.njuzr.eaibackend.utils.ConvertUtil;
  9. import com.njuzr.eaibackend.utils.ModelMapperUtil;
  10. import com.njuzr.eaibackend.vo.CourseVO;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.springframework.beans.BeanUtils;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.context.annotation.Bean;
  15. import org.springframework.http.HttpStatus;
  16. import org.springframework.stereotype.Service;
  17. import java.util.Arrays;
  18. import java.util.Date;
  19. import java.util.List;
  20. import java.util.stream.Collectors;
  21. /**
  22. * @author: Leonezhurui
  23. * @Date: 2024/3/5 - 22:09
  24. * @Package: EAI-Backend
  25. */
  26. @Slf4j
  27. @Service
  28. public class CourseServiceImpl implements CourseService {
  29. private final CourseMapper courseMapper;
  30. @Autowired
  31. public CourseServiceImpl(CourseMapper courseMapper) {
  32. this.courseMapper = courseMapper;
  33. }
  34. @Override
  35. public CourseVO createCourse(CourseDTO courseDTO) {
  36. log.info("解析CourseDTO:"+courseDTO.toString());
  37. // 类型转换
  38. Course targetCourse = convertToPO(courseDTO);
  39. targetCourse.setCreateTime(new Date());
  40. log.info("类型转换后的targetCourse"+targetCourse);
  41. // 插入数据库
  42. int status = courseMapper.insert(targetCourse);
  43. if (status == 0) {
  44. log.error("创建课程失败,数据库插入错误!");
  45. throw new MyException(HttpStatus.INTERNAL_SERVER_ERROR.value(), HttpStatus.INTERNAL_SERVER_ERROR.getReasonPhrase()+":"+"创建课程错误");
  46. }
  47. return convertToVO(targetCourse);
  48. }
  49. @Override
  50. public CourseVO findByCourseId(Long courseId) {
  51. Course res = courseMapper.selectById(courseId);
  52. return convertToVO(res);
  53. }
  54. /**
  55. * 将DTO转换成PO
  56. * @param courseDTO
  57. * @return
  58. */
  59. private Course convertToPO(CourseDTO courseDTO) {
  60. Course course = new Course();
  61. BeanUtils.copyProperties(courseDTO, course);
  62. course.setTeacherIds(ConvertUtil.listToString(courseDTO.getTeacherIds()));
  63. if (courseDTO.getCourseImages() != null)
  64. course.setCourseImages(ConvertUtil.listToString(courseDTO.getCourseImages()));
  65. return course;
  66. }
  67. /**
  68. * 将PO转换成VO
  69. * @param course
  70. * @return
  71. */
  72. private CourseVO convertToVO(Course course) {
  73. CourseVO res = new CourseVO();
  74. BeanUtils.copyProperties(course, res);
  75. res.setTeacherIds(ConvertUtil.stringToList(course.getTeacherIds(), Long::valueOf));
  76. if (course.getCourseImages() != null)
  77. res.setCourseImages(ConvertUtil.stringToList(course.getCourseImages(), String::valueOf));
  78. return res;
  79. }
  80. }