|
|
|
@ -3,15 +3,23 @@ package com.ibeetl.jlw.service;
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
|
|
import cn.hutool.core.util.NumberUtil;
|
|
|
|
|
import cn.jlw.Interceptor.ResponseControllerAdvice;
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
|
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.*;
|
|
|
|
|
import com.ibeetl.jlw.entity.*;
|
|
|
|
|
import com.ibeetl.jlw.entity.vo.StudentLogAnalysisVO;
|
|
|
|
|
import com.ibeetl.jlw.entity.vo.StudentLoginLogVO;
|
|
|
|
|
import com.ibeetl.jlw.enums.*;
|
|
|
|
|
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.stereotype.Service;
|
|
|
|
|
|
|
|
|
@ -20,6 +28,7 @@ import java.util.*;
|
|
|
|
|
import java.util.regex.Pattern;
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
|
@ -102,6 +111,9 @@ public class StatisticalAnalysisService {
|
|
|
|
|
@Autowired
|
|
|
|
|
private StudentHandsOnTaskLogService studentHandsOnTaskLogService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private CourseInfoDao courseInfoDao;
|
|
|
|
|
|
|
|
|
|
private static final String PATTERN = "(?<=\"code\":\\[\").*?(?=\"\\],)";
|
|
|
|
|
Pattern r = Pattern.compile(PATTERN);
|
|
|
|
|
|
|
|
|
@ -153,7 +165,7 @@ public class StatisticalAnalysisService {
|
|
|
|
|
teacherOpenCourseMergeResourcesInfoQuery.setEndTime(etime);
|
|
|
|
|
|
|
|
|
|
List<TeacherOpenCourseMergeResourcesInfo> teacherOpenCourseMergeResourcesInfo = teacherOpenCourseMergeResourcesInfoService.getValuesByQuery(teacherOpenCourseMergeResourcesInfoQuery);
|
|
|
|
|
List<TeacherOpenCourseMergeResourcesInfo> videoCount = teacherOpenCourseMergeResourcesInfo.stream().filter(v ->Objects.equals(v.getResourcesInfoType(),1)).collect(Collectors.toList());
|
|
|
|
|
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());
|
|
|
|
@ -209,7 +221,7 @@ public class StatisticalAnalysisService {
|
|
|
|
|
|
|
|
|
|
TeacherOpenCourseQuestionLogQuery teacherOpenCourseQuestionLogQuery = new TeacherOpenCourseQuestionLogQuery();
|
|
|
|
|
teacherOpenCourseQuestionLogQuery.setTeacherOpenCourseQuestionSettingIdPlural(collect1);
|
|
|
|
|
data.put("chapterPeople",StringUtils.isEmpty(collect1)? 0 : teacherOpenCourseQuestionLogService.getChapterExerciseParticipantsValuesNumber(teacherOpenCourseQuestionLogQuery));
|
|
|
|
|
data.put("chapterPeople", StringUtils.isEmpty(collect1) ? 0 : teacherOpenCourseQuestionLogService.getChapterExerciseParticipantsValuesNumber(teacherOpenCourseQuestionLogQuery));
|
|
|
|
|
|
|
|
|
|
// String stringJoiner = CollectionUtil.join(courseQuestionSettings, ",");
|
|
|
|
|
// if (CollectionUtil.isNotEmpty(collect1)) {
|
|
|
|
@ -232,21 +244,21 @@ public class StatisticalAnalysisService {
|
|
|
|
|
//实操任务总数
|
|
|
|
|
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 {
|
|
|
|
|
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());
|
|
|
|
|
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));
|
|
|
|
|
data.put("handsOnPeople", StringUtils.isEmpty(collect3) ? 0 : studentHandsOnTaskLogService.getPracticalOperationParticipantsNumberValues(studentHandsOnTaskLogQuery));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// List<Long> list = handsOns.stream().map(TeacherOpenCourseHandsOn::getHandsOnId).collect(Collectors.toList());
|
|
|
|
@ -386,49 +398,74 @@ 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());
|
|
|
|
|
List<Student> studentList = studentService.getStudentByStimeAndEtime(stime, etime, uniOrgId);
|
|
|
|
|
|
|
|
|
|
List<Student> studentList = studentService.getStudentByStimeAndEtime(startTime, endTime, uniOrgId);
|
|
|
|
|
Map<String, Object> data = new HashMap<>();
|
|
|
|
|
//注册学生数
|
|
|
|
|
data.put("studentNumber", studentList.size());
|
|
|
|
|
//注册老师数
|
|
|
|
|
List<Teacher> teachers = teacherService.getTeacherByStimeAndEtime(stime, etime, uniOrgId);
|
|
|
|
|
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);
|
|
|
|
|
// 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);
|
|
|
|
|
// 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();
|
|
|
|
|
condition.setLoginStartTime(startTime);
|
|
|
|
|
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());
|
|
|
|
|
}
|
|
|
|
|
loginDistinctCountQuery.andIsNotNull(CoreUser::getLoginCount);
|
|
|
|
|
long loginDistinctCount = loginDistinctCountQuery.count();
|
|
|
|
|
|
|
|
|
|
// 获取登录次数
|
|
|
|
|
Long loginCount = coreUserDao.getSumLoginCount(stime, etime, orgId == 1 ? null : orgId);
|
|
|
|
|
|
|
|
|
|
//登录人数
|
|
|
|
|
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);
|
|
|
|
|
//上线课程数
|
|
|
|
@ -444,12 +481,13 @@ public class StatisticalAnalysisService {
|
|
|
|
|
resourcesApplicationCount = universitiesCollegesJurisdictionExperimentalSystemDao.createLambdaQuery()
|
|
|
|
|
.andEq(UniversitiesCollegesJurisdictionExperimentalSystem::getUniversitiesCollegesId, universitiesCollegesId)
|
|
|
|
|
.andNotEq(UniversitiesCollegesJurisdictionExperimentalSystem::getUseType, 0)
|
|
|
|
|
.andBetween(UniversitiesCollegesJurisdictionExperimentalSystem::getAddTime, startTime, endTime)
|
|
|
|
|
.count();
|
|
|
|
|
}
|
|
|
|
|
// 超管
|
|
|
|
|
else {
|
|
|
|
|
//上线应用数
|
|
|
|
|
resourcesApplicationCount = resourcesApplicationService.getApplicationByStimeAndEtime(stime, etime, uniOrgId);
|
|
|
|
|
resourcesApplicationCount = resourcesApplicationService.getApplicationByStimeAndEtime(startTime, endTime, uniOrgId);
|
|
|
|
|
}
|
|
|
|
|
data.put("applicationNumber", resourcesApplicationCount);
|
|
|
|
|
|
|
|
|
@ -462,6 +500,8 @@ public class StatisticalAnalysisService {
|
|
|
|
|
}
|
|
|
|
|
teacherOpenCourseQuestionSettingQuery.setTeacherOpenCourseQuestionSettingPushStatus(GlobalPushStatusEnum.PUSH);
|
|
|
|
|
teacherOpenCourseQuestionSettingQuery.setTeacherOpenCourseQuestionSettingStatus(1);
|
|
|
|
|
teacherOpenCourseQuestionSettingQuery.setStartTime(startTime);
|
|
|
|
|
teacherOpenCourseQuestionSettingQuery.setEndTime(endTime);
|
|
|
|
|
List<TeacherOpenCourseQuestionSettingPure> courseQuestionSettings = teacherOpenCourseQuestionSettingDao.getValuesByQueryNotWithPermission2(teacherOpenCourseQuestionSettingQuery);
|
|
|
|
|
|
|
|
|
|
// 学生做题:读取【文档存档】中所有课程的【章节】、【课程实操】、【作业—题库作业】、【考试】,这几个模块的任务数量
|
|
|
|
@ -476,6 +516,8 @@ public class StatisticalAnalysisService {
|
|
|
|
|
//课件学习
|
|
|
|
|
TeacherOpenCourseHandsOnSimulationTasksQuery tasksQuery = new TeacherOpenCourseHandsOnSimulationTasksQuery();
|
|
|
|
|
tasksQuery.setTeacherOpenCourseIdPlural(CollectionUtil.join(collect11, ","));
|
|
|
|
|
tasksQuery.setStartTime(startTime);
|
|
|
|
|
tasksQuery.setEndTime(endTime);
|
|
|
|
|
if (orgId != 1) {
|
|
|
|
|
tasksQuery.setOrgId(orgId);
|
|
|
|
|
}
|
|
|
|
@ -493,28 +535,38 @@ public class StatisticalAnalysisService {
|
|
|
|
|
lambdaQuery2.andEq(CoreUser::getOrgId, uniOrgId);
|
|
|
|
|
}
|
|
|
|
|
int size = lambdaQuery2.andEq(CoreUser::getDelFlag, DelFlagEnum.NORMAL.getValue())
|
|
|
|
|
.andNotEq(CoreUser::getId, 1).select().size();
|
|
|
|
|
.andNotEq(CoreUser::getId, 1)
|
|
|
|
|
.andBetween(CoreUser::getCreateTime, startTime, endTime)
|
|
|
|
|
.select().size();
|
|
|
|
|
data.put("userNumber", size);
|
|
|
|
|
//案例数量
|
|
|
|
|
LambdaQuery<HandsOn> lambdaQuery3 = handsOnService.createLambdaQuery();
|
|
|
|
|
if (uniOrgId != null && uniOrgId != 1) {
|
|
|
|
|
lambdaQuery3.andEq(HandsOn::getOrgId, uniOrgId);
|
|
|
|
|
}
|
|
|
|
|
int values = lambdaQuery3.andEq(HandsOn::getHandsOnStatus, 1).select().size();
|
|
|
|
|
int values = lambdaQuery3.andEq(HandsOn::getHandsOnStatus, 1)
|
|
|
|
|
.andBetween(HandsOn::getAddTime, startTime, endTime)
|
|
|
|
|
.select().size();
|
|
|
|
|
LambdaQuery<ResourcesTraining> lambdaQuery4 = resourcesTrainingService.createLambdaQuery();
|
|
|
|
|
if (uniOrgId != null && uniOrgId != 1) {
|
|
|
|
|
lambdaQuery4.andEq(ResourcesTraining::getOrgId, uniOrgId);
|
|
|
|
|
}
|
|
|
|
|
int values2 = lambdaQuery4.andEq(ResourcesTraining::getResourcesTrainingStatus, 1).select().size();
|
|
|
|
|
int values2 = lambdaQuery4.andEq(ResourcesTraining::getResourcesTrainingStatus, 1)
|
|
|
|
|
.andBetween(ResourcesTraining::getAddTime, startTime, endTime)
|
|
|
|
|
.select().size();
|
|
|
|
|
LambdaQuery<ResourcesCompetition> lambdaQuery5 = resourcesCompetitionService.createLambdaQuery();
|
|
|
|
|
if (uniOrgId != null && uniOrgId != 1) {
|
|
|
|
|
lambdaQuery5.andEq(ResourcesCompetition::getOrgId, uniOrgId);
|
|
|
|
|
}
|
|
|
|
|
int values3 = lambdaQuery5.andEq(ResourcesCompetition::getResourcesCompetitionStatus, 1).select().size();
|
|
|
|
|
int values3 = lambdaQuery5.andEq(ResourcesCompetition::getResourcesCompetitionStatus, 1)
|
|
|
|
|
.andBetween(ResourcesCompetition::getAddTime, startTime, endTime)
|
|
|
|
|
.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);
|
|
|
|
|
}
|
|
|
|
@ -526,6 +578,8 @@ public class StatisticalAnalysisService {
|
|
|
|
|
if (uniOrgId != null && uniOrgId != 1) {
|
|
|
|
|
paras1.setOrgId(uniOrgId);
|
|
|
|
|
}
|
|
|
|
|
paras1.setStartTime(startTime);
|
|
|
|
|
paras1.setEndTime(endTime);
|
|
|
|
|
List<ResourcesQuestion> questionList = resourcesQuestionService.getValues(paras1);
|
|
|
|
|
data.put("questionNumber", questionList.size());
|
|
|
|
|
//院校数量
|
|
|
|
@ -534,6 +588,8 @@ public class StatisticalAnalysisService {
|
|
|
|
|
if (uniOrgId != null && uniOrgId != 1) {
|
|
|
|
|
paras.setOrgId(uniOrgId);
|
|
|
|
|
}
|
|
|
|
|
paras.setStartTime(startTime);
|
|
|
|
|
paras.setEndTime(endTime);
|
|
|
|
|
List<UniversitiesColleges> schoolList = universitiesCollegesService.getValues(paras);
|
|
|
|
|
data.put("schoolNumber", schoolList.size());
|
|
|
|
|
return data;
|
|
|
|
@ -544,7 +600,7 @@ public class StatisticalAnalysisService {
|
|
|
|
|
LambdaQuery<UniversitiesColleges> lambdaQuery = universitiesCollegesDao.createLambdaQuery();
|
|
|
|
|
lambdaQuery.andEq(UniversitiesColleges::getUniversitiesCollegesStatus, 1);
|
|
|
|
|
if (stime != null && etime != null) {
|
|
|
|
|
lambdaQuery.andBetween(UniversitiesColleges::getAddTime, stime, etime);
|
|
|
|
|
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()));
|
|
|
|
|