Sfoglia il codice sorgente

游戏数据权限

wcc 1 anno fa
parent
commit
ea76d95554
14 ha cambiato i file con 474 aggiunte e 373 eliminazioni
  1. 2 2
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/AdsAccountRechargeRankingListDTO.java
  2. 1 1
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/AdsAgentRechargeRankingListDTO.java
  3. 3 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/RechargeRankingDTO.java
  4. 3 3
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/AccountAgentDayServiceImpl.java
  5. 9 7
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/AdsAccountRechargeRankingServiceImpl.java
  6. 6 5
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/AdsAgentRechargeRankingServiceImpl.java
  7. 17 10
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/AdsOrderDetailService.java
  8. 53 40
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameDataServiceImpl.java
  9. 9 4
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameServerServiceImpl.java
  10. 9 4
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/IActiveDataServiceImpl.java
  11. 21 14
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/OverallSummaryServiceImpl.java
  12. 294 260
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/PitcherDataServiceImpl.java
  13. 35 22
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/PromotionDayServiceImpl.java
  14. 12 1
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/RankingServiceImpl.java

+ 2 - 2
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/AdsAccountRechargeRankingListDTO.java

@@ -16,11 +16,11 @@ public class AdsAccountRechargeRankingListDTO  extends BasePage {
 
     private String accountId;
 
-    private String pitcherId;
+    private Long pitcherId;
 
     private String type;
 
-    private String gameId;
+    private Long gameId;
 
     private String sortFiled;
 

+ 1 - 1
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/AdsAgentRechargeRankingListDTO.java

@@ -16,7 +16,7 @@ public class AdsAgentRechargeRankingListDTO extends BasePage {
 
     private String agentId;
 
-    private String pitcherId;
+    private Long pitcherId;
 
     private String type;
 

+ 3 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/RechargeRankingDTO.java

@@ -20,6 +20,9 @@ public class RechargeRankingDTO extends BasePage{
     @ApiModelProperty(notes = "充值结束日期")
     private LocalDate endDay;
 
+    @ApiModelProperty(notes = "游戏 id")
+    private Long gameId;
+
     @ApiModelProperty(notes = "SDK来源")
     private String sourceSystem;
     @ApiModelProperty(notes = "排序字段")

+ 3 - 3
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/AccountAgentDayServiceImpl.java

@@ -44,10 +44,10 @@ import java.util.stream.Collectors;
 @Service
 public class AccountAgentDayServiceImpl implements IAccountAgentDayService {
 
-    @Autowired
-    private DataPowerComponent dataPowerComponent;
     @Autowired
     private Dao dao;
+    @Autowired
+    private DataPowerComponent dataPowerComponent;
 
     @Override
     public Page<GamePromoteDayVO> accountAgentDay(GamePromoteDayDTO dto) {
@@ -90,7 +90,7 @@ public class AccountAgentDayServiceImpl implements IAccountAgentDayService {
             cri.where().andLike("game_name", dto.getGameName());
         }
         if (gameIds != null) {
-            cri.where().andEquals("game_id", gameIds);
+            cri.where().andIn("game_id", gameIds);
         }
         if (StringUtils.isNotBlank(dto.getGameType())) {
             cri.where().andEquals("game_type", dto.getGameType());

+ 9 - 7
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/AdsAccountRechargeRankingServiceImpl.java

@@ -2,6 +2,7 @@ package com.zanxiang.game.data.serve.service.impl;
 
 import com.google.common.base.CaseFormat;
 import com.zanxiang.erp.security.util.SecurityUtil;
+import com.zanxiang.game.data.serve.component.DataPowerComponent;
 import com.zanxiang.game.data.serve.pojo.dto.AdsAccountRechargeRankingListDTO;
 import com.zanxiang.game.data.serve.pojo.vo.AdsAccountRechargeRankingVO;
 import com.zanxiang.game.data.serve.service.IAdsAccountRechargeRankingService;
@@ -31,18 +32,19 @@ public class AdsAccountRechargeRankingServiceImpl implements IAdsAccountRecharge
 
     @Autowired
     private Dao dao;
+    @Autowired
+    private DataPowerComponent dataPowerComponent;
 
     @Override
     public Page<AdsAccountRechargeRankingVO> listOfPage(AdsAccountRechargeRankingListDTO dto) {
+        long[] userIds = dto.getPitcherId() == null ? dataPowerComponent.getSubUserIdList() : new long[]{dto.getPitcherId()};
+        long[] gameIds = dto.getPitcherId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
         if (StringUtils.isBlank(dto.getSortFiled())) {
             dto.setSortFiled("cost");
         }
         if (StringUtils.isBlank(dto.getSortType())) {
             dto.setSortType("desc");
         }
-        if (StringUtils.isBlank(dto.getPitcherId()) && !SecurityUtil.isManager()) {
-            dto.setPitcherId(SecurityUtil.getUserId().toString());
-        }
         Pager pager = dto.toPage();
         String sqlStr = """
                 select account_id, pitcher_id, max(pitcher) as pitcher, `type`, game_id, max(game_name) as game_name, max(game_classify) as game_classify , max(game_cp) as game_cp,
@@ -71,14 +73,14 @@ public class AdsAccountRechargeRankingServiceImpl implements IAdsAccountRecharge
         if (null != dto.getBeginDay() && null != dto.getEndDay()) {
             cri.where().and("dt", ">=", dto.getBeginDay()).and("dt", "<=", dto.getEndDay());
         }
-        if (StringUtils.isNotBlank(dto.getPitcherId())) {
-            cri.where().and("pitcher_id", "=", dto.getPitcherId());
+        if (userIds != null) {
+            cri.where().andIn("pitcher_id", userIds);
         }
         if (StringUtils.isNotBlank(dto.getAccountId())) {
             cri.where().and("account_id", "=", dto.getAccountId());
         }
-        if (StringUtils.isNotBlank(dto.getGameId())) {
-            cri.where().and("game_id", "=", dto.getGameId());
+        if (gameIds != null) {
+            cri.where().andIn("game_id", gameIds);
         }
         if (StringUtils.isNotBlank(dto.getType())) {
             cri.where().and("type", "=", dto.getType());

+ 6 - 5
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/AdsAgentRechargeRankingServiceImpl.java

@@ -2,6 +2,7 @@ package com.zanxiang.game.data.serve.service.impl;
 
 import com.google.common.base.CaseFormat;
 import com.zanxiang.erp.security.util.SecurityUtil;
+import com.zanxiang.game.data.serve.component.DataPowerComponent;
 import com.zanxiang.game.data.serve.pojo.dto.AdsAgentRechargeRankingListDTO;
 import com.zanxiang.game.data.serve.pojo.entity.AdsAgentRechargeRanking;
 import com.zanxiang.game.data.serve.pojo.vo.AdsAgentRechargeRankingVO;
@@ -32,17 +33,17 @@ public class AdsAgentRechargeRankingServiceImpl implements IAdsAgentRechargeRank
 
     @Autowired
     private Dao dao;
+    @Autowired
+    private DataPowerComponent dataPowerComponent;
 
     public Page<AdsAgentRechargeRankingVO> listOfPage(AdsAgentRechargeRankingListDTO dto) {
+        long[] userIds = dto.getPitcherId() == null ? dataPowerComponent.getSubUserIdList() : new long[]{dto.getPitcherId()};
         if (StringUtils.isBlank(dto.getSortFiled())) {
             dto.setSortFiled("today_amount");
         }
         if (StringUtils.isBlank(dto.getSortType())) {
             dto.setSortType("desc");
         }
-        if (StringUtils.isBlank(dto.getPitcherId()) && !SecurityUtil.isManager()) {
-            dto.setPitcherId(SecurityUtil.getUserId().toString());
-        }
         Pager pager = dto.toPage();
         String sqlStr = """
                 select agent_id, max(agent_name) as agent_name, pitcher_id, max(pitcher) as pitcher, `type`,
@@ -62,8 +63,8 @@ public class AdsAgentRechargeRankingServiceImpl implements IAdsAgentRechargeRank
         if (StringUtils.isNotBlank(dto.getAgentId())) {
             cri.where().and("agent_id", "=", dto.getAgentId());
         }
-        if (StringUtils.isNotBlank(dto.getPitcherId())) {
-            cri.where().and("pitcher_id", "=", dto.getPitcherId());
+        if (userIds != null) {
+            cri.where().andIn("pitcher_id", userIds);
         }
         if (StringUtils.isNotBlank(dto.getType())) {
             cri.where().and("type", "=", dto.getType());

+ 17 - 10
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/AdsOrderDetailService.java

@@ -1,6 +1,7 @@
 package com.zanxiang.game.data.serve.service.impl;
 
 import com.zanxiang.erp.security.util.SecurityUtil;
+import com.zanxiang.game.data.serve.component.DataPowerComponent;
 import com.zanxiang.game.data.serve.pojo.dto.AdsOrderDetailListDTO;
 import com.zanxiang.game.data.serve.pojo.dto.AdsOrderDetailTotalDTO;
 import com.zanxiang.game.data.serve.pojo.entity.AdsOrderDetail;
@@ -31,9 +32,13 @@ public class AdsOrderDetailService implements IAdsOrderDetailService {
 
     @Autowired
     private Dao dao;
+    @Autowired
+    private DataPowerComponent dataPowerComponent;
 
     @Override
     public Page<AdsOrderDetailVO> listOfPage(AdsOrderDetailListDTO dto) {
+        long[] userIds = dto.getPitcherId() == null ? dataPowerComponent.getSubUserIdList() : new long[]{Long.parseLong(dto.getPitcherId())};
+        long[] gameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{Long.parseLong(dto.getGameId())};
         if (StringUtils.isBlank(dto.getPitcherId()) && !SecurityUtil.isManager()) {
             // 只有管理员才能查看全部数据
             dto.setPitcherId(SecurityUtil.getUserId().toString());
@@ -61,8 +66,8 @@ public class AdsOrderDetailService implements IAdsOrderDetailService {
         if (StringUtils.isNotBlank(dto.getServerName())) {
             cri.where().andEquals("server_name", dto.getServerName());
         }
-        if (StringUtils.isNotBlank(dto.getGameId())) {
-            cri.where().andEquals("order_game_id", dto.getGameId());
+        if (gameIds != null) {
+            cri.where().andIn("order_game_id", gameIds);
         }
         if (ArrayUtils.isNotEmpty(dto.getChannelId())) {
             cri.where().andIn("agent_id", dto.getChannelId());
@@ -70,8 +75,8 @@ public class AdsOrderDetailService implements IAdsOrderDetailService {
         if (StringUtils.isNotBlank(dto.getAccountId())) {
             cri.where().andEquals("account_id", dto.getAccountId());
         }
-        if (StringUtils.isNotBlank(dto.getPitcherId())) {
-            cri.where().andEquals("zx_pitcher_id", dto.getPitcherId());
+        if (userIds != null) {
+            cri.where().andIn("zx_pitcher_id", userIds);
         }
         if (StringUtils.isNotBlank(dto.getDeviceSystem())) {
             cri.where().andEquals("os", dto.getDeviceSystem());
@@ -129,10 +134,12 @@ public class AdsOrderDetailService implements IAdsOrderDetailService {
 
     @Override
     public AdsOrderDetailTotalVO orderTotal(AdsOrderDetailTotalDTO dto) {
-        if (StringUtils.isBlank(dto.getPitcherId()) && !SecurityUtil.isManager()) {
+        long[] userIds = dto.getPitcherId() == null ? dataPowerComponent.getSubUserIdList() : new long[]{Long.parseLong(dto.getPitcherId())};
+        long[] gameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{Long.parseLong(dto.getGameId())};
+        /*if (StringUtils.isBlank(dto.getPitcherId()) && !SecurityUtil.isManager()) {
             // 只有管理员才能查看全部数据
             dto.setPitcherId(SecurityUtil.getUserId().toString());
-        }
+        }*/
         Criteria cri = Cnd.cri();
         if (StringUtils.isNotBlank(dto.getSourceSystem())) {
             cri.where().andEquals("source_system", dto.getSourceSystem());
@@ -155,8 +162,8 @@ public class AdsOrderDetailService implements IAdsOrderDetailService {
         if (StringUtils.isNotBlank(dto.getServerName())) {
             cri.where().andEquals("server_name", dto.getServerName());
         }
-        if (StringUtils.isNotBlank(dto.getGameId())) {
-            cri.where().andEquals("order_game_id", dto.getGameId());
+        if (gameIds != null) {
+            cri.where().andIn("order_game_id", gameIds);
         }
         if (ArrayUtils.isNotEmpty(dto.getChannelId())) {
             cri.where().andIn("agent_id", dto.getChannelId());
@@ -164,8 +171,8 @@ public class AdsOrderDetailService implements IAdsOrderDetailService {
         if (StringUtils.isNotBlank(dto.getAccountId())) {
             cri.where().andEquals("account_id", dto.getAccountId());
         }
-        if (StringUtils.isNotBlank(dto.getPitcherId())) {
-            cri.where().andEquals("zx_pitcher_id", dto.getPitcherId());
+        if (userIds != null) {
+            cri.where().andIn("zx_pitcher_id", userIds);
         }
         if (StringUtils.isNotBlank(dto.getDeviceSystem())) {
             cri.where().andEquals("os", dto.getDeviceSystem());

+ 53 - 40
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameDataServiceImpl.java

@@ -2,6 +2,7 @@ package com.zanxiang.game.data.serve.service.impl;
 
 import com.google.common.base.CaseFormat;
 import com.google.gson.Gson;
+import com.zanxiang.game.data.serve.component.DataPowerComponent;
 import com.zanxiang.game.data.serve.pojo.dto.*;
 import com.zanxiang.game.data.serve.pojo.entity.*;
 import com.zanxiang.game.data.serve.pojo.enums.OrderByEnum;
@@ -183,6 +184,8 @@ public class GameDataServiceImpl implements IGameDataService {
 
     @Autowired
     private Dao dao;
+    @Autowired
+    private DataPowerComponent dataPowerComponent;
 
     /**
      * 游戏每日数据
@@ -192,6 +195,7 @@ public class GameDataServiceImpl implements IGameDataService {
      */
     @Override
     public Page<GameDataDayVO> getGameDataDay(GameDataDayDTO dto) {
+        long[] gameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
 
         //传入的注册时间为空时,给一个默认值 当天数据
         if (dto.getRegisteredBeginDate() == null || dto.getRegisteredEndDate() == null) {
@@ -204,9 +208,9 @@ public class GameDataServiceImpl implements IGameDataService {
             //拼接游戏名称查询条件
             cri.where().andEquals("game_name", dto.getGameName());
         }
-        if (dto.getGameId() != null) {
+        if (gameIds != null) {
             //拼接游戏id查询条件
-            cri.where().andEquals("game_id", dto.getGameId());
+            cri.where().andIn("game_id", gameIds);
         }
         if (dto.getGameClassify() != null) {
             //拼接游戏类型查询条件
@@ -260,6 +264,7 @@ public class GameDataServiceImpl implements IGameDataService {
      * @return 返回给前端的总计数据实体
      */
     public GameDataDayTotalVO getGameDataDayTotal(GameDataDayTotalDTO dto) {
+        long[] gameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
 
         //如果没有传入查询时间默认查询当天
         if (dto.getRegisteredBeginDate() == null || dto.getRegisteredEndDate() == null) {
@@ -268,9 +273,9 @@ public class GameDataServiceImpl implements IGameDataService {
         }
         //新增查询条件
         Criteria cri = Cnd.cri();
-        if (dto.getGameId() != null) {
+        if (gameIds != null) {
             //拼接游戏id
-            cri.where().andEquals("game_id", dto.getGameId());
+            cri.where().andIn("game_id", gameIds);
         }
         if (StringUtils.isNotBlank(dto.getGameName())) {
             //拼接游戏名称
@@ -311,6 +316,7 @@ public class GameDataServiceImpl implements IGameDataService {
      */
     @Override
     public Page<GameDataTotalVO> getGameDataTotal(GameDataTotalDTO dto) {
+        long[] gameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
         //如果注册时间参数为空,默认设置查询当天数据
         if (dto.getRegisteredBeginDate() == null || dto.getRegisteredEndDate() == null) {
             dto.setRegisteredBeginDate(LocalDate.now());
@@ -323,15 +329,15 @@ public class GameDataServiceImpl implements IGameDataService {
         }
 
         //主表查询条件
-        Criteria criA = myCri(dto, "criA", true);
+        Criteria criA = myCri(gameIds, dto, "criA", true);
         //账面相关查询条件 时间条件只和充值时间相关
-        Criteria criB = myCri(dto, "criB", true);
+        Criteria criB = myCri(gameIds, dto, "criB", true);
         //账面人数相关 时间只需要充值时间条件,不需要注册时间条件
-        Criteria criAmount = myCriRecharge(dto, false);
+        Criteria criAmount = myCriRecharge(gameIds, dto, false);
         //新用户充值人数和新用户复充人数 时间条件需要注册时间和充值时间
-        Criteria criNewUser = myCriRecharge(dto, true);
+        Criteria criNewUser = myCriRecharge(gameIds, dto, true);
         //创角人数查询条件
-        Criteria criRoleNum = myCriRole(dto);
+        Criteria criRoleNum = myCriRole(gameIds, dto);
         //拼接排序条件
         Criteria orderByCri = Cnd.cri();
         //如果没有排序条件给默认值
@@ -528,6 +534,7 @@ public class GameDataServiceImpl implements IGameDataService {
      * @return 返回给前端额数据
      */
     public GameDataTotalTotalVO getGameDataTotalTotal(GameDataTotalTotalDTO dto) {
+        long[] gameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
         //如果注册时间参数为空,默认设置查询当天数据
         if (dto.getRegisteredBeginDate() == null || dto.getRegisteredEndDate() == null) {
             dto.setRegisteredBeginDate(LocalDate.now());
@@ -542,15 +549,15 @@ public class GameDataServiceImpl implements IGameDataService {
         GameDataTotalDTO totalDTO = new GameDataTotalDTO();
         copyNullProperties(dto, totalDTO);
         //主表查询条件
-        Criteria criA = myCri(totalDTO, "criA", false);
+        Criteria criA = myCri(gameIds, totalDTO, "criA", false);
         //账面相关查询条件 时间条件只和充值时间相关
-        Criteria criB = myCri(totalDTO, "criB", false);
+        Criteria criB = myCri(gameIds, totalDTO, "criB", false);
         //账面人数相关 时间只需要充值时间条件,不需要注册时间条件
-        Criteria criAmount = myCriRecharge(totalDTO, false);
+        Criteria criAmount = myCriRecharge(gameIds, totalDTO, false);
         //新用户充值人数和新用户复充人数 时间条件需要注册时间和充值时间
-        Criteria criNewUser = myCriRecharge(totalDTO, true);
+        Criteria criNewUser = myCriRecharge(gameIds, totalDTO, true);
         //创角人数查询条件
-        Criteria criRoleNum = myCriRole(totalDTO);
+        Criteria criRoleNum = myCriRole(gameIds, totalDTO);
         //创建sql语句 执行sql
         Sql sql = Sqls.create(gameDataTotalTotalSql() + criA);
         //设置自定义回显对象
@@ -969,6 +976,7 @@ public class GameDataServiceImpl implements IGameDataService {
      */
     @Override
     public Page<GameDataWaterVO> getGameDataWater(GameDataWaterDTO dto) {
+        long[] userGameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
         if (null == dto.getRechargeDate()) {
             dto.setRechargeDate(LocalDate.now());
         }
@@ -993,8 +1001,8 @@ public class GameDataServiceImpl implements IGameDataService {
         if (StringUtils.isNotBlank(dto.getSourceSystem())) {
             cri.where().andEquals("source_system", dto.getSourceSystem());
         }
-        if (null != dto.getGameId()) {
-            cri.where().andEquals("game_id", dto.getGameId());
+        if (null != userGameIds) {
+            cri.where().andIn("game_id", userGameIds);
         }
         cri.where().and("dt", "=", dto.getRechargeDate());
         cri.groupBy("source_system,game_id");
@@ -1076,6 +1084,7 @@ public class GameDataServiceImpl implements IGameDataService {
      */
     @Override
     public Map<LocalDate, List<GameDataAgainDayVO>> getGameDataAgainDay(GameDataAgainDayDTO dto) {
+        long[] userGameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
 
         //如果查询时间不传递默认从今天开始查询
         if (dto.getBeginDate() == null) {
@@ -1094,8 +1103,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 (userGameIds != null) {
+            cri.where().andIn("game_id", userGameIds);
         }
         if (dto.getBeginDate() != null) {
             cri.where().andEquals("dt", dto.getBeginDate());
@@ -1340,16 +1349,16 @@ public class GameDataServiceImpl implements IGameDataService {
      * @param needGroupBy 是否需要分组条件
      * @return 查询条件
      */
-    private Criteria myCri(GameDataTotalDTO dto, String type, Boolean needGroupBy) {
+    private Criteria myCri(long[] gameIds, GameDataTotalDTO dto, String type, Boolean needGroupBy) {
         //根据传入的dto拼接查询参数
         Criteria cri = Cnd.cri();
         if (StringUtils.isNotBlank(dto.getGameName())) {
             //拼接游戏名称查询条件
             cri.where().andEquals("game_name", dto.getGameName());
         }
-        if (dto.getGameId() != null) {
+        if (gameIds != null) {
             //拼接游戏id查询条件
-            cri.where().andEquals("game_id", dto.getGameId());
+            cri.where().andIn("game_id", gameIds);
         }
         if (dto.getGameClassify() != null) {
             //拼接游戏类型查询条件
@@ -1386,12 +1395,12 @@ public class GameDataServiceImpl implements IGameDataService {
      * @param needRegTime 是否需要拼接注册时间
      * @return 查询条件
      */
-    private Criteria myCriRecharge(GameDataTotalDTO dto, Boolean needRegTime) {
+    private Criteria myCriRecharge(long[] gameIds, GameDataTotalDTO dto, Boolean needRegTime) {
         //根据传入的dto拼接查询参数
         Criteria cri = Cnd.cri();
-        if (dto.getGameId() != null) {
+        if (gameIds != null) {
             //拼接游戏id查询条件
-            cri.where().andEquals("game_id", dto.getGameId());
+            cri.where().andIn("game_id", gameIds);
         }
         if (dto.getGameClassify() != null) {
             //拼接游戏类型查询条件
@@ -1420,12 +1429,12 @@ public class GameDataServiceImpl implements IGameDataService {
      * @param dto 前端传递的查询条件
      * @return 查询条件
      */
-    private Criteria myCriRole(GameDataTotalDTO dto) {
+    private Criteria myCriRole(long[] gameIds, GameDataTotalDTO dto) {
         //根据传入的dto拼接查询参数
         Criteria cri = Cnd.cri();
-        if (dto.getGameId() != null) {
+        if (gameIds != null) {
             //拼接游戏id查询条件
-            cri.where().andEquals("user_game_id", dto.getGameId());
+            cri.where().andIn("user_game_id", gameIds);
         }
         if (StringUtils.isNotBlank(dto.getSourceSystem())) {
             //拼接SDK来源
@@ -3058,6 +3067,7 @@ public class GameDataServiceImpl implements IGameDataService {
 
     @Override
     public Page<GameDataH5VO> getH5Recharge(GameDataH5DTO dto) {
+        long[] gameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
         if (null == dto.getCostBeginDate() || null == dto.getCostEndDate()) {
             dto.setCostEndDate(LocalDate.now());
             dto.setCostBeginDate(LocalDate.now());
@@ -3081,8 +3091,8 @@ public class GameDataServiceImpl implements IGameDataService {
         if (StringUtils.isNotBlank(dto.getSourceSystem())) {
             cri.where().andEquals("a.source_system", dto.getSourceSystem());
         }
-        if (null != dto.getGameId()) {
-            cri.where().andEquals("a.game_id", dto.getGameId());
+        if (null != gameIds) {
+            cri.where().andIn("a.game_id", gameIds);
         }
         cri.where().and("a.dt", ">=", dto.getCostBeginDate()).and("a.dt", "<=", dto.getCostEndDate());
         cri.where().andEquals("a.id", 1);
@@ -3098,9 +3108,8 @@ public class GameDataServiceImpl implements IGameDataService {
         Sql sqlCount = Sqls.queryEntity("select count(*) from ads_h5_game_day a " + "$condition");
         sqlCount.setCondition(cri);
         pager.setRecordCount((int) Daos.queryCount(dao, sqlCount));
-        List<Long> gameIds = sql.getList(GameDataH5VO.class).stream()
-                .map(GameDataH5VO::getGameId).collect(Collectors.toList());
-        if (CollectionUtils.isEmpty(gameIds)) {
+        if (pager.getRecordCount() < 1) {
+            // 没数据,直接返回
             return new Page<>();
         }
 
@@ -3217,6 +3226,7 @@ public class GameDataServiceImpl implements IGameDataService {
      */
     @Override
     public Page<LtvDataVO> getLtvData(LtvDataDTO dto) {
+        long[] userGameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
         if (dto.getRegisteredBeginDate() == null || dto.getRegisteredEndDate() == null) {
             //查询时间不传递默认传递当天
             dto.setRegisteredBeginDate(LocalDate.now());
@@ -3229,8 +3239,8 @@ public class GameDataServiceImpl implements IGameDataService {
         //创建查询条件
         Criteria cri = Cnd.cri();
         //拼接游戏ID
-        if (dto.getGameId() != null) {
-            cri.where().andEquals("game_id", dto.getGameId());
+        if (userGameIds != null) {
+            cri.where().andIn("game_id", userGameIds);
         }
         //拼接游戏应用类型
         if (dto.getClassify() != null) {
@@ -3282,6 +3292,7 @@ public class GameDataServiceImpl implements IGameDataService {
      */
     @Override
     public LtvDataTotalVO getLtvTotalData(LtvDataTotalDTO dto) {
+        long[] userGameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
         //如果没有传入查询时间默认查询当天
         if (dto.getRegisteredBeginDate() == null || dto.getRegisteredEndDate() == null) {
             dto.setRegisteredBeginDate(LocalDate.now());
@@ -3293,9 +3304,9 @@ public class GameDataServiceImpl implements IGameDataService {
         }
         //新增查询条件
         Criteria cri = Cnd.cri();
-        if (dto.getGameId() != null) {
+        if (userGameIds != null) {
             //拼接游戏id
-            cri.where().andEquals("game_id", dto.getGameId());
+            cri.where().andIn("game_id", userGameIds);
         }
         if (StringUtils.isNotBlank(dto.getSourceSystem())) {
             //拼接SDK来源
@@ -3342,6 +3353,7 @@ public class GameDataServiceImpl implements IGameDataService {
      */
     @Override
     public Page<GameDataFirstNewUserAgainVO> getFirstNewUserAgain(GameDataFirstNewUserAgainDTO dto) {
+        long[] userGameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
         if (dto.getRegisteredBeginDate() == null || dto.getRegisteredEndDate() == null) {
             //查询时间不传递默认传递当天
             dto.setRegisteredBeginDate(LocalDate.now());
@@ -3354,8 +3366,8 @@ public class GameDataServiceImpl implements IGameDataService {
         //创建查询条件
         Criteria cri = Cnd.cri();
         //拼接游戏ID
-        if (dto.getGameId() != null) {
-            cri.where().andEquals("game_id", dto.getGameId());
+        if (userGameIds != null) {
+            cri.where().andIn("game_id", userGameIds);
         }
         //拼接游戏应用类型
         if (dto.getClassify() != null) {
@@ -3425,6 +3437,7 @@ public class GameDataServiceImpl implements IGameDataService {
      */
     @Override
     public GameDataFirstNewUserAgainTotalVO getFirstNewUserAgainTotal(GameDataFirstNewUserAgainTotalDTO dto) {
+        long[] userGameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
         //如果没有传入查询时间默认查询当天
         if (dto.getRegisteredBeginDate() == null || dto.getRegisteredEndDate() == null) {
             dto.setRegisteredBeginDate(LocalDate.now());
@@ -3436,9 +3449,9 @@ public class GameDataServiceImpl implements IGameDataService {
         }
         //新增查询条件
         Criteria cri = Cnd.cri();
-        if (dto.getGameId() != null) {
+        if (userGameIds != null) {
             //拼接游戏id
-            cri.where().andEquals("game_id", dto.getGameId());
+            cri.where().andIn("game_id", userGameIds);
         }
         if (StringUtils.isNotBlank(dto.getSourceSystem())) {
             //拼接SDK来源

+ 9 - 4
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameServerServiceImpl.java

@@ -1,6 +1,7 @@
 package com.zanxiang.game.data.serve.service.impl;
 
 import com.google.common.base.CaseFormat;
+import com.zanxiang.game.data.serve.component.DataPowerComponent;
 import com.zanxiang.game.data.serve.pojo.dto.GameServerDayDTO;
 import com.zanxiang.game.data.serve.pojo.dto.GameServerDayTotalDTO;
 import com.zanxiang.game.data.serve.pojo.entity.AdsGameServerDay;
@@ -116,6 +117,8 @@ public class GameServerServiceImpl implements IGameServerService {
 
     @Autowired
     private Dao dao;
+    @Autowired
+    private DataPowerComponent dataPowerComponent;
 
     /**
      * 游戏区服数据
@@ -125,12 +128,13 @@ public class GameServerServiceImpl implements IGameServerService {
      */
     @Override
     public Page<GameServerDayVO> getGameServerDataDay(GameServerDayDTO dto) {
+        long[] gameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
 
         //创建查询条件
         Criteria cri = Cnd.cri();
-        if (dto.getGameId() != null) {
+        if (gameIds != null) {
             //拼接游戏ID查询条件
-            cri.where().andEquals("game_id", dto.getGameId());
+            cri.where().andIn("game_id", gameIds);
         }
         if (dto.getServerId() != null) {
             //拼接区服ID查询条件
@@ -188,11 +192,12 @@ public class GameServerServiceImpl implements IGameServerService {
      */
     @Override
     public GameServerDayTotalVO getGameServerDataDayTotal(GameServerDayTotalDTO dto) {
+        long[] gameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
         //创建查询条件
         Criteria cri = Cnd.cri();
-        if (dto.getGameId() != null) {
+        if (gameIds != null) {
             //拼接游戏ID查询条件
-            cri.where().andEquals("game_id", dto.getGameId());
+            cri.where().andIn("game_id", gameIds);
         }
         if (dto.getServerId() != null) {
             //拼接区服ID查询条件

+ 9 - 4
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/IActiveDataServiceImpl.java

@@ -1,6 +1,7 @@
 package com.zanxiang.game.data.serve.service.impl;
 
 import com.google.common.base.CaseFormat;
+import com.zanxiang.game.data.serve.component.DataPowerComponent;
 import com.zanxiang.game.data.serve.pojo.dto.ActiveDataDayDTO;
 import com.zanxiang.game.data.serve.pojo.dto.ActiveDataTotalDTO;
 import com.zanxiang.game.data.serve.pojo.entity.AdsGameActiveOrderDay;
@@ -115,6 +116,8 @@ public class IActiveDataServiceImpl implements IActiveDataService {
 
     @Autowired
     private Dao dao;
+    @Autowired
+    private DataPowerComponent dataPowerComponent;
 
     /**
      * 留存每日数据
@@ -123,6 +126,7 @@ public class IActiveDataServiceImpl implements IActiveDataService {
      */
     @Override
     public Page<ActiveDataDayVO> getActiveDataDay(ActiveDataDayDTO dto) {
+        long[] userGameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
         //默认查询总数据
         if (StringUtils.isBlank(dto.getTableTypes())) {
             dto.setTableTypes("total");
@@ -151,8 +155,8 @@ public class IActiveDataServiceImpl implements IActiveDataService {
         //创建查询条件
         Criteria cri = Cnd.cri();
         //拼接游戏ID
-        if (dto.getGameId() != null) {
-            cri.where().andEquals("game_id", dto.getGameId());
+        if (userGameIds != null) {
+            cri.where().andIn("game_id", userGameIds);
         }
         //拼接游戏应用类型
         if (dto.getClassify() != null) {
@@ -213,6 +217,7 @@ public class IActiveDataServiceImpl implements IActiveDataService {
      */
     @Override
     public ActiveDataTotalVO getActiveDataTotal(ActiveDataTotalDTO dto) {
+        long[] gameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
         //默认查询总数据
         if (StringUtils.isBlank(dto.getTableTypes())) {
             dto.setTableTypes("total");
@@ -230,8 +235,8 @@ public class IActiveDataServiceImpl implements IActiveDataService {
         //创建查询条件
         Criteria cri = Cnd.cri();
         //拼接游戏ID
-        if (dto.getGameId() != null) {
-            cri.where().andEquals("game_id", dto.getGameId());
+        if (gameIds != null) {
+            cri.where().andIn("game_id", gameIds);
         }
         //拼接游戏应用类型
         if (dto.getClassify() != null) {

+ 21 - 14
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/OverallSummaryServiceImpl.java

@@ -1,6 +1,7 @@
 package com.zanxiang.game.data.serve.service.impl;
 
 import com.zanxiang.erp.security.util.SecurityUtil;
+import com.zanxiang.game.data.serve.component.DataPowerComponent;
 import com.zanxiang.game.data.serve.pojo.dto.OverallSummaryDTO;
 import com.zanxiang.game.data.serve.pojo.vo.OverallSummaryAmountLineDataVO;
 import com.zanxiang.game.data.serve.pojo.vo.OverallSummaryCostLineDataVO;
@@ -38,6 +39,8 @@ public class OverallSummaryServiceImpl implements IOverallSummaryService {
 
     @Autowired
     private Dao dao;
+    @Autowired
+    private DataPowerComponent dataPowerComponent;
 
     /**
      * 整体概况总计数据部分
@@ -47,28 +50,30 @@ public class OverallSummaryServiceImpl implements IOverallSummaryService {
      */
     @Override
     public OverallSummaryVO getOverallSummaryTotalData(OverallSummaryDTO dto) {
+        long[] userIds = dto.getPitcherId() == null ? dataPowerComponent.getSubUserIdList() : new long[]{dto.getPitcherId()};
+        long[] gameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
 
         //创建返回给前端的对象
         OverallSummaryVO overallSummaryVO = new OverallSummaryVO();
 
         //计算总计条件
-        Condition totalCri = myCondition(dto, true, false, -1);
+        Condition totalCri = myCondition(userIds, gameIds, dto, true, false, -1);
         //计算今日数据条件
-        Condition todayCri = myCondition(dto, true, false, 1);
+        Condition todayCri = myCondition(userIds, gameIds, dto, true, false, 1);
         //计算昨日数据条件
-        Condition yesterdayCri = myCondition(dto, true, false, 0);
+        Condition yesterdayCri = myCondition(userIds, gameIds, dto, true, false, 0);
         //计算7日数据条件
-        Condition d7Cri = myCondition(dto, true, false, 7);
+        Condition d7Cri = myCondition(userIds, gameIds, dto, true, false, 7);
         //计算30日数据条件
-        Condition d30Cri = myCondition(dto, true, false, 30);
+        Condition d30Cri = myCondition(userIds, gameIds, dto, true, false, 30);
 
         //计算游戏数量相关数据
         //查询总投游戏数量
-        overallSummaryVO.setTotalGameCount(getResultBySql(2, null, myCondition(dto, false, false, -1)));
+        overallSummaryVO.setTotalGameCount(getResultBySql(2, null, myCondition(userIds, gameIds, dto, false, false, -1)));
         //查询今日在投游戏数量
-        overallSummaryVO.setTodayGameCount(getResultBySql(2, null, myCondition(dto, false, false, 1)));
+        overallSummaryVO.setTodayGameCount(getResultBySql(2, null, myCondition(userIds, gameIds, dto, false, false, 1)));
         //查询昨日在投游戏数量
-        overallSummaryVO.setYesterdayGameCount(getResultBySql(2, null, myCondition(dto, false, false, 0)));
+        overallSummaryVO.setYesterdayGameCount(getResultBySql(2, null, myCondition(userIds, gameIds, dto, false, false, 0)));
 
         //计算玩家数量相关数据
         //查询玩家总计数
@@ -144,9 +149,11 @@ public class OverallSummaryServiceImpl implements IOverallSummaryService {
      */
     @Override
     public Map<String, List> getOverallSummaryLineData(OverallSummaryDTO dto) {
+        long[] userIds = dto.getPitcherId() == null ? dataPowerComponent.getSubUserIdList() : new long[]{dto.getPitcherId()};
+        long[] gameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
 
         //根据条件获取数据
-        Condition lineCon = myCondition(dto, true, true, -1);
+        Condition lineCon = myCondition(userIds, gameIds, dto, true, true, -1);
 
         //查询新增用户数据
         Sql userSql = Sqls.create(userLineSql() + lineCon);
@@ -206,13 +213,13 @@ public class OverallSummaryServiceImpl implements IOverallSummaryService {
      * @param queryDays     拼接需要查询数据的天数条件(给今日昨日、首日Roi、7日Roi以及30日Roi使用)
      * @return Condition 查询条件
      */
-    private Condition myCondition(OverallSummaryDTO dto, Boolean needGameId, Boolean needLocalDate, Integer queryDays) {
+    private Condition myCondition(long[] userIds, long[] gameIds, OverallSummaryDTO dto, Boolean needGameId, Boolean needLocalDate, Integer queryDays) {
 
         Criteria cri = Cnd.cri();
         //默认查询条件
-        if (dto.getGameId() != null && needGameId) {
+        if (gameIds != null && needGameId) {
             //拼接游戏查询条件
-            cri.where().andEquals("game_id", dto.getGameId());
+            cri.where().andIn("game_id", gameIds);
         }
         if (dto.getAgentId() != null) {
             //拼接渠道查询条件
@@ -227,9 +234,9 @@ public class OverallSummaryServiceImpl implements IOverallSummaryService {
             cri.where().andEquals("source_system", dto.getSourceSystem());
         }
         //前端传递 pitcherId 根据 pitcherId 查询
-        if (dto.getPitcherId() != null) {
+        if (userIds != null) {
             //拼接投手查询条件
-            cri.where().andEquals("pitcher_id", dto.getPitcherId());
+            cri.where().andIn("pitcher_id", userIds);
         } else if (SecurityUtil.isManager()) {
             //前端没有传递 pitcherId 参数并且是管理员 查看所有数据 排除掉 pitcherId = -2 的数据
             cri.where().andNotEquals("pitcher_id", -2);

File diff suppressed because it is too large
+ 294 - 260
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/PitcherDataServiceImpl.java


+ 35 - 22
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/PromotionDayServiceImpl.java

@@ -1,6 +1,7 @@
 package com.zanxiang.game.data.serve.service.impl;
 
 import com.google.common.base.CaseFormat;
+import com.zanxiang.game.data.serve.component.DataPowerComponent;
 import com.zanxiang.game.data.serve.pojo.dto.PromotionDayDTO;
 import com.zanxiang.game.data.serve.pojo.dto.PromotionDayTotalDTO;
 import com.zanxiang.game.data.serve.pojo.dto.TencentPromotionDayDTO;
@@ -41,6 +42,8 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
 
     @Autowired
     private Dao dao;
+    @Autowired
+    private DataPowerComponent dataPowerComponent;
 
     /**
      * 广告监控每日数据列表
@@ -49,6 +52,8 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
      * @return
      */
     public Page<PromotionDayVO> getPromotionDayListData(PromotionDayDTO dto) {
+        long[] userIds = dto.getPitcherId() == null ? dataPowerComponent.getSubUserIdList() : new long[]{dto.getPitcherId()};
+        long[] gameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
         //如果没有排序条件给默认值
         if (StringUtils.isBlank(dto.getSortFiled())) {
             dto.setSortFiled("dt");
@@ -56,7 +61,7 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
         if (StringUtils.isBlank(dto.getSortType())) {
             dto.setSortType(OrderByEnum.DESC.getOrderType());
         }
-        Criteria cri = myCri(dto, false);
+        Criteria cri = myCri(userIds, gameIds, dto, false);
 
         //计算总记录条数
         Sql sqlCount = Sqls.create("select count(*) from ads_promotion_day" + cri);
@@ -213,6 +218,8 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
      */
     @Override
     public PromotionDayTotalVO getPromotionDayTotalData(PromotionDayTotalDTO dto) {
+        long[] userIds = dto.getPitcherId() == null ? dataPowerComponent.getSubUserIdList() : new long[]{dto.getPitcherId()};
+        long[] gameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
         //创建查询条件
         Criteria cri = Cnd.cri();
         if (dto.getAccountId() != null) {
@@ -227,8 +234,8 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
             //推广账号类型
             cri.where().andEquals("account_type", dto.getAccountType());
         }
-        if (dto.getPitcherId() != null) {
-            cri.where().andEquals("pitcher_id", dto.getPitcherId());
+        if (userIds != null) {
+            cri.where().andIn("pitcher_id", userIds);
         }
         if (dto.getAgentId() != null) {
             cri.where().andInList("agent_id", Arrays.asList(dto.getAgentId()));
@@ -236,8 +243,8 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
         if (StringUtils.isNotBlank(dto.getCpName())) {
             cri.where().andEquals("cp_name", dto.getCpName());
         }
-        if (dto.getGameId() != null) {
-            cri.where().andEquals("game_id", dto.getGameId());
+        if (gameIds != null) {
+            cri.where().andIn("game_id", gameIds);
         }
         if (dto.getClassify() != null) {
             cri.where().andEquals("classify", dto.getClassify());
@@ -394,6 +401,8 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
      * @return
      */
     public Page<TencentPromotionDayVO> getTencentPromotionDayListData(TencentPromotionDayDTO dto) {
+        long[] userIds = dto.getPitcherId() == null ? dataPowerComponent.getSubUserIdList() : new long[]{dto.getPitcherId()};
+        long[] gameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
         //如果没有排序条件给默认值
         if (StringUtils.isBlank(dto.getSortFiled())) {
             dto.setSortFiled("dt");
@@ -401,7 +410,7 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
         if (StringUtils.isBlank(dto.getSortType())) {
             dto.setSortType(OrderByEnum.DESC.getOrderType());
         }
-        Criteria cri = myCriTencent(dto, false);
+        Criteria cri = myCriTencent(userIds, gameIds, dto, false);
 
         //计算总记录条数
         Sql sqlCount = Sqls.create("select count(*) from ads_adgroup_day" + cri);
@@ -478,6 +487,8 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
      */
     @Override
     public Page<TencentPromotionDayVO> getTencentPromotionDayData(TencentPromotionDayDTO dto) {
+        long[] userIds = dto.getPitcherId() == null ? dataPowerComponent.getSubUserIdList() : new long[]{dto.getPitcherId()};
+        long[] gameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
         //如果没有排序条件给默认值
         if (StringUtils.isBlank(dto.getSortFiled())) {
             dto.setSortFiled("today_cost");
@@ -485,8 +496,8 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
         if (StringUtils.isBlank(dto.getSortType())) {
             dto.setSortType(OrderByEnum.DESC.getOrderType());
         }
-        Criteria criA = myCriTencent(dto, true);
-        Criteria criB = myCriTencent(dto, false);
+        Criteria criA = myCriTencent(userIds, gameIds, dto, true);
+        Criteria criB = myCriTencent(userIds, gameIds, dto, false);
         Criteria criOrderBy = Cnd.cri();
         //拼接排序条件
         criOrderBy.getOrderBy().orderBy(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, dto.getSortFiled()), dto.getSortType());
@@ -558,6 +569,8 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
      */
     @Override
     public TencentPromotionDayTotalVO getTencentPromotionDayTotalData(TencentPromotionDayTotalDTO dto) {
+        long[] userIds = dto.getPitcherId() == null ? dataPowerComponent.getSubUserIdList() : new long[]{dto.getPitcherId()};
+        long[] gameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
         //创建查询条件
         Criteria cri = Cnd.cri();
         if (dto.getAccountId() != null) {
@@ -572,8 +585,8 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
             //推广账号类型
             cri.where().andEquals("account_type", dto.getAccountType());
         }
-        if (dto.getPitcherId() != null) {
-            cri.where().andEquals("pitcher_id", dto.getPitcherId());
+        if (userIds != null) {
+            cri.where().andIn("pitcher_id", userIds);
         }
         if (dto.getAgentId() != null) {
             cri.where().andInList("agent_id", Arrays.asList(dto.getAgentId()));
@@ -581,8 +594,8 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
         if (StringUtils.isNotBlank(dto.getCpName())) {
             cri.where().andEquals("cp_name", dto.getCpName());
         }
-        if (dto.getGameId() != null) {
-            cri.where().andEquals("game_id", dto.getGameId());
+        if (gameIds != null) {
+            cri.where().andIn("game_id", gameIds);
         }
         if (dto.getClassify() != null) {
             cri.where().andEquals("classify", dto.getClassify());
@@ -739,7 +752,7 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
      * @param needGroupBy 需要聚合分组
      * @return 查询条件
      */
-    private Criteria myCri(PromotionDayDTO dto, Boolean needGroupBy) {
+    private Criteria myCri(long[] userIds, long[] gameIds, PromotionDayDTO dto, Boolean needGroupBy) {
         //创建查询条件
         Criteria cri = Cnd.cri();
         if (dto.getAccountId() != null) {
@@ -754,8 +767,8 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
             //推广账号类型
             cri.where().andEquals("account_type", dto.getAccountType());
         }
-        if (dto.getPitcherId() != null) {
-            cri.where().andEquals("pitcher_id", dto.getPitcherId());
+        if (userIds != null) {
+            cri.where().andIn("pitcher_id", userIds);
         }
         if (dto.getAgentId() != null) {
             cri.where().andInList("agent_id", Arrays.asList(dto.getAgentId()));
@@ -763,8 +776,8 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
         if (StringUtils.isNotBlank(dto.getCpName())) {
             cri.where().andEquals("cp_name", dto.getCpName());
         }
-        if (dto.getGameId() != null) {
-            cri.where().andEquals("game_id", dto.getGameId());
+        if (gameIds != null) {
+            cri.where().andIn("game_id", gameIds);
         }
         if (dto.getClassify() != null) {
             cri.where().andEquals("classify", dto.getClassify());
@@ -805,7 +818,7 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
      * @param needGroupBy 需要聚合分组
      * @return 查询条件
      */
-    private Criteria myCriTencent(TencentPromotionDayDTO dto, Boolean needGroupBy) {
+    private Criteria myCriTencent(long[] userIds, long[] gameIds, TencentPromotionDayDTO dto, Boolean needGroupBy) {
         //创建查询条件
         Criteria cri = Cnd.cri();
         if (dto.getAccountId() != null) {
@@ -820,8 +833,8 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
             //推广账号类型
             cri.where().andEquals("account_type", dto.getAccountType());
         }
-        if (dto.getPitcherId() != null) {
-            cri.where().andEquals("pitcher_id", dto.getPitcherId());
+        if (userIds != null) {
+            cri.where().andIn("pitcher_id", userIds);
         }
         if (dto.getAgentId() != null) {
             cri.where().andInList("agent_id", Arrays.asList(dto.getAgentId()));
@@ -829,8 +842,8 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
         if (StringUtils.isNotBlank(dto.getCpName())) {
             cri.where().andEquals("cp_name", dto.getCpName());
         }
-        if (dto.getGameId() != null) {
-            cri.where().andEquals("game_id", dto.getGameId());
+        if (gameIds != null) {
+            cri.where().andIn("game_id", gameIds);
         }
         if (dto.getClassify() != null) {
             cri.where().andEquals("classify", dto.getClassify());

+ 12 - 1
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/RankingServiceImpl.java

@@ -1,6 +1,7 @@
 package com.zanxiang.game.data.serve.service.impl;
 
 import com.google.common.base.CaseFormat;
+import com.zanxiang.game.data.serve.component.DataPowerComponent;
 import com.zanxiang.game.data.serve.pojo.dto.RechargeRankingDTO;
 import com.zanxiang.game.data.serve.pojo.enums.OrderByEnum;
 import com.zanxiang.game.data.serve.pojo.vo.GameRechargeRankingVO;
@@ -25,9 +26,12 @@ import org.springframework.stereotype.Service;
 public class RankingServiceImpl implements IRankingService {
     @Autowired
     private Dao dao;
+    @Autowired
+    private DataPowerComponent dataPowerComponent;
 
     @Override
     public Page<GameRechargeRankingVO> gameRanking(RechargeRankingDTO dto) {
+        long[] gameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
         if (StringUtils.isBlank(dto.getSortFiled())){
             dto.setSortFiled("totalAmount");
         }
@@ -40,11 +44,14 @@ public class RankingServiceImpl implements IRankingService {
         if (null != dto.getBeginDay() && null != dto.getEndDay()){
             cri.where().and("dt",">=",dto.getBeginDay()).and("dt","<=",dto.getEndDay());
         }
+        if(gameIds != null) {
+            cri.where().andIn("game_id", gameIds);
+        }
         if (StringUtils.isNotBlank(dto.getSourceSystem())) {
             cri.where().andEquals("source_system", dto.getSourceSystem());
         }
         cri.where().andNotEquals("today_amount",0);
-        cri.groupBy("source_system,game_id");
+        cri.groupBy("source_system, game_id");
         cri.orderBy(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, dto.getSortFiled()), dto.getSortType());
         Sql sql = Sqls.queryEntity(gameRankingSql() + "$condition");
         sql.setPager(pager);
@@ -84,6 +91,7 @@ public class RankingServiceImpl implements IRankingService {
 
     @Override
     public Page<PlayerRechargeRankingVO> playerRanking(RechargeRankingDTO dto) {
+        long[] gameIds = dto.getGameId() == null ? dataPowerComponent.getSubGameIdList() : new long[]{dto.getGameId()};
         if (StringUtils.isBlank(dto.getSortFiled())){
             dto.setSortFiled("totalAmount");
         }
@@ -96,6 +104,9 @@ public class RankingServiceImpl implements IRankingService {
         if (null != dto.getBeginDay() && null != dto.getEndDay()){
             cri.where().and("dt",">=",dto.getBeginDay()).and("dt","<=",dto.getEndDay());
         }
+        if(gameIds != null) {
+            cri.where().andIn("reg_game_id", gameIds);
+        }
         if (StringUtils.isNotBlank(dto.getSourceSystem())) {
             cri.where().andEquals("source_system", dto.getSourceSystem());
         }

Some files were not shown because too many files changed in this diff