Browse Source

fix:实现修改课件名称同时修改课件链接功能

chillqi 3 years ago
parent
commit
d102bf848f

+ 9 - 0
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/CourseWareServiceImpl.java

@@ -9,8 +9,12 @@ 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 com.aliyun.oss.model.GetObjectRequest;
+import com.aliyun.oss.model.OSSObject;
+import org.checkerframework.checker.units.qual.C;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.commons.CommonsMultipartFile;
 
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
@@ -150,6 +154,11 @@ public class CourseWareServiceImpl implements CourseWareService {
     public String changeCourseWareName(Long id, String newName) {
         System.out.println("changename");
         CourseWare courseWare = courseWareRepository.findCourseWareById(id);
+        System.out.println(courseWare.getName());
+        InputStream inputStream = ossUtil.getStream(courseWare.getCourseId() + "/" + courseWare.getName());
+        String courseWareUrl = ossUtil.upload(courseWare.getCourseId() + "/" + newName, inputStream);
+        System.out.println(courseWareUrl);
+        courseWare.setFileUrl(courseWareUrl);
         courseWare.setName(newName);
         courseWareRepository.save(courseWare);
         return newName;

+ 8 - 5
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/utility/OssUtil.java

@@ -2,10 +2,7 @@ package cn.seecoder.seecoderportalserver.utility;
 
 import cn.seecoder.seecoderportalserver.web.rest.errors.CustomErrorException;
 import com.aliyun.oss.*;
-import com.aliyun.oss.model.Bucket;
-import com.aliyun.oss.model.BucketInfo;
-import com.aliyun.oss.model.CannedAccessControlList;
-import com.aliyun.oss.model.PutObjectRequest;
+import com.aliyun.oss.model.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -14,7 +11,6 @@ import org.springframework.stereotype.Component;
 
 import java.io.InputStream;
 import java.util.Date;
-import java.util.List;
 
 /**
  * @author wind
@@ -44,6 +40,13 @@ public class OssUtil {
         return ossClient.generatePresignedUrl(bucketName, objectName, new Date()).toString().split("\\?Expires")[0];
     }
 
+    public InputStream getStream(String objectName) {
+        OSS ossClient = getOss();
+        GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, objectName);
+        OSSObject ossObject = ossClient.getObject(getObjectRequest);
+        return ossObject.getObjectContent();
+    }
+
     @Async
     public void delete(String objectName) {
         OSS ossClient = getOss();