Преглед изворни кода

修改内容:游戏数据

shishaosong пре 1 година
родитељ
комит
040c68abf6

+ 52 - 47
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameDataServiceImpl.java

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