|
@@ -42,7 +42,7 @@ import org.springframework.util.CollectionUtils;
|
|
|
import java.beans.PropertyDescriptor;
|
|
|
import java.lang.reflect.Method;
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.math.BigInteger;
|
|
|
+
|
|
|
import java.math.RoundingMode;
|
|
|
import java.time.LocalDate;
|
|
|
import java.util.*;
|
|
@@ -75,10 +75,10 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
dto.setRegisteredEndDate(LocalDate.now());
|
|
|
}
|
|
|
//如果没有排序条件给默认值
|
|
|
- if (StringUtils.isBlank(dto.getSortFiled())){
|
|
|
+ if (StringUtils.isBlank(dto.getSortFiled())) {
|
|
|
dto.setSortFiled("dt");
|
|
|
}
|
|
|
- if (StringUtils.isBlank(dto.getSortType())){
|
|
|
+ if (StringUtils.isBlank(dto.getSortType())) {
|
|
|
dto.setSortType(OrderByEnum.DESC.getOrderType());
|
|
|
}
|
|
|
//根据dto拼接查询条件
|
|
@@ -417,11 +417,11 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
dto.setRechargeEndDate(LocalDate.now());
|
|
|
}
|
|
|
//如果没有排序条件给默认值
|
|
|
- if (StringUtils.isBlank(dto.getSortFiled())){
|
|
|
+ if (StringUtils.isBlank(dto.getSortFiled())) {
|
|
|
//根据游戏id
|
|
|
dto.setSortFiled("game_id");
|
|
|
}
|
|
|
- if (StringUtils.isBlank(dto.getSortType())){
|
|
|
+ if (StringUtils.isBlank(dto.getSortType())) {
|
|
|
dto.setSortType(OrderByEnum.ASC.getOrderType());
|
|
|
}
|
|
|
//根据传入的dto拼接查询参数
|
|
@@ -466,7 +466,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
//获取到一个只含有与充值时间有关的数据对象
|
|
|
GameDataTotalVO tempVO = getRechargeData(vo, dto);
|
|
|
//将tempVO中查出的数据添加到vo上
|
|
|
- copyNullProperties(tempVO,vo);
|
|
|
+ copyNullProperties(tempVO, vo);
|
|
|
|
|
|
//设置查询参数map
|
|
|
Map<String, Object> dayNMap = new HashMap<>(4);
|
|
@@ -474,8 +474,10 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
dayNMap.put("registerEndDate", dto.getRegisteredEndDate());
|
|
|
dayNMap.put("rechargeBeginDate", dto.getRechargeBeginDate());
|
|
|
dayNMap.put("rechargeEndDate", dto.getRechargeEndDate());
|
|
|
- dayNMap.put("sourceSystem", dto.getSourceSystem());
|
|
|
dayNMap.put("gameId", vo.getGameId());
|
|
|
+ if (StringUtils.isNotBlank(dto.getSourceSystem())) {
|
|
|
+ dayNMap.put("sourceSystem", dto.getSourceSystem());
|
|
|
+ }
|
|
|
|
|
|
//买量表的充值相关数据
|
|
|
DayN buyDayN = getDayNByTableName(dayNMap, "ads_dayn_game_buy");
|
|
@@ -487,106 +489,106 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
//设置买量数据
|
|
|
//新用户充值次数、金额、人数
|
|
|
vo.setBuyNewUserAmount(buyDayN == null ? BigDecimal.ZERO : buyDayN.getRechargeMoney());
|
|
|
- vo.setBuyNewUserAmountNum(buyDayN == null ? BigInteger.ZERO : buyDayN.getRechargeNum());
|
|
|
- vo.setBuyNewUserAmountCount(buyDayN == null ? BigInteger.ZERO : buyDayN.getRechargeCount());
|
|
|
+ vo.setBuyNewUserAmountNum(buyDayN == null ? 0L : buyDayN.getRechargeNum());
|
|
|
+ vo.setBuyNewUserAmountCount(buyDayN == null ? 0L : buyDayN.getRechargeCount());
|
|
|
//新用户复充人数
|
|
|
- vo.setBuyNewUserAgainNum(buyDayN == null ? BigInteger.ZERO : buyDayN.getRechargeAgainNum());
|
|
|
+ vo.setBuyNewUserAgainNum(buyDayN == null ? 0L : buyDayN.getRechargeAgainNum());
|
|
|
|
|
|
//老用户充值次数、人数、金额
|
|
|
vo.setBuyOldUserAmount(vo.getBuyAmount().subtract(vo.getBuyNewUserAmount()));
|
|
|
- vo.setBuyOldUserCount(vo.getBuyAmountCount().subtract(vo.getBuyNewUserAmountCount()));
|
|
|
- vo.setBuyOldUserNum(vo.getBuyAmountNum().subtract(vo.getBuyNewUserAmountNum()));
|
|
|
+ vo.setBuyOldUserCount(vo.getBuyAmountCount() - (vo.getBuyNewUserAmountCount()));
|
|
|
+ vo.setBuyOldUserNum(vo.getBuyAmountNum() - (vo.getBuyNewUserAmountNum()));
|
|
|
|
|
|
//新用户付费比
|
|
|
- vo.setBuyNewUserRate(vo.getBuyAmountNum().compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ vo.setBuyNewUserRate(vo.getBuyAmountNum().compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(vo.getBuyNewUserAmountNum().doubleValue() / vo.getBuyAmountNum().doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
//新用户付费率
|
|
|
- vo.setBuyNewUserRoi(vo.getBuyRegNum().compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ vo.setBuyNewUserRoi(vo.getBuyRegNum().compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(vo.getBuyNewUserAmountNum().doubleValue() / vo.getBuyRegNum().doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
|
|
|
//新用户客单价
|
|
|
- vo.setBuyNewUserAvgAmount(vo.getBuyNewUserAmountCount().compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ vo.setBuyNewUserAvgAmount(vo.getBuyNewUserAmountCount().compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(vo.getBuyNewUserAmount().doubleValue() / vo.getBuyNewUserAmountCount().doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
|
|
|
//复充率
|
|
|
- vo.setBuyUserAgainRate(vo.getBuyNewUserAmountNum().compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ vo.setBuyUserAgainRate(vo.getBuyNewUserAmountNum().compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(vo.getBuyNewUserAgainNum().doubleValue() / vo.getBuyNewUserAmountNum().doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
//新用户复充率
|
|
|
- vo.setBuyNewUserAgainRate(vo.getBuyNewUserTotalAmountNum().compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ vo.setBuyNewUserAgainRate(vo.getBuyNewUserTotalAmountNum().compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(vo.getBuyNewUserAgainNum().doubleValue() / vo.getBuyNewUserTotalAmountNum().doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
|
|
|
//新用户付费ARPU
|
|
|
- vo.setBuyNewUserAmountArpu(vo.getBuyNewUserAmountNum().compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ vo.setBuyNewUserAmountArpu(vo.getBuyNewUserAmountNum().compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(vo.getBuyNewUserAmount().doubleValue() / vo.getBuyNewUserAmountNum().doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
|
|
|
//设置自然量数据
|
|
|
//新用户充值次数、金额、人数
|
|
|
vo.setNatureNewUserAmount(natureDayN == null ? BigDecimal.ZERO : natureDayN.getRechargeMoney());
|
|
|
- vo.setNatureNewUserAmountNum(natureDayN == null ? BigInteger.ZERO : natureDayN.getRechargeNum());
|
|
|
- vo.setNatureNewUserAmountCount(natureDayN == null ? BigInteger.ZERO : natureDayN.getRechargeCount());
|
|
|
+ vo.setNatureNewUserAmountNum(natureDayN == null ? 0L : natureDayN.getRechargeNum());
|
|
|
+ vo.setNatureNewUserAmountCount(natureDayN == null ? 0L : natureDayN.getRechargeCount());
|
|
|
//新用户复充人数
|
|
|
- vo.setNatureNewUserAgainNum(natureDayN == null ? BigInteger.ZERO : natureDayN.getRechargeAgainNum());
|
|
|
+ vo.setNatureNewUserAgainNum(natureDayN == null ? 0L : natureDayN.getRechargeAgainNum());
|
|
|
|
|
|
//老用户充值次数、人数、金额
|
|
|
vo.setNatureOldUserAmount(vo.getNatureAmount().subtract(vo.getNatureNewUserAmount()));
|
|
|
- vo.setNatureOldUserCount(vo.getNatureAmountCount().subtract(vo.getNatureNewUserAmountCount()));
|
|
|
- vo.setNatureOldUserNum(vo.getNatureAmountNum().subtract(vo.getNatureNewUserAmountNum()));
|
|
|
+ vo.setNatureOldUserCount(vo.getNatureAmountCount() - (vo.getNatureNewUserAmountCount()));
|
|
|
+ vo.setNatureOldUserNum(vo.getNatureAmountNum() - (vo.getNatureNewUserAmountNum()));
|
|
|
|
|
|
//新用户付费比
|
|
|
- vo.setNatureNewUserRate(vo.getNatureAmountNum().compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ vo.setNatureNewUserRate(vo.getNatureAmountNum().compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(vo.getNatureNewUserAmountNum().doubleValue() / vo.getNatureAmountNum().doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
//新用户付费率
|
|
|
- vo.setNatureNewUserRoi(vo.getNatureRegNum().compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ vo.setNatureNewUserRoi(vo.getNatureRegNum().compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(vo.getNatureNewUserAmountNum().doubleValue() / vo.getNatureRegNum().doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
|
|
|
//新用户客单价
|
|
|
- vo.setNatureNewUserAvgAmount(vo.getNatureNewUserAmountCount().compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ vo.setNatureNewUserAvgAmount(vo.getNatureNewUserAmountCount().compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(vo.getNatureNewUserAmount().doubleValue() / vo.getNatureNewUserAmountCount().doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
|
|
|
//复充率
|
|
|
- vo.setNatureUserAgainRate(vo.getNatureNewUserAmountNum().compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ vo.setNatureUserAgainRate(vo.getNatureNewUserAmountNum().compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(vo.getNatureNewUserAgainNum().doubleValue() / vo.getNatureNewUserAmountNum().doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
//新用户复充率
|
|
|
- vo.setNatureNewUserAgainRate(vo.getNatureNewUserTotalAmountNum().compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ vo.setNatureNewUserAgainRate(vo.getNatureNewUserTotalAmountNum().compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(vo.getNatureNewUserAgainNum().doubleValue() / vo.getNatureNewUserTotalAmountNum().doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
|
|
|
//新用户付费ARPU
|
|
|
- vo.setNatureNewUserAmountArpu(vo.getNatureNewUserAmountNum().compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ vo.setNatureNewUserAmountArpu(vo.getNatureNewUserAmountNum().compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(vo.getNatureNewUserAmount().doubleValue() / vo.getNatureNewUserAmountNum().doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
|
|
|
//设置总量数据
|
|
|
//新用户充值次数、金额、人数
|
|
|
vo.setNewUserAmount(dayN == null ? BigDecimal.ZERO : dayN.getRechargeMoney());
|
|
|
- vo.setNewUserAmountNum(dayN == null ? BigInteger.ZERO : dayN.getRechargeNum());
|
|
|
- vo.setNewUserAmountCount(dayN == null ? BigInteger.ZERO : dayN.getRechargeCount());
|
|
|
+ vo.setNewUserAmountNum(dayN == null ? 0L : dayN.getRechargeNum());
|
|
|
+ vo.setNewUserAmountCount(dayN == null ? 0L : dayN.getRechargeCount());
|
|
|
//新用户复充人数
|
|
|
- vo.setNewUserAgainNum(dayN == null ? BigInteger.ZERO : dayN.getRechargeAgainNum());
|
|
|
+ vo.setNewUserAgainNum(dayN == null ? 0L : dayN.getRechargeAgainNum());
|
|
|
|
|
|
//老用户充值次数、人数、金额
|
|
|
vo.setOldUserAmount(vo.getAmount().subtract(vo.getNewUserAmount()));
|
|
|
- vo.setOldUserCount(vo.getAmountCount().subtract(vo.getNewUserAmountCount()));
|
|
|
- vo.setOldUserNum(vo.getAmountNum().subtract(vo.getNewUserAmountNum()));
|
|
|
+ vo.setOldUserCount(vo.getAmountCount() - (vo.getNewUserAmountCount()));
|
|
|
+ vo.setOldUserNum(vo.getAmountNum() - (vo.getNewUserAmountNum()));
|
|
|
|
|
|
//新用户付费比
|
|
|
- vo.setNewUserRate(vo.getAmountNum().compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ vo.setNewUserRate(vo.getAmountNum().compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(vo.getNewUserAmountNum().doubleValue() / vo.getAmountNum().doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
//新用户付费率
|
|
|
- vo.setNewUserRoi(vo.getRegNum().compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ vo.setNewUserRoi(vo.getRegNum().compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(vo.getNewUserAmountNum().doubleValue() / vo.getRegNum().doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
|
|
|
//新用户客单价
|
|
|
- vo.setNewUserAvgAmount(vo.getNewUserAmountCount().compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ vo.setNewUserAvgAmount(vo.getNewUserAmountCount().compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(vo.getNewUserAmount().doubleValue() / vo.getNewUserAmountCount().doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
|
|
|
//复充率
|
|
|
- vo.setUserAgainRate(vo.getNewUserAmountNum().compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ vo.setUserAgainRate(vo.getNewUserAmountNum().compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(vo.getNewUserAgainNum().doubleValue() / vo.getNewUserAmountNum().doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
//新用户复充率
|
|
|
- vo.setNewUserAgainRate(vo.getNewUserTotalAmountNum().compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ vo.setNewUserAgainRate(vo.getNewUserTotalAmountNum().compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(vo.getNewUserAgainNum().doubleValue() / vo.getNewUserTotalAmountNum().doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
|
|
|
//新用户付费ARPU
|
|
|
- vo.setNewUserAmountArpu(vo.getNewUserAmountNum().compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ vo.setNewUserAmountArpu(vo.getNewUserAmountNum().compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(vo.getNewUserAmount().doubleValue() / vo.getNewUserAmountNum().doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
|
|
|
return vo;
|
|
@@ -598,6 +600,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
|
|
|
/**
|
|
|
* 每日流水贡献
|
|
|
+ *
|
|
|
* @param dto 前端传递的查询参数
|
|
|
* @return 返回给前端的数据
|
|
|
*/
|
|
@@ -721,8 +724,8 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
if (StringUtils.isNotBlank(dto.getGameName())) {
|
|
|
cri.where().andEquals("game_name", dto.getGameName());
|
|
|
}
|
|
|
- if (dto.getGameId() != null){
|
|
|
- cri.where().andEquals("game_id",dto.getGameId());
|
|
|
+ if (dto.getGameId() != null) {
|
|
|
+ cri.where().andEquals("game_id", dto.getGameId());
|
|
|
}
|
|
|
if (dto.getBeginDate() != null) {
|
|
|
cri.where().andEquals("dt", dto.getBeginDate());
|
|
@@ -765,31 +768,31 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
tempList.get(0).get(i).setBuyOriginal(getCnByNum(listBuy.get(0), ci));
|
|
|
tempList.get(0).get(i).setNatureOriginal(getCnByNum(listNature.get(0), ci));
|
|
|
//"增":初始为 0
|
|
|
- tempList.get(0).get(i).setIncrease(BigInteger.ZERO);
|
|
|
- tempList.get(0).get(i).setBuyIncrease(BigInteger.ZERO);
|
|
|
- tempList.get(0).get(i).setNatureIncrease(BigInteger.ZERO);
|
|
|
+ tempList.get(0).get(i).setIncrease(0L);
|
|
|
+ tempList.get(0).get(i).setBuyIncrease(0L);
|
|
|
+ tempList.get(0).get(i).setNatureIncrease(0L);
|
|
|
//"移":下一个充值次数的Ci 即C(i+1)
|
|
|
tempList.get(0).get(i).setDecrease(getCnByNum(list.get(0), ci + 1));
|
|
|
tempList.get(0).get(i).setBuyDecrease(getCnByNum(listBuy.get(0), ci + 1));
|
|
|
tempList.get(0).get(i).setNatureDecrease(getCnByNum(listNature.get(0), ci + 1));
|
|
|
//"现":公式计算 = 原 + 增 - 移
|
|
|
tempList.get(0).get(i).setPresent(
|
|
|
- tempVO.getOriginal().add(tempVO.getIncrease()).subtract(tempVO.getDecrease())
|
|
|
+ tempVO.getOriginal() + (tempVO.getIncrease()) - (tempVO.getDecrease())
|
|
|
);
|
|
|
tempList.get(0).get(i).setBuyPresent(
|
|
|
- tempVO.getBuyOriginal().add(tempVO.getBuyIncrease()).subtract(tempVO.getBuyDecrease())
|
|
|
+ tempVO.getBuyOriginal() + (tempVO.getBuyIncrease()) - (tempVO.getBuyDecrease())
|
|
|
);
|
|
|
tempList.get(0).get(i).setNaturePresent(
|
|
|
- tempVO.getNatureOriginal().add(tempVO.getNatureIncrease()).subtract(tempVO.getNatureDecrease())
|
|
|
+ tempVO.getNatureOriginal() + (tempVO.getNatureIncrease()) - (tempVO.getNatureDecrease())
|
|
|
);
|
|
|
//"比"
|
|
|
- tempList.get(0).get(i).setRate(getCnByNum(list.get(0), 1).compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ tempList.get(0).get(i).setRate(getCnByNum(list.get(0), 1).compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(tempVO.getPresent().doubleValue() / getCnByNum(list.get(0), 1).doubleValue()).setScale(4, RoundingMode.HALF_UP)
|
|
|
);
|
|
|
- tempList.get(0).get(i).setBuyRate(getCnByNum(listBuy.get(0), 1).compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ tempList.get(0).get(i).setBuyRate(getCnByNum(listBuy.get(0), 1).compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(tempVO.getBuyPresent().doubleValue() / getCnByNum(listBuy.get(0), 1).doubleValue()).setScale(4, RoundingMode.HALF_UP)
|
|
|
);
|
|
|
- tempList.get(0).get(i).setNatureRate(getCnByNum(listNature.get(0), 1).compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ tempList.get(0).get(i).setNatureRate(getCnByNum(listNature.get(0), 1).compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(tempVO.getNaturePresent().doubleValue() / getCnByNum(listNature.get(0), 1).doubleValue()).setScale(4, RoundingMode.HALF_UP)
|
|
|
);
|
|
|
|
|
@@ -801,31 +804,31 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
tempList.get(j).get(i).setNatureOriginal(tempList.get(j - 1).get(i).getNaturePresent());
|
|
|
//"现":当天的Ci - 当天的C(i+1)
|
|
|
tempList.get(j).get(i).setPresent(
|
|
|
- getCnByNum(list.get(j), ci).subtract(getCnByNum(list.get(j), ci + 1)));
|
|
|
+ getCnByNum(list.get(j), ci) - (getCnByNum(list.get(j), ci + 1)));
|
|
|
tempList.get(j).get(i).setBuyPresent(
|
|
|
- getCnByNum(listBuy.get(j), ci).subtract(getCnByNum(listBuy.get(j), ci + 1)));
|
|
|
+ getCnByNum(listBuy.get(j), ci) - (getCnByNum(listBuy.get(j), ci + 1)));
|
|
|
tempList.get(j).get(i).setNaturePresent(
|
|
|
- getCnByNum(listNature.get(j), ci).subtract(getCnByNum(listNature.get(j), ci + 1)));
|
|
|
+ getCnByNum(listNature.get(j), ci) - (getCnByNum(listNature.get(j), ci + 1)));
|
|
|
//"增":当天的Ci - 前一天的Ci
|
|
|
tempList.get(j).get(i).setIncrease(
|
|
|
- getCnByNum(list.get(j), ci).subtract(getCnByNum(list.get(j - 1), ci)));
|
|
|
+ getCnByNum(list.get(j), ci) - (getCnByNum(list.get(j - 1), ci)));
|
|
|
tempList.get(j).get(i).setBuyIncrease(
|
|
|
- getCnByNum(listBuy.get(j), ci).subtract(getCnByNum(listBuy.get(j - 1), ci)));
|
|
|
+ getCnByNum(listBuy.get(j), ci) - (getCnByNum(listBuy.get(j - 1), ci)));
|
|
|
tempList.get(j).get(i).setNatureIncrease(
|
|
|
- getCnByNum(listNature.get(j), ci).subtract(getCnByNum(listNature.get(j - 1), ci)));
|
|
|
+ getCnByNum(listNature.get(j), ci) - (getCnByNum(listNature.get(j - 1), ci)));
|
|
|
//"移":当天的C(i+1) - 前一天的C(i+1)
|
|
|
tempList.get(j).get(i).setDecrease(
|
|
|
- getCnByNum(list.get(j), ci + 1).subtract(getCnByNum(list.get(j - 1), ci + 1)));
|
|
|
+ getCnByNum(list.get(j), ci + 1) - (getCnByNum(list.get(j - 1), ci + 1)));
|
|
|
tempList.get(j).get(i).setBuyDecrease(
|
|
|
- getCnByNum(listBuy.get(j), ci + 1).subtract(getCnByNum(listBuy.get(j - 1), ci + 1)));
|
|
|
+ getCnByNum(listBuy.get(j), ci + 1) - (getCnByNum(listBuy.get(j - 1), ci + 1)));
|
|
|
tempList.get(j).get(i).setNatureDecrease(
|
|
|
- getCnByNum(listNature.get(j), ci + 1).subtract(getCnByNum(listNature.get(j - 1), ci + 1)));
|
|
|
+ getCnByNum(listNature.get(j), ci + 1) - (getCnByNum(listNature.get(j - 1), ci + 1)));
|
|
|
//"比":当天的现 / 前一天的C1
|
|
|
- tempList.get(j).get(i).setRate(getCnByNum(list.get(j - 1), 1).compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ tempList.get(j).get(i).setRate(getCnByNum(list.get(j - 1), 1).compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(tempList.get(j).get(i).getPresent().doubleValue() / getCnByNum(list.get(j - 1), 1).doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
- tempList.get(j).get(i).setBuyRate(getCnByNum(listBuy.get(j - 1), 1).compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ tempList.get(j).get(i).setBuyRate(getCnByNum(listBuy.get(j - 1), 1).compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(tempList.get(j).get(i).getBuyPresent().doubleValue() / getCnByNum(listBuy.get(j - 1), 1).doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
- tempList.get(j).get(i).setNatureRate(getCnByNum(listNature.get(j - 1), 1).compareTo(BigInteger.ZERO) == 0 ? BigDecimal.ZERO :
|
|
|
+ tempList.get(j).get(i).setNatureRate(getCnByNum(listNature.get(j - 1), 1).compareTo(0L) == 0 ? BigDecimal.ZERO :
|
|
|
BigDecimal.valueOf(tempList.get(j).get(i).getNaturePresent().doubleValue() / getCnByNum(listNature.get(j - 1), 1).doubleValue()).setScale(4, RoundingMode.HALF_UP));
|
|
|
}
|
|
|
}
|
|
@@ -840,11 +843,12 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
|
|
|
/**
|
|
|
* 查询只与充值时间相关的数据
|
|
|
- * @param vo 返回给前端的实体
|
|
|
+ *
|
|
|
+ * @param vo 返回给前端的实体
|
|
|
* @param dto 前端查询实体
|
|
|
* @return GameDataTotalVO
|
|
|
*/
|
|
|
- private GameDataTotalVO getRechargeData(GameDataTotalVO vo, GameDataTotalDTO dto){
|
|
|
+ private GameDataTotalVO getRechargeData(GameDataTotalVO vo, GameDataTotalDTO dto) {
|
|
|
//查询条件
|
|
|
Criteria criRc = Cnd.cri();
|
|
|
if (StringUtils.isNotBlank(vo.getGameName())) {
|
|
@@ -855,7 +859,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
//拼接游戏类型查询条件
|
|
|
criRc.where().andEquals("b.game_classify", vo.getGameClassify());
|
|
|
}
|
|
|
- if (vo.getGameId() != null){
|
|
|
+ if (vo.getGameId() != null) {
|
|
|
//拼接游戏id查询条件
|
|
|
criRc.where().andEquals("b.game_id", vo.getGameId());
|
|
|
}
|
|
@@ -913,25 +917,41 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
|
|
|
/**
|
|
|
* 三张表共用的方法
|
|
|
- * @param dayNMap 参数Map
|
|
|
+ *
|
|
|
+ * @param dayNMap 参数Map
|
|
|
* @param tableName 查询的表名
|
|
|
* @return DayN数据
|
|
|
*/
|
|
|
private DayN getDayNByTableName(Map<String, Object> dayNMap, String tableName) {
|
|
|
-
|
|
|
- //构架SQL语句,查询相关DayN表获取相关充值数据
|
|
|
- Sql dayNSql = Sqls.create(
|
|
|
- """
|
|
|
- SELECT
|
|
|
- dayN
|
|
|
- FROM
|
|
|
- $tableName
|
|
|
- where
|
|
|
- dt between @registerBeginDate and @registerEndDate
|
|
|
- and game_id = @gameId
|
|
|
- and source_system = @sourceSystem
|
|
|
- """
|
|
|
- );
|
|
|
+ Sql dayNSql = null;
|
|
|
+ if (dayNMap.get("sourceSystem") != null) {
|
|
|
+ //构架SQL语句,查询相关DayN表获取相关充值数据
|
|
|
+ dayNSql = Sqls.create(
|
|
|
+ """
|
|
|
+ SELECT
|
|
|
+ dayN
|
|
|
+ FROM
|
|
|
+ $tableName
|
|
|
+ where
|
|
|
+ dt between @registerBeginDate and @registerEndDate
|
|
|
+ and game_id = @gameId
|
|
|
+ and source_system = @sourceSystem
|
|
|
+ """
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ //构架SQL语句,查询相关DayN表获取相关充值数据
|
|
|
+ dayNSql = Sqls.create(
|
|
|
+ """
|
|
|
+ SELECT
|
|
|
+ dayN
|
|
|
+ FROM
|
|
|
+ $tableName
|
|
|
+ where
|
|
|
+ dt between @registerBeginDate and @registerEndDate
|
|
|
+ and game_id = @gameId
|
|
|
+ """
|
|
|
+ );
|
|
|
+ }
|
|
|
//sql语句传入参数
|
|
|
dayNSql.setParams(dayNMap);
|
|
|
//给定查询的表名
|
|
@@ -969,11 +989,11 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
//充值的金额
|
|
|
BigDecimal chargeMoney = new BigDecimal(oldValues[0]).add(new BigDecimal(resValues[0]));
|
|
|
//充值的次数
|
|
|
- BigInteger count = new BigInteger(oldValues[1]).add(new BigInteger(resValues[1]));
|
|
|
+ Long count = Long.valueOf(oldValues[1]) + Long.valueOf(resValues[1]);
|
|
|
//充值的人数
|
|
|
- BigInteger num = new BigInteger(oldValues[2]).add(new BigInteger(resValues[2]));
|
|
|
+ Long num = Long.valueOf(oldValues[2]) + Long.valueOf(resValues[2]);
|
|
|
//新用户复充人数
|
|
|
- BigInteger againNum = new BigInteger(oldValues[3]).add(new BigInteger(resValues[3]));
|
|
|
+ Long againNum = Long.valueOf(oldValues[3]) + Long.valueOf(resValues[3]);
|
|
|
//合并成字符串 更新dayN的值
|
|
|
String newValue = chargeMoney + "-" + count + "-" + num + "-" + againNum;
|
|
|
resMap.put("dayN", newValue);
|
|
@@ -985,9 +1005,9 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
String[] values = resMap.get("dayN").split("-");
|
|
|
dayN = DayN.builder()
|
|
|
.rechargeMoney(new BigDecimal(values[0]))
|
|
|
- .rechargeCount(new BigInteger(values[1]))
|
|
|
- .rechargeNum(new BigInteger(values[2]))
|
|
|
- .rechargeAgainNum(new BigInteger(values[3]))
|
|
|
+ .rechargeCount(Long.valueOf(values[1]))
|
|
|
+ .rechargeNum(Long.valueOf(values[2]))
|
|
|
+ .rechargeAgainNum(Long.valueOf(values[3]))
|
|
|
.build();
|
|
|
}
|
|
|
}
|
|
@@ -996,11 +1016,12 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
|
|
|
/**
|
|
|
* 通过反射来获取Cn的值
|
|
|
+ *
|
|
|
* @param dto 数据库查询出来的原始数据对象实体
|
|
|
* @param num 1-9
|
|
|
* @return Cn
|
|
|
*/
|
|
|
- private BigInteger getCnByNum(Object dto, int num) {
|
|
|
+ private Long getCnByNum(Object dto, int num) {
|
|
|
try {
|
|
|
Method m1 = null;
|
|
|
//不同对象获取的方法不同
|
|
@@ -1012,7 +1033,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
m1 = AdsGameDayAgainNature.class.getDeclaredMethod(String.format("getNatureC%s", num));
|
|
|
}
|
|
|
//返回对应的Cn值
|
|
|
- return (BigInteger) m1.invoke(dto);
|
|
|
+ return (Long) m1.invoke(dto);
|
|
|
} catch (Exception e) {
|
|
|
throw new BaseException("发生错误");
|
|
|
}
|
|
@@ -1020,8 +1041,9 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
|
|
|
/**
|
|
|
* 初始化List数据
|
|
|
+ *
|
|
|
* @param list 需要初始化的数据
|
|
|
- * @param num 多少天的数据
|
|
|
+ * @param num 多少天的数据
|
|
|
*/
|
|
|
private void initList(List<List<GameDataAgainDayVO>> list, Integer num) {
|
|
|
//外层循环 num 次 表示多少天的数据
|
|
@@ -1031,20 +1053,20 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
for (int j = 0; j < 8; j++) {
|
|
|
list.get(i).add(
|
|
|
GameDataAgainDayVO.builder()
|
|
|
- .buyOriginal(BigInteger.ZERO)
|
|
|
- .buyPresent(BigInteger.ZERO)
|
|
|
- .buyIncrease(BigInteger.ZERO)
|
|
|
- .buyDecrease(BigInteger.ZERO)
|
|
|
+ .buyOriginal(0L)
|
|
|
+ .buyPresent(0L)
|
|
|
+ .buyIncrease(0L)
|
|
|
+ .buyDecrease(0L)
|
|
|
.buyRate(BigDecimal.ZERO)
|
|
|
- .natureOriginal(BigInteger.ZERO)
|
|
|
- .naturePresent(BigInteger.ZERO)
|
|
|
- .natureIncrease(BigInteger.ZERO)
|
|
|
- .natureDecrease(BigInteger.ZERO)
|
|
|
+ .natureOriginal(0L)
|
|
|
+ .naturePresent(0L)
|
|
|
+ .natureIncrease(0L)
|
|
|
+ .natureDecrease(0L)
|
|
|
.natureRate(BigDecimal.ZERO)
|
|
|
- .original(BigInteger.ZERO)
|
|
|
- .present(BigInteger.ZERO)
|
|
|
- .increase(BigInteger.ZERO)
|
|
|
- .decrease(BigInteger.ZERO)
|
|
|
+ .original(0L)
|
|
|
+ .present(0L)
|
|
|
+ .increase(0L)
|
|
|
+ .decrease(0L)
|
|
|
.rate(BigDecimal.ZERO)
|
|
|
.build()
|
|
|
);
|
|
@@ -1054,8 +1076,9 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
|
|
|
/**
|
|
|
* 不同表获取不同的list结果
|
|
|
+ *
|
|
|
* @param tableName 表明
|
|
|
- * @param cri 查询条件
|
|
|
+ * @param cri 查询条件
|
|
|
* @return 查询结果
|
|
|
*/
|
|
|
private List getListByTableType(String tableName, Criteria cri) {
|
|
@@ -1098,6 +1121,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
|
|
|
/**
|
|
|
* 游戏每日数据SQL
|
|
|
+ *
|
|
|
* @return String
|
|
|
*/
|
|
|
private String gameDataDaySql() {
|
|
@@ -1221,6 +1245,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
|
|
|
/**
|
|
|
* 游戏总数据SQL
|
|
|
+ *
|
|
|
* @return String
|
|
|
*/
|
|
|
private String gameDataTotalSql() {
|
|
@@ -1294,9 +1319,10 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
|
|
|
/**
|
|
|
* 和充值时间有关的sql
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
- private String gameDataTotalSqlRecharge(){
|
|
|
+ private String gameDataTotalSqlRecharge() {
|
|
|
return """
|
|
|
SELECT
|
|
|
ifnull(sum(b.buy_amount_count),0) buy_amount_count,
|
|
@@ -1318,12 +1344,13 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
|
|
|
FROM
|
|
|
ads_game_day b
|
|
|
-
|
|
|
+
|
|
|
""";
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 复充表sql(总量)
|
|
|
+ *
|
|
|
* @return String
|
|
|
*/
|
|
|
private String adsGameDataAgainSql() {
|
|
@@ -1349,6 +1376,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
|
|
|
/**
|
|
|
* 复充表sql(买量)
|
|
|
+ *
|
|
|
* @return String
|
|
|
*/
|
|
|
private String adsGameDataAgainBuySql() {
|
|
@@ -1374,6 +1402,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
|
|
|
/**
|
|
|
* 复充表sql(自然量)
|
|
|
+ *
|
|
|
* @return String
|
|
|
*/
|
|
|
private String adsGameDataAgainNatureSql() {
|
|
@@ -1423,7 +1452,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
cri.where().andLike("a.source_system", dto.getSourceSystem());
|
|
|
}
|
|
|
cri.where().and("a.dt", ">=", dto.getCostBeginDate()).and("a.dt", "<=", dto.getCostEndDate());
|
|
|
- cri.where().andEquals("a.id",1);
|
|
|
+ cri.where().andEquals("a.id", 1);
|
|
|
cri.groupBy("a.source_system,a.game_id");
|
|
|
cri.orderBy(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, dto.getSortFiled()), dto.getSortType());
|
|
|
Sql sql = Sqls.queryEntity(h5RechargeSql() + "$condition");
|
|
@@ -1454,13 +1483,13 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
|
|
|
//h5账面
|
|
|
String show = """
|
|
|
- select
|
|
|
- sum(h5_buy_amount) as h5_buy_amount,
|
|
|
- sum(h5_buy_amount_num) as h5_buy_amount_num,
|
|
|
- sum(h5_nature_amount) as h5_nature_amount,
|
|
|
- sum(h5_nature_amount_num) as h5_nature_amount_num
|
|
|
- from ads_h5_game_day
|
|
|
- """;
|
|
|
+ select
|
|
|
+ sum(h5_buy_amount) as h5_buy_amount,
|
|
|
+ sum(h5_buy_amount_num) as h5_buy_amount_num,
|
|
|
+ sum(h5_nature_amount) as h5_nature_amount,
|
|
|
+ sum(h5_nature_amount_num) as h5_nature_amount_num
|
|
|
+ from ads_h5_game_day
|
|
|
+ """;
|
|
|
Sql showSql = Sqls.queryEntity(show + "$condition");
|
|
|
Entity<ShowRecharge> showEntity = dao.getEntity(ShowRecharge.class);
|
|
|
List<GameDataH5VO> gameDataH5VOList = sql.getList(GameDataH5VO.class).stream().map(item -> {
|
|
@@ -1471,18 +1500,18 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
}
|
|
|
showCri.where().and("dt", ">=", dto.getRechargeBeginDate()).and("dt", "<=", dto.getRechargeEndDate());
|
|
|
showCri.groupBy("source_system,game_id");
|
|
|
- showCri.where().andEquals("game_id",item.getGameId());
|
|
|
- showCri.where().andEquals("id",1);
|
|
|
- showCri.where().andEquals("source_system",item.getSourceSystem());
|
|
|
+ showCri.where().andEquals("game_id", item.getGameId());
|
|
|
+ showCri.where().andEquals("id", 1);
|
|
|
+ showCri.where().andEquals("source_system", item.getSourceSystem());
|
|
|
showSql.setEntity(showEntity).setCondition(showCri);
|
|
|
dao.execute(showSql);
|
|
|
ShowRecharge showRecharge = showSql.getObject(ShowRecharge.class);
|
|
|
- if (null != showRecharge){
|
|
|
+ if (null != showRecharge) {
|
|
|
item.setH5NatureAmount(showRecharge.getH5NatureAmount());
|
|
|
item.setH5NatureAmountNum(showRecharge.getH5NatureAmountNum());
|
|
|
item.setH5BuyAmount(showRecharge.getH5BuyAmount());
|
|
|
item.setH5BuyAmountNum(showRecharge.getH5BuyAmountNum());
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
item.setH5NatureAmount(BigDecimal.ZERO);
|
|
|
item.setH5NatureAmountNum(0L);
|
|
|
item.setH5BuyAmount(BigDecimal.ZERO);
|
|
@@ -1531,20 +1560,20 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
|
|
|
private List<H5NatureUserVO> getH5NatureUserVOList(GameDataH5DTO dto, Map<String, Object> importDayNMap, GameDataH5VO item) {
|
|
|
Sql natureGameSql = Sqls.queryEntity("""
|
|
|
- select
|
|
|
- nature_source_system,
|
|
|
- nature_game_id,
|
|
|
- max(nature_game_name) as nature_game_name,
|
|
|
- max(nature_classify) as nature_classify,
|
|
|
- sum(h5_lead_nature_new_user_total_amount) as h5_lead_nature_new_user_total_amount,
|
|
|
- sum(h5_lead_nature_new_user_total_amount_num) as h5_lead_nature_new_user_total_amount_num
|
|
|
- from ads_h5_game_day
|
|
|
- where
|
|
|
- game_id = @gameId
|
|
|
- and
|
|
|
- dt>=@beginDay and dt<=@endDay
|
|
|
- group by nature_source_system,nature_game_id
|
|
|
- """);
|
|
|
+ select
|
|
|
+ nature_source_system,
|
|
|
+ nature_game_id,
|
|
|
+ max(nature_game_name) as nature_game_name,
|
|
|
+ max(nature_classify) as nature_classify,
|
|
|
+ sum(h5_lead_nature_new_user_total_amount) as h5_lead_nature_new_user_total_amount,
|
|
|
+ sum(h5_lead_nature_new_user_total_amount_num) as h5_lead_nature_new_user_total_amount_num
|
|
|
+ from ads_h5_game_day
|
|
|
+ where
|
|
|
+ game_id = @gameId
|
|
|
+ and
|
|
|
+ dt>=@beginDay and dt<=@endDay
|
|
|
+ group by nature_source_system,nature_game_id
|
|
|
+ """);
|
|
|
natureGameSql.setParam("gameId", item.getGameId());
|
|
|
natureGameSql.setParam("beginDay", dto.getCostBeginDate());
|
|
|
natureGameSql.setParam("endDay", dto.getCostEndDate());
|
|
@@ -1553,18 +1582,18 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
dao.execute(natureGameSql);
|
|
|
|
|
|
Sql natureShowGameSql = Sqls.queryEntity("""
|
|
|
- select
|
|
|
- nature_source_system,
|
|
|
- nature_game_id,
|
|
|
- sum(h5_lead_nature_amount) as h5_lead_nature_amount,
|
|
|
- sum(h5_lead_nature_amount_num) as h5_lead_nature_amount_num
|
|
|
- from ads_h5_game_day
|
|
|
- where
|
|
|
- game_id = @gameId
|
|
|
- and
|
|
|
- dt>=@beginDay and dt<=@endDay
|
|
|
- group by nature_source_system,nature_game_id
|
|
|
- """);
|
|
|
+ select
|
|
|
+ nature_source_system,
|
|
|
+ nature_game_id,
|
|
|
+ sum(h5_lead_nature_amount) as h5_lead_nature_amount,
|
|
|
+ sum(h5_lead_nature_amount_num) as h5_lead_nature_amount_num
|
|
|
+ from ads_h5_game_day
|
|
|
+ where
|
|
|
+ game_id = @gameId
|
|
|
+ and
|
|
|
+ dt>=@beginDay and dt<=@endDay
|
|
|
+ group by nature_source_system,nature_game_id
|
|
|
+ """);
|
|
|
natureShowGameSql.setParam("gameId", item.getGameId());
|
|
|
natureShowGameSql.setParam("beginDay", dto.getRechargeBeginDate());
|
|
|
natureShowGameSql.setParam("endDay", dto.getRechargeEndDate());
|
|
@@ -1572,52 +1601,52 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
natureShowGameSql.setEntity(buyShowGameEntity);
|
|
|
dao.execute(natureShowGameSql);
|
|
|
Map<Long, List<H5NatureUserVO>> showBuyGameMap = natureShowGameSql.getList(H5NatureUserVO.class).stream()
|
|
|
- .filter(tt->null!=tt.getNatureGameId())
|
|
|
+ .filter(tt -> null != tt.getNatureGameId())
|
|
|
.collect(Collectors.groupingBy(H5NatureUserVO::getNatureGameId));
|
|
|
|
|
|
List<H5NatureUserVO> natureGameList = natureGameSql.getList(H5NatureUserVO.class).stream()
|
|
|
- .filter(tt->null!=tt.getNatureGameId())
|
|
|
+ .filter(tt -> null != tt.getNatureGameId())
|
|
|
.map(natureGame -> {
|
|
|
- importDayNMap.put("sourceSystem", natureGame.getNatureSourceSystem());
|
|
|
- importDayNMap.put("gameId", natureGame.getNatureGameId());
|
|
|
- H5DayN importNatureH5DayN = getImportNatureH5DayN(dto, importDayNMap);
|
|
|
- if (null != showBuyGameMap&& null!=showBuyGameMap.get(natureGame.getNatureGameId()) && !showBuyGameMap.get(natureGame.getNatureGameId()).isEmpty()) {
|
|
|
- natureGame.setH5LeadNatureAmount(showBuyGameMap.get(natureGame.getNatureGameId()).get(0).getH5LeadNatureAmount());
|
|
|
- natureGame.setH5LeadNatureAmountNum(showBuyGameMap.get(natureGame.getNatureGameId()).get(0).getH5LeadNatureAmountNum());
|
|
|
- }else {
|
|
|
- natureGame.setH5LeadNatureAmount(BigDecimal.ZERO);
|
|
|
- natureGame.setH5LeadNatureAmountNum(0L);
|
|
|
- }
|
|
|
- //充值时间范围内存在官方导量充值数据
|
|
|
- if (null != importNatureH5DayN) {
|
|
|
- natureGame.setNewUserRechargeMoney(importNatureH5DayN.getRechargeMoney());
|
|
|
- natureGame.setNewUserRechargeNum(importNatureH5DayN.getRechargeNum());
|
|
|
- } else {
|
|
|
- natureGame.setNewUserRechargeMoney(BigDecimal.ZERO);
|
|
|
- natureGame.setNewUserRechargeNum(0L);
|
|
|
- }
|
|
|
- return natureGame;
|
|
|
- }).collect(Collectors.toList());
|
|
|
+ importDayNMap.put("sourceSystem", natureGame.getNatureSourceSystem());
|
|
|
+ importDayNMap.put("gameId", natureGame.getNatureGameId());
|
|
|
+ H5DayN importNatureH5DayN = getImportNatureH5DayN(dto, importDayNMap);
|
|
|
+ if (null != showBuyGameMap && null != showBuyGameMap.get(natureGame.getNatureGameId()) && !showBuyGameMap.get(natureGame.getNatureGameId()).isEmpty()) {
|
|
|
+ natureGame.setH5LeadNatureAmount(showBuyGameMap.get(natureGame.getNatureGameId()).get(0).getH5LeadNatureAmount());
|
|
|
+ natureGame.setH5LeadNatureAmountNum(showBuyGameMap.get(natureGame.getNatureGameId()).get(0).getH5LeadNatureAmountNum());
|
|
|
+ } else {
|
|
|
+ natureGame.setH5LeadNatureAmount(BigDecimal.ZERO);
|
|
|
+ natureGame.setH5LeadNatureAmountNum(0L);
|
|
|
+ }
|
|
|
+ //充值时间范围内存在官方导量充值数据
|
|
|
+ if (null != importNatureH5DayN) {
|
|
|
+ natureGame.setNewUserRechargeMoney(importNatureH5DayN.getRechargeMoney());
|
|
|
+ natureGame.setNewUserRechargeNum(importNatureH5DayN.getRechargeNum());
|
|
|
+ } else {
|
|
|
+ natureGame.setNewUserRechargeMoney(BigDecimal.ZERO);
|
|
|
+ natureGame.setNewUserRechargeNum(0L);
|
|
|
+ }
|
|
|
+ return natureGame;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
return natureGameList;
|
|
|
}
|
|
|
|
|
|
private List<H5BuyUserVO> getH5BuyUserVOList(GameDataH5DTO dto, Map<String, Object> importDayNMap, GameDataH5VO item) {
|
|
|
//买量导入游戏
|
|
|
Sql buyGameSql = Sqls.queryEntity("""
|
|
|
- select
|
|
|
- buy_source_system,
|
|
|
- buy_game_id,
|
|
|
- max(buy_game_name) as buy_game_name,
|
|
|
- max(buy_classify) as buy_classify,
|
|
|
- sum(h5_lead_buy_new_user_total_amount) as h5_lead_buy_new_user_total_amount,
|
|
|
- sum(h5_lead_buy_new_user_total_amount_num) as h5_lead_buy_new_user_total_amount_num
|
|
|
- from ads_h5_game_day
|
|
|
- where
|
|
|
- game_id = @gameId
|
|
|
- and
|
|
|
- dt>=@beginDay and dt<=@endDay
|
|
|
- group by buy_source_system,buy_game_id
|
|
|
- """);
|
|
|
+ select
|
|
|
+ buy_source_system,
|
|
|
+ buy_game_id,
|
|
|
+ max(buy_game_name) as buy_game_name,
|
|
|
+ max(buy_classify) as buy_classify,
|
|
|
+ sum(h5_lead_buy_new_user_total_amount) as h5_lead_buy_new_user_total_amount,
|
|
|
+ sum(h5_lead_buy_new_user_total_amount_num) as h5_lead_buy_new_user_total_amount_num
|
|
|
+ from ads_h5_game_day
|
|
|
+ where
|
|
|
+ game_id = @gameId
|
|
|
+ and
|
|
|
+ dt>=@beginDay and dt<=@endDay
|
|
|
+ group by buy_source_system,buy_game_id
|
|
|
+ """);
|
|
|
buyGameSql.setParam("gameId", item.getGameId());
|
|
|
buyGameSql.setParam("beginDay", dto.getCostBeginDate());
|
|
|
buyGameSql.setParam("endDay", dto.getCostEndDate());
|
|
@@ -1627,18 +1656,18 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
|
|
|
//买量导入游戏账面
|
|
|
Sql buyShowGameSql = Sqls.queryEntity("""
|
|
|
- select
|
|
|
- buy_source_system,
|
|
|
- buy_game_id,
|
|
|
- sum(h5_lead_buy_amount) as h5_lead_buy_amount,
|
|
|
- sum(h5_lead_buy_amount_num) as h5_lead_buy_amount_num
|
|
|
- from ads_h5_game_day
|
|
|
- where
|
|
|
- game_id = @gameId
|
|
|
- and
|
|
|
- dt>=@beginDay and dt<=@endDay
|
|
|
- group by buy_source_system,buy_game_id
|
|
|
- """);
|
|
|
+ select
|
|
|
+ buy_source_system,
|
|
|
+ buy_game_id,
|
|
|
+ sum(h5_lead_buy_amount) as h5_lead_buy_amount,
|
|
|
+ sum(h5_lead_buy_amount_num) as h5_lead_buy_amount_num
|
|
|
+ from ads_h5_game_day
|
|
|
+ where
|
|
|
+ game_id = @gameId
|
|
|
+ and
|
|
|
+ dt>=@beginDay and dt<=@endDay
|
|
|
+ group by buy_source_system,buy_game_id
|
|
|
+ """);
|
|
|
buyShowGameSql.setParam("gameId", item.getGameId());
|
|
|
buyShowGameSql.setParam("beginDay", dto.getRechargeBeginDate());
|
|
|
buyShowGameSql.setParam("endDay", dto.getRechargeEndDate());
|
|
@@ -1650,30 +1679,31 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
.collect(Collectors.groupingBy(H5BuyUserVO::getBuyGameId));
|
|
|
|
|
|
List<H5BuyUserVO> buyGameList = buyGameSql.getList(H5BuyUserVO.class).stream()
|
|
|
- .filter(tt->null!=tt.getBuyGameId())
|
|
|
+ .filter(tt -> null != tt.getBuyGameId())
|
|
|
.map(buyGame -> {
|
|
|
- importDayNMap.put("sourceSystem", buyGame.getBuySourceSystem());
|
|
|
- importDayNMap.put("gameId", buyGame.getBuyGameId());
|
|
|
- H5DayN importBuyH5DayN = getImportBuyH5DayN(dto, importDayNMap);
|
|
|
- if (null != showBuyGameMap && null!=showBuyGameMap.get(buyGame.getBuyGameId()) && !showBuyGameMap.get(buyGame.getBuyGameId()).isEmpty()) {
|
|
|
- buyGame.setH5LeadBuyAmount(showBuyGameMap.get(buyGame.getBuyGameId()).get(0).getH5LeadBuyAmount());
|
|
|
- buyGame.setH5LeadBuyAmountNum(showBuyGameMap.get(buyGame.getBuyGameId()).get(0).getH5LeadBuyAmountNum());
|
|
|
- }else {
|
|
|
- buyGame.setH5LeadBuyAmount(BigDecimal.ZERO);
|
|
|
- buyGame.setH5LeadBuyAmountNum(0L);
|
|
|
- }
|
|
|
- //买量导入游戏充值时间范围内存在新用户充值数据
|
|
|
- if (null != importBuyH5DayN) {
|
|
|
- buyGame.setNewUserRechargeMoney(importBuyH5DayN.getRechargeMoney());
|
|
|
- buyGame.setNewUserRechargeNum(importBuyH5DayN.getRechargeNum());
|
|
|
- } else {
|
|
|
- buyGame.setNewUserRechargeMoney(BigDecimal.ZERO);
|
|
|
- buyGame.setNewUserRechargeNum(0L);
|
|
|
- }
|
|
|
- return buyGame;
|
|
|
- }).collect(Collectors.toList());
|
|
|
+ importDayNMap.put("sourceSystem", buyGame.getBuySourceSystem());
|
|
|
+ importDayNMap.put("gameId", buyGame.getBuyGameId());
|
|
|
+ H5DayN importBuyH5DayN = getImportBuyH5DayN(dto, importDayNMap);
|
|
|
+ if (null != showBuyGameMap && null != showBuyGameMap.get(buyGame.getBuyGameId()) && !showBuyGameMap.get(buyGame.getBuyGameId()).isEmpty()) {
|
|
|
+ buyGame.setH5LeadBuyAmount(showBuyGameMap.get(buyGame.getBuyGameId()).get(0).getH5LeadBuyAmount());
|
|
|
+ buyGame.setH5LeadBuyAmountNum(showBuyGameMap.get(buyGame.getBuyGameId()).get(0).getH5LeadBuyAmountNum());
|
|
|
+ } else {
|
|
|
+ buyGame.setH5LeadBuyAmount(BigDecimal.ZERO);
|
|
|
+ buyGame.setH5LeadBuyAmountNum(0L);
|
|
|
+ }
|
|
|
+ //买量导入游戏充值时间范围内存在新用户充值数据
|
|
|
+ if (null != importBuyH5DayN) {
|
|
|
+ buyGame.setNewUserRechargeMoney(importBuyH5DayN.getRechargeMoney());
|
|
|
+ buyGame.setNewUserRechargeNum(importBuyH5DayN.getRechargeNum());
|
|
|
+ } else {
|
|
|
+ buyGame.setNewUserRechargeMoney(BigDecimal.ZERO);
|
|
|
+ buyGame.setNewUserRechargeNum(0L);
|
|
|
+ }
|
|
|
+ return buyGame;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
return buyGameList;
|
|
|
}
|
|
|
+
|
|
|
private H5DayN getImportNatureH5DayN(GameDataH5DTO dto, Map<String, Object> dayNMap) {
|
|
|
Sql importNatureSqlDayN = Sqls.queryString("""
|
|
|
select dayN from ads_dayn_h5_lead_nature_game
|
|
@@ -1888,6 +1918,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
|
|
|
/**
|
|
|
* 流水临时sql
|
|
|
+ *
|
|
|
* @return String
|
|
|
*/
|
|
|
private String waterTemplateSql() {
|
|
@@ -1920,23 +1951,23 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
/**
|
|
|
* 充值次数
|
|
|
*/
|
|
|
- private BigInteger rechargeCount;
|
|
|
+ private Long rechargeCount;
|
|
|
|
|
|
/**
|
|
|
* 充值人数
|
|
|
*/
|
|
|
- private BigInteger rechargeNum;
|
|
|
+ private Long rechargeNum;
|
|
|
|
|
|
/**
|
|
|
* 新用户复充人数
|
|
|
*/
|
|
|
- private BigInteger rechargeAgainNum;
|
|
|
+ private Long rechargeAgainNum;
|
|
|
}
|
|
|
|
|
|
|
|
|
@Data
|
|
|
@Builder
|
|
|
- public static class H5DayN{
|
|
|
+ public static class H5DayN {
|
|
|
private BigDecimal rechargeMoney;
|
|
|
private Long rechargeNum;
|
|
|
}
|
|
@@ -1945,7 +1976,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
@NoArgsConstructor
|
|
|
@AllArgsConstructor
|
|
|
@Builder
|
|
|
- public static class ShowRecharge{
|
|
|
+ public static class ShowRecharge {
|
|
|
private BigDecimal h5NatureAmount;
|
|
|
|
|
|
private Long h5NatureAmountNum;
|