diff --git a/src/main/java/cn/teammodel/controller/admin/controller/LaborEducationController.java b/src/main/java/cn/teammodel/controller/admin/controller/LaborEducationController.java index ee5a39e..707673f 100644 --- a/src/main/java/cn/teammodel/controller/admin/controller/LaborEducationController.java +++ b/src/main/java/cn/teammodel/controller/admin/controller/LaborEducationController.java @@ -4,6 +4,7 @@ import cn.teammodel.common.R; import cn.teammodel.controller.admin.service.ExamService; import cn.teammodel.controller.admin.service.LaborEducationService; import cn.teammodel.model.dto.admin.exam.OverViewDto; +import cn.teammodel.model.dto.admin.labor.FindDto; import cn.teammodel.model.dto.admin.labor.LaborDto; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -29,4 +30,10 @@ public class LaborEducationController { Map res = laborEducationService.getAnalysis(laborDto,request); return R.success(res); } + @PostMapping("getDetails") + @ApiOperation("获取指定学生评测和评价数据") + public R> getDetails(@Valid @RequestBody FindDto findDto, HttpServletRequest request) { + Map res = laborEducationService.getDetails(findDto,request); + return R.success(res); + } } diff --git a/src/main/java/cn/teammodel/controller/admin/service/LaborEducationService.java b/src/main/java/cn/teammodel/controller/admin/service/LaborEducationService.java index ea2f4e1..e4fddd7 100644 --- a/src/main/java/cn/teammodel/controller/admin/service/LaborEducationService.java +++ b/src/main/java/cn/teammodel/controller/admin/service/LaborEducationService.java @@ -1,6 +1,7 @@ package cn.teammodel.controller.admin.service; import cn.teammodel.model.dto.admin.exam.OverViewDto; +import cn.teammodel.model.dto.admin.labor.FindDto; import cn.teammodel.model.dto.admin.labor.LaborDto; import org.springframework.stereotype.Service; @@ -9,4 +10,5 @@ import java.util.Map; public interface LaborEducationService { Map getAnalysis(LaborDto laborDto, HttpServletRequest request); + Map getDetails(FindDto findDto, HttpServletRequest request); } diff --git a/src/main/java/cn/teammodel/controller/admin/service/impl/LaborEducationServiceImpl.java b/src/main/java/cn/teammodel/controller/admin/service/impl/LaborEducationServiceImpl.java index fd82f48..f499c4f 100644 --- a/src/main/java/cn/teammodel/controller/admin/service/impl/LaborEducationServiceImpl.java +++ b/src/main/java/cn/teammodel/controller/admin/service/impl/LaborEducationServiceImpl.java @@ -9,6 +9,7 @@ import cn.teammodel.model.dto.admin.common.GCDto; import cn.teammodel.model.dto.admin.common.GroupDto; import cn.teammodel.model.dto.admin.common.RGroupList; import cn.teammodel.model.dto.admin.common.RMember; +import cn.teammodel.model.dto.admin.labor.FindDto; import cn.teammodel.model.dto.admin.labor.LaborDto; import cn.teammodel.model.entity.appraise.Appraise; import cn.teammodel.model.entity.appraise.AppraiseTreeNode; @@ -205,6 +206,22 @@ public class LaborEducationServiceImpl implements LaborEducationService { } + @Override + public Map getDetails(FindDto findDto, HttpServletRequest request) { + Map resMap = new HashMap<>(); + List exams; + List res; + try { + exams = examRepository.findExamByClassId(String.format(PK.EXAM, findDto.getTmdId()), findDto.getClassId(), findDto.getPeriodId(), findDto.getSubjectId()); + res= appraiseRecordRepository.getRecords(String.format(PK.PK_APPRAISE_RECORD, findDto.getCode()),findDto.getAcademicYearId(), findDto.getClassId(), findDto.getStudentId()); + resMap.put("exams",exams); + resMap.put("res", res); + }catch (Exception e){ + throw new ServiceException(ErrorCode.SYSTEM_ERROR.getCode(), "数据查询异常"); + } + return resMap; + } + public List> combineScoresWithExamResults( List> scores, List examResults, diff --git a/src/main/java/cn/teammodel/model/dto/admin/labor/FindDto.java b/src/main/java/cn/teammodel/model/dto/admin/labor/FindDto.java new file mode 100644 index 0000000..f94770d --- /dev/null +++ b/src/main/java/cn/teammodel/model/dto/admin/labor/FindDto.java @@ -0,0 +1,14 @@ +package cn.teammodel.model.dto.admin.labor; + +import lombok.Data; + +@Data + public class FindDto { + public String code; + public String studentId; + public String classId; + public String subjectId; + public String periodId; + public String academicYearId; + public String tmdId; +} diff --git a/src/main/java/cn/teammodel/model/vo/appraise/RecordVo.java b/src/main/java/cn/teammodel/model/vo/appraise/RecordVo.java index 7889c2b..5cd3675 100644 --- a/src/main/java/cn/teammodel/model/vo/appraise/RecordVo.java +++ b/src/main/java/cn/teammodel/model/vo/appraise/RecordVo.java @@ -19,6 +19,7 @@ public class RecordVo { private String targetType; // 评价对象类型 private String creatorId; private String creator; + private String[] path; private Long createTime; @JsonProperty("isPraise") private boolean isPraise; diff --git a/src/main/java/cn/teammodel/repository/AppraiseRecordRepository.java b/src/main/java/cn/teammodel/repository/AppraiseRecordRepository.java index e1a96cc..389461e 100644 --- a/src/main/java/cn/teammodel/repository/AppraiseRecordRepository.java +++ b/src/main/java/cn/teammodel/repository/AppraiseRecordRepository.java @@ -82,6 +82,18 @@ public interface AppraiseRecordRepository extends CosmosRepository latestRecords(String code, String academicYearId, Long startTime, Long endTime, Collection ids); + /** + * 获取指定学生的评价记录 + */ + @Query("select c.id as recordId, c.name as targetName, c.avatar, c.classId,c.className, n.id as recordNodeId, c.targetId, c.targetType, n.creator, n.createTime, n.appraiseNode.name as appraiseName, n.appraiseNode.isPraise, n.device,n.appraiseNode.path from Student as c join n in c.nodes where " + + "c.code = @code and " + + "c.academicYearId = @academicYearId and " + + "c.classId = @classId and " + + "c.targetId = @studentId " + ) + List getRecords(String code, String academicYearId, String classId,String studentId); + + @Query("select c.classId as id, count(1) as count from Student as c join n in c.nodes where( " + "c.code = @code) and " + "(c.academicYearId = @academicYearId) and " + diff --git a/src/main/java/cn/teammodel/repository/ExamRepository.java b/src/main/java/cn/teammodel/repository/ExamRepository.java index cda04d0..d31f6e6 100644 --- a/src/main/java/cn/teammodel/repository/ExamRepository.java +++ b/src/main/java/cn/teammodel/repository/ExamRepository.java @@ -12,8 +12,8 @@ import java.util.List; @Repository public interface ExamRepository extends CosmosRepository { - @Query("select * from Exam as s where s.code = @code and array_contains(s.classes,@classId) and s.period.id = @periodId and s.progress = 'finish' order by s.createTime ") - List findExamByClassId(@Param("code")String code, @Param("classId")String classId, @Param("periodId")String periodId); + @Query("select s.id,s.name,s.average,s.createTime from Exam as s join p in s.subjects where s.code = @code and array_contains(s.classes,@classId) and s.period.id = @periodId and s.progress = 'finish' and p.id =@subjectId order by s.createTime ") + List findExamByClassId(String code,String classId,String periodId,String subjectId); @Query("select * from Exam as s where s.code = @code and s.id = @id") List findExamById(@Param("code")String code, @Param("id")String id); @Query("select s.id,s.name,s.average,s.classes,s.stuCount,s.createTime,s.papers from Exam as s where s.code = @code and s.lessonRecordId in (@ids)")