|
|
|
@ -9,6 +9,7 @@ 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.SysLogDao;
|
|
|
|
|
import com.ibeetl.jlw.dao.TeacherOpenCourseQuestionSettingDao;
|
|
|
|
|
import com.ibeetl.jlw.dao.TeacherOpenCourseScoreDashboardDao;
|
|
|
|
|
import com.ibeetl.jlw.dao.UniversitiesCollegesJurisdictionExperimentalSystemDao;
|
|
|
|
@ -119,6 +120,9 @@ public class StatisticalAnalysisService {
|
|
|
|
|
@Autowired
|
|
|
|
|
private CourseInfoService courseInfoService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private SysLogDao sysLogDao;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 统计分析
|
|
|
|
@ -460,6 +464,208 @@ public class StatisticalAnalysisService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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());
|
|
|
|
|
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());
|
|
|
|
|
Map<String, Object> data = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
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());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//登录人数 1.5S
|
|
|
|
|
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();
|
|
|
|
|
//登录人次
|
|
|
|
|
data.put("studentPersonTime", loginCount);
|
|
|
|
|
|
|
|
|
|
if (coreUser.isUniAdmin()) { //学校管理员
|
|
|
|
|
|
|
|
|
|
List<Student> studentList = studentService.getStudentByStimeAndEtime(startTime, endTime, uniOrgId);
|
|
|
|
|
//注册学生数
|
|
|
|
|
data.put("studentNumber", studentList.size());
|
|
|
|
|
//注册老师数
|
|
|
|
|
List<Teacher> teachers = teacherService.getTeacherByStimeAndEtime(startTime, endTime, uniOrgId);
|
|
|
|
|
data.put("teacherNumber", teachers.size());
|
|
|
|
|
|
|
|
|
|
//上线课程数 11s
|
|
|
|
|
// 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;
|
|
|
|
|
resourcesApplicationCount = universitiesCollegesJurisdictionExperimentalSystemDao.createLambdaQuery()
|
|
|
|
|
.andEq(UniversitiesCollegesJurisdictionExperimentalSystem::getUniversitiesCollegesId, universitiesCollegesId)
|
|
|
|
|
.andNotEq(UniversitiesCollegesJurisdictionExperimentalSystem::getUseType, 0)
|
|
|
|
|
.andBetween(UniversitiesCollegesJurisdictionExperimentalSystem::getAddTime, startTime, endTime)
|
|
|
|
|
.count();
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
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() : "暂无动态码");
|
|
|
|
|
|
|
|
|
|
return data;
|
|
|
|
|
} else {//管理员
|
|
|
|
|
|
|
|
|
|
//上线应用数
|
|
|
|
|
Long resourcesApplicationCount = resourcesApplicationService.getApplicationByStimeAndEtime(startTime, endTime, uniOrgId);
|
|
|
|
|
data.put("applicationNumber", resourcesApplicationCount);
|
|
|
|
|
//注册用户数
|
|
|
|
|
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);
|
|
|
|
|
data.put("universitiesCollegesAuthCode", universitiesColleges != null ? universitiesColleges.getUniversitiesCollegesAuthCode() : "暂无动态码");
|
|
|
|
|
|
|
|
|
|
//案例数量
|
|
|
|
|
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());
|
|
|
|
|
data.put("schoolNumber", 376);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
return data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Map<String, Object> adminIndexDetail1(Date stime, Date etime, UniversitiesColleges universitiesColleges, CoreUser coreUser) {
|
|
|
|
|
// Date startTime = DateUtil.beginOfDay(new Date());
|
|
|
|
|
// Date endTime = DateUtil.endOfDay(new Date());
|
|
|
|
|
//--------------------------------------------------
|
|
|
|
|