فهرست منبع

修改充值提现手续费计算

gogs 1 ماه پیش
والد
کامیت
713c251123

+ 2 - 0
game-business/src/main/java/com/game/business/controller/AppAgentController.java

@@ -162,6 +162,8 @@ public class AppAgentController extends BaseController {
         vo.setRechargeGive(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(e->e.getRechargeGive()).sum()).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
         //团队充值手续费
         vo.setRechargeCommission(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(e->e.getRechargeCommission()).sum()).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
+        //团队提现手续费
+        vo.setWithdrawalCommission(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(e->e.getWithdrawalCommission()).sum()).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
         //团队投注
         vo.setTeamBetting(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(e->e.getGameBetting()).sum()).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
         //团队直播消费

+ 5 - 4
game-business/src/main/java/com/game/business/controller/AppUserController.java

@@ -166,6 +166,7 @@ public class AppUserController extends BaseController
                 }
                 //扣除手续费
                 FinTranRecord rateTran = new FinTranRecord();
+                rateTran.setId(null);
                 BeanUtils.copyProperties(tran,rateTran);
                 if(TranCurrencyType.Balance.getType() == rateTran.getCurrencyType()){
                     rate = BigDecimal.valueOf(rateTran.getDiamondCoinChange() * userChargeDto.getRate()).setScale(2,BigDecimal.ROUND_HALF_UP);
@@ -174,12 +175,12 @@ public class AppUserController extends BaseController
                     rate = BigDecimal.valueOf(rateTran.getCoinChange() * userChargeDto.getRate()).setScale(2,BigDecimal.ROUND_HALF_UP);
                     rateTran.setCoinChange(rate.doubleValue() * -1);
                 }
-                rateTran.setTranType3(FinTranType3.CHARGE_OUT_RATE.getType());
+                /*rateTran.setTranType3(FinTranType3.CHARGE_OUT_RATE.getType());
                 rateTran.setTranType2(FinTranType3.CHARGE_OUT_RATE.getTranType2().getType());
                 rateTran.setTranType1(userChargeDto.getType() == 1?FinTranType1.U_Outcome_Balance.getType():FinTranType1.U_Outcome_Coin.getType());
                 rateTran.setRemarks("充值手续费");
-                rateTran.setId(null);
-                appUserService.updateUserAmount(rateTran);
+
+                appUserService.updateUserAmount(rateTran);*/
             }
             double give = 0;
 //            if(null != userChargeDto.getGiveAmount() && userChargeDto.getGiveAmount() > 0){
@@ -215,7 +216,7 @@ public class AppUserController extends BaseController
             appUsersCharge.setTouid(appUser.getUserid());
             appUsersCharge.setUid(appUser.getUserid());
 
-            appUsersCharge.setCoin(BigDecimal.valueOf(userChargeDto.getAmount() - rate.doubleValue()));
+            appUsersCharge.setCoin(BigDecimal.valueOf(userChargeDto.getAmount()));
             appUsersCharge.setCoinType(Long.parseLong(String.valueOf(userChargeDto.getType())));
             appUsersCharge.setOrderno(IdUtil.fastUUID());
             // 充值成功

+ 7 - 2
game-business/src/main/java/com/game/business/domain/AppUserCount.java

@@ -91,11 +91,16 @@ public class AppUserCount {
     @ApiModelProperty(value = "游戏-赢")
     private Double gameLoseAmount;
 
-    @Excel(name = "游戏佣金")
+    @Excel(name = "游戏佣金(包含了直播间下注佣金)")
     @TableField(value = "game_commission")
-    @ApiModelProperty(value = "游戏佣金")
+    @ApiModelProperty(value = "游戏佣金(包含了直播间下注佣金)")
     private Double gameCommission;
 
+    @Excel(name = "直播间下注佣金")
+    @TableField(value = "live_betting_commission")
+    @ApiModelProperty(value = "直播间下注佣金")
+    private Double liveBettingCommission;
+
     @Excel(name = "创建时间")
     @TableField(value = "create_time")
     @ApiModelProperty(value = "创建时间")

+ 14 - 3
game-business/src/main/java/com/game/business/service/impl/AppUserAgentServiceImpl.java

@@ -260,15 +260,26 @@ public class AppUserAgentServiceImpl extends ServiceImpl<AppUserAgentMapper, App
                             //直播返点
                             e.setLiveCommission(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(AppUserCount::getLiveCommission).sum()).setScale(2, RoundingMode.HALF_UP).doubleValue());
                             //游戏返点
-                            e.setGameCommission(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(AppUserCount::getGameCommission).sum()).setScale(2, RoundingMode.HALF_UP).doubleValue());
+                            e.setGameCommission(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(j->
+                                {
+                                    return j.getGameCommission() - j.getLiveBettingCommission();
+                                }
+                            ).sum()).setScale(2, RoundingMode.HALF_UP).doubleValue());
+                            //直播间下注返点
+                            e.setLiveBettingCommission(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(j->
+                                {
+                                    return j.getLiveBettingCommission();
+                                }
+                            ).sum()).setScale(2, RoundingMode.HALF_UP).doubleValue());
                             //盈亏
                             e.setGameAmount(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(userCount -> {
                                 return ((userCount.getGameWinAmount() - (userCount.getGameBetting() - userCount.getGameLoseAmount()))
-                                        - userCount.getGameLoseAmount()) + userCount.getGameCommission() + userCount.getRechargeGive();
+                                        - userCount.getGameLoseAmount()) + userCount.getGameCommission() + userCount.getRechargeGive()
+                                        + userCount.getRechargeCommission() + userCount.getWithdrawalCommission();
                             }).sum()).setScale(2, RoundingMode.HALF_UP).doubleValue());
                             //充值金额(由于统计的金额是扣除了手续费并且加上赠送金额的值 故这么计算出原始充值金额)
                             e.setRechargeAmount(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(userCount -> {
-                                return userCount.getRechargeAmount() - userCount.getRechargeGive() + userCount.getRechargeCommission();
+                                return userCount.getRechargeAmount();
                             }).sum()).setScale(2, RoundingMode.HALF_UP).doubleValue());
                             //充值手续费
                             e.setRechargeCommission(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(AppUserCount::getRechargeCommission).sum()).setScale(2, RoundingMode.HALF_UP).doubleValue());

+ 6 - 0
game-business/src/main/java/com/game/business/service/impl/AppUserCountServiceImpl.java

@@ -128,6 +128,9 @@ public class AppUserCountServiceImpl extends ServiceImpl<AppUserCountMapper, App
                     if (appUserCount.getGameBetting() != null) {
                         appUserCount.setGameBetting(userCount.getGameBetting() + appUserCount.getGameBetting());
                     }
+                    if (appUserCount.getLiveBettingCommission() != null) {
+                        appUserCount.setLiveBettingCommission(userCount.getLiveBettingCommission() + appUserCount.getLiveBettingCommission());
+                    }
                 }
                 res = appUserCountMapper.updateById(appUserCount);
             }
@@ -265,6 +268,9 @@ public class AppUserCountServiceImpl extends ServiceImpl<AppUserCountMapper, App
                         }).mapToDouble(e -> e.getCommission()).sum());
                         setGameCache(gameRecordCountList);*/
                     appUserCount.setGameCommission(gameRate.getCommission());
+                    if(gameRate.getType().intValue() == 1){
+                        appUserCount.setLiveBettingCommission(gameRate.getCommission());
+                    }
 //                    }
                     //游戏下注金额 更新当前下注用户 (非金币)
                     if (userId.equals(appGameBetting.getUserId()) && appGameBetting.getBettingType().intValue() == 0) {

+ 5 - 1
game-business/src/main/java/com/game/business/task/AppUserCountTask.java

@@ -131,6 +131,8 @@ public class AppUserCountTask {
                     appUserCount.setGameBetting(gameBettingList.stream().filter(e->e.getUserId().equals(appUser.getUserid())).mapToDouble(AppGameBetting::getBettingAmount).sum());
                     //游戏佣金
                     appUserCount.setGameCommission(gameRecordCountList.stream().filter(e -> e.getUserId().equals(appUser.getUserid())).mapToDouble(e -> e.getCommission()).sum());
+                    //直播间下注佣金
+                    appUserCount.setGameCommission(gameRecordCountList.stream().filter(e -> e.getUserId().equals(appUser.getUserid()) && 1 == e.getType().intValue()).mapToDouble(e -> e.getCommission()).sum());
                     //游戏输
                     appUserCount.setGameLoseAmount(gameBettingList.stream().filter(
                             e -> e.getUserId().equals(appUser.getUserid()) && e.getIsWinning().intValue() == 2
@@ -419,6 +421,8 @@ public class AppUserCountTask {
                     }).sum();
                     //提现手续费
                     double withdrawalCommission = appUserCountList.stream().mapToDouble(e -> e.getWithdrawalCommission()).sum();
+                    //充值手续费
+                    double rechargeCommission = appUserCountList.stream().mapToDouble(e -> e.getRechargeCommission()).sum();
                     //游戏佣金
                     double gameCommission = appUserCountList.stream().mapToDouble(e -> e.getGameCommission()).sum();
                     //直播佣金
@@ -428,7 +432,7 @@ public class AppUserCountTask {
 
                     //计算分红金额 (输-赢)
 //                        double money = (loseAmount - winAmount) - withdrawalCommission - gameCommission - liveCommission;
-                    double money = (loseAmount - winAmount)  - gameCommission - rechargeGive;
+                    double money = (loseAmount - winAmount)  - gameCommission - rechargeGive - rechargeCommission - withdrawalCommission;
                     if (money > 0) {
                         //金额大于0 满足分红
                         double rate = userAgent.getDividendGuaranteeRate();

+ 3 - 0
game-business/src/main/java/com/game/business/vo/AppAgentTeamVo.java

@@ -40,6 +40,9 @@ public class AppAgentTeamVo {
     @ApiModelProperty(value = "游戏返点")
     private double gameCommission;
 
+    @ApiModelProperty(value = "直播间下注返点")
+    private double liveBettingCommission;
+
     @ApiModelProperty(value = "盈亏")
     private double gameAmount;
 

+ 3 - 0
game-business/src/main/java/com/game/business/vo/AppUserAgentJournalIndexVO.java

@@ -39,6 +39,9 @@ public class AppUserAgentJournalIndexVO {
     @ApiModelProperty(value = "团队充值手续费")
     private double rechargeCommission = 0;
 
+    @ApiModelProperty(value = "团队提现手续费")
+    private double withdrawalCommission = 0;
+
     @ApiModelProperty(value = "团队人数")
     private int teamUser = 0;
 

+ 3 - 2
game-business/src/main/resources/mapper/business/AppUserAgentMapper.xml

@@ -190,9 +190,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             a.pid as pid,
             IFNULL((LENGTH(a.subset) - LENGTH(REPLACE(a.subset, ',', ''))) + 1,0) as teamNum,
             IFNULL(sum(b.game_betting),0) as bettingAmount,
-            IFNULL(sum(b.game_commission),0) as gameCommission,
+            IFNULL(sum(b.game_commission - b.live_betting_commission),0) as gameCommission,
+            IFNULL(sum(b.live_betting_commission),0) as liveBettingCommission,
             IFNULL(sum(b.live_commission),0) as liveCommission,
-            IFNULL(sum((b.game_win_amount - (b.game_betting - b.game_lose_amount)) - b.game_lose_amount + b.game_commission + b.recharge_give),0) as gameAmount,
+            IFNULL(sum((b.game_win_amount - (b.game_betting - b.game_lose_amount)) - b.game_lose_amount + b.game_commission + b.recharge_give + b.recharge_commission +  b.withdrawal_commission),0) as gameAmount,
             IFNULL(sum(b.recharge_amount),0) as rechargeAmount,
             IFNULL(sum(b.recharge_commission),0) as rechargeCommission,
             IFNULL(sum(b.recharge_give),0) as rechargeGive,