fixed: 学员课时记录删除的线上课进度更新

This commit is contained in:
none
2023-04-23 15:35:26 +08:00
parent 015d8df1ac
commit 8b1203d9d2
3 changed files with 22 additions and 10 deletions

View File

@@ -48,4 +48,6 @@ public interface UserCourseRecordService extends IService<UserCourseRecord> {
void removeByCourseId(Integer courseId);
List<UserCourseRecord> chunks(List<Integer> ids, List<String> fields);
void decrease(Integer userId, Integer courseId, int count);
}

View File

@@ -137,4 +137,23 @@ public class UserCourseRecordServiceImpl
public void destroy(Integer userId, Integer courseId) {
remove(query().getWrapper().in("user_id", userId).eq("course_id", courseId));
}
@Override
public void decrease(Integer userId, Integer courseId, int count) {
UserCourseRecord record = find(userId, courseId);
if (record == null) {
return;
}
int finishedCount = record.getFinishedCount() - count;
UserCourseRecord newRecord = new UserCourseRecord();
newRecord.setId(record.getId());
newRecord.setFinishedCount(finishedCount);
newRecord.setFinishedAt(null);
newRecord.setProgress(finishedCount * 100 / record.getHourCount());
newRecord.setIsFinished(0);
updateById(newRecord);
}
}