From 1d22e0eeafe2b0ec4241d4429ba1d9848113d516 Mon Sep 17 00:00:00 2001 From: daihh Date: Mon, 9 Jan 2023 19:30:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=A0=E7=9A=84=E8=80=83?= =?UTF-8?q?=E8=AF=95=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/course/api/CourseManageApi.java | 2 - .../module/exam/api/AloneExamExtendApi.java | 54 ++++++++++++++++-- .../module/exam/dto/TestUserAnswerDto.java | 30 ++++++++++ .../com/xboe/module/exam/dto/TestUserDto.java | 29 ++++++++++ .../xboe/module/exam/dto/TestUserQuery.java | 14 +++++ .../service/impl/AloneExamServiceImpl.java | 56 ++++++++++++++++++- .../service/impl/StudyCourseServiceImpl.java | 2 +- 7 files changed, 177 insertions(+), 10 deletions(-) create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/exam/dto/TestUserAnswerDto.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/exam/dto/TestUserDto.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/exam/dto/TestUserQuery.java diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java index 92c6d488..e0f0ef48 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java @@ -19,7 +19,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import com.xboe.TempFilterConfig; import com.xboe.account.entity.Account; import com.xboe.common.PageList; import com.xboe.common.Pagination; @@ -27,7 +26,6 @@ import com.xboe.core.CurrentUser; import com.xboe.core.JsonResponse; import com.xboe.core.api.ApiBaseController; import com.xboe.core.log.AutoLog; -import com.xboe.core.orm.FieldFilters; import com.xboe.data.outside.IOutSideDataService; import com.xboe.externalinterface.system.service.IFwUserService; import com.xboe.module.assistance.service.IEmailService; diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/exam/api/AloneExamExtendApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/exam/api/AloneExamExtendApi.java index c73b6a7a..2b852840 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/exam/api/AloneExamExtendApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/exam/api/AloneExamExtendApi.java @@ -1,18 +1,28 @@ package com.xboe.module.exam.api; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + import com.xboe.common.PageList; import com.xboe.common.Pagination; import com.xboe.common.utils.StringUtil; import com.xboe.core.JsonResponse; import com.xboe.core.api.ApiBaseController; +import com.xboe.module.exam.dto.TestUserDto; +import com.xboe.module.exam.dto.TestUserQuery; import com.xboe.module.exam.entity.AloneExam; import com.xboe.module.exam.entity.AloneExamAnswer; import com.xboe.module.exam.service.IAloneExamService; import com.xboe.module.exam.vo.AloneExamQuery; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; /** * 对于与第三方对接的扩展接口 @@ -94,5 +104,39 @@ public class AloneExamExtendApi extends ApiBaseController { } - + /** + * 考试情况统计,按考试 + * 总人数,完成人数,进行中的人数,未开始的人数,通过的人数,未通过的人数 + * @param testId + * @return + */ + @GetMapping("/stat") + public JsonResponse> stat(String testId){ + if(StringUtil.isBlank(testId)){ + return badRequest("参数异常"); + } + //List answer = aloneExamService.findAnswer(aloneId); + Map map=new HashMap(); + try { + + return success(map); + }catch(Exception e) { + return error("考试统计错误",e.getMessage(),null); + } + } + + @PostMapping("/user-answers") + public JsonResponse> userAnswers(@RequestBody TestUserQuery query){ + if(StringUtil.isBlank(query.getTestId())){ + return badRequest("参数异常"); + } + + try { + + return success(null); + }catch(Exception e) { + return error("考试统计错误",e.getMessage(),null); + } + } + } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/exam/dto/TestUserAnswerDto.java b/servers/boe-server-all/src/main/java/com/xboe/module/exam/dto/TestUserAnswerDto.java new file mode 100644 index 00000000..06f86327 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/exam/dto/TestUserAnswerDto.java @@ -0,0 +1,30 @@ +package com.xboe.module.exam.dto; + +import java.time.LocalDateTime; + +import com.fasterxml.jackson.annotation.JsonFormat; + +import lombok.Data; + +@Data +public class TestUserAnswerDto { + + private Integer totalScore; + + private Float realScore; + + private Float score; + + private Integer status; + + private Integer testDuration; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime lastTime; +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/exam/dto/TestUserDto.java b/servers/boe-server-all/src/main/java/com/xboe/module/exam/dto/TestUserDto.java new file mode 100644 index 00000000..07cf57e5 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/exam/dto/TestUserDto.java @@ -0,0 +1,29 @@ +package com.xboe.module.exam.dto; + +import java.util.List; + +import lombok.Data; + +@Data +public class TestUserDto implements java.io.Serializable{ + + private static final long serialVersionUID = 1L; + + private Integer pageIndex; + + private Integer pageSize; + + private Integer status; + + private String testId; + + private String testName;//这一项为什么还要呀,就是指定的考试 + + private String aloneId; + + private String aid; + + private String name; + + private List answers; +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/exam/dto/TestUserQuery.java b/servers/boe-server-all/src/main/java/com/xboe/module/exam/dto/TestUserQuery.java new file mode 100644 index 00000000..09058a69 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/exam/dto/TestUserQuery.java @@ -0,0 +1,14 @@ +package com.xboe.module.exam.dto; + +import lombok.Data; + +@Data +public class TestUserQuery implements java.io.Serializable{ + + private static final long serialVersionUID = 1L; + private Integer pageIndex; + private Integer pageSize; + private Integer status; + private String[] aids; + private String testId; +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/AloneExamServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/AloneExamServiceImpl.java index 7482f336..4035be7b 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/AloneExamServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/AloneExamServiceImpl.java @@ -1,27 +1,31 @@ package com.xboe.module.exam.service.impl; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; +import java.util.Map; import javax.annotation.Resource; -import com.xboe.common.utils.StringUtil; -import com.xboe.module.exam.vo.AloneExamQuery; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.xboe.common.OrderCondition; import com.xboe.common.PageList; +import com.xboe.common.utils.StringUtil; import com.xboe.core.orm.FieldFilters; import com.xboe.core.orm.QueryBuilder; import com.xboe.core.orm.UpdateBuilder; import com.xboe.module.exam.dao.AloneExamAnswerDao; import com.xboe.module.exam.dao.AloneExamDao; +import com.xboe.module.exam.dto.TestUserDto; +import com.xboe.module.exam.dto.TestUserQuery; import com.xboe.module.exam.entity.AloneExam; import com.xboe.module.exam.entity.AloneExamAnswer; import com.xboe.module.exam.entity.ExamTest; import com.xboe.module.exam.service.IAloneExamService; +import com.xboe.module.exam.vo.AloneExamQuery; @Service public class AloneExamServiceImpl implements IAloneExamService{ @@ -332,4 +336,52 @@ public class AloneExamServiceImpl implements IAloneExamService{ return aeDao.get(id); } + //新增加的接口 + + /** + * 按考试统计(总人数,完成人数,进行中的人数,未开始的人数,通过的人数,未通过的人数) + * @param testId + * @return + */ + public Map statByTestId(String testId) throws Exception { +// QueryBuilder query=QueryBuilder.from(AloneExamAnswer.class); +// query.addField("new AloneExamAnswer(id,aid,name,testId,testName,arrange,passLine,status,startTime,endTime,lastTime,clientIp,ucode,score,totalScore,realScore,useSecond)"); +// query.addFilter(FieldFilters.eq("aid",aid)); +// query.addFilter(FieldFilters.eq("testId",testId)); +// query.addOrder(OrderCondition.desc("id")); +// query.setPageSize(1); +// List list=dao.findList(query.builder()); +// if(list.isEmpty()) { +// return null; +// } + return null; + } + + public PageList findTestUserAnswers(TestUserQuery params) throws Exception{ + + QueryBuilder query=QueryBuilder.from(AloneExam.class); + query.addFields("id,aid,name,testName,passLine,score,status"); + query.setPageIndex(params.getPageIndex()); + query.setPageSize(params.getPageSize()); + query.addFilter(FieldFilters.eq("testId",params.getTestId())); + if(params.getAids()!=null) { + query.addFilter(FieldFilters.in("aid",params.getAids())); + } + if(params.getStatus()!=null) { + query.addFilter(FieldFilters.eq("status",params.getStatus())); + } + PageList rsUsers=aeDao.findPageFields(query.builder()); + List dtoUsers=new ArrayList(); + for(Object[] objs : rsUsers.getList()) { + TestUserDto dto=new TestUserDto(); + dto.setAloneId((String)objs[0]); + dto.setAid((String)objs[1]); + dto.setName((String)objs[2]); + dto.setTestId(params.getTestId()); + dto.setTestName((String)objs[3]); + } + + PageList rs=new PageList(); + return rs; + } } 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 1f376d8a..8244b5f2 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 @@ -437,7 +437,7 @@ public class StudyCourseServiceImpl implements IStudyCourseService{ List clist= studyCourseDao.findListFields(courseHql,studyCourseQuery.getIds()); List slist= studyCourseDao.findListFields(studyHql,studyCourseQuery.getAids(),studyCourseQuery.getIds()); //数据数量一般不会太多,不超过20条,所以直接使用嵌套循环 - Map map=new HashMap(); + //Map map=new HashMap(); for(Object[] sobjs : slist) { StudyCourseSimple sc=new StudyCourseSimple(); sc.setCourseId(ConvertUtil.toStr(sobjs[0]));