作业导出

This commit is contained in:
lu
2024-07-30 15:26:39 +08:00
parent e508551043
commit 9b8487b0ca
3 changed files with 42 additions and 30 deletions

View File

@@ -31,6 +31,7 @@ import com.xboe.module.course.vo.TeacherVo;
import com.xboe.module.usergroup.entity.UserGroupItem;
import com.xboe.school.study.entity.StudyHomeWork;
import com.xboe.school.study.service.IStudyHomeWorkService;
import com.xboe.school.study.service.IStudyService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
@@ -102,6 +103,9 @@ public class CoursePortalApi extends ApiBaseController{
@Autowired
IStudyHomeWorkService shomeworkService;
@Autowired
IStudyService studyService;
@Autowired
StringRedisTemplate redisTemplate;
@@ -362,38 +366,16 @@ public class CoursePortalApi extends ApiBaseController{
}
//作业导出
@GetMapping("/export")
public void export(String contentId, String courseName,String studentName,HttpServletResponse response) throws IOException {
// 将courseId以逗号分割转换为list
List<String> studentNames = Arrays.asList(studentName.split(","));
public void export(String courseName,String courseId,String contentId,String name,Integer status,HttpServletResponse response) throws IOException {
Map<String, String>map=new HashMap<>();
try {
// homeworkDao.findList(FieldFilters.in("content_id", contentIds)).stream().filter(Objects::nonNull).forEach(e -> {
// //查询内容名称
// CourseContent courseContent=contentService.getById(e.getContentId());
// if(courseContent!=null &&courseContent.getContentName()==null){
// courseContent.setContentName("作业");
// }
// //查询目录
// List<CourseSection> courseSections = sectionService.getByCourseId(e.getCourseId());
// //取作业后缀名
// int dotIndex = e.getFile().lastIndexOf('.'); // 查找最后一个'.'的位置
// String extension = e.getFile().substring(dotIndex);
// //判断是否有目录
// if(!courseSections.isEmpty()){
// map.put(courseSections.get(0).getName()+"--"+courseContent.getContentName()+extension, "/home/www/elearning/upload"+e.getFile());
// }else {
// Course course=courseDao.get(e.getCourseId());
// if(course==null || course.getDeleted()){
// throw new RuntimeException("课程不存在或已被删除");
// }
// map.put(course.getName()+"--"+courseContent.getContentName()+extension, "/home/www/elearning/upload"+e.getFile());
// }
// });
shomeworkService.getByStudnetNameAndContentId(studentNames,contentId).stream().filter(Objects::nonNull).filter(e->e.getFilePath()!=null).forEach(e->{
//取作业后缀名
int dotIndex = e.getFilePath().lastIndexOf('/'); // 查找最后一个'.'的位置
String extension = e.getFilePath().substring(dotIndex+1);
map.put(extension,e.getFilePath());
studyService.getList(courseId, contentId, name, status).stream().filter(Objects::nonNull).forEach(s->{
shomeworkService.getByStudyIdAndContentId(s.getStudyId(),contentId).stream().filter(Objects::nonNull).filter(e->e.getFilePath()!=null).forEach(e->{
//取作业后缀名
int dotIndex = e.getFilePath().lastIndexOf('/'); // 查找最后一个'.'的位置
String extension = e.getFilePath().substring(dotIndex+1);
map.put(extension,e.getFilePath());
});
});
} catch (Exception e) {

View File

@@ -95,4 +95,6 @@ public interface IStudyService {
* @return
*/
PageList<StudyCourseItem> findItemPage(int pageIndex,int pageSize,String contentId,String courseId,String name,Integer status);
List<StudyCourseItem> getList(String courseId, String contentId, String name, Integer status);
}

View File

@@ -193,6 +193,34 @@ public class StudyServiceImpl implements IStudyService{
}
@Override
public List<StudyCourseItem> getList(String courseId, String contentId, String name, Integer status) {
QueryBuilder query=QueryBuilder.from(StudyCourseItem.class);
OrderCondition oc=OrderCondition.desc("id");
query.addOrder(oc);
if(StringUtils.isNotBlank(contentId)) {
query.addFilter(FieldFilters.eq("contentId",contentId));
}
if(StringUtils.isNotBlank(courseId)) {
query.addFilter(FieldFilters.eq("courseId",courseId));
}
if(status!=null) {
if(status==1) {
query.addFilter(FieldFilters.eq("progress", 0));
}else {
query.addFilter(FieldFilters.eq("progress",100));
}
}
if(StringUtils.isNotBlank(name)) {
query.addFilter(FieldFilters.eq("aname", name));
}
return scItemDao.findList(query.builder());
}
@Override
@Transactional
public void updateProcess(String studyContentId,String studyId, String courseId,Integer total, Integer progress,String token) {