From 5e4c35f9bf881dceb039759cb34ffba88b3649db Mon Sep 17 00:00:00 2001 From: xxx Date: Wed, 15 Nov 2023 13:59:12 +0800 Subject: [PATCH] =?UTF-8?q?fixed:=20userCourseRecord=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/UserCourseRecordServiceImpl.java | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/playedu-course/src/main/java/xyz/playedu/course/service/impl/UserCourseRecordServiceImpl.java b/playedu-course/src/main/java/xyz/playedu/course/service/impl/UserCourseRecordServiceImpl.java index fd42f46..8805d28 100644 --- a/playedu-course/src/main/java/xyz/playedu/course/service/impl/UserCourseRecordServiceImpl.java +++ b/playedu-course/src/main/java/xyz/playedu/course/service/impl/UserCourseRecordServiceImpl.java @@ -18,6 +18,7 @@ package xyz.playedu.course.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import xyz.playedu.common.types.paginate.PaginationResult; import xyz.playedu.common.types.paginate.UserCourseRecordPaginateFilter; @@ -144,6 +145,7 @@ public class UserCourseRecordServiceImpl } @Override + @Transactional public void updateUserCourseLearnProgress(Integer userId, Integer courseId, int count) { UserCourseRecord record = find(userId, courseId); if (record == null) { @@ -152,18 +154,23 @@ public class UserCourseRecordServiceImpl int finishedCount = record.getFinishedCount() - count; + UserCourseRecord newRecord = new UserCourseRecord(); + newRecord.setUserId(record.getUserId()); + newRecord.setCourseId(record.getCourseId()); + newRecord.setHourCount(record.getHourCount()); + newRecord.setFinishedCount(finishedCount); + newRecord.setProgress(finishedCount * 10000 / record.getHourCount()); + newRecord.setIsFinished(0); + newRecord.setCreatedAt(record.getCreatedAt()); + newRecord.setUpdatedAt(new Date()); + + // 删除老记录 + remove(query().getWrapper().eq("id", record.getId())); + if (0 == finishedCount) { - remove(query().getWrapper().eq("id", record.getId())); return; } - UserCourseRecord newRecord = new UserCourseRecord(); - newRecord.setId(record.getId()); - newRecord.setIsFinished(0); - newRecord.setFinishedAt(null); - newRecord.setProgress(finishedCount * 10000 / record.getHourCount()); - newRecord.setFinishedCount(finishedCount); - - updateById(newRecord); + save(newRecord); } }