|
@@ -7,10 +7,7 @@ import com.zanxiang.game.data.serve.pojo.dto.GameDataTotalDTO;
|
|
|
import com.zanxiang.game.data.serve.pojo.dto.GameDataWaterDTO;
|
|
|
import com.zanxiang.game.data.serve.pojo.entity.AdsEverydayWater;
|
|
|
import com.zanxiang.game.data.serve.pojo.enums.OrderByEnum;
|
|
|
-import com.zanxiang.game.data.serve.pojo.vo.GameDataDayVO;
|
|
|
-import com.zanxiang.game.data.serve.pojo.vo.GameDataTotalVO;
|
|
|
-import com.zanxiang.game.data.serve.pojo.vo.GameDataWaterVO;
|
|
|
-import com.zanxiang.game.data.serve.pojo.vo.RechargeTrendVO;
|
|
|
+import com.zanxiang.game.data.serve.pojo.vo.*;
|
|
|
import com.zanxiang.game.data.serve.service.IGameDataService;
|
|
|
import com.zanxiang.game.data.serve.utils.Page;
|
|
|
import com.zanxiang.module.util.DateUtil;
|
|
@@ -882,13 +879,13 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
|
|
|
@Override
|
|
|
public Page<GameDataWaterVO> getGameDataWater(GameDataWaterDTO dto) {
|
|
|
- if (null == dto.getRechargeDate()){
|
|
|
+ if (null == dto.getRechargeDate()) {
|
|
|
dto.setRechargeDate(LocalDate.now());
|
|
|
}
|
|
|
- if (StringUtils.isBlank(dto.getSortFiled())){
|
|
|
+ if (StringUtils.isBlank(dto.getSortFiled())) {
|
|
|
dto.setSortFiled("amount");
|
|
|
}
|
|
|
- if (StringUtils.isBlank(dto.getSortType())){
|
|
|
+ if (StringUtils.isBlank(dto.getSortType())) {
|
|
|
dto.setSortType(OrderByEnum.DESC.getOrderType());
|
|
|
}
|
|
|
Pager pager = dao.createPager(dto.getPageNum(), dto.getPageSize());
|
|
@@ -900,7 +897,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
if (StringUtils.isNotBlank(dto.getGameClassify())) {
|
|
|
cri.where().andEquals("game_classify", dto.getGameClassify());
|
|
|
}
|
|
|
- cri.where().and("dt","=",dto.getRechargeDate());
|
|
|
+ cri.where().and("dt", "=", dto.getRechargeDate());
|
|
|
cri.groupBy("game_id");
|
|
|
cri.orderBy(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, dto.getSortFiled()), dto.getSortType());
|
|
|
Sql sql = Sqls.queryEntity(waterSql() + "$condition");
|
|
@@ -911,52 +908,61 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
|
|
|
Sql sqlCount = Sqls.queryEntity("select count(*) from ads_everyday_water " + "$condition");
|
|
|
sqlCount.setCondition(cri);
|
|
|
- pager.setRecordCount((int) Daos.queryCount(dao,sqlCount));
|
|
|
+ pager.setRecordCount((int) Daos.queryCount(dao, sqlCount));
|
|
|
|
|
|
List<Long> gameIds = sql.getList(GameDataWaterVO.class).stream()
|
|
|
.map(GameDataWaterVO::getGameId)
|
|
|
.collect(Collectors.toList());
|
|
|
- if (CollectionUtils.isEmpty(gameIds)){
|
|
|
+ if (CollectionUtils.isEmpty(gameIds)) {
|
|
|
return new Page<>();
|
|
|
}
|
|
|
|
|
|
SimpleCriteria templateCri = Cnd.cri();
|
|
|
- templateCri.where().and("dt","=",dto.getRechargeDate());
|
|
|
- templateCri.where().andInList("game_id",gameIds);
|
|
|
+ templateCri.where().and("dt", "=", dto.getRechargeDate());
|
|
|
+ templateCri.where().andInList("game_id", gameIds);
|
|
|
Sql templateSql = Sqls.queryEntity(waterTemplateSql() + "$condition");
|
|
|
Entity<AdsEverydayWater> everydayWaterEntity = dao.getEntity(AdsEverydayWater.class);
|
|
|
- templateSql.setEntity(everydayWaterEntity).setCondition(cri);
|
|
|
+ templateSql.setEntity(everydayWaterEntity).setCondition(templateCri);
|
|
|
dao.execute(templateSql);
|
|
|
|
|
|
Map<Long, List<AdsEverydayWater>> collect = templateSql.getList(AdsEverydayWater.class).stream().collect(Collectors.groupingBy(AdsEverydayWater::getGameId));
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- return new Page<>(sql.getList(GameDataWaterVO.class),pager);
|
|
|
+ List<GameDataWaterVO> result = sql.getList(GameDataWaterVO.class).stream()
|
|
|
+ .map(item -> {
|
|
|
+ List<AdsEverydayWater> adsEverydayWaters = collect.get(item.getGameId());
|
|
|
+ if (!CollectionUtils.isEmpty(adsEverydayWaters)) {
|
|
|
+ List<RechargeTemplateVO> rechargeTemplateVOList = new ArrayList<>(10);
|
|
|
+
|
|
|
+ List<PlayerTemplateVO> playerTemplateVOS = new ArrayList<>(10);
|
|
|
+ adsEverydayWaters.forEach(adsEverydayWater -> {
|
|
|
+ if (StringUtils.isNotBlank(adsEverydayWater.getAmountOrderBy())) {
|
|
|
+ rechargeTemplateVOList.add(RechargeTemplateVO.builder()
|
|
|
+ .amountCount(adsEverydayWater.getAmountCount())
|
|
|
+ .amountNum(adsEverydayWater.getAmountNum())
|
|
|
+ .amountOrderBy(adsEverydayWater.getAmountOrderBy())
|
|
|
+ .amountPost(adsEverydayWater.getAmountPost())
|
|
|
+ .build());
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(adsEverydayWater.getUserOrderBy())) {
|
|
|
+ playerTemplateVOS.add(PlayerTemplateVO.builder()
|
|
|
+ .userId(adsEverydayWater.getUserId())
|
|
|
+ .userAmount(adsEverydayWater.getUserAmount())
|
|
|
+ .userOrderBy(adsEverydayWater.getUserOrderBy())
|
|
|
+ .userName(adsEverydayWater.getUserName())
|
|
|
+ .proportion(
|
|
|
+ item.getAmount().compareTo(BigDecimal.ZERO) == 0 ?
|
|
|
+ BigDecimal.ZERO :
|
|
|
+ adsEverydayWater.getUserAmount().divide(item.getAmount(), 4, RoundingMode.DOWN)
|
|
|
+ )
|
|
|
+ .build());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ item.setRechargeTemplateVOList(rechargeTemplateVOList);
|
|
|
+ item.setPlayerTemplateVOS(playerTemplateVOS);
|
|
|
+ }
|
|
|
+ return item;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+
|
|
|
+ return new Page<>(result, pager);
|
|
|
}
|
|
|
|
|
|
private String waterSql() {
|
|
@@ -965,10 +971,10 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
game_id as id,
|
|
|
game_id,
|
|
|
max(game_name) as game_name,
|
|
|
- max(game_classify) as game_name,
|
|
|
- max(amount) as game_name,
|
|
|
- max(buy_amount) as game_name,
|
|
|
- max(nature_amount) as game_name
|
|
|
+ max(game_classify) as game_classify,
|
|
|
+ max(amount) as amount,
|
|
|
+ max(buy_amount) as buy_amount,
|
|
|
+ max(nature_amount) as nature_amount
|
|
|
from ads_everyday_water
|
|
|
""";
|
|
|
}
|
|
@@ -976,6 +982,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
private String waterTemplateSql() {
|
|
|
return """
|
|
|
select
|
|
|
+ game_id,
|
|
|
user_order_by,
|
|
|
user_id,
|
|
|
user_name,
|
|
@@ -987,6 +994,4 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
from ads_everyday_water
|
|
|
""";
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
}
|