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

@ -21,7 +21,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
import xyz.playedu.api.domain.UserCourseRecord;
import xyz.playedu.api.event.UserCourseHourRecordDestroyEvent;
import xyz.playedu.api.service.UserCourseRecordService;
@ -38,14 +37,6 @@ public class UserCourseHourRecordDestroyListener {
@EventListener
public void updateUserCourseRecord(UserCourseHourRecordDestroyEvent e) {
UserCourseRecord record = userCourseRecordService.find(e.getUserId(), e.getCourseId());
if (record == null) {
return;
}
userCourseRecordService.storeOrUpdate(
record.getUserId(),
record.getCourseId(),
record.getHourCount(),
record.getFinishedCount() - 1);
userCourseRecordService.decrease(e.getUserId(), e.getCourseId(), 1);
}
}

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);
}
}