diff --git a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseHandsOnList.java b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseHandsOnList.java index 2dde90a6..929b1277 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseHandsOnList.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseHandsOnList.java @@ -1,9 +1,5 @@ package com.ibeetl.jlw.entity; -import com.ibeetl.admin.core.annotation.Dict; - -import java.math.BigDecimal; - /** * 类功能说明 * @@ -18,7 +14,7 @@ public class TeacherOpenCourseHandsOnList { */ private Long handsOnId; - private Long handsOnName; + private String handsOnName; /** * 观看视频平均得分 @@ -53,11 +49,11 @@ public class TeacherOpenCourseHandsOnList { this.handsOnId = handsOnId; } - public Long getHandsOnName() { + public String getHandsOnName() { return handsOnName; } - public void setHandsOnName(Long handsOnName) { + public void setHandsOnName(String handsOnName) { this.handsOnName = handsOnName; } 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 183ae648..235f03c9 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseHandsOnController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseHandsOnController.java @@ -24,7 +24,10 @@ import org.beetl.sql.core.engine.PageQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; @@ -74,6 +77,11 @@ public class TeacherOpenCourseHandsOnController{ } } + @GetMapping(API + "/getALLInfo.do") + public JsonResult>getALLInfo(TeacherOpenCourseHandsOnQuery param) { + Listlist = teacherOpenCourseHandsOnService.getValuesByQuery(param); + return JsonResult.success(list); + } @GetMapping(API + "/getList.do") public JsonResult>getList(TeacherOpenCourseHandsOnQuery param,@SCoreUser CoreUser coreUser) { @@ -213,7 +221,7 @@ public class TeacherOpenCourseHandsOnController{ /** - * + * 实操列表 * @param teacherOpenCourseId 开课ID * @param classId 班级ID * @param coreUser @@ -230,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") @@ -341,8 +367,8 @@ public class TeacherOpenCourseHandsOnController{ } - @PostMapping(MODEL + "/add.do") - public JsonResult addTeacherOpenCourseHandsOn(@RequestBody @Validated(ValidateConfig.ADD.class) TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery, BindingResult result, @SCoreUser CoreUser coreUser){ + @PostMapping(API + "/add.do") + public JsonResult addTeacherOpenCourseHandsOn(@Validated(ValidateConfig.ADD.class) TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery, BindingResult result, @SCoreUser CoreUser coreUser){ if(result.hasErrors()){ return JsonResult.failMessage(result); }else{ @@ -492,7 +518,7 @@ public class TeacherOpenCourseHandsOnController{ * @param result * @return */ - @PostMapping(MODEL + "/edit.do") + @PostMapping(API + "/edit.do") public JsonResult editDo(@Validated(ValidateConfig.UPDATE.class) TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery, BindingResult result) { if(result.hasErrors()){ return JsonResult.failMessage(result); diff --git a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseHandsOnSimulationTasksController.java b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseHandsOnSimulationTasksController.java index ae9b90fd..bb38fea2 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseHandsOnSimulationTasksController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseHandsOnSimulationTasksController.java @@ -279,7 +279,7 @@ public class TeacherOpenCourseHandsOnSimulationTasksController{ * 学生id studentId * 学号 studentSn */ - @GetMapping(MODEL + "/getStudentScore") + @GetMapping(API + "/getStudentScore.do") @ResponseBody public PageQuery getStudentScore(StudentScoreParam studentScoreParam) { return teacherOpenCourseHandsOnSimulationTasksService.getStudentScore(studentScoreParam); 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() {