dos пре 1 месец
родитељ
комит
c979138d75

+ 29 - 21
game-business/src/main/java/com/game/business/service/impl/AppUserCountServiceImpl.java

@@ -52,6 +52,9 @@ public class AppUserCountServiceImpl extends ServiceImpl<AppUserCountMapper, App
     @Autowired
     private IAppUserCountDividendService appUserCountDividendService;
 
+    @Autowired
+    private IAppUserAgentService appUserAgentService;
+
     @Override
     public List<AppUserCount> getAppUserCount(long userId,String beginTime,String endTIme) {
         LambdaQueryWrapper<AppUserCount> queryWrapper = new LambdaQueryWrapper<AppUserCount>();
@@ -145,24 +148,27 @@ public class AppUserCountServiceImpl extends ServiceImpl<AppUserCountMapper, App
             Date finalCurDate = curDate;
             List<Long> userIds = gameBettingList.stream().map(AppGameBetting::getUserId).distinct().collect(Collectors.toList());
             userIds.forEach(userId -> {
-                AppUserCount appUserCount = new AppUserCount();
-                appUserCount.setUserId(userId);
-                appUserCount.setStrDate(finalDateTime);
-                appUserCount.setAgentUserId(userId);
-                appUserCount.setUpdateTime(finalCurDate);
-                //游戏输
-                appUserCount.setGameLoseAmount(gameBettingList.stream().filter(
-                        e -> e.getUserId().equals(userId) && e.getIsWinning().intValue() == 2
-                ).mapToDouble(e ->
-                        e.getBettingAmount()
-                ).sum());
-                //游戏赢
-                appUserCount.setGameWinAmount(gameBettingList.stream().filter(
-                        e -> e.getUserId().equals(userId) && e.getIsWinning().intValue() == 1
-                ).mapToDouble(e ->
-                        e.getBettingAmount() * e.getBettingMultiple()
-                ).sum());
-                this.createAppUserCount(appUserCount);
+                AppUserAgent appUserAgent = appUserAgentService.selectInfo(userId);
+                if(null != appUserAgent) {
+                    AppUserCount appUserCount = new AppUserCount();
+                    appUserCount.setUserId(userId);
+                    appUserCount.setStrDate(finalDateTime);
+                    appUserCount.setAgentUserId(appUserAgent.getPid());
+                    appUserCount.setUpdateTime(finalCurDate);
+                    //游戏输
+                    appUserCount.setGameLoseAmount(gameBettingList.stream().filter(
+                            e -> e.getUserId().equals(userId) && e.getIsWinning().intValue() == 2
+                    ).mapToDouble(e ->
+                            e.getBettingAmount()
+                    ).sum());
+                    //游戏赢
+                    appUserCount.setGameWinAmount(gameBettingList.stream().filter(
+                            e -> e.getUserId().equals(userId) && e.getIsWinning().intValue() == 1
+                    ).mapToDouble(e ->
+                            e.getBettingAmount() * e.getBettingMultiple()
+                    ).sum());
+                    this.createAppUserCount(appUserCount);
+                }
             });
             //更新周盈亏数据
             appUserCountDividendService.reloadCache(null,userIds);
@@ -212,10 +218,12 @@ public class AppUserCountServiceImpl extends ServiceImpl<AppUserCountMapper, App
                 AppUserCount appUserCount = new AppUserCount();
                 appUserCount.setUserId(userId);
                 appUserCount.setStrDate(finalDateTime);
-                appUserCount.setAgentUserId(userId);
+                appUserCount.setAgentUserId(gameRateList.stream().filter(e->e.getUserId().equals(userId)).map(AppGameCommission::getPid).collect(Collectors.toList()).get(0));
                 appUserCount.setUpdateTime(finalCurDate);
-                //游戏佣金 更新所有用户
-                appUserCount.setGameCommission(gameRecordCountList.stream().filter(e -> e.getUserId().equals(userId)).mapToDouble(e -> e.getCommission()).sum());
+                if(null != gameRecordCountList && gameRecordCountList.size() > 0) {
+                    //游戏佣金 更新所有用户
+                    appUserCount.setGameCommission(gameRecordCountList.stream().filter(e -> e.getUserId().equals(userId)).mapToDouble(e -> e.getCommission()).sum());
+                }
                 //游戏下注金额 更新当前下注用户 (非金币)
                 if(userId.equals(appGameBetting.getUserId()) && appGameBetting.getBettingType().intValue() == 0) {
                     appUserCount.setGameBetting(appGameBetting.getBettingAmount());

+ 6 - 0
game-business/src/main/java/com/game/business/task/AppAgentGameBettingTask.java

@@ -63,6 +63,12 @@ public class AppAgentGameBettingTask {
 
         getGameRate(appGameBetting.getGameId(), userAgent.getPid(), userAgent.getUserId(), gameRateList);
         if(gameRateList.isEmpty()){
+            //统计游戏下注、返佣情况
+            AppGameCommission appGameCommission = new AppGameCommission();
+            appGameCommission.setUserId(appGameBetting.getUserId());
+            appGameCommission.setPid(userAgent.getPid());
+            gameRateList.add(appGameCommission);
+            appUserCountService.staticsUserBetting(appGameBetting,gameRateList);
             return;
         }