mirror of
https://github.com/PlayEdu/PlayEdu
synced 2025-06-23 20:42:42 +08:00
fixed: 学员课时记录删除的线上课进度更新
This commit is contained in:
parent
015d8df1ac
commit
8b1203d9d2
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user