|
|
@@ -210,8 +210,17 @@ public class LiveCompletionPointsController extends AppBaseController {
|
|
|
? record.getWatchDuration() : 0L;
|
|
|
|
|
|
vo.setVideoDuration(videoDuration);
|
|
|
- if (record != null) {
|
|
|
- vo.setCompletionRate(record.getCompletionRate());
|
|
|
+ // 按照观看时长 / 视频总时长计算完课比例
|
|
|
+ if (videoDuration != null && videoDuration > 0) {
|
|
|
+ BigDecimal completionRate = BigDecimal.valueOf(watchDuration)
|
|
|
+ .multiply(BigDecimal.valueOf(100))
|
|
|
+ .divide(BigDecimal.valueOf(videoDuration), 2, java.math.RoundingMode.HALF_UP);
|
|
|
+ if (completionRate.compareTo(BigDecimal.valueOf(100)) > 0) {
|
|
|
+ completionRate = BigDecimal.valueOf(100);
|
|
|
+ }
|
|
|
+ vo.setCompletionRate(completionRate);
|
|
|
+ } else {
|
|
|
+ vo.setCompletionRate(BigDecimal.ZERO);
|
|
|
}
|
|
|
vo.setWatchDuration(watchDuration);
|
|
|
|