|
@@ -18,6 +18,7 @@ import lombok.NoArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
import org.apache.commons.lang3.ArrayUtils;
|
|
import org.apache.commons.lang3.ArrayUtils;
|
|
|
|
+import org.apache.commons.lang3.ObjectUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.nutz.dao.Cnd;
|
|
import org.nutz.dao.Cnd;
|
|
import org.nutz.dao.Dao;
|
|
import org.nutz.dao.Dao;
|
|
@@ -287,11 +288,53 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
dao.execute(sqlCount);
|
|
dao.execute(sqlCount);
|
|
pager.setRecordCount(sqlCount.getInt());
|
|
pager.setRecordCount(sqlCount.getInt());
|
|
|
|
|
|
|
|
+ //查询出每个游戏的注册查询时间内,注册当天且充值的所有用户id
|
|
|
|
+ //只查询Day1的数据
|
|
|
|
+ //不选游戏查询的结果 --> (gameId/日期, userId)
|
|
|
|
+ //选游戏查询的结果 --> (日期, userId)
|
|
|
|
+ Map<String, String> gameDateUsersIdMap = findUsersIdForGameData(dto);
|
|
|
|
+
|
|
List<GameDataDayVO> gameDataDayVOList = list.stream().map(vo -> {
|
|
List<GameDataDayVO> gameDataDayVOList = list.stream().map(vo -> {
|
|
|
|
+
|
|
|
|
+ Long[] usersID = ArrayUtils.EMPTY_LONG_OBJECT_ARRAY;
|
|
|
|
+ //默认查询的数据-不选择游戏
|
|
|
|
+ if (CollectionUtils.isEmpty(dto.getGameId())) {
|
|
|
|
+ //将gameId和需要查询的注册时间拼接
|
|
|
|
+ String gameIdDate = vo.getGameId() + "/" + vo.getCostDate();
|
|
|
|
+ //取出所有usersId
|
|
|
|
+ if (gameDateUsersIdMap.containsKey(gameIdDate)) {
|
|
|
|
+ //string[] -> Long[]
|
|
|
|
+ usersID = Arrays.stream(gameDateUsersIdMap.get(gameIdDate)
|
|
|
|
+ .split("/"))
|
|
|
|
+ .map(Long::parseLong)
|
|
|
|
+ .toArray(Long[]::new);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ //取出所有usersId
|
|
|
|
+ if (gameDateUsersIdMap.containsKey(vo.getCostDate().toString())) {
|
|
|
|
+ //string[] -> Long[]
|
|
|
|
+ usersID = Arrays.stream(gameDateUsersIdMap.get(vo.getCostDate().toString())
|
|
|
|
+ .split("/"))
|
|
|
|
+ .map(Long::parseLong)
|
|
|
|
+ .toArray(Long[]::new);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
formatDayNGroupByDt(vo);
|
|
formatDayNGroupByDt(vo);
|
|
|
|
+
|
|
|
|
+ FirstNewUserAgainTrendVO againTrendVO = FirstNewUserAgainTrendVO.builder()
|
|
|
|
+ .gameDimension(dto.getGameDimension())
|
|
|
|
+ .sourceSystem(dto.getSourceSystem())
|
|
|
|
+ .timeType("da1")
|
|
|
|
+ .rechargeCount(vo.getAmountD1Trend().getRechargeUserCount())
|
|
|
|
+ .usersId(usersID)
|
|
|
|
+ .build();
|
|
|
|
+ vo.setUserDetails(againTrendVO);
|
|
|
|
+
|
|
return vo;
|
|
return vo;
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
|
|
+ //添加数据
|
|
|
|
+
|
|
//返回list结果 封装到page对象里
|
|
//返回list结果 封装到page对象里
|
|
return new Page<>(gameDataDayVOList, pager);
|
|
return new Page<>(gameDataDayVOList, pager);
|
|
}
|
|
}
|
|
@@ -376,8 +419,48 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
dao.execute(sqlCount);
|
|
dao.execute(sqlCount);
|
|
pager.setRecordCount(sqlCount.getInt());
|
|
pager.setRecordCount(sqlCount.getInt());
|
|
|
|
|
|
|
|
+ //查询出每个游戏的注册查询时间内,注册当天且充值的所有用户id
|
|
|
|
+ //只查询Day1的数据
|
|
|
|
+ //不选游戏查询的结果 --> (gameId/日期, userId)
|
|
|
|
+ //选游戏查询的结果 --> (日期, userId)
|
|
|
|
+ Map<String, String> gameDateUsersIdMap = findUsersIdForGameData(dto);
|
|
|
|
+
|
|
List<GameDataDayVO> gameDataDayVOList = list.stream().map(vo -> {
|
|
List<GameDataDayVO> gameDataDayVOList = list.stream().map(vo -> {
|
|
|
|
+
|
|
|
|
+ Long[] usersID = ArrayUtils.EMPTY_LONG_OBJECT_ARRAY;
|
|
|
|
+ //默认查询的数据-不选择游戏
|
|
|
|
+ if (CollectionUtils.isEmpty(dto.getGameId())) {
|
|
|
|
+ //将gameId和需要查询的注册时间拼接
|
|
|
|
+ String gameIdDate = vo.getGameId() + "/" + vo.getCostDate();
|
|
|
|
+ //取出所有usersId
|
|
|
|
+ if (gameDateUsersIdMap.containsKey(gameIdDate)) {
|
|
|
|
+ //string[] -> Long[]
|
|
|
|
+ usersID = Arrays.stream(gameDateUsersIdMap.get(gameIdDate)
|
|
|
|
+ .split("/"))
|
|
|
|
+ .map(Long::parseLong)
|
|
|
|
+ .toArray(Long[]::new);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ //取出所有usersId
|
|
|
|
+ if (gameDateUsersIdMap.containsKey(vo.getCostDate().toString())) {
|
|
|
|
+ //string[] -> Long[]
|
|
|
|
+ usersID = Arrays.stream(gameDateUsersIdMap.get(vo.getCostDate().toString())
|
|
|
|
+ .split("/"))
|
|
|
|
+ .map(Long::parseLong)
|
|
|
|
+ .toArray(Long[]::new);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
formatDayNGroupByDt(vo);
|
|
formatDayNGroupByDt(vo);
|
|
|
|
+
|
|
|
|
+ FirstNewUserAgainTrendVO againTrendVO = FirstNewUserAgainTrendVO.builder()
|
|
|
|
+ .gameDimension(dto.getGameDimension())
|
|
|
|
+ .sourceSystem(dto.getSourceSystem())
|
|
|
|
+ .timeType("da1")
|
|
|
|
+ .rechargeCount(vo.getAmountD1Trend().getRechargeUserCount())
|
|
|
|
+ .usersId(usersID)
|
|
|
|
+ .build();
|
|
|
|
+ vo.setUserDetails(againTrendVO);
|
|
|
|
+
|
|
return vo;
|
|
return vo;
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
@@ -614,6 +697,25 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
if (vo.getAmountD1() != null) {
|
|
if (vo.getAmountD1() != null) {
|
|
formatDayNTotal(vo);
|
|
formatDayNTotal(vo);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ //得到所有userID
|
|
|
|
+ Long[] usersIdTotal = ArrayUtils.EMPTY_LONG_OBJECT_ARRAY;
|
|
|
|
+ //得到所有用户的id整合字符串
|
|
|
|
+ String usersIdTotalStr = findUsersIdTotalForGameData(dto);
|
|
|
|
+ if (StringUtils.isNotBlank(usersIdTotalStr)) {
|
|
|
|
+ usersIdTotal = Arrays.stream(usersIdTotalStr.split("/"))
|
|
|
|
+ .map(Long::parseLong)
|
|
|
|
+ .toArray(Long[]::new);
|
|
|
|
+ }
|
|
|
|
+ FirstNewUserAgainTrendVO againTrendVO = FirstNewUserAgainTrendVO.builder()
|
|
|
|
+ .gameDimension(dto.getGameDimension())
|
|
|
|
+ .sourceSystem(dto.getSourceSystem())
|
|
|
|
+ .timeType("da1")
|
|
|
|
+ .rechargeCount(vo.getAmountD1Trend().getRechargeUserCount())
|
|
|
|
+ .usersId(usersIdTotal)
|
|
|
|
+ .build();
|
|
|
|
+ vo.setUserDetails(againTrendVO);
|
|
|
|
+
|
|
return vo;
|
|
return vo;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -2512,6 +2614,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
SELECT
|
|
SELECT
|
|
dt as cost_date,
|
|
dt as cost_date,
|
|
source_system,
|
|
source_system,
|
|
|
|
+ MAX(game_id) as game_id,
|
|
GROUP_CONCAT(game_name) as game_name,
|
|
GROUP_CONCAT(game_name) as game_name,
|
|
IFNULL(SUM(cost), 0) cost,
|
|
IFNULL(SUM(cost), 0) cost,
|
|
IFNULL(SUM(buy_reg_num), 0) reg_num,
|
|
IFNULL(SUM(buy_reg_num), 0) reg_num,
|
|
@@ -2565,6 +2668,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
SELECT
|
|
SELECT
|
|
dt as cost_date,
|
|
dt as cost_date,
|
|
source_system,
|
|
source_system,
|
|
|
|
+ MAX(game_id) as game_id,
|
|
GROUP_CONCAT(game_name) as game_name,
|
|
GROUP_CONCAT(game_name) as game_name,
|
|
IFNULL(SUM(cost), 0) cost,
|
|
IFNULL(SUM(cost), 0) cost,
|
|
IFNULL(SUM(nature_reg_num), 0) reg_num,
|
|
IFNULL(SUM(nature_reg_num), 0) reg_num,
|
|
@@ -2619,6 +2723,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
SELECT
|
|
SELECT
|
|
dt as cost_date,
|
|
dt as cost_date,
|
|
source_system,
|
|
source_system,
|
|
|
|
+ MAX(game_id) as game_id,
|
|
GROUP_CONCAT(game_name) as game_name,
|
|
GROUP_CONCAT(game_name) as game_name,
|
|
IFNULL(SUM(cost), 0) cost,
|
|
IFNULL(SUM(cost), 0) cost,
|
|
IFNULL(SUM(reg_num), 0) reg_num,
|
|
IFNULL(SUM(reg_num), 0) reg_num,
|
|
@@ -5121,7 +5226,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
//查询每个游戏的注册首日充值用户id,在玩家充值排行榜里查找
|
|
//查询每个游戏的注册首日充值用户id,在玩家充值排行榜里查找
|
|
Criteria findUsersCri = Cnd.cri();
|
|
Criteria findUsersCri = Cnd.cri();
|
|
//拼接游戏ID
|
|
//拼接游戏ID
|
|
- if (dto.getGameId() != null) {
|
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(dto.getGameId())) {
|
|
findUsersCri.where().andInList(gameColumn, dto.getGameId());
|
|
findUsersCri.where().andInList(gameColumn, dto.getGameId());
|
|
}
|
|
}
|
|
//拼接游戏应用类型
|
|
//拼接游戏应用类型
|
|
@@ -5142,11 +5247,20 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
} else if ("nature".equals(dto.getTableTypes())) {
|
|
} else if ("nature".equals(dto.getTableTypes())) {
|
|
findUsersCri.where().andEquals("reg_agent_id", 0);
|
|
findUsersCri.where().andEquals("reg_agent_id", 0);
|
|
}
|
|
}
|
|
|
|
+ //拼接分组条件
|
|
|
|
+ Criteria groupByCri = Cnd.cri();
|
|
|
|
+ if (dto.getGameDimension() == 2L) {
|
|
|
|
+ //父维度
|
|
|
|
+ groupByCri.getGroupBy().groupBy("parent_game_id", "DATE(reg_user_time)");
|
|
|
|
+ } else {
|
|
|
|
+ //子维度
|
|
|
|
+ groupByCri.getGroupBy().groupBy("reg_game_id", "DATE(reg_user_time)");
|
|
|
|
+ }
|
|
Sql findUsersIdSql;
|
|
Sql findUsersIdSql;
|
|
if (dto.getGameDimension() == 1L) {
|
|
if (dto.getGameDimension() == 1L) {
|
|
- findUsersIdSql = Sqls.create(findUsersIdSql(findUsersCri));
|
|
|
|
|
|
+ findUsersIdSql = Sqls.create(findUsersIdSql(findUsersCri, groupByCri));
|
|
} else {
|
|
} else {
|
|
- findUsersIdSql = Sqls.create(findUsersIdSqlForParent(findUsersCri));
|
|
|
|
|
|
+ findUsersIdSql = Sqls.create(findUsersIdSqlForParent(findUsersCri, groupByCri));
|
|
}
|
|
}
|
|
//自定义回传
|
|
//自定义回传
|
|
findUsersIdSql.setCallback((connection, resultSet, sql) -> {
|
|
findUsersIdSql.setCallback((connection, resultSet, sql) -> {
|
|
@@ -5162,6 +5276,147 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
return findUsersIdSql.getObject(Map.class);
|
|
return findUsersIdSql.getObject(Map.class);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 查询出每个游戏的注册查询时间内,注册当天且充值的所有用户id-游戏每日
|
|
|
|
+ *
|
|
|
|
+ * @param dto 前端查询参数
|
|
|
|
+ * @return map
|
|
|
|
+ */
|
|
|
|
+ private Map findUsersIdForGameData(GameDataDayDTO dto) {
|
|
|
|
+
|
|
|
|
+ //默认查询子游戏维度
|
|
|
|
+ if (dto.getGameDimension() == null) {
|
|
|
|
+ dto.setGameDimension(1L);
|
|
|
|
+ }
|
|
|
|
+ //默认查询字段
|
|
|
|
+ String gameColumn = "reg_game_id";
|
|
|
|
+ String classifyColumn = "classify";
|
|
|
|
+ if (dto.getGameDimension() == 2L) {
|
|
|
|
+ gameColumn = "parent_game_id";
|
|
|
|
+ classifyColumn = "parent_game_classify";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //查询每个游戏的注册首日充值用户id,在玩家充值排行榜里查找
|
|
|
|
+ Criteria findUsersCri = Cnd.cri();
|
|
|
|
+ //拼接游戏ID
|
|
|
|
+ if (CollectionUtils.isNotEmpty(dto.getGameId())) {
|
|
|
|
+ findUsersCri.where().andInList(gameColumn, dto.getGameId());
|
|
|
|
+ }
|
|
|
|
+ //拼接游戏应用类型
|
|
|
|
+ if (dto.getGameClassify() != null) {
|
|
|
|
+ findUsersCri.where().andEquals(classifyColumn, dto.getGameClassify());
|
|
|
|
+ }
|
|
|
|
+ //拼接SDK来源
|
|
|
|
+ if (StringUtils.isNotBlank(dto.getSourceSystem())) {
|
|
|
|
+ findUsersCri.where().andEquals("source_system", dto.getSourceSystem());
|
|
|
|
+ }
|
|
|
|
+ //拼接查询时间
|
|
|
|
+ if (dto.getRegisteredBeginDate() != null && dto.getRegisteredEndDate() != null) {
|
|
|
|
+ findUsersCri.where().andBetween("DATE(reg_user_time)", dto.getRegisteredBeginDate(), dto.getRegisteredEndDate());
|
|
|
|
+ }
|
|
|
|
+ //不同数据类型 查询条件不同 buy、nature、total
|
|
|
|
+ if ("buy".equals(dto.getTableTypes())) {
|
|
|
|
+ findUsersCri.where().andNotEquals("reg_agent_id", 0);
|
|
|
|
+ } else if ("nature".equals(dto.getTableTypes())) {
|
|
|
|
+ findUsersCri.where().andEquals("reg_agent_id", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Sql findUsersIdSql;
|
|
|
|
+ Criteria groupByCri = Cnd.cri();
|
|
|
|
+ //如果是默认查询,需要按游戏、日期分组
|
|
|
|
+ if (CollectionUtils.isEmpty(dto.getGameId())) {
|
|
|
|
+ //拼接分组条件
|
|
|
|
+ if (dto.getGameDimension() == 2L) {
|
|
|
|
+ //父维度
|
|
|
|
+ groupByCri.getGroupBy().groupBy("parent_game_id", "DATE(reg_user_time)");
|
|
|
|
+ findUsersIdSql = Sqls.create(findUsersIdSqlForParent(findUsersCri, groupByCri));
|
|
|
|
+ } else {
|
|
|
|
+ //子维度
|
|
|
|
+ groupByCri.getGroupBy().groupBy("reg_game_id", "DATE(reg_user_time)");
|
|
|
|
+ findUsersIdSql = Sqls.create(findUsersIdSql(findUsersCri, groupByCri));
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ //选择游戏后,只按照日期分组
|
|
|
|
+ //拼接分组条件
|
|
|
|
+ groupByCri.getGroupBy().groupBy("DATE(reg_user_time)");
|
|
|
|
+ if (dto.getGameDimension() == 1L) {
|
|
|
|
+ findUsersIdSql = Sqls.create(findUsersIdSqlForGameData(findUsersCri, groupByCri));
|
|
|
|
+ } else {
|
|
|
|
+ findUsersIdSql = Sqls.create(findUsersIdSqlForParentForGameData(findUsersCri, groupByCri));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //自定义回传
|
|
|
|
+ findUsersIdSql.setCallback((connection, resultSet, sql) -> {
|
|
|
|
+ Map<String, String> tempMap = new HashMap<>();
|
|
|
|
+ while (resultSet.next()) {
|
|
|
|
+ tempMap.put(resultSet.getString(1), resultSet.getString(2));
|
|
|
|
+ }
|
|
|
|
+ return tempMap;
|
|
|
|
+ });
|
|
|
|
+ //运行sql
|
|
|
|
+ dao.execute(findUsersIdSql);
|
|
|
|
+ //返回结果
|
|
|
|
+ return findUsersIdSql.getObject(Map.class);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 查询出每个游戏的注册查询时间内,注册当天且充值的所有用户id(游戏每日总计)
|
|
|
|
+ *
|
|
|
|
+ * @param dto 前端查询参数
|
|
|
|
+ * @return map
|
|
|
|
+ */
|
|
|
|
+ private String findUsersIdTotalForGameData(GameDataDayTotalDTO dto) {
|
|
|
|
+
|
|
|
|
+ //默认查询子游戏维度
|
|
|
|
+ if (dto.getGameDimension() == null) {
|
|
|
|
+ dto.setGameDimension(1L);
|
|
|
|
+ }
|
|
|
|
+ //默认查询字段
|
|
|
|
+ String gameColumn = "reg_game_id";
|
|
|
|
+ String classifyColumn = "classify";
|
|
|
|
+ if (dto.getGameDimension() == 2L) {
|
|
|
|
+ gameColumn = "parent_game_id";
|
|
|
|
+ classifyColumn = "parent_game_classify";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //查询每个游戏的注册首日充值用户id,在玩家充值排行榜里查找
|
|
|
|
+ Criteria findUsersCri = Cnd.cri();
|
|
|
|
+ //拼接游戏ID
|
|
|
|
+ if (CollectionUtils.isNotEmpty(dto.getGameId())) {
|
|
|
|
+ findUsersCri.where().andInList(gameColumn, dto.getGameId());
|
|
|
|
+ }
|
|
|
|
+ //拼接游戏应用类型
|
|
|
|
+ if (dto.getGameClassify() != null) {
|
|
|
|
+ findUsersCri.where().andEquals(classifyColumn, dto.getGameClassify());
|
|
|
|
+ }
|
|
|
|
+ //拼接SDK来源
|
|
|
|
+ if (StringUtils.isNotBlank(dto.getSourceSystem())) {
|
|
|
|
+ findUsersCri.where().andEquals("source_system", dto.getSourceSystem());
|
|
|
|
+ }
|
|
|
|
+ //拼接查询时间
|
|
|
|
+ if (dto.getRegisteredBeginDate() != null && dto.getRegisteredEndDate() != null) {
|
|
|
|
+ findUsersCri.where().andBetween("DATE(reg_user_time)", dto.getRegisteredBeginDate(), dto.getRegisteredEndDate());
|
|
|
|
+ }
|
|
|
|
+ //不同数据类型 查询条件不同 buy、nature、total
|
|
|
|
+ if ("buy".equals(dto.getTableTypes())) {
|
|
|
|
+ findUsersCri.where().andNotEquals("reg_agent_id", 0);
|
|
|
|
+ } else if ("nature".equals(dto.getTableTypes())) {
|
|
|
|
+ findUsersCri.where().andEquals("reg_agent_id", 0);
|
|
|
|
+ }
|
|
|
|
+ Sql findUsersIdTotalSql;
|
|
|
|
+ if (dto.getGameDimension() == 1L) {
|
|
|
|
+ findUsersIdTotalSql = Sqls.create(findUsersIdTotalSql(findUsersCri));
|
|
|
|
+ } else {
|
|
|
|
+ findUsersIdTotalSql = Sqls.create(findUsersIdTotalSqlForParent(findUsersCri));
|
|
|
|
+ }
|
|
|
|
+ //自定义回传
|
|
|
|
+ findUsersIdTotalSql.setCallback(Sqls.callback.str());
|
|
|
|
+ //运行sql
|
|
|
|
+ dao.execute(findUsersIdTotalSql);
|
|
|
|
+ //返回结果
|
|
|
|
+ return findUsersIdTotalSql.getString();
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 查询出每个游戏的注册查询时间内,注册当天且充值的所有用户id(总计一栏)
|
|
* 查询出每个游戏的注册查询时间内,注册当天且充值的所有用户id(总计一栏)
|
|
*
|
|
*
|
|
@@ -5185,7 +5440,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
//查询每个游戏的注册首日充值用户id,在玩家充值排行榜里查找
|
|
//查询每个游戏的注册首日充值用户id,在玩家充值排行榜里查找
|
|
Criteria findUsersCri = Cnd.cri();
|
|
Criteria findUsersCri = Cnd.cri();
|
|
//拼接游戏ID
|
|
//拼接游戏ID
|
|
- if (dto.getGameId() != null) {
|
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(dto.getGameId())) {
|
|
findUsersCri.where().andInList(gameColumn, dto.getGameId());
|
|
findUsersCri.where().andInList(gameColumn, dto.getGameId());
|
|
}
|
|
}
|
|
//拼接游戏应用类型
|
|
//拼接游戏应用类型
|
|
@@ -8780,7 +9035,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
*
|
|
*
|
|
* @return String
|
|
* @return String
|
|
*/
|
|
*/
|
|
- private String findUsersIdSql(Criteria cri) {
|
|
|
|
|
|
+ private String findUsersIdSql(Criteria cri, Criteria groupByCri) {
|
|
return """
|
|
return """
|
|
SELECT
|
|
SELECT
|
|
CONCAT(reg_game_id,'/',DATE(reg_user_time)) as game_id_date,
|
|
CONCAT(reg_game_id,'/',DATE(reg_user_time)) as game_id_date,
|
|
@@ -8789,9 +9044,8 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
game_ads.ads_player_recharge_ranking
|
|
game_ads.ads_player_recharge_ranking
|
|
""" + cri +
|
|
""" + cri +
|
|
"""
|
|
"""
|
|
- AND dt = DATE(reg_user_time)
|
|
|
|
- GROUP BY reg_game_id, DATE(reg_user_time)
|
|
|
|
- """;
|
|
|
|
|
|
+ and dt = DATE(reg_user_time)
|
|
|
|
+ """ + groupByCri;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -8799,7 +9053,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
*
|
|
*
|
|
* @return String
|
|
* @return String
|
|
*/
|
|
*/
|
|
- private String findUsersIdSqlForParent(Criteria cri) {
|
|
|
|
|
|
+ private String findUsersIdSqlForParent(Criteria cri, Criteria groupByCri) {
|
|
return """
|
|
return """
|
|
SELECT
|
|
SELECT
|
|
CONCAT(parent_game_id,'/',DATE(reg_user_time)) as game_id_date,
|
|
CONCAT(parent_game_id,'/',DATE(reg_user_time)) as game_id_date,
|
|
@@ -8808,13 +9062,48 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
game_ads_parent.ads_player_recharge_ranking_parent
|
|
game_ads_parent.ads_player_recharge_ranking_parent
|
|
""" + cri +
|
|
""" + cri +
|
|
"""
|
|
"""
|
|
- AND dt = DATE(reg_user_time)
|
|
|
|
- GROUP BY parent_game_id, DATE(reg_user_time)
|
|
|
|
- """;
|
|
|
|
|
|
+ and dt = DATE(reg_user_time)
|
|
|
|
+ """ + groupByCri;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 找出每个游戏注册时间内的注册当天且充值的用户id-游戏每日
|
|
|
|
+ *
|
|
|
|
+ * @return String
|
|
|
|
+ */
|
|
|
|
+ private String findUsersIdSqlForGameData(Criteria cri, Criteria groupByCri) {
|
|
|
|
+ return """
|
|
|
|
+ SELECT
|
|
|
|
+ DATE(reg_user_time) as reg_user_time,
|
|
|
|
+ GROUP_CONCAT(CONVERT (player_id, varchar), "/") as amount_users_id
|
|
|
|
+ FROM
|
|
|
|
+ game_ads.ads_player_recharge_ranking
|
|
|
|
+ """ + cri +
|
|
|
|
+ """
|
|
|
|
+ and dt = DATE(reg_user_time)
|
|
|
|
+ """ + groupByCri;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 找出每个游戏注册时间内的注册当天且充值的用户id-游戏每日-父游戏维度
|
|
|
|
+ *
|
|
|
|
+ * @return String
|
|
|
|
+ */
|
|
|
|
+ private String findUsersIdSqlForParentForGameData(Criteria cri, Criteria groupByCri) {
|
|
|
|
+ return """
|
|
|
|
+ SELECT
|
|
|
|
+ DATE(reg_user_time) as reg_user_time,
|
|
|
|
+ GROUP_CONCAT(CONVERT (parent_player_id, varchar), "/") as amount_users_id
|
|
|
|
+ FROM
|
|
|
|
+ game_ads_parent.ads_player_recharge_ranking_parent
|
|
|
|
+ """ + cri +
|
|
|
|
+ """
|
|
|
|
+ and dt = DATE(reg_user_time)
|
|
|
|
+ """ + groupByCri;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 找出每个游戏注册时间内的注册当天且充值的用户id(总计一栏)
|
|
|
|
|
|
+ * 找出每个游戏注册时间内的注册当天且充值的用户id(总计)
|
|
*
|
|
*
|
|
* @return String
|
|
* @return String
|
|
*/
|
|
*/
|
|
@@ -9416,7 +9705,9 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
server_name,
|
|
server_name,
|
|
role_name,
|
|
role_name,
|
|
$amount as today_total_amount,
|
|
$amount as today_total_amount,
|
|
- player_os
|
|
|
|
|
|
+ player_os,
|
|
|
|
+ total_amount_count,
|
|
|
|
+ ROW_NUMBER() over(order by today_total_amount desc, total_amount_count desc) as num
|
|
FROM
|
|
FROM
|
|
game_ads.ads_player_recharge_ranking
|
|
game_ads.ads_player_recharge_ranking
|
|
WHERE player_id IN (@usersId)
|
|
WHERE player_id IN (@usersId)
|
|
@@ -9436,7 +9727,9 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
server_name,
|
|
server_name,
|
|
role_name,
|
|
role_name,
|
|
$amount as today_total_amount,
|
|
$amount as today_total_amount,
|
|
- player_os
|
|
|
|
|
|
+ player_os,
|
|
|
|
+ total_amount_count,
|
|
|
|
+ ROW_NUMBER() over(order by today_total_amount desc, total_amount_count desc) as num
|
|
FROM
|
|
FROM
|
|
game_ads_parent.ads_player_recharge_ranking_parent
|
|
game_ads_parent.ads_player_recharge_ranking_parent
|
|
WHERE parent_player_id IN (@usersId)
|
|
WHERE parent_player_id IN (@usersId)
|