Selaa lähdekoodia

Merge branch 'master' of http://148.66.10.10:3000/kk/game

kk 3 kuukautta sitten
vanhempi
commit
ab7bf377ca

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

@@ -57,7 +57,7 @@ public class AppUserCountDividendController extends BaseController
     }
 
     /**
-     * 查询用户代理分红列表
+     * 发放分红
      */
     @GetMapping("/send")
     @ApiOperation(value = "发放分红", notes = "发放分红")

+ 5 - 0
game-business/src/main/java/com/game/business/service/IAppGameBettingService.java

@@ -17,4 +17,9 @@ public interface IAppGameBettingService extends IService<AppGameBetting> {
     List<AppGameBettingDetailsCountVO> getCount(String strDate, Long userId);
 
     List<AppGameBetting> selectListByGameId(Long gameId, Long userId, Integer isWinning, String strDate);
+
+    /**
+     * 根据日期查询投注情况
+     * */
+    List<AppGameBetting> selectListByDate( Long userId, String beginTime, String endTime);
 }

+ 2 - 0
game-business/src/main/java/com/game/business/service/IAppUserCountService.java

@@ -10,4 +10,6 @@ public interface IAppUserCountService extends IService<AppUserCount> {
 
     public List<AppUserCount> getAppUserCount(long userId,String beginTime,String endTIme);
 
+    public int createAppUserCount(AppUserCount appUserCount);
+
 }

+ 8 - 0
game-business/src/main/java/com/game/business/service/IAppUserGameRecordCountService.java

@@ -3,5 +3,13 @@ package com.game.business.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.game.business.domain.AppUserGameRecordCount;
 
+import java.util.List;
+
 public interface IAppUserGameRecordCountService extends IService<AppUserGameRecordCount> {
+
+    /**
+     * 根据日期查询用户当日统计情况
+     * */
+    public List<AppUserGameRecordCount> selectByDate(Long userId, String startDate, String endDate);
+
 }

+ 5 - 0
game-business/src/main/java/com/game/business/service/IAppUserLiveDividedRecordService.java

@@ -58,4 +58,9 @@ public interface IAppUserLiveDividedRecordService extends IService<AppUserLiveDi
      * @return 结果
      */
     public int deleteAppUserLiveDividedRecordById(Long id);
+
+    /**
+     * 查询用户指定时间直播分佣记录
+     * */
+    public List<AppUserLiveDividedRecord> selectByDate(Long userId,String beginDate,String endDate);
 }

+ 18 - 0
game-business/src/main/java/com/game/business/service/impl/AppGameBettingServiceImpl.java

@@ -11,6 +11,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
 import java.util.List;
 
 @Service
@@ -60,4 +61,21 @@ public class AppGameBettingServiceImpl extends ServiceImpl<AppGameBettingMapper,
         queryWrapper.orderByDesc(AppGameBetting::getCreateTime);
         return appGameBettingMapper.selectList(queryWrapper);
     }
+
+    @Override
+    public List<AppGameBetting> selectListByDate(Long userId, String beginTime, String endTime) {
+        LambdaQueryWrapper<AppGameBetting> queryWrapper = Wrappers.lambdaQuery();;
+        queryWrapper.ne(AppGameBetting::getIsWinning,0);//查询已开奖
+        queryWrapper.eq(AppGameBetting::getBettingType,0);
+        if(null != userId){
+            queryWrapper.eq(AppGameBetting::getUserId,userId);
+        }
+        if(StringUtils.isNotBlank(beginTime)){
+            queryWrapper.ge(AppGameBetting::getUpdateTime,beginTime);
+        }
+        if(StringUtils.isNotBlank(endTime)){
+            queryWrapper.le(AppGameBetting::getUpdateTime,endTime);
+        }
+        return appGameBettingMapper.selectList(queryWrapper);
+    }
 }

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

@@ -23,6 +23,7 @@ import com.game.common.core.domain.HttpRet;
 import com.game.common.utils.DateUtils;
 import com.game.common.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import com.game.business.mapper.AppUserCountDividendMapper;
 import com.game.business.domain.AppUserCountDividend;
@@ -75,9 +76,24 @@ public class AppUserCountDividendServiceImpl extends ServiceImpl<AppUserCountDiv
      * @return 结果
      */
     @Override
+    @Async
     public int insertAppUserCountDividend(AppUserCountDividend appUserCountDividend) {
                 appUserCountDividend.setCreateTime(DateUtils.getNowDate());
-            return appUserCountDividendMapper.insertAppUserCountDividend(appUserCountDividend);
+          LambdaQueryWrapper<AppUserCountDividend> queryWrapper = new LambdaQueryWrapper<>();
+          queryWrapper.eq(AppUserCountDividend::getUserId, appUserCountDividend.getUserId());
+          queryWrapper.eq(AppUserCountDividend::getDateNo, appUserCountDividend.getDateNo());
+          AppUserCountDividend userCountDividend = appUserCountDividendMapper.selectOne(queryWrapper);
+          if (userCountDividend == null) {
+              appUserCountDividend.setCreateTime(DateUtils.getNowDate());
+              appUserCountDividendMapper.insert(appUserCountDividend);
+          }else if(userCountDividend.getStatus().intValue() == 0){
+              appUserCountDividend.setUpdateTime(DateUtils.getNowDate());
+              appUserCountDividend.setId(appUserCountDividend.getId());
+              appUserCountDividendMapper.updateById(appUserCountDividend);
+          }else{
+              log.warn("当前用户已发放分红,无法更新未发放");
+          }
+          return appUserCountDividendMapper.insertAppUserCountDividend(appUserCountDividend);
     }
 
     /**
@@ -164,6 +180,7 @@ public class AppUserCountDividendServiceImpl extends ServiceImpl<AppUserCountDiv
                 if(null != e.getDiamondCoin() && e.getDiamondCoin()>0){
                     updateAppUser.setDiamondCoin(appUser.getDiamondCoin() + e.getDiamondCoin());
                     updateAppUser.setDiamondCoinTotal(appUser.getDiamondCoinTotal() + e.getDiamondCoin());
+                    updateAppUser.setDiamondCoinCash(updateAppUser.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);

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

@@ -6,6 +6,7 @@ import com.game.business.domain.AppUserCount;
 import com.game.business.mapper.AppUserCountMapper;
 import com.game.business.service.IAppUserCountService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import java.util.Collections;
@@ -25,4 +26,22 @@ public class AppUserCountServiceImpl extends ServiceImpl<AppUserCountMapper, App
         return appUserCountMapper.selectList(queryWrapper);
     }
 
+    @Override
+    @Async
+    public int createAppUserCount(AppUserCount appUserCount) {
+        //查询当前用户当日是否已经生成记录
+        LambdaQueryWrapper<AppUserCount> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(AppUserCount::getStrDate,appUserCount.getStrDate());
+        queryWrapper.eq(AppUserCount::getUserId,appUserCount.getUserId());
+        AppUserCount userCount = appUserCountMapper.selectOne(queryWrapper);
+        int res = 0;
+        if(userCount==null) {
+            res = appUserCountMapper.insert(appUserCount);
+        }else{
+            appUserCount.setId(userCount.getId());
+            res = appUserCountMapper.updateById(appUserCount);
+        }
+        return res;
+    }
+
 }

+ 27 - 0
game-business/src/main/java/com/game/business/service/impl/AppUserGameRecordCountServiceImpl.java

@@ -1,11 +1,38 @@
 package com.game.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.game.business.domain.AppUserGameRecordCount;
 import com.game.business.mapper.AppUserGameRecordCountMapper;
 import com.game.business.service.IAppUserGameRecordCountService;
+import com.game.business.util.StringUtils;
+import com.game.common.annotation.DataSource;
+import com.game.common.enums.DataSourceType;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
+import java.util.List;
+
 @Service
 public class AppUserGameRecordCountServiceImpl extends ServiceImpl<AppUserGameRecordCountMapper, AppUserGameRecordCount> implements IAppUserGameRecordCountService {
+
+    @Autowired
+    private AppUserGameRecordCountMapper appUserGameRecordCountMapper;
+
+    @Override
+    public List<AppUserGameRecordCount> selectByDate(Long userId, String startDate, String endDate) {
+        LambdaQueryWrapper<AppUserGameRecordCount> queryWrapper = new LambdaQueryWrapper<>();
+        if(null != userId){
+            queryWrapper.eq(AppUserGameRecordCount::getUserId, userId);
+        }
+        if(StringUtils.isNotBlank(startDate)){
+            queryWrapper.ge(AppUserGameRecordCount::getCreateTime, startDate);
+        }
+        if(StringUtils.isNotBlank(endDate)){
+            queryWrapper.le(AppUserGameRecordCount::getCreateTime, endDate);
+        }
+        return appUserGameRecordCountMapper.selectList(queryWrapper);
+    }
+
 }

+ 20 - 0
game-business/src/main/java/com/game/business/service/impl/AppUserLiveDividedRecordServiceImpl.java

@@ -1,8 +1,12 @@
 package com.game.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.util.Collections;
 import java.util.List;
         import com.game.common.utils.DateUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.game.business.mapper.AppUserLiveDividedRecordMapper;
@@ -94,4 +98,20 @@ public class AppUserLiveDividedRecordServiceImpl extends ServiceImpl<AppUserLive
     public int deleteAppUserLiveDividedRecordById(Long id) {
         return appUserLiveDividedRecordMapper.deleteAppUserLiveDividedRecordById(id);
     }
+
+    @Override
+    @DataSource(DataSourceType.SLAVE)
+    public List<AppUserLiveDividedRecord> selectByDate(Long userId, String beginDate, String endDate) {
+        LambdaQueryWrapper<AppUserLiveDividedRecord> queryWrapper = new LambdaQueryWrapper<>();
+        if(null != userId && !"".equals(userId)) {
+            queryWrapper.eq(AppUserLiveDividedRecord::getUserId, userId);
+        }
+        if(StringUtils.isNotBlank(beginDate)){
+            queryWrapper.ge(AppUserLiveDividedRecord::getCreateTime, beginDate);
+        }
+        if(StringUtils.isNotBlank(endDate)){
+            queryWrapper.le(AppUserLiveDividedRecord::getCreateTime,endDate);
+        }
+        return appUserLiveDividedRecordMapper.selectList(queryWrapper);
+    }
 }

+ 175 - 9
game-business/src/main/java/com/game/business/task/AppUserCountTask.java

@@ -1,21 +1,24 @@
 package com.game.business.task;
 
 import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.game.business.domain.*;
-import com.game.business.service.IAppUserService;
-import com.game.business.service.IAppUsersCashrecordService;
-import com.game.business.service.IAppUsersChargeService;
-import com.game.business.service.IFinTranRecordService;
+import com.game.business.service.*;
+import com.game.common.constant.finance.FinTranType1;
+import com.game.common.constant.finance.FinTranType3;
+import com.game.common.entity.KeyValue;
 import com.game.common.utils.DateUtils;
 import com.game.common.utils.StringUtils;
+import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 @Component
+@Log4j2
 public class AppUserCountTask {
 
     @Autowired
@@ -30,6 +33,27 @@ public class AppUserCountTask {
     @Autowired
     private IFinTranRecordService finTranRecordService;
 
+    @Autowired
+    private IAppUserLiveDividedRecordService appUserLiveDividedRecordService;
+
+    @Autowired
+    private IAppUserGameRecordCountService appUserGameRecordCountService;
+
+    @Autowired
+    private IAppGameBettingService appGameBettingService;
+
+    @Autowired
+    private IAppUserCountService appUserCountService;
+
+    @Autowired
+    private IAppUserGameCountService appUserGameCountService;
+
+    @Autowired
+    private IAppUserAgentService appUserAgentService;
+
+    @Autowired
+    private IAppUserCountDividendService appUserCountDividendService;
+
 
     /**
      * 统计用户前一天
@@ -41,10 +65,15 @@ public class AppUserCountTask {
         }else{
             dateTime = DateUtils.parseDateToStr("yyyy-MM-dd",curDate);
         }
-        List<AppUser> list = appUserService.selectAppUserList(new AppUser());//查询所有用户
+        AppUser queryUser = new AppUser();
+        queryUser.setAgentFlag(1);
+        List<AppUser> list = appUserService.selectAppUserList(queryUser);//查询所有代理用户
         List<AppUsersCharge> appUsersChargeList = appUsersChargeService.getChargeList(null,dateTime.concat(" 00:00:00"),dateTime.concat(" 23:59:59"));
         List<AppUsersCashrecord> appUsersCashrecords = appUsersCashrecordService.getUserCashList(null,dateTime.concat(" 00:00:00"),dateTime.concat(" 23:59:59"));
-//        List<FinTranRecord> finTranRecordList = finTranRecordService.getUserRecordList(null,)
+        List<FinTranRecord> finTranRecordList = finTranRecordService.getUserRecordList(null,dateTime.concat(" 00:00:00"),dateTime.concat(" 23:59:59"));
+        List<AppUserLiveDividedRecord> liveDividedRecordList = appUserLiveDividedRecordService.selectByDate(null,dateTime.concat(" 00:00:00"),dateTime.concat(" 23:59:59"));
+        List<AppUserGameRecordCount> gameRecordCountList = appUserGameRecordCountService.selectByDate(null,dateTime.concat(" 00:00:00"),dateTime.concat(" 23:59:59"));
+        List<AppGameBetting> gameBettingList = appGameBettingService.selectListByDate(null,dateTime.concat(" 00:00:00"),dateTime.concat(" 23:59:59"));
         if(null != list && list.size()>0){
             List<AppUserCount> appUserCountList = new ArrayList<>();
             String finalDateTime = dateTime;
@@ -59,6 +88,143 @@ public class AppUserCountTask {
                 appUserCount.setWithdrawalAmount(appUsersCashrecords.stream().filter(e->e.getUid().equals(appUser.getUserid())).mapToDouble(e->e.getMoney().doubleValue()).sum());
                 //提现服务费/手续费
                 appUserCount.setWithdrawalCommission(appUsersCashrecords.stream().filter(e->e.getUid().equals(appUser.getUserid())).mapToDouble(e->e.getService().doubleValue()).sum());
+                //直播消费金额
+                Map<String,KeyValue> type1Keys = Arrays.stream(FinTranType1.getKeyValues(1)).collect(Collectors.toMap(e->e.a, Function.identity(),(k1,k2)->k2)); //支出交易类型
+                Map<String,KeyValue> type3Keys = Arrays.stream(FinTranType3.getKeyValues(1)).collect(Collectors.toMap(e->e.a, Function.identity(),(k1,k2)->k2)); //支出交易类型
+                appUserCount.setLiveUseAmount(finTranRecordList.stream().filter(e->{
+                    return e.getUid().equals(appUser.getUserid()) &&
+                            null != type1Keys.get(String.valueOf(e.getTranType1().intValue())) &&
+                            null != type3Keys.get(String.valueOf(e.getTranType3().intValue()));
+                }).mapToDouble(e->e.getCoinChange()).sum());
+                //直播佣金
+                appUserCount.setLiveCommission(liveDividedRecordList.stream().filter(e->e.getUserId().equals(appUser.getUserid())).mapToDouble(e->e.getMoney().doubleValue()).sum());
+                //游戏佣金
+                appUserCount.setGameCommission(gameRecordCountList.stream().filter(e->e.getUserId().equals(appUser.getUserid())).mapToDouble(e->e.getCommission()).sum());
+                //游戏输
+                appUserCount.setGameLoseAmount(gameBettingList.stream().filter(
+                        e->e.getUserId().equals(appUser.getUserid()) && e.getIsWinning().intValue() == 2
+                ).mapToDouble(e->
+                        e.getBettingAmount()
+                ).sum());
+                //游戏赢
+                appUserCount.setGameLoseAmount(gameBettingList.stream().filter(
+                        e->e.getUserId().equals(appUser.getUserid()) && e.getIsWinning().intValue() == 1
+                ).mapToDouble(e->
+                        e.getBettingAmount() * e.getBettingMultiple()
+                ).sum());
+                appUserCountService.createAppUserCount(appUserCount);
+            });
+        }
+
+        //统计当日用户游戏输赢
+        if(null != gameBettingList && gameBettingList.size() > 0){
+            Map<String,List<AppGameBetting>> map = gameBettingList.stream().
+                    collect(Collectors.groupingBy(
+                            e->String.valueOf(e.getUserId()).concat("_").
+                                    concat(String.valueOf(e.getGameId())).
+                                    concat("_").concat(String.valueOf(e.getIsWinning()))
+                    ));
+            for(String key : map.keySet()){
+                List<AppGameBetting> appGameBettingList = map.get(key);
+                Long userId = Long.valueOf(key.split("_")[0]);
+                Long gameId = Long.valueOf(key.split("_")[1]);
+                AppUserGameCount appUserGameCount = new AppUserGameCount();
+                appUserGameCount.setUserId(userId);
+                appUserGameCount.setGameId(gameId);
+                appUserGameCount.setStrDate(dateTime);
+                appUserGameCount.setGameLoseAmount(appGameBettingList.stream().filter(e->2==e.getIsWinning()).mapToDouble(
+                        e->e.getBettingAmount()
+                ).sum());
+                appUserGameCount.setGameWinAmount(appGameBettingList.stream().filter(e->2==e.getIsWinning()).mapToDouble(
+                        e->e.getBettingAmount() * e.getBettingMultiple()
+                ).sum());
+                appUserGameCount.setGameCommission(gameRecordCountList.stream().filter(
+                        e->e.getUserId().equals(userId) && e.getGameId().equals(gameId)
+                ).mapToDouble(e->e.getCommission()).sum());//自己得到的佣金
+                appUserGameCountService.save(appUserGameCount);
+            }
+        }
+
+    }
+
+    /**
+     * 计算分红
+     * @param dateTime 格式yyyy-MM-dd
+     * */
+    public void calculateDividends(String dateTime){
+        Date curDate = DateUtil.offsetDay(DateUtils.getNowDate(),-1);
+        if(StringUtils.isNotBlank(dateTime)){
+            curDate = DateUtil.parse(dateTime,"yyyy-MM-dd");
+        }else{
+            dateTime = DateUtils.parseDateToStr("yyyy-MM-dd",curDate);
+        }
+        Date beginTime = DateUtil.beginOfWeek(curDate);
+        Date endTime = DateUtil.endOfWeek(curDate);
+        //查询所有代理用户
+        AppUser queryUser = new AppUser();
+        queryUser.setAgentFlag(1);
+        List<AppUser> list = appUserService.selectAppUserList(queryUser);
+        if(null != list && list.size() > 0){
+            list.forEach(appUser -> {
+                //查询用户所有下级本周盈亏
+                LambdaQueryWrapper<AppUserCount> queryWrapper = new LambdaQueryWrapper<>();
+                queryWrapper.ge(AppUserCount::getStrDate,beginTime);
+                queryWrapper.le(AppUserCount::getStrDate,endTime);
+                queryWrapper.eq(AppUserCount::getAgentUserId,appUser.getUserid());
+                List<AppUserCount> appUserCountList = appUserCountService.list(queryWrapper);
+                if(null != appUserCountList && appUserCountList.size() > 0){
+                    //游戏输钱
+                    double loseAmount = appUserCountList.stream().mapToDouble(e->e.getGameLoseAmount()).sum();
+                    //游戏赢钱
+                    double winAmount = appUserCountList.stream().mapToDouble(e->e.getGameWinAmount()).sum();
+                    //提现手续费
+                    double withdrawalCommission = appUserCountList.stream().mapToDouble(e->e.getWithdrawalCommission()).sum();
+                    //游戏佣金
+                    double gameCommission = appUserCountList.stream().mapToDouble(e->e.getGameCommission()).sum();
+                    //直播佣金
+                    double liveCommission = appUserCountList.stream().mapToDouble(e->e.getLiveCommission()).sum();
+
+                    //计算分红金额
+                    double money = (loseAmount - winAmount) - withdrawalCommission - gameCommission - liveCommission;
+                    if(money > 0){
+                        //金额大于0 满足分红
+
+                        //查询用户所有下级
+                        LambdaQueryWrapper<AppUserAgent> userAgentLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                        userAgentLambdaQueryWrapper.eq(AppUserAgent::getPid,appUser.getUserid());
+                        userAgentLambdaQueryWrapper.eq(AppUserAgent::getAuditStatus,1);
+                        List<AppUserAgent> appUserAgentList = appUserAgentService.list(userAgentLambdaQueryWrapper);
+                        if(null != appUserAgentList && appUserAgentList.size() > 0){
+                            appUserAgentList.forEach(userAgent ->{
+                                //查询用户分红比例
+                                LambdaQueryWrapper<AppUserAgent> queryAgentWrapper = new LambdaQueryWrapper<>();
+                                queryAgentWrapper.eq(AppUserAgent::getUserId,userAgent.getUserId());
+                                queryAgentWrapper.eq(AppUserAgent::getAuditStatus,1);
+                                AppUserAgent appUserAgent = appUserAgentService.getOne(queryAgentWrapper);
+                                if(null == appUserAgent){
+                                    log.info("用户{},所有下级亏损{},查询下级为空,停止分红",appUserAgent.getUserId(),money);
+                                }
+                                double rate = appUserAgent.getDividendGuaranteeRate();
+                                double dividends = money * rate;
+                                AppUserCountDividend appUserCountDividend = new AppUserCountDividend();
+                                appUserCountDividend.setUserId(userAgent.getUserId());
+                                appUserCountDividend.setDateNo(DateUtil.format(endTime,"yyyy-MM-dd"));
+                                appUserCountDividend.setBeginTime(beginTime);
+                                appUserCountDividend.setEndTime(endTime);
+                                appUserCountDividend.setProfitLoss(money);
+                                appUserCountDividend.setRate(rate);
+                                appUserCountDividend.setCoin(0.00);
+                                appUserCountDividend.setDiamondCoin(dividends);
+                                appUserCountDividend.setStatus(0);
+                                appUserCountDividendService.insertAppUserCountDividend(appUserCountDividend);
+                            });
+                        }else{
+                            log.info("用户{},所有下级亏损{},查询下级为空,停止分红",appUser.getUserid(),money);
+                        }
+                    }else{
+                        log.info("用户{},所有下级亏损{},不满足分红条件",appUser.getUserid(),money);
+                    }
+                }
             });
         }
 

+ 4 - 0
game-business/src/main/resources/mapper/business/AppUserMapper.xml

@@ -324,6 +324,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="diamondCoinCash != null "> and diamond_coin_cash = #{diamondCoinCash}</if>
             <if test="diamondCoinTotal != null "> and diamond_coin_total = #{diamondCoinTotal}</if>
             <if test="diamondCoinCashTotal != null "> and diamond_coin_cash_total = #{diamondCoinCashTotal}</if>
+            <if test="agentFlag != null and agentFlag != ''"> and agent_flag = #{agentFlag}</if>
         </where>
     </select>
     
@@ -491,6 +492,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="diamondCoinCash != null">diamond_coin_cash,</if>
             <if test="diamondCoinTotal != null">diamond_coin_total,</if>
             <if test="diamondCoinCashTotal != null">diamond_coin_cash_total,</if>
+            <if test="agentFlag != null and agentFlag != ''">agentFlag,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="userid != null">#{userid},</if>
@@ -649,6 +651,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="diamondCoinCash != null">#{diamondCoinCash},</if>
             <if test="diamondCoinTotal != null">#{diamondCoinTotal},</if>
             <if test="diamondCoinCashTotal != null">#{diamondCoinCashTotal},</if>
+            <if test="agentFlag != null and agentFlag != ''">#{agentFlag},</if>
          </trim>
     </insert>
 
@@ -810,6 +813,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="diamondCoinCash != null">diamond_coin_cash = #{diamondCoinCash},</if>
             <if test="diamondCoinTotal != null">diamond_coin_total = #{diamondCoinTotal},</if>
             <if test="diamondCoinCashTotal != null">diamond_coin_cash_total = #{diamondCoinCashTotal},</if>
+            <if test="agentFlag != null and agentFlag != ''">agent_flag = #{agentFlag}</if>
         </trim>
         where userid = #{userid}
     </update>

+ 41 - 29
game-common/src/main/java/com/game/common/constant/finance/FinTranType1.java

@@ -10,121 +10,133 @@ public enum FinTranType1 {
     /**
      * 获得的(金币)
      */
-    U_Income_Coin(11, MessageUtils.message("11329") + ProjConfig.getCoinName()),
+    U_Income_Coin(11, MessageUtils.message("11329") + ProjConfig.getCoinName(),0),
     /**
      * 获得的(映票)
      */
-    U_Income_Ticket(13, MessageUtils.message("11329") + ProjConfig.getTicketName()),
+    U_Income_Ticket(13, MessageUtils.message("11329") + ProjConfig.getTicketName(),0),
     /**
      * 用户获得的(人民币)
      */
-    U_Income_Money(41, "11330"),
+    U_Income_Money(41, "11330",0),
 
     /**
      * 减少的(金币);
      */
-    U_Outcome_Coin(12, MessageUtils.message("11331")+ ProjConfig.getCoinName()),
+    U_Outcome_Coin(12, MessageUtils.message("11331")+ ProjConfig.getCoinName(),1),
     /**
      * 减少的(映票)
      */
-    U_Outcome_Ticket(14, MessageUtils.message("11331") + ProjConfig.getTicketName()),
+    U_Outcome_Ticket(14, MessageUtils.message("11331") + ProjConfig.getTicketName(),1),
     /**
      * 减少的(人民币)
      */
-    U_Outcome_Money(15, "11332"),
+    U_Outcome_Money(15, "11332",1),
 
     /**
      * 减少的(余额)
      */
-    U_Outcome_Balance(16, "11571"),
+    U_Outcome_Balance(16, "11571",1),
 
     /**
      * 添加的(余额)
      */
-    U_Income_Coin_Balance(17, "11573"),
+    U_Income_Coin_Balance(17, "11573",0),
 
 
     /**
      * 代理获得的(人民币)AgentAmount 仅用于 FinAdminTranRecord 表
      */
-    Agent_Income_Money(21, "11333"),
+    Agent_Income_Money(21, "11333",0),
 
 
     /**
      * 代理获得的(金币)
      */
-    Agent_Income_Coin(22, "11333"),
+    Agent_Income_Coin(22, "11333",0),
 
 
     /**
      * 代理获得的(余额)
      */
-    Agent_Income_Diamond_Coin(23, "11333"),
+    Agent_Income_Diamond_Coin(23, "11333",0),
     /**
      * 工会获得的(映票) GuildTicket 仅用于 FinAdminTranRecord 表
      */
-    Guild_Income_Ticket(32, "11334"),
+    Guild_Income_Ticket(32, "11334",0),
 
     /**
      * 工会获得的(金币) GuildTicket 仅用于 FinAdminTranRecord 表
      */
-    Guild_Income_Coin(34, "11334"),
+    Guild_Income_Coin(34, "11334",0),
     /**
      * 经纪人获得的(映票)ManagerTicket 仅用于 FinAdminTranRecord 表
      */
-    Manager_Income_Ticket(33, "11335"),
+    Manager_Income_Ticket(33, "11335",0),
     /**
      * 经纪人获得的(映票)ManagerTicket 仅用于 FinAdminTranRecord 表
      */
-    Manager_Income_Coin(35, "11335"),
+    Manager_Income_Coin(35, "11335",0),
 
     /**
      * 平台支出(人民币)
      */
-    SYS_Outcome_Amount(51, "11332"),
+    SYS_Outcome_Amount(51, "11332",1),
     /**
      * 平台支出(金币)
      */
-    SYS_Outcome_Coin(52, MessageUtils.message("11331") + ProjConfig.getCoinName()),
+    SYS_Outcome_Coin(52, MessageUtils.message("11331") + ProjConfig.getCoinName(),1),
     /**
      * 平台收益的映票
      */
-    SYS_Income_Ticket(53, MessageUtils.message("11329") + ProjConfig.getTicketName()),
+    SYS_Income_Ticket(53, MessageUtils.message("11329") + ProjConfig.getTicketName(),0),
     /**
      * 平台收益的映票
      */
-    SYS_Income_Coin(56, MessageUtils.message("11329") + ProjConfig.getCoinName()),
+    SYS_Income_Coin(56, MessageUtils.message("11329") + ProjConfig.getCoinName(),0),
     /**
      * 平台支出映票
      */
-    SYS_Outcome_Ticket(54, MessageUtils.message("11331") + ProjConfig.getTicketName()),
+    SYS_Outcome_Ticket(54, MessageUtils.message("11331") + ProjConfig.getTicketName(),1),
     /**
      * 平台收入(人民币)
      */
-    SYS_Income_Amount(55, "11330"),
+    SYS_Income_Amount(55, "11330",0),
     ;
 
     private String name;
     private int type;
+    private int tranType; //交易类型 0:收入  1:支出
 
-    static KeyValue[] m_KeyValueArr;
+//    static KeyValue[] m_KeyValueArr;
 
     public static KeyValue[] getKeyValues() {
-        if (m_KeyValueArr == null) {
-            ArrayList<KeyValue> listKV = new ArrayList<KeyValue>();
-            listKV.add(new KeyValue("", "全部", true));
-            for (FinTranType1 m : FinTranType1.values()) {
-                KeyValue kv = new KeyValue("" + m.type, m.name);
+        return getKeyValues(null);
+    }
+
+    public static KeyValue[] getKeyValues(Integer tranType) {
+        KeyValue[] m_KeyValueArr = null;
+//        if (m_KeyValueArr == null) {
+        ArrayList<KeyValue> listKV = new ArrayList<KeyValue>();
+        listKV.add(new KeyValue("", "全部", true));
+        for (FinTranType1 m : FinTranType1.values()) {
+            KeyValue kv = new KeyValue("" + m.type, m.name);
+            if(null != tranType && tranType.intValue() == m.tranType){
+                listKV.add(kv);
+            }
+            if(null == tranType){
                 listKV.add(kv);
             }
-            m_KeyValueArr = listKV.toArray(new KeyValue[0]);
         }
+        m_KeyValueArr = listKV.toArray(new KeyValue[0]);
+//        }
         return m_KeyValueArr;
     }
 
-    FinTranType1(int type, String name) {
+    FinTranType1(int type, String name, int tranType) {
         this.type = type;
         this.name = name;
+        this.tranType = tranType;
     }
 
     public String getName() {

+ 87 - 76
game-common/src/main/java/com/game/common/constant/finance/FinTranType3.java

@@ -14,333 +14,343 @@ public enum FinTranType3 {
     /**
      * 未知的
      */
-    TypeNone(FinTranType2.TypeNone, 0, "10986"),
+    TypeNone(FinTranType2.TypeNone, 0, "10986",0),
     /**
      * 充值 - 线上充值
      */
-    ON_LINE_CHARGE(FinTranType2.CHARGE, 1001, "11275"),
+    ON_LINE_CHARGE(FinTranType2.CHARGE, 1001, "11275",0),
     /**
      * 充值 - 人工充值
      */
-    CHARGE_IN(FinTranType2.CHARGE, 1101, MessageUtils.message("11212") + ProjConfig.getCoinName()),
+    CHARGE_IN(FinTranType2.CHARGE, 1101, MessageUtils.message("11212") + ProjConfig.getCoinName(),0),
     /**
      * 充值 - 后台充值
      */
-    CHARGE_IN_Back(FinTranType2.CHARGE, 1108, "11276"),
+    CHARGE_IN_Back(FinTranType2.CHARGE, 1108, "11276",0),
     /**
      * 充值 - 扣除金币
      */
-    CHARGE_OUT(FinTranType2.CHARGE, 1102, MessageUtils.message("11277") + ProjConfig.getCoinName()),
+    CHARGE_OUT(FinTranType2.CHARGE, 1102, MessageUtils.message("11277") + ProjConfig.getCoinName(),0),
 
     /**
      * 游戏 - 游戏奖励
      */
-    CHARGE_WIN_GAME(FinTranType2.GAME_REWARD, 1103, "11215"),
+    CHARGE_WIN_GAME(FinTranType2.GAME_REWARD, 1103, "11215",0),
 
     /**
      * 分红 - 代理分红
      */
-    AGENT_DIVIDED(FinTranType2.REWARD_Income, 1104, "11575"),
+    AGENT_DIVIDED(FinTranType2.REWARD_Income, 1104, "11575",0),
 
     /**
      * 活动 - 首充奖励
      */
-    FIRST_CHARGE_REWARD(FinTranType2.REWARD_Income, 1201, "11278"),
+    FIRST_CHARGE_REWARD(FinTranType2.REWARD_Income, 1201, "11278",0),
     /**
      * 活动 - 新手大礼包
      */
-    NEW_USER_GIFT_PACKAGE(FinTranType2.REWARD_Income, 1202, "11279"),
+    NEW_USER_GIFT_PACKAGE(FinTranType2.REWARD_Income, 1202, "11279",0),
     /**
      * 活动 - 购买贵族赠送金币收益
      */
-    INCOIN_BUY_NOBLE_REWARD(FinTranType2.REWARD_Income, 1203, "11280"),
+    INCOIN_BUY_NOBLE_REWARD(FinTranType2.REWARD_Income, 1203, "11280",0),
     /**
      * 活动 - 等级礼包
      */
-    INCOIN_GRADE_GIFT_PACKAGE(FinTranType2.REWARD_Income, 1204, "11281"),
+    INCOIN_GRADE_GIFT_PACKAGE(FinTranType2.REWARD_Income, 1204, "11281",0),
     /**
      * 活动 - 连续登录奖励
      */
-    CONTINUE_LOGIN_REWARD(FinTranType2.REWARD_Income, 1205, "11282"),
+    CONTINUE_LOGIN_REWARD(FinTranType2.REWARD_Income, 1205, "11282",0),
     /**
      * 活动 - 签到奖励
      */
-    SIGN_IN_REWARD(FinTranType2.REWARD_Income, 1206, "11032"),
+    SIGN_IN_REWARD(FinTranType2.REWARD_Income, 1206, "11032",0),
     /**
      * 活动 - 充值奖励
      */
-    CHARGE_IN_REWARD(FinTranType2.REWARD_Income, 1207, "11283"),
+    CHARGE_IN_REWARD(FinTranType2.REWARD_Income, 1207, "11283",0),
     /**
      * 兑换 - 佣金兑换金币
      */
-    AMOUNT_TO_COIN(FinTranType2.EXCHANGE_COIN, 1301, MessageUtils.message("11284") + ProjConfig.getCoinName()),
+    AMOUNT_TO_COIN(FinTranType2.EXCHANGE_COIN, 1301, MessageUtils.message("11284") + ProjConfig.getCoinName(),0),
     /**
      * 兑换 - 映票兑换金币
      */
-    Ticket_TO_COIN(FinTranType2.EXCHANGE_COIN, 1302, ProjConfig.getTicketName() + MessageUtils.message("11214") + ProjConfig.getCoinName()),
+    Ticket_TO_COIN(FinTranType2.EXCHANGE_COIN, 1302, ProjConfig.getTicketName() + MessageUtils.message("11214") + ProjConfig.getCoinName(),0),
     /**
      * 兑换 - 余额兑换金币
      */
-    DiamondCoin_TO_COIN(FinTranType2.EXCHANGE_COIN, 1303, ProjConfig.getD_ticketName() + MessageUtils.message("11214") + ProjConfig.getCoinName()),
+    DiamondCoin_TO_COIN(FinTranType2.EXCHANGE_COIN, 1303, ProjConfig.getD_ticketName() + MessageUtils.message("11214") + ProjConfig.getCoinName(),0),
     /**
      * 兑换 - 余额兑换金币
      */
-    COIN_TO_DiamondCoin(FinTranType2.EXCHANGE_COIN, 1304, ProjConfig.getCoinName() + MessageUtils.message("11214") + ProjConfig.getD_ticketName()),
+    COIN_TO_DiamondCoin(FinTranType2.EXCHANGE_COIN, 1304, ProjConfig.getCoinName() + MessageUtils.message("11214") + ProjConfig.getD_ticketName(),0),
 
     /**
      * 赠送礼物 - 直播房间内
      */
-    CONSUM_LIVE_ROOM_REWARD(FinTranType2.CONSUM_SEND_GIFT, 2001, "11285"),
+    CONSUM_LIVE_ROOM_REWARD(FinTranType2.CONSUM_SEND_GIFT, 2001, "11285",1),
     /**
      * 赠送礼物 - 短视频打赏
      */
-    CONSUM_NEWS_REWARD(FinTranType2.CONSUM_SEND_GIFT, 2002, "11286"),
+    CONSUM_NEWS_REWARD(FinTranType2.CONSUM_SEND_GIFT, 2002, "11286",1),
     /**
      * 赠送礼物 - 聊天打赏
      */
-    CONSUM_CHAT_REWARD(FinTranType2.CONSUM_SEND_GIFT, 2003, "11287"),
+    CONSUM_CHAT_REWARD(FinTranType2.CONSUM_SEND_GIFT, 2003, "11287",1),
     /**
      * 赠送礼物 - 通话打赏
      */
-    CONSUM_O2O_CALL_REWARD(FinTranType2.CONSUM_SEND_GIFT, 2004, "11288"),
+    CONSUM_O2O_CALL_REWARD(FinTranType2.CONSUM_SEND_GIFT, 2004, "11288",1),
     /**
      * 赠送礼物 - 个人主页打赏
      */
-    CONSUM_PERSONAL_HOME_PAGE_REWARD(FinTranType2.CONSUM_SEND_GIFT, 2005, "11289"),
+    CONSUM_PERSONAL_HOME_PAGE_REWARD(FinTranType2.CONSUM_SEND_GIFT, 2005, "11289",1),
     /**
      * 赠送礼物 - 幸运礼物
      */
-    CONSUM_LUCKY_GIFT_REWARD(FinTranType2.CONSUM_SEND_GIFT, 2006, "11290"),
+    CONSUM_LUCKY_GIFT_REWARD(FinTranType2.CONSUM_SEND_GIFT, 2006, "11290",1),
     /**
      * 赠送礼物 - 长视频
      */
-    CONSUM_TELEVISION_VIDEO_REWARD(FinTranType2.CONSUM_SEND_GIFT, 2007, "11291"),
+    CONSUM_TELEVISION_VIDEO_REWARD(FinTranType2.CONSUM_SEND_GIFT, 2007, "11291",1),
 
     /**
      * 付费功能 - 点歌
      */
-    CONSUM_CHOOSE_SONG(FinTranType2.CONSUM_CHOOSE_SONG, 2101, "11217"),
+    CONSUM_CHOOSE_SONG(FinTranType2.CONSUM_CHOOSE_SONG, 2101, "11217",1),
     /**
      * 付费功能 - 直播回放
      */
-    CONSUM_PAY_COIN_LIVE_REPLAY(FinTranType2.CONSUM_PAY_COIN_LIVE_REPLAY, 2201, "11167"),
+    CONSUM_PAY_COIN_LIVE_REPLAY(FinTranType2.CONSUM_PAY_COIN_LIVE_REPLAY, 2201, "11167",1),
     /**
      * 付费功能 - 私密视频
      */
-    CONSUM_PRIVATE_VIDEO(FinTranType2.CONSUM_PRIVATE_VIEW, 2301, "11292"),
+    CONSUM_PRIVATE_VIDEO(FinTranType2.CONSUM_PRIVATE_VIEW, 2301, "11292",1),
     /**
      * 付费功能 - 私密图片
      */
-    CONSUM_PRIVATE_IMG(FinTranType2.CONSUM_PRIVATE_VIEW, 2302, "11293"),
+    CONSUM_PRIVATE_IMG(FinTranType2.CONSUM_PRIVATE_VIEW, 2302, "11293",1),
     /**
      * 付费功能 - 守护
      */
-    CONSUM_GUARD(FinTranType2.CONSUM_GUARD, 2401, "11219"),
+    CONSUM_GUARD(FinTranType2.CONSUM_GUARD, 2401, "11219",1),
     /**
      * 付费功能 - 加入粉丝团
      */
-    CONSUM_FANS_TEAM(FinTranType2.CONSUM_FANS_TEAM, 2501, "11294"),
+    CONSUM_FANS_TEAM(FinTranType2.CONSUM_FANS_TEAM, 2501, "11294",1),
     /**
      * 付费功能 - 发送弹幕
      */
-    CONSUM_PT_TEXT_BARRAGE(FinTranType2.CONSUM_SEND_BARRAGE, 2601, "11166"),
+    CONSUM_PT_TEXT_BARRAGE(FinTranType2.CONSUM_SEND_BARRAGE, 2601, "11166",1),
     /**
      * 付费功能 - 购买贵族
      */
-    CONSUM_BUY_NOBLE(FinTranType2.CONSUM_BUY_NOBLE, 2701, "11220"),
+    CONSUM_BUY_NOBLE(FinTranType2.CONSUM_BUY_NOBLE, 2701, "11220",1),
 
     /**
      * 通话 - 视频通话
      */
-    CONSUM_PAY_O2O_VIDEO(FinTranType2.CONSUM_PAY_COIN_1V1, 2801, "11295"),
+    CONSUM_PAY_O2O_VIDEO(FinTranType2.CONSUM_PAY_COIN_1V1, 2801, "11295",1),
     /**
      * 通话 - 语音通话
      */
-    CONSUM_PAY_O2O_VOICE(FinTranType2.CONSUM_PAY_COIN_1V1, 2802, "11296"),
+    CONSUM_PAY_O2O_VOICE(FinTranType2.CONSUM_PAY_COIN_1V1, 2802, "11296",1),
     /**
      * 通话 - 用户间通话
      */
-    CONSUM_PAY_O2O_UU(FinTranType2.CONSUM_PAY_COIN_1V1, 2803, "11297"),
+    CONSUM_PAY_O2O_UU(FinTranType2.CONSUM_PAY_COIN_1V1, 2803, "11297",1),
 
     /**
      * 道具 - 购买坐骑
      */
-    CONSUM_BUY_CAR(FinTranType2.CONSUM_BUY_PROP, 2901, "11298"),
+    CONSUM_BUY_CAR(FinTranType2.CONSUM_BUY_PROP, 2901, "11298",1),
 
     /**
      * 道具 - 购买坐骑
      */
-    CONSUM_BUY_MIC_SEAT(FinTranType2.CONSUM_BUY_PROP, 2903, "11299"),
+    CONSUM_BUY_MIC_SEAT(FinTranType2.CONSUM_BUY_PROP, 2903, "11299",1),
     /**
      * 道具 - 购买靓号
      */
-    CONSUM_BUY_LIANG(FinTranType2.CONSUM_BUY_PROP, 2902, "11300"),
+    CONSUM_BUY_LIANG(FinTranType2.CONSUM_BUY_PROP, 2902, "11300",1),
 
     /**
      * 游戏 - 游戏消费
      */
-    CONSUM_GAME_ANCHOR_ZHUANPAN(FinTranType2.CONSUM_GAME, 20001, "11222"),
+    CONSUM_GAME_ANCHOR_ZHUANPAN(FinTranType2.CONSUM_GAME, 20001, "11222",0),
 
     /**
      * 红包 - 发红包
      */
-    CONSUM_SEND_RED_PACKAGE(FinTranType2.CONSUM_RED_PACKAGE, 20101, "11245"),
+    CONSUM_SEND_RED_PACKAGE(FinTranType2.CONSUM_RED_PACKAGE, 20101, "11245",0),
     /**
      * 红包 - 领红包
      */
-    INCOIN_GET_RED_PACKAGE(FinTranType2.CONSUM_RED_PACKAGE, 20102, "11246"),
+    INCOIN_GET_RED_PACKAGE(FinTranType2.CONSUM_RED_PACKAGE, 20102, "11246",0),
     /**
      * 红包 - 红包退回
      */
-    CONSUM_QUIT_RED_PACKAGE(FinTranType2.CONSUM_RED_PACKAGE, 20103, "11301"),
+    CONSUM_QUIT_RED_PACKAGE(FinTranType2.CONSUM_RED_PACKAGE, 20103, "11301",0),
 
     /**
      * 付费功能 - 查看手机号
      */
-    CONSUM_WATCH_MOBILE(FinTranType2.CONSUM_WATCH_CONTACT, 20201, "11302"),
+    CONSUM_WATCH_MOBILE(FinTranType2.CONSUM_WATCH_CONTACT, 20201, "11302",1),
     /**
      * 付费功能 - 查看微信号
      */
-    CONSUM_WATCH_WECHAT(FinTranType2.CONSUM_WATCH_CONTACT, 20202, "11303"),
+    CONSUM_WATCH_WECHAT(FinTranType2.CONSUM_WATCH_CONTACT, 20202, "11303",1),
     /**
      * 付费功能 - 购买SVIP
      */
-    CONSUM_BUY_SVIP(FinTranType2.CONSUM_BUY_SVIP, 20401, "11225"),
+    CONSUM_BUY_SVIP(FinTranType2.CONSUM_BUY_SVIP, 20401, "11225",1),
 
     /**
      * 付费功能 - 付费房间
      */
-    CONSUM_ROOM_PAY(FinTranType2.CONSUM_ROOM_COIN, 20501, "11304"),
+    CONSUM_ROOM_PAY(FinTranType2.CONSUM_ROOM_COIN, 20501, "11304",1),
     /**
      * 付费功能 - 计时房间
      */
-    CONSUM_ROOM_TIME(FinTranType2.CONSUM_ROOM_COIN, 20502, "11305"),
+    CONSUM_ROOM_TIME(FinTranType2.CONSUM_ROOM_COIN, 20502, "11305",1),
     /**
      * 付费功能 - 购买贵宾席
      */
-    CONSUM_BUY_VIPSEATS(FinTranType2.CONSUM_BUY_VIPSEATS, 20702, "11227"),
+    CONSUM_BUY_VIPSEATS(FinTranType2.CONSUM_BUY_VIPSEATS, 20702, "11227",1),
     /**
      * 付费功能 - 付费私信
      */
-    CONSUM_CHAT_CHARGES(FinTranType2.CONSUM_CHAT_CHARGES, 20203, "11173"),
+    CONSUM_CHAT_CHARGES(FinTranType2.CONSUM_CHAT_CHARGES, 20203, "11173",1),
     /**
      * 付费功能 - 百宝箱抽奖
      */
-    CONSUM_TREASURE_CHEST(FinTranType2.CONSUM_LUCK_DRAW, 20703, "11306"),
+    CONSUM_TREASURE_CHEST(FinTranType2.CONSUM_LUCK_DRAW, 20703, "11306",1),
 
     /**
      * 佣金 - 注册佣金
      */
-    RECOMMEND_REG_USER_AMOUNT(FinTranType2.RECOMMEND_AMOUNT, 5001, "11307"),
+    RECOMMEND_REG_USER_AMOUNT(FinTranType2.RECOMMEND_AMOUNT, 5001, "11307",0),
     /**
      * 佣金 - 主播认证佣金
      */
-    RECOMMEND_REG_ANCHOR_AMOUNT(FinTranType2.RECOMMEND_AMOUNT, 5002, "11308"),
+    RECOMMEND_REG_ANCHOR_AMOUNT(FinTranType2.RECOMMEND_AMOUNT, 5002, "11308",0),
     /**
      * 佣金 - 签到佣金
      */
-    RECOMMEND_SIGN_IN_AMOUNT(FinTranType2.RECOMMEND_AMOUNT, 1406, "11309"),
+    RECOMMEND_SIGN_IN_AMOUNT(FinTranType2.RECOMMEND_AMOUNT, 1406, "11309",0),
     /**
      * 佣金 - 通话佣金
      */
-    RECOMMEND_OOO_CALL_AMOUNT(FinTranType2.RECOMMEND_AMOUNT, 5003, "11310"),
+    RECOMMEND_OOO_CALL_AMOUNT(FinTranType2.RECOMMEND_AMOUNT, 5003, "11310",0),
     /**
      * 佣金 - 打赏佣金
      */
-    RECOMMEND_REWARD_AMOUNT(FinTranType2.RECOMMEND_AMOUNT, 5004, "11311"),
+    RECOMMEND_REWARD_AMOUNT(FinTranType2.RECOMMEND_AMOUNT, 5004, "11311",0),
     /**
      * 佣金 - 补发佣金
      */
-    RECOMMEND_ADD_AMOUNT(FinTranType2.RECOMMEND_AMOUNT, 5005, "11312"),
+    RECOMMEND_ADD_AMOUNT(FinTranType2.RECOMMEND_AMOUNT, 5005, "11312",0),
     /**
      * 佣金 - 用户充值
      */
-    RECOMMEND_USER_RECHARGE(FinTranType2.RECOMMEND_AMOUNT, 5006, "11313"),
+    RECOMMEND_USER_RECHARGE(FinTranType2.RECOMMEND_AMOUNT, 5006, "11313",0),
     /**
      * 佣金 - 购买贵族佣金
      */
-    RECOMMEND_BUY_NOBLE(FinTranType2.RECOMMEND_AMOUNT, 5007, "11314"),
+    RECOMMEND_BUY_NOBLE(FinTranType2.RECOMMEND_AMOUNT, 5007, "11314",0),
     /**
      * 佣金 - 购买SVIP佣金
      */
-    RECOMMEND_BUY_SVIP(FinTranType2.RECOMMEND_AMOUNT, 5008, "11315"),
+    RECOMMEND_BUY_SVIP(FinTranType2.RECOMMEND_AMOUNT, 5008, "11315",0),
     /**
      * 佣金 - 盲盒
      */
-    RECOMMEND_BUY_BLIND_BOX(FinTranType2.RECOMMEND_AMOUNT, 5009, "11316"),
+    RECOMMEND_BUY_BLIND_BOX(FinTranType2.RECOMMEND_AMOUNT, 5009, "11316",0),
 
 
     /**
      * 佣金提现 - 用户佣金提现
      */
-    CASH_USER_AMOUNT(FinTranType2.CASH, 6001, "11317"),
+    CASH_USER_AMOUNT(FinTranType2.CASH, 6001, "11317",0),
     /**
      * 佣金提现 - 代理佣金提现
      */
-    CASH_AGENT_AMOUNT(FinTranType2.CASH, 6002, "11318"),
+    CASH_AGENT_AMOUNT(FinTranType2.CASH, 6002, "11318",0),
 
     /**
      * 映票提现 - 主播收益提现
      */
-    CASH_ANCHOR_INCOME(FinTranType2.CASH, 6003, "11319"),
+    CASH_ANCHOR_INCOME(FinTranType2.CASH, 6003, "11319",0),
     /**
      * 映票提现 - 公会佣金提现
      */
-    CASH_GUILD_INCOME(FinTranType2.CASH, 6004, "11320"),
+    CASH_GUILD_INCOME(FinTranType2.CASH, 6004, "11320",0),
     /**
      * 映票提现 - 商家收益提现
      */
-    CASH_BUSINESS_INCOME(FinTranType2.CASH, 6005, "11321"),
+    CASH_BUSINESS_INCOME(FinTranType2.CASH, 6005, "11321",0),
 
     /**
      * 余额提现 - 用户(主播)余额提现
      */
-    CASH_DIAMOND_INCOME(FinTranType2.CASH, 6006, "11572"),
+    CASH_DIAMOND_INCOME(FinTranType2.CASH, 6006, "11572",0),
 
     /**
      * 寻觅 - 寻觅下单
      */
-    SEEK_PLACE_ORDER(FinTranType2.SEEK_ORDER, 22001, "11322"),
+    SEEK_PLACE_ORDER(FinTranType2.SEEK_ORDER, 22001, "11322",0),
     /**
      * 寻觅 - 订单取消
      */
-    SEEK_ORDER_CANCEL(FinTranType2.SEEK_ORDER, 22002, "11323"),
+    SEEK_ORDER_CANCEL(FinTranType2.SEEK_ORDER, 22002, "11323",0),
     /**
      * 寻觅 - 订单拒绝
      */
-    SEEK_ORDER_REFUSE(FinTranType2.SEEK_ORDER, 22003, "11324"),
+    SEEK_ORDER_REFUSE(FinTranType2.SEEK_ORDER, 22003, "11324",0),
     /**
      * 寻觅 - 订单完结
      */
-    SEEK_ORDER_FINISH(FinTranType2.SEEK_ORDER, 22004, "11325"),
+    SEEK_ORDER_FINISH(FinTranType2.SEEK_ORDER, 22004, "11325",0),
 
     /**
      * 电视剧 - 购买电视剧集
      */
-    BUY_TV_VIDEO(FinTranType2.TV_VIDEO, 22101, "11326"),
+    BUY_TV_VIDEO(FinTranType2.TV_VIDEO, 22101, "11326",0),
     /**
      * 打开盲盒
      */
-    OPEN_BLIND_BOX(FinTranType2.BLIND_BOX, 22201, "11327"),
+    OPEN_BLIND_BOX(FinTranType2.BLIND_BOX, 22201, "11327",0),
     /**
      * 存盲盒
      */
-    KEEP_BLIND_BOX(FinTranType2.BLIND_BOX, 22202, "11328"),
+    KEEP_BLIND_BOX(FinTranType2.BLIND_BOX, 22202, "11328",0),
     ;
 
     private FinTranType2 first;
     private int typeValue;
     private String typeName;
+    private int tranType; // 交易类型 0:其他 1:直播
 
     static KeyValue[] m_KeyValueArr = null;
 
     public static KeyValue[] getKeyValues() {
+        return getKeyValues(null);
+    }
+
+    public static KeyValue[] getKeyValues(Integer tranType) {
         if (m_KeyValueArr == null) {
             ArrayList<KeyValue> listKV = new ArrayList<KeyValue>();
             listKV.add(new KeyValue("", "全部", true));
             for (FinTranType3 m : FinTranType3.values()) {
                 KeyValue kv = new KeyValue("" + m.typeValue, m.typeName);
-                listKV.add(kv);
+                if(null == tranType){
+                    listKV.add(kv);
+                }else if(tranType.intValue() == m.tranType){
+                    listKV.add(kv);
+                }
+
             }
             m_KeyValueArr = listKV.toArray(new KeyValue[0]);
         }
@@ -361,10 +371,11 @@ public enum FinTranType3 {
     }
 
 
-    FinTranType3(FinTranType2 first, int childType, String childName) {
+    FinTranType3(FinTranType2 first, int childType, String childName,int tranType) {
         this.first = first;
         this.typeName = childName;
         this.typeValue = childType;
+        this.tranType = tranType;
     }
 
     public FinTranType2 getTranType2() {