|
@@ -541,11 +541,25 @@ public class PitcherDataServiceImpl implements IPitcherDataService {
|
|
//执行sql
|
|
//执行sql
|
|
dao.execute(sql);
|
|
dao.execute(sql);
|
|
//设置总记录数
|
|
//设置总记录数
|
|
- pager.setRecordCount(dao.count(AdsGamePitcherDay.class, cri));
|
|
|
|
|
|
+ Sql sqlCount = Sqls.create(
|
|
|
|
+ """
|
|
|
|
+ SELECT
|
|
|
|
+ COUNT(1)
|
|
|
|
+ FROM (
|
|
|
|
+ SELECT
|
|
|
|
+ COUNT(*)
|
|
|
|
+ FROM game_ads.ads_game_pitcher_day
|
|
|
|
+ """ + cri +
|
|
|
|
+ """
|
|
|
|
+ ) a
|
|
|
|
+ """);
|
|
|
|
+ sqlCount.setCallback(Sqls.callback.integer());
|
|
|
|
+ dao.execute(sqlCount);
|
|
|
|
+ pager.setRecordCount(sqlCount.getInt());
|
|
//处理dayN数据
|
|
//处理dayN数据
|
|
List<PitcherGameDataDayVO> tempList = sql.getList(PitcherGameDataDayVO.class);
|
|
List<PitcherGameDataDayVO> tempList = sql.getList(PitcherGameDataDayVO.class);
|
|
List<PitcherGameDataDayVO> list = tempList.stream().map(vo -> {
|
|
List<PitcherGameDataDayVO> list = tempList.stream().map(vo -> {
|
|
- formatPitcherGameDataDayDayN(vo);
|
|
|
|
|
|
+ formatPitcherGameDataDayGroupByDtAndPitcherDayN(vo);
|
|
return vo;
|
|
return vo;
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
//返回结果
|
|
//返回结果
|
|
@@ -1637,6 +1651,44 @@ public class PitcherDataServiceImpl implements IPitcherDataService {
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 处理投手游戏每日的DayN(投手游戏每日按日期,投手聚合)
|
|
|
|
+ *
|
|
|
|
+ * @param vo PitcherGameDataDayTotalVO
|
|
|
|
+ */
|
|
|
|
+ private void formatPitcherGameDataDayGroupByDtAndPitcherDayN(PitcherGameDataDayVO vo) {
|
|
|
|
+ if (CollectionUtils.isEmpty(pitcherGameDayNFieldMapList)) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ pitcherGameDayNFieldMapList.forEach(dayNTotalFieldMap -> {
|
|
|
|
+ try {
|
|
|
|
+ //得到需要计算的值
|
|
|
|
+ String[] temps = ((String) dayNTotalFieldMap.getT1().get(vo)).split("/");
|
|
|
|
+ //dn的金额总计
|
|
|
|
+ BigDecimal dNAmount = new BigDecimal(temps[0]);
|
|
|
|
+ //d1-dn的金额总计
|
|
|
|
+ BigDecimal d1ToDNTotalAmount = new BigDecimal(temps[1]);
|
|
|
|
+ //d1-dn的消耗总计(排除了未到时间的cost)
|
|
|
|
+ BigDecimal d1ToDNTotalCost = new BigDecimal(temps[3]);
|
|
|
|
+ //d1的金额总计(排除了未到时间的d1)
|
|
|
|
+ BigDecimal d1Amount = new BigDecimal(temps[4]);
|
|
|
|
+ //赋值
|
|
|
|
+ dayNTotalFieldMap.getT2().set(vo, RechargeTrendVO.builder()
|
|
|
|
+ .rechargeMoney(dNAmount)
|
|
|
|
+ .rechargeUserCount(Long.valueOf(temps[2]))
|
|
|
|
+ .increase(d1ToDNTotalCost.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
|
+ dNAmount.divide(d1ToDNTotalCost, 4, RoundingMode.HALF_UP))
|
|
|
|
+ .back(d1ToDNTotalCost.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
|
+ d1ToDNTotalAmount.divide(d1ToDNTotalCost, 4, RoundingMode.HALF_UP))
|
|
|
|
+ .multiples(d1Amount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
|
+ d1ToDNTotalAmount.divide(d1Amount, 4, RoundingMode.HALF_UP))
|
|
|
|
+ .build());
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ throw new BaseException("映射出错");
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 处理投手每日总计的DayN(投手每日总计)
|
|
* 处理投手每日总计的DayN(投手每日总计)
|
|
*
|
|
*
|