|
@@ -27,6 +27,8 @@ import com.ytpm.middle.view.DashboardAppRevenueVO;
|
|
|
import com.ytpm.middle.view.DashboardRankingListVO;
|
|
import com.ytpm.middle.view.DashboardRankingListVO;
|
|
|
import com.ytpm.middle.view.DashboardRevenueVO;
|
|
import com.ytpm.middle.view.DashboardRevenueVO;
|
|
|
import com.ytpm.middle.view.DashboardRiskVO;
|
|
import com.ytpm.middle.view.DashboardRiskVO;
|
|
|
|
|
+import com.ytpm.middle.view.NetWorkEcpmVO;
|
|
|
|
|
+import com.ytpm.middle.view.NetWorkRevenueVO;
|
|
|
import com.ytpm.middle.view.UserRankingListVO;
|
|
import com.ytpm.middle.view.UserRankingListVO;
|
|
|
import com.ytpm.service.dyz.AdService;
|
|
import com.ytpm.service.dyz.AdService;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
@@ -208,6 +210,27 @@ public class AdServiceImpl implements AdService {
|
|
|
public List<AgentAdGroupStaticsVO> getAgentProfit(String appIds) {
|
|
public List<AgentAdGroupStaticsVO> getAgentProfit(String appIds) {
|
|
|
//查询今日的 按小时 按广告平台分组数据
|
|
//查询今日的 按小时 按广告平台分组数据
|
|
|
List<AgentAdGroupStaticsVO> vos = adRecordMapper.getAdGroupStatics(appIds);
|
|
List<AgentAdGroupStaticsVO> vos = adRecordMapper.getAdGroupStatics(appIds);
|
|
|
|
|
+ String networkIds = vos.stream().map(AgentAdGroupStaticsVO::getNetowrkId).collect(Collectors.joining(","));
|
|
|
|
|
+ //根据广告平台查询 收益分组 1-今日 2-昨日 3-本月
|
|
|
|
|
+ List<NetWorkRevenueVO> revenueToday = adRecordMapper.getRevenueByIds(appIds, 1, networkIds);
|
|
|
|
|
+ List<NetWorkRevenueVO> revenueYestDay = adRecordMapper.getRevenueByIds(appIds, 2, networkIds);
|
|
|
|
|
+ List<NetWorkRevenueVO> revenueMonth = adRecordMapper.getRevenueByIds(appIds, 3, networkIds);
|
|
|
|
|
+ Map<String, BigDecimal> revenueTodayMap = revenueToday.stream().collect(
|
|
|
|
|
+ Collectors.toMap(NetWorkRevenueVO::getNetWorkId, NetWorkRevenueVO::getNetWorkRevenue));
|
|
|
|
|
+ Map<String, BigDecimal> revenueYestdayMap = revenueYestDay.stream().collect(
|
|
|
|
|
+ Collectors.toMap(NetWorkRevenueVO::getNetWorkId, NetWorkRevenueVO::getNetWorkRevenue));
|
|
|
|
|
+ Map<String, BigDecimal> revenueMonthMap = revenueMonth.stream().collect(
|
|
|
|
|
+ Collectors.toMap(NetWorkRevenueVO::getNetWorkId, NetWorkRevenueVO::getNetWorkRevenue));
|
|
|
|
|
+ //根据广告平台查询 ecpm分组 1-今日 2-昨日 3-本月
|
|
|
|
|
+ List<NetWorkEcpmVO> ecpmToday = adRecordMapper.getEcpmByIds(appIds, 1, networkIds);
|
|
|
|
|
+ List<NetWorkEcpmVO> ecpmYestDay = adRecordMapper.getEcpmByIds(appIds, 2, networkIds);
|
|
|
|
|
+ List<NetWorkEcpmVO> ecpmMonth = adRecordMapper.getEcpmByIds(appIds, 3, networkIds);
|
|
|
|
|
+ Map<String, BigDecimal> ecpmTodayMap = ecpmToday.stream().collect(
|
|
|
|
|
+ Collectors.toMap(NetWorkEcpmVO::getNetWorkId, NetWorkEcpmVO::getNetWorkEcpm));
|
|
|
|
|
+ Map<String, BigDecimal> ecpmYestdayMap = ecpmYestDay.stream().collect(
|
|
|
|
|
+ Collectors.toMap(NetWorkEcpmVO::getNetWorkId, NetWorkEcpmVO::getNetWorkEcpm));
|
|
|
|
|
+ Map<String, BigDecimal> ecpmMonthMap = ecpmMonth.stream().collect(
|
|
|
|
|
+ Collectors.toMap(NetWorkEcpmVO::getNetWorkId, NetWorkEcpmVO::getNetWorkEcpm));
|
|
|
for (AgentAdGroupStaticsVO vo : vos) {
|
|
for (AgentAdGroupStaticsVO vo : vos) {
|
|
|
//今日收益
|
|
//今日收益
|
|
|
List<AgentNetworkRevenueGroupVO> networkRevenueGroups = vo.getNetworkRevenueGroups();
|
|
List<AgentNetworkRevenueGroupVO> networkRevenueGroups = vo.getNetworkRevenueGroups();
|
|
@@ -215,24 +238,20 @@ public class AdServiceImpl implements AdService {
|
|
|
Map<String, BigDecimal> revenueMap = networkRevenueGroups.stream().collect(
|
|
Map<String, BigDecimal> revenueMap = networkRevenueGroups.stream().collect(
|
|
|
Collectors.toMap(AgentNetworkRevenueGroupVO::getHour, AgentNetworkRevenueGroupVO::getRevenue));
|
|
Collectors.toMap(AgentNetworkRevenueGroupVO::getHour, AgentNetworkRevenueGroupVO::getRevenue));
|
|
|
vo.setTodayHourRevenueMap(revenueMap);
|
|
vo.setTodayHourRevenueMap(revenueMap);
|
|
|
- vo.setTodayRevenue(revenueMap.values().stream().reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
|
|
}
|
|
}
|
|
|
- vo.setYesterdayRevenue(adRecordMapper.getNetworkRevenueByType(appIds,2,vo.getNetowrkId()));
|
|
|
|
|
- vo.setMonthRevenue(adRecordMapper.getNetworkRevenueByType(appIds,3,vo.getNetowrkId()));
|
|
|
|
|
|
|
+ vo.setTodayRevenue(revenueTodayMap.get(vo.getNetowrkId()));
|
|
|
|
|
+ vo.setYesterdayRevenue(revenueYestdayMap.get(vo.getNetowrkId()));
|
|
|
|
|
+ vo.setMonthRevenue(revenueMonthMap.get(vo.getNetowrkId()));
|
|
|
//今日ecpm
|
|
//今日ecpm
|
|
|
List<AgentNetworkEcpmGroupVO> networkEcpmGroups = vo.getNetworkEcpmGroups();
|
|
List<AgentNetworkEcpmGroupVO> networkEcpmGroups = vo.getNetworkEcpmGroups();
|
|
|
if(CollUtil.isNotEmpty(networkEcpmGroups)){
|
|
if(CollUtil.isNotEmpty(networkEcpmGroups)){
|
|
|
- Map<String, BigDecimal> ecpmMap = networkEcpmGroups.stream().collect(Collectors.toMap(AgentNetworkEcpmGroupVO::getHour, AgentNetworkEcpmGroupVO::getEcpm));
|
|
|
|
|
- Map<String, AgentNetworkEcpmGroupVO> hourMap = networkEcpmGroups.stream().collect(
|
|
|
|
|
- Collectors.toMap(AgentNetworkEcpmGroupVO::getHour, o->o));
|
|
|
|
|
|
|
+ Map<String, BigDecimal> ecpmMap = networkEcpmGroups.stream().collect(Collectors.toMap(AgentNetworkEcpmGroupVO::getHour, s->s.getEcpm().divide(BigDecimal.valueOf(s.getCount()),2,BigDecimal.ROUND_HALF_UP)));
|
|
|
//统计每个小时的计数加起来为全天总次数
|
|
//统计每个小时的计数加起来为全天总次数
|
|
|
vo.setTodayHourEcpmMap(ecpmMap);
|
|
vo.setTodayHourEcpmMap(ecpmMap);
|
|
|
- int count = hourMap.values().stream().mapToInt(AgentNetworkEcpmGroupVO::getCount).sum();
|
|
|
|
|
- //分小时总值求和得到全天总值, 全天总值÷全天次数 得平均值
|
|
|
|
|
- vo.setTodayEcpm(ecpmMap.values().stream().reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP));
|
|
|
|
|
}
|
|
}
|
|
|
- vo.setYesterdayEcpm(adRecordMapper.getNetworkEcpmByType(appIds,2,vo.getNetowrkId()));
|
|
|
|
|
- vo.setMonthEcpm(adRecordMapper.getNetworkEcpmByType(appIds,3,vo.getNetowrkId()));
|
|
|
|
|
|
|
+ vo.setTodayEcpm(ecpmTodayMap.get(vo.getNetowrkId()));
|
|
|
|
|
+ vo.setYesterdayEcpm(ecpmYestdayMap.get(vo.getNetowrkId()));
|
|
|
|
|
+ vo.setMonthEcpm(ecpmMonthMap.get(vo.getNetowrkId()));
|
|
|
}
|
|
}
|
|
|
return vos;
|
|
return vos;
|
|
|
}
|
|
}
|