Просмотр исходного кода

直播积分倒计时功能,重新计算完课比例

yuhongqi 2 недель назад
Родитель
Сommit
9337e3c994

+ 11 - 2
fs-user-app/src/main/java/com/fs/app/controller/live/LiveCompletionPointsController.java

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