瀏覽代碼

流量记录添加缓存值校验

wangxy 1 周之前
父節點
當前提交
d6a702d43a

+ 26 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -1037,6 +1037,15 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService {
     }
 
 
+    /**
+     * 缓冲比例校验:仅允许 0~100,防止异常上报把流量算爆
+     */
+    private boolean isValidBufferRate(BigDecimal bufferRate) {
+        return bufferRate != null
+                && bufferRate.compareTo(BigDecimal.ZERO) >= 0
+                && bufferRate.compareTo(new BigDecimal("100")) <= 0;
+    }
+
     @Transactional
     @Override
     public R getInternetTraffic(FsUserCourseVideoFinishUParam param) {
@@ -1045,6 +1054,10 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService {
                 logger.error("【缓冲值空】参数: {}", param);
                 return R.error("缓冲值空");
             }
+            if (!isValidBufferRate(param.getBufferRate())) {
+                logger.error("【缓冲比例异常】bufferRate={}, 参数: {}", param.getBufferRate(), param);
+                return R.error("缓冲比例异常");
+            }
             FsCourseTrafficLog trafficLog = new FsCourseTrafficLog();
             trafficLog.setQwExternalContactId(param.getQwExternalId());
             trafficLog.setCreateTime(new Date());
@@ -1095,6 +1108,10 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService {
                 logger.error("【公开课缓冲值空】参数: {}", param);
                 return R.error("缓冲值空");
             }
+            if (!isValidBufferRate(param.getBufferRate())) {
+                logger.error("【公开课缓冲比例异常】bufferRate={}, 参数: {}", param.getBufferRate(), param);
+                return R.error("缓冲比例异常");
+            }
             FsPublicCourseTrafficLog trafficLog = new FsPublicCourseTrafficLog();
             trafficLog.setCreateTime(new Date());
             BeanUtils.copyProperties(param, trafficLog);
@@ -3488,6 +3505,10 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService {
                 logger.error("【缓冲值空】参数: {}", param);
                 return R.error("缓冲值空");
             }
+            if (!isValidBufferRate(param.getBufferRate())) {
+                logger.error("【公开课缓冲比例异常】bufferRate={}, 参数: {}", param.getBufferRate(), param);
+                return R.error("缓冲比例异常");
+            }
             FsCourseTrafficLog trafficLog = new FsCourseTrafficLog();
             trafficLog.setCreateTime(new Date());
             BeanUtils.copyProperties(param, trafficLog);
@@ -4346,6 +4367,11 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService {
         if (StringUtils.isBlank(uuid)) {
             return;
         }
+        if (!isValidBufferRate(bufferRate)) {
+            logger.error("【飞书缓冲比例异常】bufferRate={}, identifier={}, videoId={}, uuid={}",
+                    bufferRate, identifier, videoId, uuid);
+            return;
+        }
 
         FsCourseTrafficLog trafficLog = new FsCourseTrafficLog();
         trafficLog.setCreateTime(new Date());

+ 1 - 1
fs-user-app/src/main/java/com/fs/app/controller/course/CourseFsUserController.java

@@ -98,7 +98,7 @@ public class CourseFsUserController extends AppBaseController {
 
     @Login
     @ApiOperation("判断是否添加客服(是否关联销售)")
-    @RepeatSubmit(interval = 5000)
+//    @RepeatSubmit(interval = 5000)
     @PostMapping("/isAddKf")
     public ResponseResult<FsUser> isAddCompanyUser(@Valid @RequestBody FsUserCourseAddCompanyUserParam param) {
         if (ObjectUtil.isEmpty(param.getUserId())) {