From aa32e9136c265ba05ad397ceefb201daa06e81a4 Mon Sep 17 00:00:00 2001 From: nisen Date: Thu, 5 Sep 2024 11:09:43 +0800 Subject: [PATCH] =?UTF-8?q?104-master=E4=BB=A3=E7=A2=BC=E5=9B=9E=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- servers/boe-server-all/pom.xml | 201 ++++++++---------- .../module/course/api/CoursePortalApi.java | 71 ++++--- 2 files changed, 128 insertions(+), 144 deletions(-) diff --git a/servers/boe-server-all/pom.xml b/servers/boe-server-all/pom.xml index 3dbb1d69..04b41372 100644 --- a/servers/boe-server-all/pom.xml +++ b/servers/boe-server-all/pom.xml @@ -1,6 +1,6 @@ + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.springframework.boot @@ -16,38 +16,38 @@ 1.8 2021.0.5 - 2021.0.5.0 - 2.2.0 + 2021.0.5.0 + 2.2.0 - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-discovery - ${spring-cloud-alibaba.version} - - - com.alibaba.nacos - nacos-client - - - - - com.alibaba.nacos - nacos-client - ${nacos-client.version} - - + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + ${spring-cloud-alibaba.version} + + + com.alibaba.nacos + nacos-client + + + + + com.alibaba.nacos + nacos-client + ${nacos-client.version} + + org.apache.poi poi-ooxml 4.0.1 - - cn.hutool - hutool-all - 5.8.16 - + + cn.hutool + hutool-all + 5.8.16 + com.xboe xboe-api @@ -93,9 +93,9 @@ ${project.basedir}/src/main/resources/libs/jave-1.0.2.jar - com.auth0 - java-jwt - 3.18.3 + com.auth0 + java-jwt + 3.18.3 - - com.aspose - slides - 15.9.0 - system - ${project.basedir}/src/main/resources/aspose/aspose.slides-15.9.0.jar - + + com.aspose + slides + 15.9.0 + system + ${project.basedir}/src/main/resources/aspose/aspose.slides-15.9.0.jar + com.aspose words @@ -216,79 +214,54 @@ 3.0.3 - org.elasticsearch.client - elasticsearch-rest-high-level-client - 7.9.0 - - - org.elasticsearch - elasticsearch - 7.9.0 - - - org.elasticsearch.client - elasticsearch-rest-client - 7.9.0 - + org.elasticsearch.client + elasticsearch-rest-high-level-client + 7.9.0 + + + org.elasticsearch + elasticsearch + 7.9.0 + + + org.elasticsearch.client + elasticsearch-rest-client + 7.9.0 + org.springframework.retry spring-retry 1.3.1 - - - org.springframework - spring-webmvc - 5.3.26 - - - - org.yaml - snakeyaml - 2.0 - - - - org.apache.commons - commons-text - 1.10.0 - - - - org.apache.tomcat.embed - tomcat-embed-core - 9.0.83 - - - - true - src/main/resources - - application-${profileActive}.properties - application.properties - - - - false - src/main/resources - - *.properties - - - + + true + src/main/resources + + application-${profileActive}.properties + application.properties + + + + false + src/main/resources + + *.properties + + + - org.apache.maven.plugins - maven-compiler-plugin - - - 1.8 - 1.8 - - + org.apache.maven.plugins + maven-compiler-plugin + + + 1.8 + 1.8 + + org.springframework.boot spring-boot-maven-plugin @@ -299,8 +272,8 @@ lombok - true - + true + @@ -323,12 +296,12 @@ test - - test135 - - test135 - - + + test135 + + test135 + + dev diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java index 07d15909..faedad72 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java @@ -74,19 +74,19 @@ public class CoursePortalApi extends ApiBaseController{ @Resource private ICourseService courseService; - + @Resource private ITeacherService teacherService; - + @Resource private ICourseContentService contentService; - + @Resource private ICourseSectionService sectionService; @Resource private ICourseTeacherService courseTeacherService; - + @Autowired private IUserGroupService userGroupService; @@ -124,9 +124,9 @@ public class CoursePortalApi extends ApiBaseController{ Map list=courseService.findImages(cids); return success(list); } - + /** - * 人气榜 + * 人气榜 * */ @PostMapping("/ranking") public JsonResponse> Ranking(Integer type,Integer time){ @@ -152,7 +152,7 @@ public class CoursePortalApi extends ApiBaseController{ return success(rankingDtos); } - + /** * 查询列表,数量,类型,最新,最热 * @param num @@ -178,7 +178,7 @@ public class CoursePortalApi extends ApiBaseController{ } dto.setDevice(device); try { - + List list=courseService.findList(num, dto); return success(list); }catch(Exception e) { @@ -186,10 +186,10 @@ public class CoursePortalApi extends ApiBaseController{ return error("查询课程列表失败",e.getMessage()); } } - + @PostMapping("/pagelist-new") public JsonResponse> findNewPage(Pagination pager,CourseQueryDto dto){ - + //只是查询已发布的 dto.setPublish(true); @@ -211,9 +211,9 @@ public class CoursePortalApi extends ApiBaseController{ } } } - + return success(coursePageList); - + } /** @@ -224,7 +224,7 @@ public class CoursePortalApi extends ApiBaseController{ */ @PostMapping("/pagelist") public JsonResponse> findPage(Pagination pager,CourseQueryDto dto){ - + //只是查询已发布的 dto.setPublish(true); @@ -245,11 +245,11 @@ public class CoursePortalApi extends ApiBaseController{ } } } - + return success(coursePageList); - + } - + /** * 获取详细信息 * @param id @@ -260,19 +260,19 @@ public class CoursePortalApi extends ApiBaseController{ if(StringUtils.isBlank(id)) { return badRequest("参数错误,未指定课程"); } - + //当前对于课程不增加浏览量,课程的意义并不是看过 // if(addView==null) { // addView=false; // } - + Map rs=new HashMap(); Course course=courseService.getAddView(id); if(course==null || course.getDeleted()){ return badRequest("课程不存在或已被删除"); } rs.put("course",course); - + List courseCrowdList = courseService.findCrowdByCourseId(id); if(crowd!=null && crowd) { rs.put("crowds",courseCrowdList); @@ -315,7 +315,7 @@ public class CoursePortalApi extends ApiBaseController{ List cclist=contentService.getByCourseId(id); List sectionlist=sectionService.getByCourseId(id); List teachers=courseService.findTeachersByCourseId(id); - + //获取教师的介绍信息,因为一门课程 的教师不会太多,所以这里简单直接遍历查询,后续再优化 for(CourseTeacher ct : teachers) { @@ -335,7 +335,7 @@ public class CoursePortalApi extends ApiBaseController{ } } } - + } rs.put("isCrowd",pass); @@ -344,7 +344,7 @@ public class CoursePortalApi extends ApiBaseController{ rs.put("teachers",teachers); //查询课程 return success(rs); - + } private void getTeacherInfo(String token, List teacherIds) { List teacherInfo = thirdApi.getTeacherInfo(teacherIds, token); @@ -363,9 +363,9 @@ public class CoursePortalApi extends ApiBaseController{ } } - //作业导出 + //作业导出 @GetMapping("/export") - public JsonResponse export(String courseId,String contentId,String name,Integer status) throws IOException { + public JsonResponse export(String courseName,String courseId,String contentId,String name,Integer status) throws IOException { Mapmap=new HashMap<>(); List userIds = studyCourseDao.findList(FieldFilters.eq("courseId", courseId)).stream().filter(Objects::nonNull).map(StudyCourse::getAid).collect(Collectors.toList()); if (userIds.isEmpty()){ @@ -404,6 +404,20 @@ public class CoursePortalApi extends ApiBaseController{ if (totalFileSize > 2L * 1024 * 1024 * 1024) { return success("您要下载的作业过大,请分批下载或联系管理员!"); } + +// String encodedFilename = URLEncoder.encode(courseName+"【作业】.zip") +// .replace("+", "%20") // 空格替换为"%20" +// .replace("%2F", "/"); // 解决斜杠问题 +// StringBuilder contentDispositionValue = new StringBuilder(); +// contentDispositionValue.append("attachment; filename=\"") +// .append(encodedFilename) +// .append("\"") +// .append("; filename*=utf-8''") +// .append(encodedFilename); +// +// // 设置响应类型和Content-Disposition头 +// response.setContentType("application/zip"); + // 创建一个临时文件用于存储ZIP文件 File tempZipFile = new File("/home/www/elearning/upload/temp.zip"); @@ -429,13 +443,10 @@ public class CoursePortalApi extends ApiBaseController{ } // 将临时文件移动到指定位置 Path source = tempZipFile.toPath(); - //生成uuid - String uuid = UUID.randomUUID().toString(); + //生成uuid + String uuid = UUID.randomUUID().toString(); Path destination = Paths.get("/home/www/elearning/upload/saveZip/" + uuid + ".zip"); - // 确保目标目录存在 - Files.createDirectories(destination.getParent()); - // 删除目标文件如果已存在 if (Files.exists(destination)) { Files.delete(destination); @@ -492,7 +503,7 @@ public class CoursePortalApi extends ApiBaseController{ cv.setStatus(9); } } - //音视频 + //音视频 }else{ cv.setStatus(study.getStatus());