dos 1 bulan lalu
induk
melakukan
20336d8997

+ 113 - 97
game-business/src/main/java/com/game/business/controller/AppUserCountDividendController.java

@@ -23,6 +23,7 @@ import com.game.common.core.domain.HttpRet;
 import com.game.common.core.domain.HttpRetPageArr;
 import com.game.common.core.domain.R;
 import com.game.common.core.redis.RedisCache;
+import com.game.common.exception.ServiceException;
 import com.game.common.utils.MoneyUtils;
 import com.game.common.utils.SecurityUtils;
 import com.game.common.utils.StringUtils;
@@ -79,7 +80,7 @@ public class AppUserCountDividendController extends BaseController
     public HttpRetPageArr<AppUserCountDividend> list(AppUserDividendListDto dto)
     {
         startPage();
-        List<AppUserCountDividend> list = appUserCountDividendService.selectUserDividendList(SecurityUtils.getUserId());
+        List<AppUserCountDividend> list = appUserCountDividendService.selectUserDividendList(SecurityUtils.getUserId(),null,null);
         return HttpRetPageArr.success("查询成功", getDataTable(list));
     }
 
@@ -98,119 +99,134 @@ public class AppUserCountDividendController extends BaseController
         if(null == userId && StringUtils.isBlank(dateNo)){
             return HttpRet.fail("发放失败,参数为空");
         }
-        LambdaQueryWrapper<AppUserCountDividend> queryWrapper = new LambdaQueryWrapper<>();
-        if(StringUtils.isNotBlank(dateNo)){
-            queryWrapper.eq(AppUserCountDividend::getDateNo,dateNo);
-        }
-        if(null != userId){
-            queryWrapper.eq(AppUserCountDividend::getUserId,userId);
-        }
-        queryWrapper.eq(AppUserCountDividend::getStatus,0);
-        List<AppUserCountDividend> dividendList = appUserCountDividendService.list(queryWrapper);
+        List<AppUserCountDividend> dividendList = appUserCountDividendService.selectUserDividendList(SecurityUtils.getUserId(), org.apache.commons.lang3.StringUtils.isBlank(userId)?null:Long.parseLong(userId),dateNo);
         if(null == dividendList || dividendList.size() < 1){
             return HttpRet.fail("发放失败,不存在或已发放");
         }
-        AppUser curUser = appUserService.selectAppUserByUserid(curUserId);
+        /*AppUser curUser = appUserService.selectAppUserByUserid(curUserId);
         if(curUser.getDiamondCoin() < dividendList.stream().mapToDouble(e->e.getDiamondCoin()).sum()){
             return HttpRet.fail("发放失败,余额不足");
         }
         if(curUser.getCoin() < dividendList.stream().mapToDouble(e->e.getCoin()).sum()){
             return HttpRet.fail("发放失败,金币不足");
-        }
+        }*/
         //开始发放
         List<Long> ids = dividendList.stream().map(AppUserCountDividend::getUserId).collect(Collectors.toList());
         List<AppUser> userList = appUserService.selectListByIds(ids);
         if(null != userList && userList.size()>0) {
             Map<String, AppUser> userMap = userList.stream().collect(Collectors.toMap(e -> String.valueOf(e.getUserid()), Function.identity(), (k1, k2) -> k2));
-            dividendList.forEach(e->{
-                List<FinTranRecord> tranRecordList = new ArrayList<>();
-                AppUser appUser = userMap.get(String.valueOf(e.getUserId()));
-                /*AppUser updateAppUser = new AppUser();
-                AppUser curUpdateAppUser = new AppUser();//当前用户*/
-//                updateAppUser.setUserid(appUser.getUserid());
-                if(null != e.getDiamondCoin() && e.getDiamondCoin()>0){
-                    //扣减发放用户
-                    /*curUser.setDiamondCoinCash(curUser.getDiamondCoinCash() - MoneyUtils.consumeCash(curUser.getDiamondCoin(),curUser.getDiamondCoinCash(),e.getDiamondCoin()));
-                    curUser.setDiamondCoin(curUser.getDiamondCoin() - e.getDiamondCoin());
-                    curUser.setDiamondCoinTotal(curUser.getDiamondCoinTotal() - e.getDiamondCoin());
-                    curUpdateAppUser.setUserid(curUser.getUserid());
-                    curUpdateAppUser.setDiamondCoinCash(curUser.getDiamondCoinCash());
-                    curUpdateAppUser.setDiamondCoin(curUser.getDiamondCoin());
-                    curUpdateAppUser.setDiamondCoinTotal(curUser.getDiamondCoinTotal());*/
-                    //发放用户扣减流水
-                    FinTranAddedInfo curAddedInfo = FinTranAddedInfo.createTranInfo(appUser.getUserid(), 0, 0, AppSceneType.Scene_None, "");
-                    FinTranRecord curTran = FinTranRecord.initFinTranRecordSomeParams(curAddedInfo, FinTranType3.AGENT_DIVIDED, FinTranType1.U_Outcome_Balance, curUser);
-                    curTran.setDiamondCoinChange(e.getDiamondCoin() * -1);
-//                    curTran.setAfterDiamondCoin(curUser.getDiamondCoin());
-                    curTran.setCurrencyType(TranCurrencyType.Balance.getType());
-                    curTran.setRemarks(e.getDateNo() + " 发放团队分红奖励");
-                    curTran.setFromUid(curUserId);
-                    tranRecordList.add(curTran);
-
-                    //受益用户
-                    /*updateAppUser.setDiamondCoin(appUser.getDiamondCoin() + e.getDiamondCoin());
-                    updateAppUser.setDiamondCoinTotal(appUser.getDiamondCoinTotal() + e.getDiamondCoin());
-                    updateAppUser.setDiamondCoinCash(appUser.getDiamondCoinCash() + e.getDiamondCoin());*/
-                    //流水 余额
-                    FinTranAddedInfo addedInfo = FinTranAddedInfo.createTranInfo(appUser.getUserid(), 0, 0, AppSceneType.Scene_None, "");
-                    FinTranRecord tran = FinTranRecord.initFinTranRecordSomeParams(addedInfo, FinTranType3.AGENT_DIVIDED, FinTranType1.Agent_Income_Diamond_Coin, appUser);
-                    tran.setDiamondCoinChange(e.getDiamondCoin());
-                    tran.setAfterDiamondCoin(appUser.getDiamondCoin() + e.getDiamondCoin());
-                    tran.setCurrencyType(TranCurrencyType.Balance.getType());
-                    tran.setRemarks(e.getDateNo() + " 团队周分红奖励");
-                    tran.setFromUid(curUserId);
-                    tranRecordList.add(tran);
-                }
-                if(null != e.getCoin() && e.getCoin()>0){
-                    //扣减发放用户
-                    /*curUser.setCoinCash(curUser.getCoinCash() - MoneyUtils.consumeCash(curUser.getCoin(),curUser.getCoinCash(),e.getCoin()));
-                    curUser.setCoin(curUser.getCoin() - e.getCoin());
-                    curUpdateAppUser.setUserid(curUser.getUserid());
-                    curUpdateAppUser.setCoinCash(curUser.getCoinCash());
-                    curUpdateAppUser.setCoin(curUser.getCoin());*/
-                    //发放用户扣减流水
-                    FinTranAddedInfo curAddedInfo = FinTranAddedInfo.createTranInfo(appUser.getUserid(), 0, 0, AppSceneType.Scene_None, "");
-                    FinTranRecord curTran = FinTranRecord.initFinTranRecordSomeParams(curAddedInfo, FinTranType3.AGENT_DIVIDED, FinTranType1.U_Outcome_Coin, curUser);
-                    curTran.setDiamondCoinChange(e.getDiamondCoin() * -1);
-//                    curTran.setAfterCoin(curUser.getCoin());
-                    curTran.setCurrencyType(TranCurrencyType.Coin.getType());
-                    curTran.setRemarks(e.getDateNo() + " 发放团队分红奖励");
-                    curTran.setFromUid(curUserId);
-                    tranRecordList.add(curTran);
+            String errMsg = "";
+            for(AppUserCountDividend countDividend : dividendList){
+                Long errUserId = countDividend.getUserId();
+                try {
+                    List<FinTranRecord> tranRecordList = new ArrayList<>();
+                    AppUser appUser = userMap.get(countDividend.getUserId());
+                    AppUser curUser = appUserService.selectAppUserByUserid(curUserId);
+                    if(!curUserId.equals(appUser.getPid())){
+                        throw new ServiceException("只能给直属团队成员发放");
+                    }
+                    /*AppUser updateAppUser = new AppUser();
+                    AppUser curUpdateAppUser = new AppUser();//当前用户*/
+                    //                updateAppUser.setUserid(appUser.getUserid());
+                    if (null != countDividend.getDiamondCoin() && countDividend.getDiamondCoin() > 0) {
+                        if(null != countDividend.getDiamondCoin() && appUser.getDiamondCoin() < countDividend.getDiamondCoin()){
+                            throw new ServiceException("余额不足");
+                        }
+                        //扣减发放用户
+                        /*curUser.setDiamondCoinCash(curUser.getDiamondCoinCash() - MoneyUtils.consumeCash(curUser.getDiamondCoin(),curUser.getDiamondCoinCash(),e.getDiamondCoin()));
+                        curUser.setDiamondCoin(curUser.getDiamondCoin() - e.getDiamondCoin());
+                        curUser.setDiamondCoinTotal(curUser.getDiamondCoinTotal() - e.getDiamondCoin());
+                        curUpdateAppUser.setUserid(curUser.getUserid());
+                        curUpdateAppUser.setDiamondCoinCash(curUser.getDiamondCoinCash());
+                        curUpdateAppUser.setDiamondCoin(curUser.getDiamondCoin());
+                        curUpdateAppUser.setDiamondCoinTotal(curUser.getDiamondCoinTotal());*/
+                        //发放用户扣减流水
+                        FinTranAddedInfo curAddedInfo = FinTranAddedInfo.createTranInfo(appUser.getUserid(), 0, 0, AppSceneType.Scene_None, "");
+                        FinTranRecord curTran = FinTranRecord.initFinTranRecordSomeParams(curAddedInfo, FinTranType3.AGENT_DIVIDED, FinTranType1.U_Outcome_Balance, curUser);
+                        curTran.setDiamondCoinChange(countDividend.getDiamondCoin() * -1);
+                        //                    curTran.setAfterDiamondCoin(curUser.getDiamondCoin());
+                        curTran.setCurrencyType(TranCurrencyType.Balance.getType());
+                        curTran.setRemarks(countDividend.getDateNo() + " 发放团队分红奖励");
+                        curTran.setFromUid(curUserId);
+                        tranRecordList.add(curTran);
 
-//                    updateAppUser.setCoin(appUser.getDiamondCoin() + e.getDiamondCoin());
-                    //流水 余额
-                    FinTranAddedInfo addedInfo = FinTranAddedInfo.createTranInfo(appUser.getUserid(), 0, 0, AppSceneType.Scene_None, "");
-                    FinTranRecord tran = FinTranRecord.initFinTranRecordSomeParams(addedInfo, FinTranType3.AGENT_DIVIDED, FinTranType1.Agent_Income_Coin, appUser);
-                    tran.setDiamondCoinChange(e.getDiamondCoin());
-//                    tran.setAfterDiamondCoin(appUser.getDiamondCoin() + e.getDiamondCoin());
-                    tran.setCurrencyType(TranCurrencyType.Coin.getType());
-                    tran.setRemarks(e.getDateNo() + " 团队周分红奖励");
-                    tran.setFromUid(curUserId);
-                    tranRecordList.add(tran);
-                }
-                /*appUserService.updateAppUser(updateAppUser);
-                appUserService.updateAppUser(curUpdateAppUser);*/
-                //清除用户缓存
-//                redisCache.deleteObject("U:UserInfo:".concat(String.valueOf(appUser.getUserid())));
-                if(tranRecordList.size() > 0){
-                    /*tranRecordList.forEach(t->{
-//                        finTranRecordService.insertFinTranRecord(t);
-                        appUserService.updateUserAmount(t);
-                    });*/
-                    for(FinTranRecord finTranRecord :tranRecordList){
-                        try {
-                            appUserService.updateUserAmount(finTranRecord);
-                        } catch (Exception ex) {
-                            throw new RuntimeException(ex);
+                        //受益用户
+                        /*updateAppUser.setDiamondCoin(appUser.getDiamondCoin() + e.getDiamondCoin());
+                        updateAppUser.setDiamondCoinTotal(appUser.getDiamondCoinTotal() + e.getDiamondCoin());
+                        updateAppUser.setDiamondCoinCash(appUser.getDiamondCoinCash() + e.getDiamondCoin());*/
+                        //流水 余额
+                        FinTranAddedInfo addedInfo = FinTranAddedInfo.createTranInfo(appUser.getUserid(), 0, 0, AppSceneType.Scene_None, "");
+                        FinTranRecord tran = FinTranRecord.initFinTranRecordSomeParams(addedInfo, FinTranType3.AGENT_DIVIDED, FinTranType1.Agent_Income_Diamond_Coin, appUser);
+                        tran.setDiamondCoinChange(countDividend.getDiamondCoin());
+                        tran.setAfterDiamondCoin(appUser.getDiamondCoin() + countDividend.getDiamondCoin());
+                        tran.setCurrencyType(TranCurrencyType.Balance.getType());
+                        tran.setRemarks(countDividend.getDateNo() + " 团队周分红奖励");
+                        tran.setFromUid(curUserId);
+                        //                    tranRecordList.add(tran);
+                        appUserService.updateUserAmount(tran);
+                    }
+                    if (null != countDividend.getCoin() && countDividend.getCoin() > 0) {
+                        if(null != countDividend.getCoin() && appUser.getCoin() < countDividend.getCoin()){
+                            throw new ServiceException("金币不足");
                         }
+                        //扣减发放用户
+                        /*curUser.setCoinCash(curUser.getCoinCash() - MoneyUtils.consumeCash(curUser.getCoin(),curUser.getCoinCash(),e.getCoin()));
+                        curUser.setCoin(curUser.getCoin() - e.getCoin());
+                        curUpdateAppUser.setUserid(curUser.getUserid());
+                        curUpdateAppUser.setCoinCash(curUser.getCoinCash());
+                        curUpdateAppUser.setCoin(curUser.getCoin());*/
+                        //发放用户扣减流水
+                        FinTranAddedInfo curAddedInfo = FinTranAddedInfo.createTranInfo(appUser.getUserid(), 0, 0, AppSceneType.Scene_None, "");
+                        FinTranRecord curTran = FinTranRecord.initFinTranRecordSomeParams(curAddedInfo, FinTranType3.AGENT_DIVIDED, FinTranType1.U_Outcome_Coin, curUser);
+                        curTran.setDiamondCoinChange(countDividend.getDiamondCoin() * -1);
+                        //                    curTran.setAfterCoin(curUser.getCoin());
+                        curTran.setCurrencyType(TranCurrencyType.Coin.getType());
+                        curTran.setRemarks(countDividend.getDateNo() + " 发放团队分红奖励");
+                        curTran.setFromUid(curUserId);
+                        tranRecordList.add(curTran);
+
+                        //                    updateAppUser.setCoin(appUser.getDiamondCoin() + e.getDiamondCoin());
+                        //流水 余额
+                        FinTranAddedInfo addedInfo = FinTranAddedInfo.createTranInfo(appUser.getUserid(), 0, 0, AppSceneType.Scene_None, "");
+                        FinTranRecord tran = FinTranRecord.initFinTranRecordSomeParams(addedInfo, FinTranType3.AGENT_DIVIDED, FinTranType1.Agent_Income_Coin, appUser);
+                        tran.setDiamondCoinChange(countDividend.getDiamondCoin());
+                        //                    tran.setAfterDiamondCoin(appUser.getDiamondCoin() + e.getDiamondCoin());
+                        tran.setCurrencyType(TranCurrencyType.Coin.getType());
+                        tran.setRemarks(countDividend.getDateNo() + " 团队周分红奖励");
+                        tran.setFromUid(curUserId);
+                        appUserService.updateUserAmount(tran);
+                        //                    tranRecordList.add(tran);
                     }
+                    /*appUserService.updateAppUser(updateAppUser);
+                    appUserService.updateAppUser(curUpdateAppUser);*/
+                    //清除用户缓存
+                    //                redisCache.deleteObject("U:UserInfo:".concat(String.valueOf(appUser.getUserid())));
+                    /*if(tranRecordList.size() > 0){
+                     *//*tranRecordList.forEach(t->{
+    //                        finTranRecordService.insertFinTranRecord(t);
+                            appUserService.updateUserAmount(t);
+                        });*//*
+                        for(FinTranRecord finTranRecord :tranRecordList){
+                            try {
+                                appUserService.updateUserAmount(finTranRecord);
+                            } catch (Exception ex) {
+                                throw new RuntimeException(ex);
+                            }
+                        }
+                    }*/
+                    AppUserCountDividend userCountDividend = new AppUserCountDividend();
+                    userCountDividend.setId(countDividend.getId());
+                    userCountDividend.setStatus(1);
+                    appUserCountDividendService.updateAppUserCountDividend(userCountDividend);
+                }catch (Exception ex){
+                    errMsg = "发放失败:".concat(ex.getMessage());
+                    logger.info("{}发放失败:{}",errUserId,ex.getMessage());
+                    break;
                 }
-                AppUserCountDividend userCountDividend = new AppUserCountDividend();
-                userCountDividend.setId(e.getId());
-                userCountDividend.setStatus(1);
-                appUserCountDividendService.updateAppUserCountDividend(userCountDividend);
-            });
+            }
+            if(StringUtils.isNotBlank(errMsg)){
+                return HttpRet.fail(errMsg);
+            }
         }
         return HttpRet.success("发放成功",true);
         /*

+ 1 - 1
game-business/src/main/java/com/game/business/mapper/AppUserCountDividendMapper.java

@@ -64,5 +64,5 @@ public interface AppUserCountDividendMapper extends BaseMapper<AppUserCountDivid
      * 查询用户团队分红列表
      *
      * */
-    public List<AppUserCountDividend> selectUserDividendList(@Param("pid") Long pid);
+    public List<AppUserCountDividend> selectUserDividendList(@Param("pid") Long pid,@Param("userId") Long userId,@Param("dateNum")String dateNum);
 }

+ 2 - 1
game-business/src/main/java/com/game/business/service/IAppUserCountDividendService.java

@@ -63,7 +63,7 @@ public interface IAppUserCountDividendService extends IService<AppUserCountDivid
     /**
      * 查询团队分红
      * */
-    public List<AppUserCountDividend> selectUserDividendList(Long userId);
+    public List<AppUserCountDividend> selectUserDividendList(Long pid,Long userId,String dateNum);
 
     /**
      * 发放分红
@@ -74,4 +74,5 @@ public interface IAppUserCountDividendService extends IService<AppUserCountDivid
      * 重载团队盈亏缓存
      * */
     public void reloadCache(String dateTime,List<Long> userIds);
+
 }

+ 41 - 39
game-business/src/main/java/com/game/business/service/impl/AppUserAgentServiceImpl.java

@@ -224,45 +224,47 @@ public class AppUserAgentServiceImpl extends ServiceImpl<AppUserAgentMapper, App
                             return gameCommission;
                         }).collect(Collectors.toList()));
                     }
-                    //统计整条线用户数据
-                    /*List<AppUserCount> appUserCountList = appUserCountService.getAppUserCountNew(e.getUserId(), teamDto.getBeginTime(),teamDto.getEndTime());
-                    if(null != appUserCountList && appUserCountList.size() > 0) {
-                        DecimalFormat df = new DecimalFormat("#.##");
-                        //下注金额
-                        e.setBettingAmount(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(AppUserCount::getGameBetting).sum()).setScale(2, RoundingMode.HALF_UP).doubleValue());
-                        //直播返点
-                        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.setGameAmount(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(userCount->{
-                            return ((userCount.getGameWinAmount() - (userCount.getGameBetting() - userCount.getGameLoseAmount()))
-                                    - userCount.getGameLoseAmount()) + userCount.getGameCommission() + userCount.getRechargeGive();
-                        }).sum()).setScale(2, RoundingMode.HALF_UP).doubleValue());
-                        //充值金额(由于统计的金额是扣除了手续费并且加上赠送金额的值 故这么计算出原始充值金额)
-                        e.setRechargeAmount(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(userCount->{
-                            return userCount.getRechargeAmount() - userCount.getRechargeGive() + userCount.getRechargeCommission();
-                        }).sum()).setScale(2, RoundingMode.HALF_UP).doubleValue());
-                        //充值手续费
-                        e.setRechargeCommission(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(AppUserCount::getRechargeCommission).sum()).setScale(2, RoundingMode.HALF_UP).doubleValue());
-                        //充值赠送金额
-                        e.setRechargeGive(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(AppUserCount::getRechargeGive).sum()).setScale(2, RoundingMode.HALF_UP).doubleValue());
-                    }else{
-                        //下注金额
-                        e.setBettingAmount(0.00);
-                        //直播返点
-                        e.setLiveCommission(0.00);
-                        //游戏返点
-                        e.setGameCommission(0.00);
-                        //盈亏
-                        e.setGameAmount(0.00);
-                        //充值金额(由于统计的金额是扣除了手续费并且加上赠送金额的值 故这么计算出原始充值金额)
-                        e.setRechargeAmount(0.00);
-                        //充值手续费
-                        e.setRechargeCommission(0.00);
-                        //充值赠送金额
-                        e.setRechargeGive(0.00);
-                    }*/
+                    if(!teamDto.getPid().equals(e.getUserId())) {
+                        //非当前用户则统计整条线用户数据
+                        List<AppUserCount> appUserCountList = appUserCountService.getAppUserCountNew(e.getUserId(), teamDto.getBeginTime(), teamDto.getEndTime());
+                        if (null != appUserCountList && appUserCountList.size() > 0) {
+                            DecimalFormat df = new DecimalFormat("#.##");
+                            //下注金额
+                            e.setBettingAmount(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(AppUserCount::getGameBetting).sum()).setScale(2, RoundingMode.HALF_UP).doubleValue());
+                            //直播返点
+                            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.setGameAmount(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(userCount -> {
+                                return ((userCount.getGameWinAmount() - (userCount.getGameBetting() - userCount.getGameLoseAmount()))
+                                        - userCount.getGameLoseAmount()) + userCount.getGameCommission() + userCount.getRechargeGive();
+                            }).sum()).setScale(2, RoundingMode.HALF_UP).doubleValue());
+                            //充值金额(由于统计的金额是扣除了手续费并且加上赠送金额的值 故这么计算出原始充值金额)
+                            e.setRechargeAmount(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(userCount -> {
+                                return userCount.getRechargeAmount() - userCount.getRechargeGive() + userCount.getRechargeCommission();
+                            }).sum()).setScale(2, RoundingMode.HALF_UP).doubleValue());
+                            //充值手续费
+                            e.setRechargeCommission(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(AppUserCount::getRechargeCommission).sum()).setScale(2, RoundingMode.HALF_UP).doubleValue());
+                            //充值赠送金额
+                            e.setRechargeGive(BigDecimal.valueOf(appUserCountList.stream().mapToDouble(AppUserCount::getRechargeGive).sum()).setScale(2, RoundingMode.HALF_UP).doubleValue());
+                        } else {
+                            //下注金额
+                            e.setBettingAmount(0.00);
+                            //直播返点
+                            e.setLiveCommission(0.00);
+                            //游戏返点
+                            e.setGameCommission(0.00);
+                            //盈亏
+                            e.setGameAmount(0.00);
+                            //充值金额(由于统计的金额是扣除了手续费并且加上赠送金额的值 故这么计算出原始充值金额)
+                            e.setRechargeAmount(0.00);
+                            //充值手续费
+                            e.setRechargeCommission(0.00);
+                            //充值赠送金额
+                            e.setRechargeGive(0.00);
+                        }
+                    }
                 });
             }
         }

+ 2 - 2
game-business/src/main/java/com/game/business/service/impl/AppUserCountDividendServiceImpl.java

@@ -138,8 +138,8 @@ public class AppUserCountDividendServiceImpl extends ServiceImpl<AppUserCountDiv
     }
 
     @Override
-    public List<AppUserCountDividend> selectUserDividendList(Long userId) {
-        List<AppUserCountDividend> dividendList = appUserCountDividendMapper.selectUserDividendList(userId);
+    public List<AppUserCountDividend> selectUserDividendList(Long pid,Long userId,String dateNum) {
+        List<AppUserCountDividend> dividendList = appUserCountDividendMapper.selectUserDividendList(pid,userId,dateNum);
         if(null != dividendList && dividendList.size()>0){
             List<Long> ids = dividendList.stream().map(AppUserCountDividend::getUserId).collect(Collectors.toList());
             List<AppUser> userList = appUserService.selectListByIds(ids);

+ 6 - 0
game-business/src/main/resources/mapper/business/AppUserCountDividendMapper.xml

@@ -101,5 +101,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectUserDividendList" resultMap="AppUserCountDividendResult">
         select a.* from app_user_count_dividend as a inner join app_user_agent as b on a.user_id = b.user_id
         where b.pid = #{pid}
+        <if test="userId != null">
+            and a.user_id = #{userId}
+        </if>
+        <if test="dateNum != null and dateNum != ''">
+            and a.date_no = #{dateNum}
+        </if>
     </select>
 </mapper>

+ 9 - 8
game-common/src/main/java/com/game/common/utils/MoneyUtils.java

@@ -32,20 +32,21 @@ public class MoneyUtils {
      * 计算需要扣除多少提现金额
      * */
     public static double consumeCash(double coin,double coinCash,double consumeUserCoin) {
+        if(consumeUserCoin > 0){
+            return consumeUserCoin; //非扣款则添加
+        }
         if(coinCash < 1){
             return 0;
         }
-        boolean flag = false;
-        if(consumeUserCoin < 0){
-            consumeUserCoin = consumeUserCoin * -1; //转为为正数
-            flag = true;
-        }
+//        if(consumeUserCoin < 0){
+        consumeUserCoin = consumeUserCoin * -1; //转为为正数
+//        }
         if(coin - coinCash == 0){
-            return consumeUserCoin;
+            return consumeUserCoin; //可提现等于总额则同步扣除
         }else if(coinCash < consumeUserCoin){
             return coinCash; //提现余额不足抵扣 则全扣除
         }
-        double res = consumeUserCoin - (coinCash - coin);
-        return flag?res*-1:res;
+        double res = consumeUserCoin - (coin - coinCash);
+        return res*-1; //转回负数
     }
 }