fixed: userCourseRecord更新

This commit is contained in:
xxx 2023-11-15 13:59:12 +08:00
parent 877aec3b01
commit 5e4c35f9bf

View File

@ -18,6 +18,7 @@ package xyz.playedu.course.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import xyz.playedu.common.types.paginate.PaginationResult; import xyz.playedu.common.types.paginate.PaginationResult;
import xyz.playedu.common.types.paginate.UserCourseRecordPaginateFilter; import xyz.playedu.common.types.paginate.UserCourseRecordPaginateFilter;
@ -144,6 +145,7 @@ public class UserCourseRecordServiceImpl
} }
@Override @Override
@Transactional
public void updateUserCourseLearnProgress(Integer userId, Integer courseId, int count) { public void updateUserCourseLearnProgress(Integer userId, Integer courseId, int count) {
UserCourseRecord record = find(userId, courseId); UserCourseRecord record = find(userId, courseId);
if (record == null) { if (record == null) {
@ -152,18 +154,23 @@ public class UserCourseRecordServiceImpl
int finishedCount = record.getFinishedCount() - count; 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) { if (0 == finishedCount) {
remove(query().getWrapper().eq("id", record.getId()));
return; return;
} }
UserCourseRecord newRecord = new UserCourseRecord(); save(newRecord);
newRecord.setId(record.getId());
newRecord.setIsFinished(0);
newRecord.setFinishedAt(null);
newRecord.setProgress(finishedCount * 10000 / record.getHourCount());
newRecord.setFinishedCount(finishedCount);
updateById(newRecord);
} }
} }