mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-25 10:42:59 +08:00
fix:【FCJDFDXTXS-143】默认展示全部学习时长从studyCourse表的totalDuration修改为studyCourseItem的studyDuration字段求和(原逻辑只有筛选时间段后求和,测试数据有不对应情况,因此改为所有情况均求和)
This commit is contained in:
@@ -220,7 +220,7 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
|
||||
}
|
||||
}
|
||||
// 25.12.3新增,添加基于时间的查询条件,规则如下:
|
||||
if (sc != null && StringUtils.isNotBlank(sc.getCourseId()) && StringUtils.isNotBlank(sc.getQueryStartTime()) && StringUtils.isNotBlank(sc.getQueryFinishTime())) {
|
||||
if (sc != null && StringUtils.isNotBlank(sc.getCourseId())) {
|
||||
List<StudyCourseItem> studyCourseItemList = studyCourseService.getStudyCourseItemByCourseId(sc.getCourseId());
|
||||
if (studyCourseItemList != null && !studyCourseItemList.isEmpty()) {
|
||||
// 将学习内容按照studyId进行分组,便于后续计算每个studyId下的总学习时长
|
||||
@@ -231,23 +231,28 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
|
||||
for (StudyCourse studyCourse : studyCourses) {
|
||||
// 实体类解耦
|
||||
entityManager.detach(studyCourse);
|
||||
// 解析查询时间范围
|
||||
LocalDate startDate = LocalDate.parse(queryStartTime);
|
||||
LocalDate endDate = LocalDate.parse(queryFinishTime);
|
||||
// 如果有查询时间范围,则计算筛选后的学习时长
|
||||
// 25.12.16修改,无论有没有筛选时间范围,都计算总学习时长
|
||||
if (itemsByStudyId.containsKey(studyCourse.getId())) {
|
||||
List<StudyCourseItem> items = itemsByStudyId.get(studyCourse.getId());
|
||||
int filteredDuration = 0;
|
||||
for (StudyCourseItem item : items) {
|
||||
LocalDateTime finishTime = item.getFinishTime();
|
||||
LocalDate finishDate = finishTime.toLocalDate();
|
||||
// 判断结束时间是否在筛选范围内
|
||||
boolean inRange = true;
|
||||
if (finishDate.isBefore(startDate)) {
|
||||
inRange = false;
|
||||
}
|
||||
if (finishDate.isAfter(endDate)) {
|
||||
inRange = false;
|
||||
// 如果筛选了学习时间,判断结束时间是否在筛选范围内,未筛选学习时间则默认全部求和
|
||||
if (StringUtils.isNotBlank(sc.getQueryStartTime()) && StringUtils.isNotBlank(sc.getQueryFinishTime())) {
|
||||
// 解析查询时间范围
|
||||
LocalDate startDate = LocalDate.parse(queryStartTime);
|
||||
LocalDate endDate = LocalDate.parse(queryFinishTime);
|
||||
// 以结束时间筛选
|
||||
LocalDateTime finishTime = item.getFinishTime();
|
||||
LocalDate finishDate = finishTime.toLocalDate();
|
||||
|
||||
if (finishDate.isBefore(startDate)) {
|
||||
inRange = false;
|
||||
}
|
||||
if (finishDate.isAfter(endDate)) {
|
||||
inRange = false;
|
||||
}
|
||||
}
|
||||
// 如果在范围内,则累加学习时长
|
||||
if (inRange) {
|
||||
@@ -863,7 +868,7 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
|
||||
}
|
||||
// 25.12.3新增,添加基于时间的查询条件,规则如下:
|
||||
List<StudyCourse> studyCourses = studyCourseDao.findList(query.builder());
|
||||
if (sc != null && StringUtils.isNotBlank(sc.getCourseId()) && StringUtils.isNotBlank(sc.getQueryStartTime()) && StringUtils.isNotBlank(sc.getQueryFinishTime())) {
|
||||
if (sc != null && StringUtils.isNotBlank(sc.getCourseId())) {
|
||||
List<StudyCourseItem> studyCourseItemList = studyCourseService.getStudyCourseItemByCourseId(sc.getCourseId());
|
||||
if (studyCourseItemList != null && !studyCourseItemList.isEmpty()) {
|
||||
// 将学习内容按照studyId进行分组,便于后续计算每个studyId下的总学习时长
|
||||
@@ -874,23 +879,28 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
|
||||
for (StudyCourse studyCourse : studyCourses) {
|
||||
// 实体类解耦
|
||||
entityManager.detach(studyCourse);
|
||||
// 解析查询时间范围
|
||||
LocalDate startDate = LocalDate.parse(queryStartTime);
|
||||
LocalDate endDate = LocalDate.parse(queryFinishTime);
|
||||
// 如果有查询时间范围,则计算筛选后的学习时长
|
||||
// 25.12.16修改,无论有没有筛选时间范围,都计算总学习时长
|
||||
if (itemsByStudyId.containsKey(studyCourse.getId())) {
|
||||
List<StudyCourseItem> items = itemsByStudyId.get(studyCourse.getId());
|
||||
int filteredDuration = 0;
|
||||
for (StudyCourseItem item : items) {
|
||||
LocalDateTime finishTime = item.getFinishTime();
|
||||
LocalDate finishDate = finishTime.toLocalDate();
|
||||
// 判断结束时间是否在筛选范围内
|
||||
boolean inRange = true;
|
||||
if (finishDate.isBefore(startDate)) {
|
||||
inRange = false;
|
||||
}
|
||||
if (finishDate.isAfter(endDate)) {
|
||||
inRange = false;
|
||||
// 如果筛选了学习时间,判断结束时间是否在筛选范围内,未筛选学习时间则默认全部求和
|
||||
if (StringUtils.isNotBlank(sc.getQueryStartTime()) && StringUtils.isNotBlank(sc.getQueryFinishTime())) {
|
||||
// 解析查询时间范围
|
||||
LocalDate startDate = LocalDate.parse(queryStartTime);
|
||||
LocalDate endDate = LocalDate.parse(queryFinishTime);
|
||||
// 以结束时间筛选
|
||||
LocalDateTime finishTime = item.getFinishTime();
|
||||
LocalDate finishDate = finishTime.toLocalDate();
|
||||
|
||||
if (finishDate.isBefore(startDate)) {
|
||||
inRange = false;
|
||||
}
|
||||
if (finishDate.isAfter(endDate)) {
|
||||
inRange = false;
|
||||
}
|
||||
}
|
||||
// 如果在范围内,则累加学习时长
|
||||
if (inRange) {
|
||||
|
||||
Reference in New Issue
Block a user