From b358255b208251d3daa50634630cf70d1d3c082c Mon Sep 17 00:00:00 2001 From: xuliangtong <1124839262@qq.com> Date: Fri, 4 Nov 2022 19:22:24 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=AE=9E=E6=93=8D=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=E5=B9=B3=E5=9D=87=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/StatisticalAnalysisService.java | 24 +++++++++++++++-- .../TeacherOpenCourseHandsOnService.java | 26 ++++++++++++++++++- .../TeacherOpenCourseHandsOnController.java | 20 +++++++++++++- .../jlw/web/query/GetHandsOnListParam.java | 6 +++++ 4 files changed, 72 insertions(+), 4 deletions(-) diff --git a/web/src/main/java/com/ibeetl/jlw/service/StatisticalAnalysisService.java b/web/src/main/java/com/ibeetl/jlw/service/StatisticalAnalysisService.java index 2bac39f9..57dd60fb 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/StatisticalAnalysisService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/StatisticalAnalysisService.java @@ -1,6 +1,7 @@ package com.ibeetl.jlw.service; import com.ibeetl.jlw.dao.StatisticalAnalysisDao; +import com.ibeetl.jlw.dao.SysLogDao; import com.ibeetl.jlw.dao.UniversitiesCollegesDao; import com.ibeetl.jlw.entity.*; import com.ibeetl.jlw.web.query.TeacherOpenCourseMergeSchoolClassQuery; @@ -11,6 +12,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -33,6 +36,10 @@ public class StatisticalAnalysisService { @Autowired private CourseInfoService courseInfoService; @Autowired private ResourcesApplicationService resourcesApplicationService; @Autowired private UniversitiesCollegesDao universitiesCollegesDao; + @Autowired private SysLogDao sysLogDao; + + private static final String PATTERN = "(?<=\"code\":\\[\").*?(?=\"\\],)"; + Pattern r = Pattern.compile(PATTERN); /** * 统计分析 @@ -133,10 +140,23 @@ public class StatisticalAnalysisService { //注册老师数 List teachers = teacherService.getTeacherByStimeAndEtime(stime, etime); data.put("teacherNumber", teachers.size()); + LambdaQuery logDaoLambdaQuery = sysLogDao.createLambdaQuery(); + if (stime != null && etime != null) { + logDaoLambdaQuery.andBetween(SysLog::getCreateTime, stime, etime); + } + List sysLogs = logDaoLambdaQuery.andLike(SysLog::getRequestUrl, "%login%").andLike(SysLog::getResult, "%成功%").select(); + Set set = new HashSet<>(); + for (SysLog sysLog : sysLogs) { + String result = sysLog.getParams(); + Matcher m = r.matcher(result); + if (m.find()) { + set.add(m.group()); + } + } //登录人数 - data.put("loginNumber", studentList.size()); + data.put("loginNumber", set.size()); //登录人次 - data.put("studentPersonTime", studentList.size()); + data.put("studentPersonTime", sysLogs.size()); //上线课程数 List courseInfoList = courseInfoService.getCourseInfoByStimeAndEtime(stime, etime); data.put("courseNumber", courseInfoList.size()); diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnService.java index 7817f49b..bb674b71 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnService.java @@ -200,7 +200,7 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService collect = achievementList.stream().filter(v -> v.getHandOnId() == teacherOpenCourseHandsOnList.getHandsOnId()).collect(Collectors.toList()); + List collect = achievementList.stream().filter(v -> v.getHandOnId().equals(teacherOpenCourseHandsOnList.getHandsOnId())).collect(Collectors.toList()); Double videoScore = collect.stream().map(HandsOnAchievement::getVideoScore).collect(Collectors.averagingDouble(Double::parseDouble)); Double pptAvgScore = collect.stream().map(HandsOnAchievement::getPptScore).collect(Collectors.averagingDouble(Double::parseDouble)); Double theoryAvgScore = collect.stream().map(HandsOnAchievement::getTheoryScore).collect(Collectors.averagingDouble(Double::parseDouble)); @@ -245,5 +245,29 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService teacherOpenCourseHandsOnLists = teacherOpenCourseHandsOnDao.getHandsOnList(param); + List handIds = teacherOpenCourseHandsOnLists.stream().map(v -> v.getHandsOnId()).collect(Collectors.toList()); + List achievementList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(handIds)) { + achievementList = handsOnAchievementService.getListByhandIdsAndClassId(handIds, param.getClassId()); + } + TeacherOpenCourseHandsOnList teacherOpenCourseHandsOnList = new TeacherOpenCourseHandsOnList(); + Double videoScore = achievementList.stream().map(HandsOnAchievement::getVideoScore).collect(Collectors.averagingDouble(Double::parseDouble)); + Double pptAvgScore = achievementList.stream().map(HandsOnAchievement::getPptScore).collect(Collectors.averagingDouble(Double::parseDouble)); + Double theoryAvgScore = achievementList.stream().map(HandsOnAchievement::getTheoryScore).collect(Collectors.averagingDouble(Double::parseDouble)); + Double stepAvgScore = achievementList.stream().map(HandsOnAchievement::getPracticalTrainingScore).collect(Collectors.averagingDouble(Double::parseDouble)); + Double reportAvgScore = achievementList.stream().map(HandsOnAchievement::getReportWritingScore).collect(Collectors.averagingDouble(Double::parseDouble)); + teacherOpenCourseHandsOnList.setVideoAvgScore(videoScore); + teacherOpenCourseHandsOnList.setPptAvgScore(pptAvgScore); + teacherOpenCourseHandsOnList.setTheoryAvgScore(theoryAvgScore); + teacherOpenCourseHandsOnList.setStepAvgScore(stepAvgScore); + teacherOpenCourseHandsOnList.setReportAvgScore(reportAvgScore); + return teacherOpenCourseHandsOnList; + + + } } diff --git a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseHandsOnController.java b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseHandsOnController.java index 90d5a0b4..235f03c9 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseHandsOnController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseHandsOnController.java @@ -221,7 +221,7 @@ public class TeacherOpenCourseHandsOnController{ /** - * + * 实操列表 * @param teacherOpenCourseId 开课ID * @param classId 班级ID * @param coreUser @@ -238,6 +238,24 @@ public class TeacherOpenCourseHandsOnController{ } + /** + * 实操列表上方数值 + * @param teacherOpenCourseId 开课ID + * @param classId 班级ID + * @param coreUser + * @return + */ + @GetMapping(MODEL + "/getHandsOnListCount.do") + public JsonResult getHandsOnListCount(GetHandsOnListParam param, @SCoreUser CoreUser coreUser) { + if(null == coreUser){ + return JsonResult.failMessage("请登录后再操作"); + }else{ + TeacherOpenCourseHandsOnList list = teacherOpenCourseHandsOnService.getHandsOnListCount(param); + return JsonResult.success(list); + } + } + + //导出信息 @GetMapping(MODEL + "/excel/export.json") @Function("teacherOpenCourseHandsOn.exportDocument") diff --git a/web/src/main/java/com/ibeetl/jlw/web/query/GetHandsOnListParam.java b/web/src/main/java/com/ibeetl/jlw/web/query/GetHandsOnListParam.java index 0f7d8d7a..3ad764a2 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/query/GetHandsOnListParam.java +++ b/web/src/main/java/com/ibeetl/jlw/web/query/GetHandsOnListParam.java @@ -11,8 +11,14 @@ import com.ibeetl.admin.core.web.query.PageParam; */ public class GetHandsOnListParam extends PageParam { + /** + * 开课id + */ private Long teacherOpenCourseId; + /** + * 班级id + */ private Long classId; public Long getTeacherOpenCourseId() {