Browse Source

测试与优化直播领取积分,火山配置

xw 5 days ago
parent
commit
3dfa5ebbb3

+ 5 - 0
fs-service/src/main/java/com/fs/live/service/impl/LiveCompletionPointsRecordServiceImpl.java

@@ -110,6 +110,11 @@ public class LiveCompletionPointsRecordServiceImpl implements ILiveCompletionPoi
             BigDecimal watchRate = BigDecimal.valueOf(actualWatchDuration)
             BigDecimal watchRate = BigDecimal.valueOf(actualWatchDuration)
                     .multiply(BigDecimal.valueOf(100))
                     .multiply(BigDecimal.valueOf(100))
                     .divide(BigDecimal.valueOf(videoDuration), 2, RoundingMode.HALF_UP);
                     .divide(BigDecimal.valueOf(videoDuration), 2, RoundingMode.HALF_UP);
+            
+            // 限制完课比例最大值为100.00%(防止数据库字段溢出)
+            if (watchRate.compareTo(BigDecimal.valueOf(100)) > 0) {
+                watchRate = BigDecimal.valueOf(100);
+            }
 
 
             // 6. 判断是否达到完课标准
             // 6. 判断是否达到完课标准
             if (watchRate.compareTo(BigDecimal.valueOf(completionRate)) < 0) {
             if (watchRate.compareTo(BigDecimal.valueOf(completionRate)) < 0) {

+ 1 - 0
fs-service/src/main/resources/application-config-druid-bjzm-test.yml

@@ -86,6 +86,7 @@ cloud_host:
   company_name: 北京卓美
   company_name: 北京卓美
   projectCode: BJZM
   projectCode: BJZM
   spaceName:
   spaceName:
+  volcengineUrl: https://myhkvolcengine.ylrztop.com
 headerImg:
 headerImg:
   imgUrl:
   imgUrl:
 
 

+ 16 - 0
fs-user-app/src/main/java/com/fs/app/controller/live/LiveCompletionPointsController.java

@@ -89,4 +89,20 @@ public class LiveCompletionPointsController extends AppBaseController {
         
         
         return R.ok().put("data", result);
         return R.ok().put("data", result);
     }
     }
+
+    /**
+     * 用于测试和调试
+     */
+    @PostMapping("/test/create")
+    public R testCreateRecord(@RequestParam Long liveId, @RequestParam(required = false) Long watchDuration) {
+        Long userId = Long.parseLong(getUserId());
+        
+        try {
+            // 调用完课记录创建方法(watchDuration为null时会自动从数据库累计)
+            completionPointsRecordService.checkAndCreateCompletionRecord(liveId, userId, watchDuration);
+            return R.ok("完课记录创建成功,请查看records接口查看结果");
+        } catch (Exception e) {
+            return R.error("创建失败: " + e.getMessage());
+        }
+    }
 }
 }