|
|
@@ -36,6 +36,7 @@ import com.ytpm.dao.RiskUserMapper;
|
|
|
import com.ytpm.general.RepMessage;
|
|
|
import com.ytpm.general.Result;
|
|
|
import com.ytpm.general.ResultTable;
|
|
|
+import com.ytpm.general.StatusCode;
|
|
|
import com.ytpm.handle.CommonException;
|
|
|
import com.ytpm.handle.CustomerException;
|
|
|
import com.ytpm.risk.enums.BannedTypeEnum;
|
|
|
@@ -563,7 +564,7 @@ public class RiskServiceImpl implements RiskService {
|
|
|
checkRisk766(dyzUser, adRecords);
|
|
|
}
|
|
|
} catch (CommonException e) {
|
|
|
- return Result.resultOk(e.getMessage(), "766");
|
|
|
+ return Result.resultFail(StatusCode.ACCESS_ERR, e.getMessage());
|
|
|
}
|
|
|
return Result.resultOk(RepMessage.QUERY_SUCCESS);
|
|
|
}
|
|
|
@@ -674,7 +675,7 @@ public class RiskServiceImpl implements RiskService {
|
|
|
}
|
|
|
}
|
|
|
if (averageRevenue.compareTo(averageRevenueLimit) < 0) {
|
|
|
- throw new CommonException("已达上限");
|
|
|
+ throw new CommonException("766");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1113,6 +1114,37 @@ public class RiskServiceImpl implements RiskService {
|
|
|
? Result.resultOk(RepMessage.RISK_SUCCESS) : Result.resultErr(RepMessage.ALREADY_RISK_USER);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Result<?> checkAdRisk766(YtDyzUser dyzUser) {
|
|
|
+ YtPlatformUserApp userApp;
|
|
|
+ if (dyzUser.getIosId()!=null) {
|
|
|
+ userApp = appMapper.selectParentApp(dyzUser.getAppId());
|
|
|
+ } else {
|
|
|
+ YtApp ytApp = appMapper.selectRiskApp(dyzUser.getAppId());
|
|
|
+ userApp = appMapper.selectParentApp(ytApp.getSuperiorId());
|
|
|
+ }
|
|
|
+ Object o = feignInvoker.invoke(userApp.getServiceName(), "adRecords", dyzUser.getUserId(),
|
|
|
+ AdSourceTypeEnum.rewarded_video.getAdSourceType());
|
|
|
+ JSONObject object = JSON.parseObject(JSON.toJSONString(o));
|
|
|
+ List<YtDyzAdRecord> adRecords = JSONArray.parseArray(object.getString("data"), YtDyzAdRecord.class);
|
|
|
+ if(CollUtil.isEmpty(adRecords)){
|
|
|
+ return Result.resultOk(RepMessage.QUERY_SUCCESS);
|
|
|
+ }
|
|
|
+ //过滤出当日的激励视频数据 按照时间正序排以便筛选每日前几条激励视频
|
|
|
+ adRecords = adRecords.stream().filter(s ->
|
|
|
+ DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()), new Date())
|
|
|
+ ).sorted(Comparator.comparing(YtDyzAdRecord::getFinishTime)).collect(Collectors.toList());
|
|
|
+ if (!adRecords.isEmpty() && adRecords.size() > 1) {
|
|
|
+ try {
|
|
|
+ // 校验风控766规则
|
|
|
+ checkRisk766(dyzUser, adRecords);
|
|
|
+ } catch (CommonException e) {
|
|
|
+ return Result.resultFail(StatusCode.ACCESS_ERR, e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return Result.resultOk(RepMessage.QUERY_SUCCESS);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 344 游客模式登陆用户风控校验<br>
|
|
|
* 原生(信息流)、开屏广告、横幅对应 ecpm 和预估收益 小于 阈值时,校验失败
|