Browse Source

fix:添加修改课件名称、课件按上传时间排序功能

chillqi 4 years ago
parent
commit
dfc3f285b1

+ 0 - 13
seecoder-portal-common/src/main/java/cn/seecoder/seecoderportalcommon/vo/dto/CourseWareDTO.java

@@ -7,8 +7,6 @@ import java.util.List;
 public class CourseWareDTO {
     private CourseWareVO courseWareVO;
 
-//    private List<CourseWareVO> courseWares;
-
     public CourseWareVO getCourseWareVO() {
         return courseWareVO;
     }
@@ -17,17 +15,6 @@ public class CourseWareDTO {
         this.courseWareVO = courseWareVO;
     }
 
-//    public List<CourseWareVO> getCourseWares() {
-//        return courseWares;
-//    }
-//
-//    public void setCourseWares(List<CourseWareVO> courseWares) {
-//        this.courseWares = courseWares;
-//    }
-
     public CourseWareDTO(CourseWareVO courseWareVO) {this.courseWareVO = courseWareVO;}
 
-//    public void addCourseWare(CourseWareVO courseWareVO){
-//        this.courseWares.add(courseWareVO);
-//    }
 }

+ 2 - 0
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/repository/CourseRepository.java

@@ -20,4 +20,6 @@ public interface CourseRepository extends JpaRepository<Course, Long> {
     Optional<Course> findCourseByInvitationCode(String code);
 
     Optional<Course> findCourseByEvalId(Integer evalId);
+
+    Optional<Course> findCourseById(Long id);
 }

+ 3 - 1
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/service/CourseWareService.java

@@ -30,6 +30,8 @@ public interface CourseWareService {
 
     String getSlideUrl(Long slideId);
 
-    CourseWareVO getOneSlide(Long slideId);
+    CourseWareVO getSlideInfo(Long slideId);
+
+    String changeCourseWareName(Long id, String name);
 
 }

+ 18 - 12
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/CourseWareServiceImpl.java

@@ -2,15 +2,13 @@ package cn.seecoder.seecoderportalserver.serviceImpl;
 
 import cn.seecoder.seecoderportalcommon.vo.*;
 import cn.seecoder.seecoderportalcommon.vo.dto.CourseWareDTO;
+import cn.seecoder.seecoderportalserver.domain.Course;
 import cn.seecoder.seecoderportalserver.domain.CourseWare;
 import cn.seecoder.seecoderportalserver.mapper.CourseWareMapper;
+import cn.seecoder.seecoderportalserver.repository.CourseRepository;
 import cn.seecoder.seecoderportalserver.repository.CourseWareRepository;
 import cn.seecoder.seecoderportalserver.service.CourseWareService;
 import cn.seecoder.seecoderportalserver.utility.OssUtil;
-import org.springframework.core.io.ByteArrayResource;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -18,24 +16,21 @@ import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
+import java.util.Comparator;
 import java.util.List;
-import java.util.Objects;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 @Service
 public class CourseWareServiceImpl implements CourseWareService {
     private final CourseWareRepository courseWareRepository;
     private final CourseWareMapper courseWareMapper;
+    private final CourseRepository courseRepository;
     private final OssUtil ossUtil;
 
-    public CourseWareServiceImpl(CourseWareRepository courseWareRepository, CourseWareMapper courseWareMapper, OssUtil ossUtil) {
+    public CourseWareServiceImpl(CourseWareRepository courseWareRepository, CourseWareMapper courseWareMapper, CourseRepository courseRepository, OssUtil ossUtil) {
         this.courseWareRepository = courseWareRepository;
         this.courseWareMapper = courseWareMapper;
+        this.courseRepository = courseRepository;
         this.ossUtil = ossUtil;
     }
 
@@ -74,6 +69,7 @@ public class CourseWareServiceImpl implements CourseWareService {
     public List<CourseWareDTO> getCourseWaresByCourseId(Long courseId) {
         System.out.println("get");
         List<CourseWareDTO> result = courseWareRepository.findCourseWaresByCourseIdAndStateNot(courseId, ObjectState.DELETED).stream()
+                .sorted(Comparator.comparing(CourseWare::getCreatedTime))
                 .map(courseWare -> new CourseWareDTO(courseWareMapper.toCourseWareVO(courseWare)))
                 .collect(Collectors.toList());
         return result;
@@ -89,6 +85,7 @@ public class CourseWareServiceImpl implements CourseWareService {
     public String uploadCourseWareFile(String name, MultipartFile file) {
         try {
             System.out.println("upload");
+            System.out.println(name);
             String courseWareUrl = ossUtil.upload(name, file.getInputStream());
             System.out.println(courseWareUrl);
             return courseWareUrl;
@@ -143,10 +140,19 @@ public class CourseWareServiceImpl implements CourseWareService {
     }
 
     @Override
-    public CourseWareVO getOneSlide(Long slideId) {
+    public CourseWareVO getSlideInfo(Long slideId) {
         System.out.println("getinfo");
         CourseWare courseWare = courseWareRepository.findCourseWareById(slideId);
         return courseWareMapper.toCourseWareVO(courseWare);
     }
 
+    @Override
+    public String changeCourseWareName(Long id, String newName) {
+        System.out.println("changename");
+        CourseWare courseWare = courseWareRepository.findCourseWareById(id);
+        courseWare.setName(newName);
+        courseWareRepository.save(courseWare);
+        return newName;
+    }
+
 }

+ 9 - 7
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/web/rest/CourseWareController.java

@@ -61,17 +61,19 @@ public class CourseWareController {
         return OkResponse.of(courseWareService.downloadCourseWare(req, res, id));
     }
 
-    @GetMapping("/{slideId}/url")
-    public OkResponse<String> getSlideUrl(@PathVariable Long slideId) {
+    @GetMapping("/getSlideUrl")
+    public OkResponse<String> getSlideUrl(@RequestParam Long slideId) {
         return OkResponse.of(courseWareService.getSlideUrl(slideId));
     }
 
-    @GetMapping("/{slideId}")
-    public OkResponse<CourseWareVO> getOneSlide(@PathVariable Long slideId) {
-        return OkResponse.of(courseWareService.getOneSlide(slideId));
+    @GetMapping("/getSlideInfo")
+    public OkResponse<CourseWareVO> getSlideInfo(@RequestParam Long slideId) {
+        return OkResponse.of(courseWareService.getSlideInfo(slideId));
     }
 
-
-
+    @PostMapping("/changeCourseWareName")
+    public OkResponse<String> changeCourseWareName(@RequestParam Long id, @RequestParam String newName) {
+        return OkResponse.of(courseWareService.changeCourseWareName(id, newName));
+    }
 
 }

+ 1 - 1
seecoder-portal-server/src/main/resources/portal.sql

@@ -239,7 +239,7 @@ DROP TABLE IF EXISTS public.course_ware;
 
 CREATE TABLE IF NOT EXISTS public.course_ware (
     id bigint NOT NULL,
-    name character varying(255) NOT NULL,
+    name character varying(512) NOT NULL,
     size bigint NOT NULL,
     sender_id bigint NOT NULL,
     course_id bigint NOT NULL,

+ 4 - 0
yarn.lock

@@ -0,0 +1,4 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+