diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java index 1b6c8d8c..6053f939 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java @@ -32,6 +32,8 @@ import com.xboe.module.course.service.ICourseSectionService; import com.xboe.module.course.service.ICourseService; import com.xboe.module.teacher.entity.Teacher; import com.xboe.module.teacher.service.ITeacherService; +import com.xboe.school.study.dto.CourseStudyItem; +import com.xboe.school.study.dto.CourseStudyQuery; import com.xboe.school.study.dto.StudyContentDto; import com.xboe.school.study.dto.StudyCourseNameDto; import com.xboe.school.study.dto.StudyCourseQuery; @@ -703,6 +705,27 @@ public class StudyCourseApi extends ApiBaseController{ return success(studyCouseDtos); } - + /** + * 对外提供的接口,根据课程,和学生id集合。获取指定学习的学习情况 + * @param query + * @return + */ + @PostMapping("/course-study-bystudents") + public JsonResponse> courseUsers(@RequestBody CourseStudyQuery query){ + if(StringUtils.isBlank(query.getCourseId())){ + return badRequest("未指定课程"); + } + if(query.getStudentIds()==null){ + return badRequest("未指定学生信息"); + } + try { + List rs = service.findByCourseAndUsers(query.getCourseId(),query.getStudentIds()); + return success(rs); + }catch(Exception e) { + log.error("按课程,学生id集合查询错误",e); + return error("查询错误",e.getMessage()); + + } + } } diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/dto/CourseStudyItem.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/dto/CourseStudyItem.java new file mode 100644 index 00000000..a279a336 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/dto/CourseStudyItem.java @@ -0,0 +1,34 @@ +package com.xboe.school.study.dto; + +import java.time.LocalDateTime; + +import com.fasterxml.jackson.annotation.JsonFormat; + +import lombok.Data; + +@Data +public class CourseStudyItem { + + private String id; + + private String courseId; + + private String courseName; + + private String studentId; + + private String studentName; + + private String sysType1; + + private String sysType2; + + private String sysType3; + + private Float progress;//学习进度 + + private Integer status;//学习状态 + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startTime; +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/dto/CourseStudyQuery.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/dto/CourseStudyQuery.java new file mode 100644 index 00000000..f1e8e4cf --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/dto/CourseStudyQuery.java @@ -0,0 +1,19 @@ +package com.xboe.school.study.dto; + +import java.util.List; + +import lombok.Data; + +@Data +public class CourseStudyQuery { + + /** + * 课程id + */ + private String courseId; + + /** + * 学生的id集合 + */ + private List studentIds; +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudyCourseService.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudyCourseService.java index 3a7f04e7..29c77586 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudyCourseService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudyCourseService.java @@ -4,6 +4,7 @@ import java.util.List; import com.xboe.common.OrderCondition; import com.xboe.common.PageList; +import com.xboe.school.study.dto.CourseStudyItem; import com.xboe.school.study.dto.StudyCourseNameDto; import com.xboe.school.study.dto.StudyCourseQuery; import com.xboe.school.study.dto.StudyCourseSimple; @@ -93,5 +94,7 @@ public interface IStudyCourseService { * 查询课程最新学习记录的进度 * */ List progress(String aid,List courseIds); + + List findByCourseAndUsers(String courseId,List aids) throws Exception; } diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java index 8244b5f2..5eb03023 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java @@ -34,6 +34,7 @@ import com.xboe.school.study.dao.StudyHomeWorkDao; import com.xboe.school.study.dao.StudyScoreDao; import com.xboe.school.study.dao.StudySignupDao; import com.xboe.school.study.dao.StudyTimeDao; +import com.xboe.school.study.dto.CourseStudyItem; import com.xboe.school.study.dto.StudyCourseNameDto; import com.xboe.school.study.dto.StudyCourseQuery; import com.xboe.school.study.dto.StudyCourseSimple; @@ -698,4 +699,36 @@ public class StudyCourseServiceImpl implements IStudyCourseService{ return rs; } + @Override + public List findByCourseAndUsers(String courseId, List aids) throws Exception { + + QueryBuilder query=QueryBuilder.from(StudyCourse.class.getSimpleName()+" sc,"+ Course.class.getSimpleName()+" c"); + query.addFields("sc.id","sc.aid","sc.aname","sc.progress","sc.status","sc.addTime"); + query.addFields("c.id","c.name","c.sysType1","c.sysType2","c.sysType3"); + query.addFilter(FieldFilters.eqField("sc.courseId","c.id")); + query.addFilter(FieldFilters.eq("c.enabled",true)); + query.addFilter(FieldFilters.eq("c.deleted",false)); + query.addFilter(FieldFilters.eq("c.id",courseId)); + query.addFilter(FieldFilters.in("sc.aid",aids)); + List rslist=new ArrayList(); + List list=studyCourseDao.findListFields(query.builder()); + for(Object[] objs : list) { + CourseStudyItem item=new CourseStudyItem(); + item.setId((String)objs[0]); + item.setStudentId((String)objs[1]); + item.setStudentName((String)objs[2]); + item.setProgress((Float)objs[3]); + item.setStatus((Integer)objs[4]); + //item.setStartTime((LocalDateTime)objs[5]); + item.setCourseId((String)objs[6]); + item.setCourseName((String)objs[7]); + item.setSysType1((String)objs[8]); + item.setSysType2((String)objs[9]); + item.setSysType3((String)objs[10]); + rslist.add(item); + } + + return rslist; + } + }