You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
722 lines
41 KiB
Java
722 lines
41 KiB
Java
package com.ibeetl.jlw.service;
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
import cn.hutool.core.util.NumberUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.jlw.Interceptor.ResponseControllerAdvice;
|
|
import com.ibeetl.admin.core.dao.CoreUserDao;
|
|
import com.ibeetl.admin.core.entity.CoreUser;
|
|
import com.ibeetl.admin.core.util.DateUtil;
|
|
import com.ibeetl.admin.core.util.enums.DelFlagEnum;
|
|
import com.ibeetl.jlw.conf.KeyExpiredListener;
|
|
import com.ibeetl.jlw.dao.TeacherOpenCourseQuestionSettingDao;
|
|
import com.ibeetl.jlw.dao.TeacherOpenCourseScoreDashboardDao;
|
|
import com.ibeetl.jlw.dao.UniversitiesCollegesJurisdictionExperimentalSystemDao;
|
|
import com.ibeetl.jlw.entity.*;
|
|
import com.ibeetl.jlw.entity.vo.StudentLogAnalysisVO;
|
|
import com.ibeetl.jlw.entity.vo.StudentLoginLogVO;
|
|
import com.ibeetl.jlw.enums.ChatLogSendTypeEnum;
|
|
import com.ibeetl.jlw.enums.GlobalPushStatusEnum;
|
|
import com.ibeetl.jlw.enums.GlobalUpStatusEnum;
|
|
import com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum;
|
|
import com.ibeetl.jlw.web.query.*;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.beetl.sql.core.engine.PageQuery;
|
|
import org.beetl.sql.core.query.LambdaQuery;
|
|
import org.beetl.sql.core.query.Query;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.context.annotation.Lazy;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.RoundingMode;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
|
|
import static cn.jlw.util.CacheUserUtil.getUniAdmin;
|
|
import static com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum.EXAM;
|
|
import static com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum.HOMEWORK_FILE;
|
|
|
|
/**
|
|
* 统计分析service
|
|
*
|
|
* @Version 0.0.1
|
|
* @Author 许良彤
|
|
* @Date 2022/10/7 12:25
|
|
*/
|
|
@Service
|
|
public class StatisticalAnalysisService {
|
|
|
|
|
|
@Autowired
|
|
private TeacherOpenCourseMergeSchoolClassService teacherOpenCourseMergeSchoolClassService;
|
|
@Autowired
|
|
private TeacherOpenCourseMergeStudentService teacherOpenCourseMergeStudentService;
|
|
@Autowired
|
|
private TeacherOpenCourseNoticeService teacherOpenCourseNoticeService;
|
|
@Autowired
|
|
private StudentService studentService;
|
|
@Autowired
|
|
private TeacherService teacherService;
|
|
|
|
@Autowired
|
|
private ResourcesApplicationService resourcesApplicationService;
|
|
@Autowired
|
|
private UniversitiesCollegesService universitiesCollegesService;
|
|
@Autowired
|
|
private CoreUserDao coreUserDao;
|
|
@Autowired
|
|
private ResourcesTrainingService resourcesTrainingService;
|
|
@Autowired
|
|
private ResourcesInfoService resourcesInfoService;
|
|
@Autowired
|
|
private ResourcesQuestionService resourcesQuestionService;
|
|
@Autowired
|
|
private TeacherOpenCourseStudentSigninLogService teacherOpenCourseStudentSigninLogService;
|
|
|
|
@Autowired
|
|
private TeacherOpenCourseStudentSigninSettingService teacherOpenCourseStudentSigninSettingService;
|
|
@Autowired
|
|
private TeacherOpenCourseQuestionSettingService teacherOpenCourseQuestionSettingService;
|
|
@Autowired
|
|
private TeacherOpenCourseMergeCourseInfoService teacherOpenCourseMergeCourseInfoService;
|
|
@Autowired
|
|
private TeacherOpenCourseQuestionLogService teacherOpenCourseQuestionLogService;
|
|
@Autowired
|
|
private TeacherOpenCourseHandsOnService teacherOpenCourseHandsOnService;
|
|
@Autowired
|
|
@Lazy
|
|
private TeacherOpenCourseHandsOnSimulationTasksService teacherOpenCourseHandsOnSimulationTasksService;
|
|
|
|
@Autowired
|
|
private TeacherOpenCourseChatLogService teacherOpenCourseChatLogService;
|
|
@Autowired
|
|
private TeacherOpenCourseService teacherOpenCourseService;
|
|
@Autowired
|
|
private TeacherOpenCourseQuestionSettingDao teacherOpenCourseQuestionSettingDao;
|
|
@Autowired
|
|
private HandsOnService handsOnService;
|
|
|
|
@Autowired
|
|
private ResourcesCompetitionService resourcesCompetitionService;
|
|
@Autowired
|
|
private TeacherOpenCourseScoreDashboardDao teacherOpenCourseScoreDashboardDao;
|
|
|
|
@Autowired
|
|
private UniversitiesCollegesJurisdictionExperimentalSystemDao universitiesCollegesJurisdictionExperimentalSystemDao;
|
|
@Autowired
|
|
private UniversitiesCollegesJurisdictionCurriculumResourcesService universitiesCollegesJurisdictionCurriculumResourcesService;
|
|
|
|
@Autowired
|
|
private TeacherOpenCourseMergeResourcesInfoService teacherOpenCourseMergeResourcesInfoService;
|
|
|
|
@Autowired
|
|
private TeacherOpenCourseMergeResourcesQuestionService teacherOpenCourseMergeResourcesQuestionService;
|
|
|
|
@Autowired
|
|
private StudentHandsOnTaskLogService studentHandsOnTaskLogService;
|
|
|
|
@Autowired
|
|
private CourseInfoService courseInfoService;
|
|
|
|
|
|
/**
|
|
* 统计分析
|
|
*
|
|
* @param
|
|
*/
|
|
public Map<String, Object> detail(Long teacherOpenCourseId, Date stime, Date etime) {
|
|
|
|
|
|
Map<String, Object> data = new HashMap<>(24);
|
|
// 暂不使用连表方式查询
|
|
// statisticalAnalysisDao.detail(teacherOpenCourseId, stime, etime);
|
|
//班级数
|
|
TeacherOpenCourseMergeSchoolClassQuery classQuery = new TeacherOpenCourseMergeSchoolClassQuery();
|
|
classQuery.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
classQuery.setTeacherOpenCourseMergeSchoolClassStatus(1);
|
|
List<TeacherOpenCourseMergeSchoolClass> schoolClasses = teacherOpenCourseMergeSchoolClassService.getValues(classQuery);
|
|
data.put("classNum", schoolClasses.size());
|
|
//学生人数
|
|
TeacherOpenCourseMergeStudentQuery teacherOpenCourseMergeStudentQuery = new TeacherOpenCourseMergeStudentQuery();
|
|
teacherOpenCourseMergeStudentQuery.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
teacherOpenCourseMergeStudentQuery.setTeacherOpenCourseSchoolClassMergeStudentStatus(1);
|
|
List<TeacherOpenCourseMergeStudent> studentList = teacherOpenCourseMergeStudentService.getValuesByQueryNotWithPermission(teacherOpenCourseMergeStudentQuery);
|
|
data.put("studentNum", studentList.size());
|
|
//学习通过率
|
|
List<TeacherOpenCourseScoreDashboard> scoreDashboards = teacherOpenCourseScoreDashboardDao.createLambdaQuery().andEq(TeacherOpenCourseScoreDashboard::getTeacherOpenCourseId, teacherOpenCourseId).select();
|
|
if (CollectionUtil.isNotEmpty(scoreDashboards)) {
|
|
long count1 = scoreDashboards.stream().filter(v ->
|
|
"不及格".equals(v.getLastStatus()) || "E".equals(v.getLastStatus())).count();
|
|
long l = scoreDashboards.size() - count1;
|
|
data.put("passRate", studentList.size() == 0 ? 0 : NumberUtil.formatPercent(NumberUtil.div(l, studentList.size()), 0));
|
|
data.put("studentPassNum", l);
|
|
} else {
|
|
data.put("passRate", "0%");
|
|
data.put("studentPassNum", 0);
|
|
}
|
|
//授课视频
|
|
// TeacherOpenCourseMergeCourseInfoQuery courseInfoQuery = new TeacherOpenCourseMergeCourseInfoQuery();
|
|
// courseInfoQuery.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
// courseInfoQuery.setCourseInfoStatus(1);
|
|
// List<TeacherOpenCourseMergeCourseInfo> courseInfos = teacherOpenCourseMergeCourseInfoService.getValuesByQueryNotWithPermission(courseInfoQuery);
|
|
// List<TeacherOpenCourseMergeCourseInfo> videoCount = courseInfos.stream().filter(v -> v.getCourseVideoId() != null).collect(Collectors.toList());
|
|
TeacherOpenCourseMergeResourcesInfoQuery teacherOpenCourseMergeResourcesInfoQuery = new TeacherOpenCourseMergeResourcesInfoQuery();
|
|
teacherOpenCourseMergeResourcesInfoQuery.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
teacherOpenCourseMergeResourcesInfoQuery.setResourcesInfoStatus(GlobalUpStatusEnum.UP);
|
|
teacherOpenCourseMergeResourcesInfoQuery.setStartTime(stime);
|
|
teacherOpenCourseMergeResourcesInfoQuery.setEndTime(etime);
|
|
|
|
List<TeacherOpenCourseMergeResourcesInfo> teacherOpenCourseMergeResourcesInfo = teacherOpenCourseMergeResourcesInfoService.getValuesByQuery(teacherOpenCourseMergeResourcesInfoQuery);
|
|
List<TeacherOpenCourseMergeResourcesInfo> videoCount = teacherOpenCourseMergeResourcesInfo.stream().filter(v -> Objects.equals(v.getResourcesInfoType(), 1)).collect(Collectors.toList());
|
|
data.put("teachingVideoNum", videoCount.size());
|
|
//非视频资源
|
|
data.put("nonVideoResourcesNum", teacherOpenCourseMergeResourcesInfo.size() - videoCount.size());
|
|
|
|
//课程公告
|
|
TeacherOpenCourseNoticeQuery teacherOpenCourseNoticeQuery = new TeacherOpenCourseNoticeQuery();
|
|
teacherOpenCourseNoticeQuery.setTeacherOpenCourseIds(teacherOpenCourseId.toString());
|
|
teacherOpenCourseNoticeQuery.setDelFlag(0);
|
|
teacherOpenCourseNoticeQuery.setStartTime(stime);
|
|
teacherOpenCourseNoticeQuery.setEndTime(etime);
|
|
List<TeacherOpenCourseNotice> noticeList = teacherOpenCourseNoticeService.getValues(teacherOpenCourseNoticeQuery);
|
|
data.put("noticeNum", noticeList.size());
|
|
//签到
|
|
// TeacherOpenCourseStudentSigninLogQuery signQuery = new TeacherOpenCourseStudentSigninLogQuery();
|
|
// signQuery.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
// List<TeacherOpenCourseStudentSigninLog> signinLogs = teacherOpenCourseStudentSigninLogService.getValues(signQuery);
|
|
// List<TeacherOpenCourseStudentSigninLog> collect = signinLogs.stream().filter(v -> v.getTeacherOpenCourseStudentSigninLogTag().equals(SignInTypeEnum.SIGN_IN)).collect(Collectors.toList());
|
|
// //签到数量
|
|
// data.put("signInNum", collect.size());
|
|
// //到课率
|
|
// if (CollectionUtil.isNotEmpty(collect)) {
|
|
// data.put("signInRate", NumberUtil.div(NumberUtil.toBigDecimal(collect.size()), NumberUtil.toBigDecimal(signinLogs.size()), 2).multiply(BigDecimal.valueOf(100)).intValue());
|
|
// } else {
|
|
// data.put("signInRate", 0);
|
|
// }
|
|
|
|
TeacherOpenCourseStudentSigninSettingQuery signQuery = new TeacherOpenCourseStudentSigninSettingQuery();
|
|
signQuery.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
signQuery.setStartTime(stime);
|
|
signQuery.setEndTime(etime);
|
|
List<TeacherOpenCourseStudentSigninSetting> signinLogs = teacherOpenCourseStudentSigninSettingService.getValues(signQuery);
|
|
int signinTotalCount = signinLogs.stream().map(TeacherOpenCourseStudentSigninSetting::getSigninTotalCount).mapToInt(Integer::intValue).sum();
|
|
int signinStudentTotalCount = signinLogs.stream().map(TeacherOpenCourseStudentSigninSetting::getSigninStudentTotalCount).mapToInt(Integer::intValue).sum();
|
|
//签到数量
|
|
data.put("signInNum", signinLogs.size());
|
|
//到课率
|
|
if (signinTotalCount != 0 && signinStudentTotalCount != 0) {
|
|
data.put("signInRate", BigDecimal.valueOf(signinTotalCount).divide(BigDecimal.valueOf(signinStudentTotalCount),2, RoundingMode.DOWN).multiply(BigDecimal.valueOf(100)));
|
|
} else {
|
|
data.put("signInRate", 0);
|
|
}
|
|
//章节练习
|
|
|
|
//总章节数
|
|
TeacherOpenCourseMergeCourseInfoQuery teacherOpenCourseMergeCourseInfoQuery = new TeacherOpenCourseMergeCourseInfoQuery();
|
|
teacherOpenCourseMergeCourseInfoQuery.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
teacherOpenCourseMergeCourseInfoQuery.setCourseInfoType(2);
|
|
teacherOpenCourseMergeCourseInfoQuery.setCourseInfoStatus(1);
|
|
teacherOpenCourseMergeCourseInfoQuery.setStartTime(stime);
|
|
teacherOpenCourseMergeCourseInfoQuery.setEndTime(etime);
|
|
List<TeacherOpenCourseMergeCourseInfo> openCourseMergeCourseInfos = teacherOpenCourseMergeCourseInfoService.getValues(teacherOpenCourseMergeCourseInfoQuery);
|
|
data.put("chapterNum", openCourseMergeCourseInfos.size());
|
|
|
|
//习题总数
|
|
String collect4 = openCourseMergeCourseInfos.stream().distinct().map(i -> i.getTeacherOpenCourseMergeCourseInfoId().toString()).collect(Collectors.joining(","));
|
|
TeacherOpenCourseMergeResourcesQuestionQuery teacherOpenCourseMergeResourcesQuestion = new TeacherOpenCourseMergeResourcesQuestionQuery();
|
|
teacherOpenCourseMergeResourcesQuestion.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
teacherOpenCourseMergeResourcesQuestion.setTeacherOpenCourseMergeCourseInfoIdPlural(collect4);
|
|
teacherOpenCourseMergeResourcesQuestion.setQuestionStatus(1);
|
|
|
|
List<TeacherOpenCourseMergeResourcesQuestion> courseMergeResourcesQuestions = teacherOpenCourseMergeResourcesQuestionService.getValues(teacherOpenCourseMergeResourcesQuestion);
|
|
data.put("chapterTotal", courseMergeResourcesQuestions.size());
|
|
|
|
TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery = new TeacherOpenCourseQuestionSettingQuery();
|
|
teacherOpenCourseQuestionSettingQuery.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
teacherOpenCourseQuestionSettingQuery.setTeacherOpenCourseQuestionSettingStatus(1);
|
|
teacherOpenCourseQuestionSettingQuery.setTeacherOpenCourseQuestionSettingType(ResourcesQuestionSnapshotFromTypeEnum.CHAPTER_EXERCISE);
|
|
teacherOpenCourseQuestionSettingQuery.setTeacherOpenCourseMergeCourseInfoIdPlural(collect4);
|
|
|
|
List<TeacherOpenCourseQuestionSetting> courseQuestionSettings = teacherOpenCourseQuestionSettingService.getValues(teacherOpenCourseQuestionSettingQuery);
|
|
// List<TeacherOpenCourseQuestionSetting> collect1 = courseQuestionSettings.stream().filter(v -> v.getTeacherOpenCourseQuestionSettingType().equals(ResourcesQuestionSnapshotFromTypeEnum.CHAPTER_EXERCISE)).collect(Collectors.toList());
|
|
// data.put("chapterTotal", courseQuestionSettings.size());
|
|
//参与人数
|
|
String collect1 = courseQuestionSettings.stream().distinct().map(i -> i.getTeacherOpenCourseQuestionSettingId().toString()).collect(Collectors.joining(","));
|
|
|
|
TeacherOpenCourseQuestionLogQuery teacherOpenCourseQuestionLogQuery = new TeacherOpenCourseQuestionLogQuery();
|
|
teacherOpenCourseQuestionLogQuery.setTeacherOpenCourseQuestionSettingIdPlural(collect1);
|
|
data.put("chapterPeople", StringUtils.isEmpty(collect1) ? 0 : teacherOpenCourseQuestionLogService.getChapterExerciseParticipantsValuesNumber(teacherOpenCourseQuestionLogQuery));
|
|
|
|
// String stringJoiner = CollectionUtil.join(courseQuestionSettings, ",");
|
|
// if (CollectionUtil.isNotEmpty(collect1)) {
|
|
// teacherOpenCourseQuestionLogQuery.setTeacherOpenCourseQuestionSettingIdPlural(stringJoiner);
|
|
// List<TeacherOpenCourseQuestionLog> values = teacherOpenCourseQuestionLogService.getValues(teacherOpenCourseQuestionLogQuery);
|
|
// int size = values.stream().map(TeacherOpenCourseQuestionLog::getStudentId).collect(Collectors.toSet()).size();
|
|
// data.put("chapterPeople", size);
|
|
// } else {
|
|
// data.put("chapterPeople", 0);
|
|
// }
|
|
|
|
|
|
//课程实操
|
|
TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery = new TeacherOpenCourseHandsOnQuery();
|
|
teacherOpenCourseHandsOnQuery.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
teacherOpenCourseHandsOnQuery.setStartTime(stime);
|
|
teacherOpenCourseHandsOnQuery.setEndTime(etime);
|
|
List<TeacherOpenCourseHandsOn> handsOns = teacherOpenCourseHandsOnService.getValues(teacherOpenCourseHandsOnQuery);
|
|
data.put("handsOnNum", handsOns.size());
|
|
//实操任务总数
|
|
String collect2 = handsOns.stream().distinct().map(i -> i.getHandsOnId().toString()).collect(Collectors.joining(","));
|
|
|
|
if (StringUtils.isEmpty(collect2)) {
|
|
data.put("handsOnTotal", 0);
|
|
data.put("handsOnPeople", 0);
|
|
} else {
|
|
TeacherOpenCourseHandsOnSimulationTasksQuery tasksQuery = new TeacherOpenCourseHandsOnSimulationTasksQuery();
|
|
tasksQuery.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
tasksQuery.setHandsOnIdPlural(collect2);
|
|
List<TeacherOpenCourseHandsOnSimulationTasks> tasksList = teacherOpenCourseHandsOnSimulationTasksService.getValues(tasksQuery);
|
|
data.put("handsOnTotal", tasksList.size());
|
|
|
|
//实操参与人数
|
|
String collect3 = tasksList.stream().map(i -> i.getTaskId().toString()).collect(Collectors.joining(","));
|
|
StudentHandsOnTaskLogQuery studentHandsOnTaskLogQuery = new StudentHandsOnTaskLogQuery();
|
|
studentHandsOnTaskLogQuery.setHandsOnTaskIdPlural(collect3);
|
|
data.put("handsOnPeople", StringUtils.isEmpty(collect3) ? 0 : studentHandsOnTaskLogService.getPracticalOperationParticipantsNumberValues(studentHandsOnTaskLogQuery));
|
|
}
|
|
|
|
// List<Long> list = handsOns.stream().map(TeacherOpenCourseHandsOn::getHandsOnId).collect(Collectors.toList());
|
|
// String join = CollectionUtil.join(list, ",");
|
|
// if (StringUtils.isNotEmpty(join)) {
|
|
// achievementQuery.setHandOnIdPlural(join);
|
|
// List<HandsOnAchievement> assessmentList = handsOnAchievementService.getValues(achievementQuery);
|
|
// long count = assessmentList.stream().map(HandsOnAchievement::getStudentId).count();
|
|
// data.put("handsOnPeople", count);
|
|
// } else {
|
|
// data.put("handsOnPeople", 0);
|
|
// }
|
|
//作业
|
|
List<TeacherOpenCourseQuestionSetting> settings = courseQuestionSettings.stream().filter(v -> v.getTeacherOpenCourseQuestionSettingType().equals(ResourcesQuestionSnapshotFromTypeEnum.HOMEWORK_QUESTION)).collect(Collectors.toList());
|
|
//作业总次数
|
|
data.put("homeworkNum", settings.size());
|
|
//作业习题总数
|
|
data.put("homeworkTotal", settings.size());
|
|
String str = CollectionUtil.join(settings, ",");
|
|
if (StringUtils.isNotEmpty(str)) {
|
|
teacherOpenCourseQuestionLogQuery.setTeacherOpenCourseQuestionSettingIdPlural(str);
|
|
List<TeacherOpenCourseQuestionLog> values = teacherOpenCourseQuestionLogService.getValues(teacherOpenCourseQuestionLogQuery);
|
|
int size = values.stream().map(TeacherOpenCourseQuestionLog::getStudentId).collect(Collectors.toSet()).size();
|
|
data.put("homeworkPeople", size);
|
|
} else {
|
|
//作业参与人数
|
|
data.put("homeworkPeople", 0);
|
|
}
|
|
//考试
|
|
List<TeacherOpenCourseQuestionSetting> settingList = courseQuestionSettings.stream().filter(v -> v.getTeacherOpenCourseQuestionSettingType().equals(EXAM)).collect(Collectors.toList());
|
|
data.put("examNum", settingList.size());
|
|
data.put("examTotal", settingList.size());
|
|
String s = CollectionUtil.join(settingList, ",");
|
|
if (StringUtils.isNotEmpty(s)) {
|
|
teacherOpenCourseQuestionLogQuery.setTeacherOpenCourseQuestionSettingIdPlural(s);
|
|
List<TeacherOpenCourseQuestionLog> values = teacherOpenCourseQuestionLogService.getValues(teacherOpenCourseQuestionLogQuery);
|
|
int size = values.stream().map(TeacherOpenCourseQuestionLog::getStudentId).collect(Collectors.toSet()).size();
|
|
data.put("examPeople", size);
|
|
} else {
|
|
//考试参与人数
|
|
data.put("examPeople", 0);
|
|
}
|
|
//线上互动
|
|
TeacherOpenCourseChatLogQuery logQuery = new TeacherOpenCourseChatLogQuery();
|
|
logQuery.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
List<TeacherOpenCourseChatLog> logList = teacherOpenCourseChatLogService.getValues(logQuery);
|
|
//互动参与人数
|
|
Set<Long> studentLogs = logList.stream().map(TeacherOpenCourseChatLog::getStudentId).collect(Collectors.toSet());
|
|
Set<Long> teacherLogs = logList.stream().map(TeacherOpenCourseChatLog::getTeacherId).collect(Collectors.toSet());
|
|
data.put("interactNum", studentLogs.size() + teacherLogs.size());
|
|
//发帖总数
|
|
data.put("interactTotal", logList.size());
|
|
//学生提问次数
|
|
long studentCount = logList.stream().filter(v -> v.getChatLogSendType().equals(ChatLogSendTypeEnum.student_ask)).count();
|
|
data.put("interactStudent", studentCount);
|
|
//教师提问次数
|
|
long teacherCount = logList.stream().filter(v -> v.getChatLogSendType().equals(ChatLogSendTypeEnum.specify_ask)).count();
|
|
data.put("interactTeacher", teacherCount);
|
|
return data;
|
|
}
|
|
|
|
/**
|
|
* 首页
|
|
*
|
|
* @param
|
|
* @return
|
|
*/
|
|
public Map<String, Object> teacherOpenCourseIndexDetail(Long teacherOpenCourseId) {
|
|
Map<String, Object> data = new HashMap<>();
|
|
List<TeacherOpenCourse> valuesByQuery = teacherOpenCourseService.getByIds(teacherOpenCourseId.toString());
|
|
if (CollectionUtil.isEmpty(valuesByQuery)) {
|
|
return data;
|
|
}
|
|
TeacherOpenCourse info = valuesByQuery.get(0);
|
|
//课程封面
|
|
data.put("courseInfoThumbnail", info.getTeacherOpenCourseCover());
|
|
//课程名称
|
|
data.put("courseInfoName", info.getTeacherOpenCourseTitle());
|
|
//课程简介
|
|
data.put("courseInfoContent", info.getTeacherOpenCourseSummary());
|
|
//班级
|
|
TeacherOpenCourseMergeSchoolClassQuery classQuery = new TeacherOpenCourseMergeSchoolClassQuery();
|
|
classQuery.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
classQuery.setTeacherOpenCourseMergeSchoolClassStatus(1);
|
|
List<TeacherOpenCourseMergeSchoolClass> classList = teacherOpenCourseMergeSchoolClassService.getValues(classQuery);
|
|
data.put("classNum", classList.size());
|
|
|
|
//学生
|
|
TeacherOpenCourseMergeStudentQuery studentQuery = new TeacherOpenCourseMergeStudentQuery();
|
|
studentQuery.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
studentQuery.setTeacherOpenCourseSchoolClassMergeStudentStatus(1);
|
|
List<TeacherOpenCourseMergeStudent> studentList = teacherOpenCourseMergeStudentService.getValuesByQueryNotWithPermission(studentQuery);
|
|
data.put("studentNum", studentList.size());
|
|
|
|
//课件
|
|
TeacherOpenCourseMergeResourcesInfoQuery teacherOpenCourseMergeResourcesInfoQuery = new TeacherOpenCourseMergeResourcesInfoQuery();
|
|
teacherOpenCourseMergeResourcesInfoQuery.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
teacherOpenCourseMergeResourcesInfoQuery.setResourcesInfoStatus(GlobalUpStatusEnum.UP);
|
|
List<TeacherOpenCourseMergeResourcesInfo> resourcesInfoList = teacherOpenCourseMergeResourcesInfoService.getValuesByQueryNotWithPermission(teacherOpenCourseMergeResourcesInfoQuery);
|
|
data.put("coursewareNum", resourcesInfoList.size());
|
|
|
|
|
|
//视频
|
|
long videoCount = resourcesInfoList.stream().filter(v -> Objects.equals(v.getResourcesInfoType(), 1)).count();
|
|
data.put("videoNum", videoCount);
|
|
|
|
//题目
|
|
//习题总数
|
|
|
|
TeacherOpenCourseMergeResourcesQuestionQuery teacherOpenCourseMergeResourcesQuestionQuery = new TeacherOpenCourseMergeResourcesQuestionQuery();
|
|
teacherOpenCourseMergeResourcesQuestionQuery.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
teacherOpenCourseMergeResourcesQuestionQuery.setQuestionStatus(1);
|
|
List<TeacherOpenCourseMergeResourcesQuestion> questionList = teacherOpenCourseMergeResourcesQuestionService.getValuesByQueryNotWithPermission(teacherOpenCourseMergeResourcesQuestionQuery);
|
|
data.put("subjectNum", questionList.size());
|
|
|
|
|
|
TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery = new TeacherOpenCourseQuestionSettingQuery();
|
|
teacherOpenCourseQuestionSettingQuery.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
teacherOpenCourseQuestionSettingQuery.setTeacherOpenCourseQuestionSettingPushStatus(GlobalPushStatusEnum.PUSH);
|
|
teacherOpenCourseQuestionSettingQuery.setTeacherOpenCourseQuestionSettingStatus(1);
|
|
List<TeacherOpenCourseQuestionSettingPure> courseQuestionSettings = teacherOpenCourseQuestionSettingDao.getValuesByQueryNotWithPermission2(teacherOpenCourseQuestionSettingQuery);
|
|
//List<TeacherOpenCourseQuestionSettingPure> collect1 = courseQuestionSettings.stream().filter(v -> v.getTeacherOpenCourseQuestionSettingType().equals(ResourcesQuestionSnapshotFromTypeEnum.CHAPTER_EXERCISE)).collect(Collectors.toList());
|
|
|
|
//案例
|
|
TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery = new TeacherOpenCourseHandsOnQuery();
|
|
teacherOpenCourseHandsOnQuery.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
List<TeacherOpenCourseHandsOn> handsOns = teacherOpenCourseHandsOnService.getValues(teacherOpenCourseHandsOnQuery);
|
|
data.put("caseNum", handsOns.size());
|
|
//作业
|
|
List<ResourcesQuestionSnapshotFromTypeEnum> homeworkTypeList = Arrays.asList(ResourcesQuestionSnapshotFromTypeEnum.HOMEWORK_QUESTION, HOMEWORK_FILE);
|
|
List<TeacherOpenCourseQuestionSettingPure> collect2 = courseQuestionSettings.stream().filter(v -> v.getTeacherOpenCourseQuestionSettingType() != null && homeworkTypeList.contains(v.getTeacherOpenCourseQuestionSettingType())).collect(Collectors.toList());
|
|
data.put("homeworkNum", collect2.size());
|
|
//考试
|
|
List<TeacherOpenCourseQuestionSettingPure> collect3 = courseQuestionSettings.stream().filter(v -> v.getTeacherOpenCourseQuestionSettingType().equals(EXAM)).collect(Collectors.toList());
|
|
data.put("examNum", collect3.size());
|
|
return data;
|
|
}
|
|
|
|
|
|
public Map<String, Object> courseInfoIndexDetail(Long courseInfoId) {
|
|
Map<String, Object> data = new HashMap<>();
|
|
CourseInfo courseInfo = courseInfoService.getById(courseInfoId);
|
|
if (courseInfo == null) {
|
|
return data;
|
|
}
|
|
//课程封面
|
|
data.put("courseInfoThumbnail", courseInfo.getCourseInfoThumbnail());
|
|
//课程名称
|
|
data.put("courseInfoName", courseInfo.getCourseInfoName());
|
|
//课程简介
|
|
data.put("courseInfoContent", courseInfo.getCourseInfoContent());
|
|
|
|
List<CourseInfo> chapterList = courseInfoService.getCourseResources(1L);
|
|
List<Long> courseInfoIdList = new ArrayList<>();
|
|
String courseInfoIds = "-1";
|
|
|
|
//课件
|
|
if (CollectionUtil.isNotEmpty(chapterList)) {
|
|
courseInfoIdList = chapterList.stream().map(CourseInfo::getCourseInfoId).collect(Collectors.toList());
|
|
courseInfoIds = courseInfoIdList.stream().map(Objects::toString).collect(Collectors.joining(","));
|
|
}
|
|
List<ResourcesInfo> resourcesInfoList = resourcesInfoService.getByCourseInfoIds(courseInfoIdList);
|
|
data.put("coursewareNum", resourcesInfoList.size());
|
|
//视频
|
|
long videoCount = resourcesInfoList.stream().filter(v -> Objects.equals(v.getResourcesInfoType(), 1)).count();
|
|
data.put("videoNum", videoCount);
|
|
//题目
|
|
//习题总数
|
|
List<ResourcesQuestion> questionList = resourcesQuestionService.getByCourseInfoIds(courseInfoIds);
|
|
data.put("subjectNum", questionList.size());
|
|
List<HandsOn> handsOns = handsOnService.getByCourseInfoIds(courseInfoIdList);
|
|
data.put("caseNum", handsOns.size());
|
|
return data;
|
|
}
|
|
|
|
public Map<String, Object> adminIndexDetail(Date stime, Date etime, UniversitiesColleges universitiesColleges, CoreUser coreUser) {
|
|
// Date startTime = DateUtil.beginOfDay(new Date());
|
|
// Date endTime = DateUtil.endOfDay(new Date());
|
|
//--------------------------------------------------
|
|
// Date startTime = null;
|
|
// Date endTime = null;
|
|
// if (!Objects.isNull(stime)) {
|
|
// startTime = DateUtil.beginOfDay(stime);
|
|
// }
|
|
//
|
|
// if (!Objects.isNull(stime)) {
|
|
// endTime = DateUtil.endOfDay(etime);
|
|
// }
|
|
//
|
|
// Long orgId = coreUser.getOrgId();
|
|
// Long universitiesCollegesId = (universitiesColleges == null ? orgId : universitiesColleges.getUniversitiesCollegesId());
|
|
// Long uniOrgId = (universitiesColleges == null ? orgId : universitiesColleges.getOrgId());
|
|
//
|
|
// List<Student> studentList = studentService.getStudentByStimeAndEtime(startTime, endTime, uniOrgId);
|
|
Map<String, Object> data = new HashMap<>();
|
|
// //注册学生数
|
|
// data.put("studentNumber", studentList.size());
|
|
// //注册老师数
|
|
// List<Teacher> teachers = teacherService.getTeacherByStimeAndEtime(startTime, endTime, uniOrgId);
|
|
// data.put("teacherNumber", teachers.size());
|
|
|
|
//--------------------------------------------
|
|
// LambdaQuery<CoreUser> lambdaQuery = coreUserDao.createLambdaQuery();
|
|
// if (uniOrgId != null && uniOrgId != 1) {
|
|
// lambdaQuery.andEq(CoreUser::getOrgId, uniOrgId);
|
|
// }
|
|
// List<CoreUser> select = lambdaQuery.select();
|
|
// List<Long> userIds = select.stream().map(CoreUser::getId).collect(Collectors.toList());
|
|
// LambdaQuery<SysLog> logDaoLambdaQuery = sysLogDao.createLambdaQuery();
|
|
// if (stime != null && etime != null) {
|
|
// logDaoLambdaQuery.andBetween(SysLog::getCreateTime, stime, etime);
|
|
// }
|
|
// logDaoLambdaQuery.andIn(SysLog::getUserId, userIds);
|
|
// long loginCount = logDaoLambdaQuery.andLike(SysLog::getRequestUrl, "%login%").andLike(SysLog::getResult, "%成功%").count();
|
|
// long loginDistinctCount = CollectionUtil.emptyIfNull(logDaoLambdaQuery.distinct()
|
|
// .andLike("request_url", "%login%").andLike("result", "%成功%").select("user_id")).size();
|
|
|
|
// LambdaQuery<CoreUser> loginDistinctCountQuery = coreUserDao.createLambdaQuery();
|
|
// if (stime != null) {
|
|
// loginDistinctCountQuery.andGreatEq(CoreUser::getLastLoginTime, stime);
|
|
// }
|
|
// if (etime != null) {
|
|
// loginDistinctCountQuery.andLess(CoreUser::getLastLoginTime, etime);
|
|
// }
|
|
// if (uniOrgId != null && uniOrgId != 1) {
|
|
// loginDistinctCountQuery.andEq(CoreUser::getOrgId, uniOrgId);
|
|
// }
|
|
// loginDistinctCountQuery.andIsNotNull(CoreUser::getLoginCount);
|
|
// long loginDistinctCount = loginDistinctCountQuery.count();
|
|
|
|
// StudentLoginLogQuery condition = new StudentLoginLogQuery();
|
|
// if (ObjectUtil.isNotEmpty(startTime)){
|
|
// condition.setLoginStartTime(startTime);
|
|
// }
|
|
// if (ObjectUtil.isNotEmpty(endTime)){
|
|
// condition.setLoginEndTime(endTime);
|
|
// }
|
|
// condition.setLoginPath(ResponseControllerAdvice.LOGIN_URL);
|
|
// condition.setLogoutPath(KeyExpiredListener.TOKEN_EXPIRED_MESSAGE);
|
|
// UniversitiesColleges uniAdmin = getUniAdmin();
|
|
// if (null != uniAdmin) {
|
|
// condition.getPageQuery().setPara("universitiesCollegesId", uniAdmin.getUniversitiesCollegesId());
|
|
// }
|
|
//
|
|
// //登录人数
|
|
// PageQuery<StudentLogAnalysisVO> studentLogAnalysisVOPageQuery = studentService.queryStatisticalStatementNumberPeopleByCondition(condition.getPageQuery());
|
|
// long loginDistinctCount = studentLogAnalysisVOPageQuery.getList().stream().mapToLong(i -> Integer.parseInt(i.getLoginCount())).sum();
|
|
// data.put("loginNumber", loginDistinctCount);
|
|
//
|
|
// // 获取登录次数
|
|
// PageQuery<StudentLoginLogVO> studentLoginLogVOPageQuery = studentService.queryUserLoginLogByCondition(condition.getPageQuery());
|
|
// Long loginCount = studentLoginLogVOPageQuery.getTotalRow();
|
|
//// Long loginCount = coreUserDao.getSumLoginCount(stime, etime, orgId == 1 ? null : orgId);
|
|
// //登录人次
|
|
// data.put("studentPersonTime", loginCount);
|
|
// //上线课程数
|
|
//// Long courseInfoCount = courseInfoService.getCourseInfoByStimeAndEtime(stime, etime, uniOrgId);
|
|
//
|
|
//// List<CourseInfo> theoryCourseList = universitiesCollegesJurisdictionCurriculumResourcesService.getResourcesCourseInfoAuthDetails(orgId).getTheoryCourseList();
|
|
// TeacherOpenCourseQuery teacherOpenCourseQuery = new TeacherOpenCourseQuery();
|
|
// if (ObjectUtil.isNotEmpty(startTime)){
|
|
// teacherOpenCourseQuery.setFilterStartTime(startTime);
|
|
// }
|
|
// if (ObjectUtil.isNotEmpty(endTime)){
|
|
// teacherOpenCourseQuery.setFilterEndTime(endTime);
|
|
// }
|
|
// List<TeacherOpenCourse> teacherOpenCourseMergeCourseInfo = teacherOpenCourseService.getTeacherOpenCourseMergeCourseInfo(teacherOpenCourseQuery, coreUser);
|
|
// data.put("courseNumber", teacherOpenCourseMergeCourseInfo.size());
|
|
//
|
|
// Long resourcesApplicationCount = 0L;
|
|
//
|
|
// // 如果是学校管理员身份
|
|
// if (coreUser.isUniAdmin()) {
|
|
// resourcesApplicationCount = universitiesCollegesJurisdictionExperimentalSystemDao.createLambdaQuery()
|
|
// .andEq(UniversitiesCollegesJurisdictionExperimentalSystem::getUniversitiesCollegesId, universitiesCollegesId)
|
|
// .andNotEq(UniversitiesCollegesJurisdictionExperimentalSystem::getUseType, 0)
|
|
// .andBetween(UniversitiesCollegesJurisdictionExperimentalSystem::getAddTime, startTime, endTime)
|
|
// .count();
|
|
// }
|
|
// // 超管
|
|
// else {
|
|
// //上线应用数
|
|
// resourcesApplicationCount = resourcesApplicationService.getApplicationByStimeAndEtime(startTime, endTime, uniOrgId);
|
|
// }
|
|
// data.put("applicationNumber", resourcesApplicationCount);
|
|
//
|
|
// TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery = new TeacherOpenCourseQuestionSettingQuery();
|
|
// List<TeacherOpenCourse> select11 = teacherOpenCourseService.createLambdaQuery().andEq(TeacherOpenCourse::getOrgId, uniOrgId)
|
|
// .andEq(TeacherOpenCourse::getTeacherOpenCourseStatus, 1).select();
|
|
// Set<Long> collect11 = select11.stream().map(TeacherOpenCourse::getTeacherOpenCourseId).collect(Collectors.toSet());
|
|
// if (orgId != null && orgId != 1) {
|
|
// teacherOpenCourseQuestionSettingQuery.setOrgId(uniOrgId);
|
|
// }
|
|
// teacherOpenCourseQuestionSettingQuery.setTeacherOpenCourseQuestionSettingPushStatus(GlobalPushStatusEnum.PUSH);
|
|
// teacherOpenCourseQuestionSettingQuery.setTeacherOpenCourseQuestionSettingStatus(1);
|
|
// if (ObjectUtil.isNotEmpty(startTime)){
|
|
// teacherOpenCourseQuestionSettingQuery.setStartTime(startTime);
|
|
// }
|
|
// if (ObjectUtil.isNotEmpty(endTime)){
|
|
// teacherOpenCourseQuestionSettingQuery.setEndTime(endTime);
|
|
// }
|
|
// List<TeacherOpenCourseQuestionSettingPure> courseQuestionSettings = teacherOpenCourseQuestionSettingDao.getValuesByQueryNotWithPermission2(teacherOpenCourseQuestionSettingQuery);
|
|
//
|
|
// // 学生做题:读取【文档存档】中所有课程的【章节】、【课程实操】、【作业—题库作业】、【考试】,这几个模块的任务数量
|
|
//// List<Long> questionSettingIdList = courseQuestionSettings.stream().map(item -> item.getTeacherOpenCourseQuestionSettingId()).collect(Collectors.toList());
|
|
//// long allQuestionSettingNumber = resourcesQuestionSnapshotDao.createLambdaQuery().andIn(ResourcesQuestionSnapshot::getTeacherOpenCourseQuestionSettingId, questionSettingIdList)
|
|
//// .count();
|
|
//
|
|
// long homeWorkNumber = courseQuestionSettings.stream().filter(item -> !HOMEWORK_FILE.equals(item.getTeacherOpenCourseQuestionSettingType())).count();
|
|
//
|
|
// //批改作业数
|
|
// data.put("homeWorkNumber", homeWorkNumber);
|
|
// //课件学习
|
|
// TeacherOpenCourseHandsOnSimulationTasksQuery tasksQuery = new TeacherOpenCourseHandsOnSimulationTasksQuery();
|
|
// tasksQuery.setTeacherOpenCourseIdPlural(CollectionUtil.join(collect11, ","));
|
|
// if (ObjectUtil.isNotEmpty(startTime)){
|
|
// tasksQuery.setStartTime(startTime);
|
|
// }
|
|
// if (ObjectUtil.isNotEmpty(endTime)){
|
|
// tasksQuery.setEndTime(endTime);
|
|
// }
|
|
// if (orgId != 1) {
|
|
// tasksQuery.setOrgId(orgId);
|
|
// }
|
|
// List<TeacherOpenCourseHandsOnSimulationTasks> teacherOpenCourseHandsOnSimulationTasks = teacherOpenCourseHandsOnSimulationTasksService.getValuesByQueryNotWithPermission(tasksQuery);
|
|
// long count = teacherOpenCourseHandsOnSimulationTasks.stream().filter(v -> "1".equals(v.getTaskType()) || "2".equals(v.getTaskType())).count();
|
|
// data.put("studyNumber", count);
|
|
|
|
//学生做题 课程实操。学生做题:读取【文档存档】中所有课程的【章节】、【课程实操】、【作业—题库作业】、【考试】,这几个模块的任务数量 (题目配置数量,非题目数量)
|
|
// data.put("exerciseNumber", teacherOpenCourseHandsOnSimulationTasks.size() + courseQuestionSettings.size() + homeWorkNumber);
|
|
//学校动态码
|
|
data.put("universitiesCollegesAuthCode", universitiesColleges != null ? universitiesColleges.getUniversitiesCollegesAuthCode() : "暂无动态码");
|
|
//注册用户数
|
|
// LambdaQuery<CoreUser> lambdaQuery2 = coreUserDao.createLambdaQuery();
|
|
// if (uniOrgId != null && uniOrgId != 1) {
|
|
// lambdaQuery2.andEq(CoreUser::getOrgId, uniOrgId);
|
|
// }
|
|
// if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)){
|
|
// lambdaQuery2.andBetween(CoreUser::getCreateTime, startTime, endTime);
|
|
// }
|
|
// int size = lambdaQuery2.andEq(CoreUser::getDelFlag, DelFlagEnum.NORMAL.getValue())
|
|
// .andNotEq(CoreUser::getId, 1)
|
|
// .select().size();
|
|
// data.put("userNumber", size);
|
|
// //案例数量
|
|
// LambdaQuery<HandsOn> lambdaQuery3 = handsOnService.createLambdaQuery();
|
|
// if (uniOrgId != null && uniOrgId != 1) {
|
|
// lambdaQuery3.andEq(HandsOn::getOrgId, uniOrgId);
|
|
// }
|
|
// if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)){
|
|
// lambdaQuery3.andBetween(HandsOn::getAddTime, startTime, endTime);
|
|
// }
|
|
// int values = lambdaQuery3.andEq(HandsOn::getHandsOnStatus, 1)
|
|
// .select().size();
|
|
// LambdaQuery<ResourcesTraining> lambdaQuery4 = resourcesTrainingService.createLambdaQuery();
|
|
// if (uniOrgId != null && uniOrgId != 1) {
|
|
// lambdaQuery4.andEq(ResourcesTraining::getOrgId, uniOrgId);
|
|
// }
|
|
// if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)){
|
|
// lambdaQuery4.andBetween(ResourcesTraining::getAddTime, startTime, endTime);
|
|
// }
|
|
// int values2 = lambdaQuery4.andEq(ResourcesTraining::getResourcesTrainingStatus, 1)
|
|
// .select().size();
|
|
// LambdaQuery<ResourcesCompetition> lambdaQuery5 = resourcesCompetitionService.createLambdaQuery();
|
|
// if (uniOrgId != null && uniOrgId != 1) {
|
|
// lambdaQuery5.andEq(ResourcesCompetition::getOrgId, uniOrgId);
|
|
// }
|
|
// if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)){
|
|
// lambdaQuery5.andBetween(ResourcesCompetition::getAddTime, startTime, endTime);
|
|
// }
|
|
// int values3 = lambdaQuery5.andEq(ResourcesCompetition::getResourcesCompetitionStatus, 1)
|
|
// .select().size();
|
|
// data.put("caseNumber", values + values2 + values3);
|
|
// //视频数量
|
|
// ResourcesInfoQuery resourcesInfoQuery = new ResourcesInfoQuery();
|
|
// resourcesInfoQuery.setResourcesInfoType(1);
|
|
// resourcesInfoQuery.setStartTime(stime);
|
|
// resourcesInfoQuery.setEndTime(etime);
|
|
// if (uniOrgId != null && uniOrgId != 1) {
|
|
// resourcesInfoQuery.setOrgId(uniOrgId);
|
|
// }
|
|
// List<ResourcesInfo> videoNumber = resourcesInfoService.getValues(resourcesInfoQuery);
|
|
// data.put("videoNumber", videoNumber.size());
|
|
// //题库数量
|
|
// ResourcesQuestionQuery paras1 = new ResourcesQuestionQuery();
|
|
// paras1.setQuestionStatus(1);
|
|
// if (uniOrgId != null && uniOrgId != 1) {
|
|
// paras1.setOrgId(uniOrgId);
|
|
// }
|
|
// if (ObjectUtil.isNotEmpty(startTime)){
|
|
// paras1.setStartTime(startTime);
|
|
// }
|
|
// if (ObjectUtil.isNotEmpty(endTime)){
|
|
// paras1.setEndTime(endTime);
|
|
// }
|
|
// List<ResourcesQuestion> questionList = resourcesQuestionService.getValues(paras1);
|
|
// data.put("questionNumber", questionList.size());
|
|
// //院校数量
|
|
// UniversitiesCollegesQuery paras = new UniversitiesCollegesQuery();
|
|
// paras.setUniversitiesCollegesStatus(1);
|
|
// if (uniOrgId != null && uniOrgId != 1) {
|
|
// paras.setOrgId(uniOrgId);
|
|
// }
|
|
// if (ObjectUtil.isNotEmpty(startTime)){
|
|
// paras.setStartTime(startTime);
|
|
// }
|
|
// if (ObjectUtil.isNotEmpty(endTime)){
|
|
// paras.setEndTime(endTime);
|
|
// }
|
|
// List<UniversitiesColleges> schoolList = universitiesCollegesService.getValues(paras);
|
|
// data.put("schoolNumber", schoolList.size());
|
|
return data;
|
|
}
|
|
|
|
public Map<String, Object> adminIndexBarchart(Date stime, Date etime) {
|
|
|
|
LambdaQuery<UniversitiesColleges> lambdaQuery = universitiesCollegesService.createLambdaQuery();
|
|
lambdaQuery.andEq(UniversitiesColleges::getUniversitiesCollegesStatus, 1);
|
|
if (stime != null && etime != null) {
|
|
lambdaQuery.andBetween(UniversitiesColleges::getAddTime, DateUtil.beginOfDay(stime), DateUtil.endOfDay(etime));
|
|
}
|
|
List<UniversitiesColleges> universitiesColleges = lambdaQuery.select();
|
|
Map<String, Long> collect = universitiesColleges.stream().collect(Collectors.groupingBy(UniversitiesColleges::getUniversitiesCollegesProvince, Collectors.counting()));
|
|
List<String> xList = new ArrayList<>();
|
|
List<Long> yList = new ArrayList<>();
|
|
|
|
collect.forEach((x, y) -> {
|
|
xList.add(x);
|
|
yList.add(y);
|
|
});
|
|
Map<String, Object> map = new HashMap<>();
|
|
map.put("xList", xList);
|
|
map.put("yList", yList);
|
|
return map;
|
|
}
|
|
} |