From 5dc6f4a8bcf8d4736d6a3eeccd90c089dfa7d92e Mon Sep 17 00:00:00 2001 From: Mlxa0324 Date: Sat, 18 Mar 2023 20:27:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=86=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ibeetl/jlw/job/OnLineRecordJob.java | 13 +++++++++++-- .../TeacherOpenCourseQuestionLogService.java | 18 ++++++++++++++++-- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/web/src/main/java/com/ibeetl/jlw/job/OnLineRecordJob.java b/web/src/main/java/com/ibeetl/jlw/job/OnLineRecordJob.java index 1d5d1b48..b4f6937b 100644 --- a/web/src/main/java/com/ibeetl/jlw/job/OnLineRecordJob.java +++ b/web/src/main/java/com/ibeetl/jlw/job/OnLineRecordJob.java @@ -13,6 +13,7 @@ import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; import java.util.Date; +import java.util.List; import java.util.Set; import static cn.hutool.core.date.DatePattern.NORM_DATETIME_MINUTE_PATTERN; @@ -23,7 +24,7 @@ import static com.ibeetl.admin.core.service.CorePlatformService.TOKEN_KEY; * * 每过15分钟 执行一次任务 * 0 0/15 * * * ? - * 00:15 00:30 00:45 + * 00:15 00:30 00:45 00:00 * @author lx */ @Slf4j @@ -45,10 +46,18 @@ public class OnLineRecordJob implements Job { // 查询redis中现在还存在的session Key数量 Set keys = CollUtil.emptyIfNull(stringRedisTemplate.keys(TOKEN_KEY + ":*")); - SysLog model = new SysLog(); // 格式化到分钟 + // 这里注意,需要控制5的倍数 00:15 00:30 00:45 00:00 Date nowDate = DateUtil.parse(DateUtil.now(), NORM_DATETIME_MINUTE_PATTERN); + SysLog paras = new SysLog(); + paras.setCreateTime(nowDate); + paras.setMethod(ON_LINE_METHOD_NAME); + paras.setRequestUrl("在线人数统计"); + List sysLogList = sysLogService.getValues(paras); + + SysLog model = new SysLog(); + // 这里固定该接口的请求路径 model.setMethod(ON_LINE_METHOD_NAME); model.setRequestUrl("在线人数统计"); diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java index f65b54c5..38afce06 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java @@ -1,6 +1,7 @@ package com.ibeetl.jlw.service; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; @@ -50,6 +51,7 @@ import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.math.BigDecimal; import java.util.*; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -676,10 +678,22 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService logList = getValuesBySettingIds(questionSettingId.toString()); + List logList = new CopyOnWriteArrayList<>(getValuesBySettingIds(questionSettingId.toString())); setErrorSuccessCountField(updateList, logList); + // 这里是库里查询到多条记录,但只更新改过值的数据 + updateList.forEach(item -> { + // 直接替换表里查询到的数据 + int index = CollUtil.indexOf(logList, questionLog -> questionLog.getTeacherOpenCourseQuestionLogId().equals(item.getTeacherOpenCourseQuestionLogId())); + Optional optional = logList.stream() + .filter(o -> o.getTeacherOpenCourseQuestionLogId().equals(item.getTeacherOpenCourseQuestionLogId())).findFirst(); + + optional.ifPresent(c -> { + logList.set(index, c); + }); + }); + TeacherOpenCourseQuestionSetting questionSetting = teacherOpenCourseQuestionSettingService.getInfo(questionSettingId); if (CollectionUtil.isNotEmpty(logList) && questionSetting != null) { @@ -750,7 +764,7 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService