|
@@ -478,33 +478,29 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
RiskTemplateView ecpmLimit= configMapper.getByCode("742");
|
|
RiskTemplateView ecpmLimit= configMapper.getByCode("742");
|
|
|
checkRisk742(ecpmLimit,userId,records);
|
|
checkRisk742(ecpmLimit,userId,records);
|
|
|
//校验风控746规则
|
|
//校验风控746规则
|
|
|
- checkRisk746(userId,records,userRevenue);
|
|
|
|
|
|
|
+ if(!records.isEmpty() && records.size()>1){
|
|
|
|
|
+ checkRisk746(userId,records);
|
|
|
|
|
+ }
|
|
|
return Result.resultOk(RepMessage.QUERY_SUCCESS);
|
|
return Result.resultOk(RepMessage.QUERY_SUCCESS);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 校验默认风控规则746
|
|
* 校验默认风控规则746
|
|
|
*/
|
|
*/
|
|
|
- private void checkRisk746(String userId, List<YtDyzAdRecord> records, BigDecimal userRevenue) {
|
|
|
|
|
|
|
+ private void checkRisk746(String userId, List<YtDyzAdRecord> records) {
|
|
|
RiskTemplateView revenue = configMapper.getByCode("746");
|
|
RiskTemplateView revenue = configMapper.getByCode("746");
|
|
|
Map<String, String> revenueMap = revenue.getConfigList().stream().collect(
|
|
Map<String, String> revenueMap = revenue.getConfigList().stream().collect(
|
|
|
Collectors.toMap(RiskConfigView::getFieldName, RiskConfigView::getConfigVal));
|
|
Collectors.toMap(RiskConfigView::getFieldName, RiskConfigView::getConfigVal));
|
|
|
List<YtDyzAdRecord> revenues = records.stream().filter(
|
|
List<YtDyzAdRecord> revenues = records.stream().filter(
|
|
|
s -> Objects.nonNull(s.getRevenue())&&(s.getRevenue().compareTo(BigDecimal.ZERO)) > 0).collect(Collectors.toList());
|
|
s -> Objects.nonNull(s.getRevenue())&&(s.getRevenue().compareTo(BigDecimal.ZERO)) > 0).collect(Collectors.toList());
|
|
|
int incomeCount = 0;
|
|
int incomeCount = 0;
|
|
|
-
|
|
|
|
|
incomeCount = revenues.isEmpty()?incomeCount:records.size();
|
|
incomeCount = revenues.isEmpty()?incomeCount:records.size();
|
|
|
-
|
|
|
|
|
- if(userRevenue.compareTo(BigDecimal.ZERO) > 0){
|
|
|
|
|
- ++incomeCount;
|
|
|
|
|
- }
|
|
|
|
|
//判断当日获得收益的广告达到预设数值,触发风控规则
|
|
//判断当日获得收益的广告达到预设数值,触发风控规则
|
|
|
int rewardCount = Integer.parseInt(revenueMap.get("rewardCount"));
|
|
int rewardCount = Integer.parseInt(revenueMap.get("rewardCount"));
|
|
|
if(incomeCount>=rewardCount){
|
|
if(incomeCount>=rewardCount){
|
|
|
BigDecimal income = new BigDecimal(revenueMap.get("income"));
|
|
BigDecimal income = new BigDecimal(revenueMap.get("income"));
|
|
|
//获取最先的两条
|
|
//获取最先的两条
|
|
|
BigDecimal reduce = revenues.stream().map(YtDyzAdRecord::getRevenue).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
BigDecimal reduce = revenues.stream().map(YtDyzAdRecord::getRevenue).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- reduce = reduce.add(userRevenue);
|
|
|
|
|
if(reduce.compareTo(income)<0){
|
|
if(reduce.compareTo(income)<0){
|
|
|
riskLockUser(userId, "746","系统判定小于最低收益限制","用户已被风控,风控编码:746");
|
|
riskLockUser(userId, "746","系统判定小于最低收益限制","用户已被风控,风控编码:746");
|
|
|
}
|
|
}
|