Ver código fonte

Merge remote-tracking branch 'origin/master'

dos 8 meses atrás
pai
commit
92600bf14f
45 arquivos alterados com 4901 adições e 40 exclusões
  1. 140 10
      game-business/src/main/java/com/game/business/controller/AppGameBettingController.java
  2. 0 1
      game-business/src/main/java/com/game/business/controller/AppGameClassifyController.java
  3. 0 1
      game-business/src/main/java/com/game/business/controller/AppGameController.java
  4. 115 0
      game-business/src/main/java/com/game/business/controller/AppUserController.java
  5. 115 0
      game-business/src/main/java/com/game/business/controller/AppUsersCashrecordController.java
  6. 115 0
      game-business/src/main/java/com/game/business/controller/AppUsersChargeController.java
  7. 115 0
      game-business/src/main/java/com/game/business/controller/FinTranRecordController.java
  8. 19 0
      game-business/src/main/java/com/game/business/domain/AppGame.java
  9. 5 0
      game-business/src/main/java/com/game/business/domain/AppGameBetting.java
  10. 6 0
      game-business/src/main/java/com/game/business/domain/AppGameClassify.java
  11. 6 0
      game-business/src/main/java/com/game/business/domain/AppGameLottery.java
  12. 955 0
      game-business/src/main/java/com/game/business/domain/AppUser.java
  13. 212 0
      game-business/src/main/java/com/game/business/domain/AppUsersCashrecord.java
  14. 193 0
      game-business/src/main/java/com/game/business/domain/AppUsersCharge.java
  15. 229 0
      game-business/src/main/java/com/game/business/domain/FinTranRecord.java
  16. 61 0
      game-business/src/main/java/com/game/business/mapper/AppUserMapper.java
  17. 61 0
      game-business/src/main/java/com/game/business/mapper/AppUsersCashrecordMapper.java
  18. 61 0
      game-business/src/main/java/com/game/business/mapper/AppUsersChargeMapper.java
  19. 61 0
      game-business/src/main/java/com/game/business/mapper/FinTranRecordMapper.java
  20. 9 0
      game-business/src/main/java/com/game/business/service/IAppGameBettingService.java
  21. 7 0
      game-business/src/main/java/com/game/business/service/IAppGameClassifyService.java
  22. 4 0
      game-business/src/main/java/com/game/business/service/IAppGameLotteryService.java
  23. 8 0
      game-business/src/main/java/com/game/business/service/IAppGameService.java
  24. 61 0
      game-business/src/main/java/com/game/business/service/IAppUserService.java
  25. 61 0
      game-business/src/main/java/com/game/business/service/IAppUsersCashrecordService.java
  26. 61 0
      game-business/src/main/java/com/game/business/service/IAppUsersChargeService.java
  27. 61 0
      game-business/src/main/java/com/game/business/service/IFinTranRecordService.java
  28. 28 0
      game-business/src/main/java/com/game/business/service/impl/AppGameBettingServiceImpl.java
  29. 12 0
      game-business/src/main/java/com/game/business/service/impl/AppGameClassifyServiceImpl.java
  30. 20 0
      game-business/src/main/java/com/game/business/service/impl/AppGameLotteryServiceImpl.java
  31. 16 1
      game-business/src/main/java/com/game/business/service/impl/AppGameServiceImpl.java
  32. 94 0
      game-business/src/main/java/com/game/business/service/impl/AppUserServiceImpl.java
  33. 92 0
      game-business/src/main/java/com/game/business/service/impl/AppUsersCashrecordServiceImpl.java
  34. 92 0
      game-business/src/main/java/com/game/business/service/impl/AppUsersChargeServiceImpl.java
  35. 95 0
      game-business/src/main/java/com/game/business/service/impl/FinTranRecordServiceImpl.java
  36. 113 0
      game-business/src/main/java/com/game/business/task/AppGameBettingTask.java
  37. 4 0
      game-business/src/main/java/com/game/business/task/AppUserCountTask.java
  38. 3 3
      game-business/src/main/java/com/game/business/util/Common.java
  39. 160 22
      game-business/src/main/java/com/game/business/websocket/client/GameOneClient.java
  40. 6 1
      game-business/src/main/resources/mapper/business/AppGameClassifyMapper.xml
  41. 11 1
      game-business/src/main/resources/mapper/business/AppGameMapper.xml
  42. 816 0
      game-business/src/main/resources/mapper/business/AppUserMapper.xml
  43. 198 0
      game-business/src/main/resources/mapper/business/AppUsersCashrecordMapper.xml
  44. 183 0
      game-business/src/main/resources/mapper/business/AppUsersChargeMapper.xml
  45. 217 0
      game-business/src/main/resources/mapper/business/FinTranRecordMapper.xml

+ 140 - 10
game-business/src/main/java/com/game/business/controller/AppGameBettingController.java

@@ -1,16 +1,21 @@
 package com.game.business.controller;
 
-import com.game.business.domain.AppGameBetting;
-import com.game.business.service.IAppGameBettingService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.game.business.domain.*;
+import com.game.business.service.*;
 import com.game.common.core.controller.BaseController;
 import com.game.common.core.domain.AjaxResult;
 import io.swagger.annotations.Api;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Date;
+
 @RestController
 @RequestMapping("/game/betting")
 @Api(value = "AppGameBettingController", description = "游戏投注接口", tags = {"游戏投注、查询记录等"})
@@ -19,24 +24,149 @@ public class AppGameBettingController extends BaseController{
     @Autowired
     private IAppGameBettingService appGameBettingService;
 
+    @Autowired
+    private IAppGameService appGameService;
+
+    @Autowired
+    private IAppGameClassifyService appGameClassifyService;
+
+    @Autowired
+    private IAppUserService appUserService;
+
+    @Autowired
+    private IFinTranRecordService finTranRecordService;
+
+    @Autowired
+    private IAppGameLotteryService appGameLotteryService;
+
     /**
      * 下注
      */
     @PostMapping(value = "/create")
     public AjaxResult betting(@RequestBody AppGameBetting gameBetting)
     {
-        // 获取用户金额,判断投注金额是否大于余额
-        if(gameBetting.getBettingAmount() > 0){
-            return error("余额不足,投注失败。");
+
+        if(gameBetting.getClassId() == null){
+            return error("游戏平台ID为空。");
+        }
+
+        if(gameBetting.getGameId() == null){
+            return error("游戏ID为空。");
         }
 
-        // 投注时间判断,根据游戏ID和期号,查询游戏开奖剩余时间
-        if(gameBetting.getBettingAmount() > 0){
-            return error("已超过投注下单时间");
+        if(gameBetting.getUserId()== null){
+            return error("用户ID为空。");
+        }
+
+        AppGameClassify appGameClassify = appGameClassifyService.selectAppGameClassifyById(gameBetting.getClassId());
+        if(appGameClassify == null){
+            return error("游戏平台不存在。");
+        }
+
+        AppGame appGame = appGameService.selectAppGameById(gameBetting.getGameId());
+        if(appGame == null){
+            return error("游戏不存在。");
+        }
+
+        if(StringUtils.isBlank(appGame.getGameDate())){
+            return error("游戏期号不存在,无法下单。");
+        }
+
+        if(StringUtils.isBlank(appGame.getGameTime())){
+            return error("游戏倒计时不存在,无法下单。");
+        }
+
+        if(!appGame.getGameTime().contains(":")){
+            return error("游戏已封盘,无法下单。");
+        }
+
+        String[] timeArry = appGame.getGameTime().substring(0, 4).split(":");
+        int m = Integer.parseInt(timeArry[1]);
+
+        if(m <= 10){
+            return error("游戏已封盘,无法下单。");
+        }
+
+        long count = appGameLotteryService.selectCount(appGame.getClassifyId(), appGame.getId(), appGame.getGameDate());
+
+        if(count > 0){
+            return error("游戏已开奖,无法下单。");
+        }
+
+        synchronized (this){
+
+            AppUser appUser = appUserService.selectAppUserByUserid(gameBetting.getUserId());
+
+            if(appUser == null){
+                return error("用户不存在。");
+            }
+
+            // 获取用户金额,判断投注金额是否大于余额
+            if(gameBetting.getBettingAmount() > appUser.getDiamondCoin()){
+                return error("余额不足,投注失败。");
+            }
+
+            // 更新用户余额
+            appUser.setDiamondCoin(appUser.getDiamondCoin() - gameBetting.getBettingAmount());
+            appUser.setDiamondCoinTotal(appUser.getDiamondCoinCashTotal() - gameBetting.getBettingAmount());
+            appUserService.updateAppUser(appUser);
+
+            gameBetting.setGameDate(appGame.getGameDate());
+            // 插入投注记录
+            appGameBettingService.save(gameBetting);
+
+            FinTranRecord finTranRecord = new FinTranRecord();
+
+            finTranRecord.setAfterCoin(appUser.getCoin());
+            finTranRecord.setCoinChange(0.00);
+
+            finTranRecord.setAfterMoney(0.00);
+            finTranRecord.setMoneyChange(0.00);
+
+            finTranRecord.setAfterDiamondCoin(appUser.getDiamondCoin());
+            finTranRecord.setDiamondCoinChange(gameBetting.getBettingAmount());
+
+            finTranRecord.setAfterTicket(0.00);
+            finTranRecord.setTicketChange(0.00);
+
+            finTranRecord.setToUid(appUser.getUserid());
+            finTranRecord.setUid(appUser.getUserid());
+
+            finTranRecord.setSceneId1(0L);
+            finTranRecord.setSceneId2(null);
+            finTranRecord.setSceneType(0L);
+
+            finTranRecord.setTranGroupId(gameBetting.getId());
+            finTranRecord.setTranType1(16L);
+            finTranRecord.setTranType2(200L);
+            finTranRecord.setTranType3(20001L);
+
+            finTranRecord.setRemarks("游戏下注");
+
+            finTranRecord.setConsumptionCoin(gameBetting.getBettingAmount());
+            finTranRecord.setConsumptionMoney(0.00);
+            finTranRecord.setCommissionRelatedUid(0L);
+            finTranRecord.setAgentId(appUser.getAgentId());
+
+            finTranRecord.setCreateTime(new Date());
+
+            finTranRecord.setCurrencyType(4L);
+
+            finTranRecord.setFromUid(0L);
+            finTranRecord.setGoodsId(0L);
+            finTranRecord.setGuildId(0L);
+            finTranRecord.setManagerCoId(0L);
+            finTranRecord.setManagerId(0L);
+
+            finTranRecord.setPerc(0.00);
+            finTranRecord.setProId(0L);
+            finTranRecord.setProCount(0L);
+
+            finTranRecord.setOrderId(gameBetting.getId());
+
+            finTranRecordService.insertFinTranRecord(finTranRecord);
         }
 
-        // 插入投注记录
-        appGameBettingService.save(gameBetting);
         return success();
     }
 }

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

@@ -33,7 +33,6 @@ import com.game.common.core.page.TableDataInfo;
  */
 @RestController
 @RequestMapping("/business/classify")
-@DataSource(DataSourceType.SLAVE)
 @Api(value = "AppGameClassifyController", description = "游戏分类接口", tags = {"游戏分类"})
 public class AppGameClassifyController extends BaseController
 {

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

@@ -33,7 +33,6 @@ import com.game.common.core.page.TableDataInfo;
  */
 @RestController
 @RequestMapping("/business/game")
-@DataSource(DataSourceType.SLAVE)
 @Api(value = "AppGameController", description = "游戏配置接口", tags = {"游戏配置"})
 public class AppGameController extends BaseController
 {

+ 115 - 0
game-business/src/main/java/com/game/business/controller/AppUserController.java

@@ -0,0 +1,115 @@
+package com.game.business.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.game.common.annotation.Log;
+import com.game.common.core.controller.BaseController;
+import com.game.common.core.domain.AjaxResult;
+import com.game.common.enums.BusinessType;
+import com.game.common.annotation.DataSource;
+import com.game.common.enums.DataSourceType;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import com.game.business.domain.AppUser;
+import com.game.business.service.IAppUserService;
+import com.game.common.utils.poi.ExcelUtil;
+import com.game.common.core.page.TableDataInfo;
+
+/**
+ * app用户Controller
+ * 
+ * @author game
+ * @date 2024-06-18
+ */
+@RestController
+@RequestMapping("/business/user")
+@Api(value = "AppUserController", description = "app用户接口", tags = {"app用户"})
+public class AppUserController extends BaseController
+{
+    @Autowired
+    private IAppUserService appUserService;
+
+    /**
+     * 查询app用户列表
+     */
+    @PreAuthorize("@ss.hasPermi('business:user:list')")
+    @GetMapping("/list")
+    @ApiOperation(value = "查询app用户列表", notes = "获取app用户列表")
+    public TableDataInfo list(AppUser appUser)
+    {
+        startPage();
+        List<AppUser> list = appUserService.selectAppUserList(appUser);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出app用户列表
+     */
+    @PreAuthorize("@ss.hasPermi('business:user:export')")
+    @Log(title = "app用户", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ApiOperation(value = "导出app用户列表", notes = "导出app用户列表")
+    public void export(HttpServletResponse response, AppUser appUser)
+    {
+        List<AppUser> list = appUserService.selectAppUserList(appUser);
+        ExcelUtil<AppUser> util = new ExcelUtil<AppUser>(AppUser.class);
+        util.exportExcel(response, list, "app用户数据");
+    }
+
+    /**
+     * 获取app用户详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('business:user:query')")
+    @GetMapping(value = "/{userid}")
+    @ApiOperation(value = "获取app用户详细信息", notes = "获取app用户详细信息")
+    public AjaxResult getInfo(@PathVariable("userid") Long userid)
+    {
+        return success(appUserService.selectAppUserByUserid(userid));
+    }
+
+    /**
+     * 新增app用户
+     */
+    @PreAuthorize("@ss.hasPermi('business:user:add')")
+    @Log(title = "app用户", businessType = BusinessType.INSERT)
+    @ApiOperation(value = "新增app用户", notes = "新增app用户")
+    @PostMapping
+    public AjaxResult add(@RequestBody AppUser appUser)
+    {
+        return toAjax(appUserService.insertAppUser(appUser));
+    }
+
+    /**
+     * 修改app用户
+     */
+    @PreAuthorize("@ss.hasPermi('business:user:edit')")
+    @Log(title = "app用户", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "修改app用户", notes = "修改app用户")
+    @PutMapping
+    public AjaxResult edit(@RequestBody AppUser appUser)
+    {
+        return toAjax(appUserService.updateAppUser(appUser));
+    }
+
+    /**
+     * 删除app用户
+     */
+    @PreAuthorize("@ss.hasPermi('business:user:remove')")
+    @Log(title = "app用户", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "删除app用户", notes = "删除app用户")
+	@DeleteMapping("/{userids}")
+    public AjaxResult remove(@PathVariable Long[] userids)
+    {
+        return toAjax(appUserService.deleteAppUserByUserids(userids));
+    }
+}

+ 115 - 0
game-business/src/main/java/com/game/business/controller/AppUsersCashrecordController.java

@@ -0,0 +1,115 @@
+package com.game.business.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.game.common.annotation.Log;
+import com.game.common.core.controller.BaseController;
+import com.game.common.core.domain.AjaxResult;
+import com.game.common.enums.BusinessType;
+import com.game.common.annotation.DataSource;
+import com.game.common.enums.DataSourceType;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import com.game.business.domain.AppUsersCashrecord;
+import com.game.business.service.IAppUsersCashrecordService;
+import com.game.common.utils.poi.ExcelUtil;
+import com.game.common.core.page.TableDataInfo;
+
+/**
+ * 提现记录Controller
+ * 
+ * @author game
+ * @date 2024-06-18
+ */
+@RestController
+@RequestMapping("/business/cashrecord")
+@Api(value = "AppUsersCashrecordController", description = "提现记录接口", tags = {"提现记录"})
+public class AppUsersCashrecordController extends BaseController
+{
+    @Autowired
+    private IAppUsersCashrecordService appUsersCashrecordService;
+
+    /**
+     * 查询提现记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('business:cashrecord:list')")
+    @GetMapping("/list")
+    @ApiOperation(value = "查询提现记录列表", notes = "获取提现记录列表")
+    public TableDataInfo list(AppUsersCashrecord appUsersCashrecord)
+    {
+        startPage();
+        List<AppUsersCashrecord> list = appUsersCashrecordService.selectAppUsersCashrecordList(appUsersCashrecord);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出提现记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('business:cashrecord:export')")
+    @Log(title = "提现记录", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ApiOperation(value = "导出提现记录列表", notes = "导出提现记录列表")
+    public void export(HttpServletResponse response, AppUsersCashrecord appUsersCashrecord)
+    {
+        List<AppUsersCashrecord> list = appUsersCashrecordService.selectAppUsersCashrecordList(appUsersCashrecord);
+        ExcelUtil<AppUsersCashrecord> util = new ExcelUtil<AppUsersCashrecord>(AppUsersCashrecord.class);
+        util.exportExcel(response, list, "提现记录数据");
+    }
+
+    /**
+     * 获取提现记录详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('business:cashrecord:query')")
+    @GetMapping(value = "/{id}")
+    @ApiOperation(value = "获取提现记录详细信息", notes = "获取提现记录详细信息")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(appUsersCashrecordService.selectAppUsersCashrecordById(id));
+    }
+
+    /**
+     * 新增提现记录
+     */
+    @PreAuthorize("@ss.hasPermi('business:cashrecord:add')")
+    @Log(title = "提现记录", businessType = BusinessType.INSERT)
+    @ApiOperation(value = "新增提现记录", notes = "新增提现记录")
+    @PostMapping
+    public AjaxResult add(@RequestBody AppUsersCashrecord appUsersCashrecord)
+    {
+        return toAjax(appUsersCashrecordService.insertAppUsersCashrecord(appUsersCashrecord));
+    }
+
+    /**
+     * 修改提现记录
+     */
+    @PreAuthorize("@ss.hasPermi('business:cashrecord:edit')")
+    @Log(title = "提现记录", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "修改提现记录", notes = "修改提现记录")
+    @PutMapping
+    public AjaxResult edit(@RequestBody AppUsersCashrecord appUsersCashrecord)
+    {
+        return toAjax(appUsersCashrecordService.updateAppUsersCashrecord(appUsersCashrecord));
+    }
+
+    /**
+     * 删除提现记录
+     */
+    @PreAuthorize("@ss.hasPermi('business:cashrecord:remove')")
+    @Log(title = "提现记录", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "删除提现记录", notes = "删除提现记录")
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(appUsersCashrecordService.deleteAppUsersCashrecordByIds(ids));
+    }
+}

+ 115 - 0
game-business/src/main/java/com/game/business/controller/AppUsersChargeController.java

@@ -0,0 +1,115 @@
+package com.game.business.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.game.common.annotation.Log;
+import com.game.common.core.controller.BaseController;
+import com.game.common.core.domain.AjaxResult;
+import com.game.common.enums.BusinessType;
+import com.game.common.annotation.DataSource;
+import com.game.common.enums.DataSourceType;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import com.game.business.domain.AppUsersCharge;
+import com.game.business.service.IAppUsersChargeService;
+import com.game.common.utils.poi.ExcelUtil;
+import com.game.common.core.page.TableDataInfo;
+
+/**
+ * 充值记录Controller
+ * 
+ * @author game
+ * @date 2024-06-18
+ */
+@RestController
+@RequestMapping("/business/charge")
+@Api(value = "AppUsersChargeController", description = "充值记录接口", tags = {"充值记录"})
+public class AppUsersChargeController extends BaseController
+{
+    @Autowired
+    private IAppUsersChargeService appUsersChargeService;
+
+    /**
+     * 查询充值记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('business:charge:list')")
+    @GetMapping("/list")
+    @ApiOperation(value = "查询充值记录列表", notes = "获取充值记录列表")
+    public TableDataInfo list(AppUsersCharge appUsersCharge)
+    {
+        startPage();
+        List<AppUsersCharge> list = appUsersChargeService.selectAppUsersChargeList(appUsersCharge);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出充值记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('business:charge:export')")
+    @Log(title = "充值记录", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ApiOperation(value = "导出充值记录列表", notes = "导出充值记录列表")
+    public void export(HttpServletResponse response, AppUsersCharge appUsersCharge)
+    {
+        List<AppUsersCharge> list = appUsersChargeService.selectAppUsersChargeList(appUsersCharge);
+        ExcelUtil<AppUsersCharge> util = new ExcelUtil<AppUsersCharge>(AppUsersCharge.class);
+        util.exportExcel(response, list, "充值记录数据");
+    }
+
+    /**
+     * 获取充值记录详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('business:charge:query')")
+    @GetMapping(value = "/{id}")
+    @ApiOperation(value = "获取充值记录详细信息", notes = "获取充值记录详细信息")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(appUsersChargeService.selectAppUsersChargeById(id));
+    }
+
+    /**
+     * 新增充值记录
+     */
+    @PreAuthorize("@ss.hasPermi('business:charge:add')")
+    @Log(title = "充值记录", businessType = BusinessType.INSERT)
+    @ApiOperation(value = "新增充值记录", notes = "新增充值记录")
+    @PostMapping
+    public AjaxResult add(@RequestBody AppUsersCharge appUsersCharge)
+    {
+        return toAjax(appUsersChargeService.insertAppUsersCharge(appUsersCharge));
+    }
+
+    /**
+     * 修改充值记录
+     */
+    @PreAuthorize("@ss.hasPermi('business:charge:edit')")
+    @Log(title = "充值记录", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "修改充值记录", notes = "修改充值记录")
+    @PutMapping
+    public AjaxResult edit(@RequestBody AppUsersCharge appUsersCharge)
+    {
+        return toAjax(appUsersChargeService.updateAppUsersCharge(appUsersCharge));
+    }
+
+    /**
+     * 删除充值记录
+     */
+    @PreAuthorize("@ss.hasPermi('business:charge:remove')")
+    @Log(title = "充值记录", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "删除充值记录", notes = "删除充值记录")
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(appUsersChargeService.deleteAppUsersChargeByIds(ids));
+    }
+}

+ 115 - 0
game-business/src/main/java/com/game/business/controller/FinTranRecordController.java

@@ -0,0 +1,115 @@
+package com.game.business.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.game.common.annotation.Log;
+import com.game.common.core.controller.BaseController;
+import com.game.common.core.domain.AjaxResult;
+import com.game.common.enums.BusinessType;
+import com.game.common.annotation.DataSource;
+import com.game.common.enums.DataSourceType;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import com.game.business.domain.FinTranRecord;
+import com.game.business.service.IFinTranRecordService;
+import com.game.common.utils.poi.ExcelUtil;
+import com.game.common.core.page.TableDataInfo;
+
+/**
+ * 消费记录Controller
+ * 
+ * @author game
+ * @date 2024-06-18
+ */
+@RestController
+@RequestMapping("/business/tran_record")
+@Api(value = "FinTranRecordController", description = "消费记录接口", tags = {"消费记录"})
+public class FinTranRecordController extends BaseController
+{
+    @Autowired
+    private IFinTranRecordService finTranRecordService;
+
+    /**
+     * 查询消费记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('business:tran_record:list')")
+    @GetMapping("/list")
+    @ApiOperation(value = "查询消费记录列表", notes = "获取消费记录列表")
+    public TableDataInfo list(FinTranRecord finTranRecord)
+    {
+        startPage();
+        List<FinTranRecord> list = finTranRecordService.selectFinTranRecordList(finTranRecord);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出消费记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('business:tran_record:export')")
+    @Log(title = "消费记录", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ApiOperation(value = "导出消费记录列表", notes = "导出消费记录列表")
+    public void export(HttpServletResponse response, FinTranRecord finTranRecord)
+    {
+        List<FinTranRecord> list = finTranRecordService.selectFinTranRecordList(finTranRecord);
+        ExcelUtil<FinTranRecord> util = new ExcelUtil<FinTranRecord>(FinTranRecord.class);
+        util.exportExcel(response, list, "消费记录数据");
+    }
+
+    /**
+     * 获取消费记录详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('business:tran_record:query')")
+    @GetMapping(value = "/{id}")
+    @ApiOperation(value = "获取消费记录详细信息", notes = "获取消费记录详细信息")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(finTranRecordService.selectFinTranRecordById(id));
+    }
+
+    /**
+     * 新增消费记录
+     */
+    @PreAuthorize("@ss.hasPermi('business:tran_record:add')")
+    @Log(title = "消费记录", businessType = BusinessType.INSERT)
+    @ApiOperation(value = "新增消费记录", notes = "新增消费记录")
+    @PostMapping
+    public AjaxResult add(@RequestBody FinTranRecord finTranRecord)
+    {
+        return toAjax(finTranRecordService.insertFinTranRecord(finTranRecord));
+    }
+
+    /**
+     * 修改消费记录
+     */
+    @PreAuthorize("@ss.hasPermi('business:tran_record:edit')")
+    @Log(title = "消费记录", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "修改消费记录", notes = "修改消费记录")
+    @PutMapping
+    public AjaxResult edit(@RequestBody FinTranRecord finTranRecord)
+    {
+        return toAjax(finTranRecordService.updateFinTranRecord(finTranRecord));
+    }
+
+    /**
+     * 删除消费记录
+     */
+    @PreAuthorize("@ss.hasPermi('business:tran_record:remove')")
+    @Log(title = "消费记录", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "删除消费记录", notes = "删除消费记录")
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(finTranRecordService.deleteFinTranRecordByIds(ids));
+    }
+}

+ 19 - 0
game-business/src/main/java/com/game/business/domain/AppGame.java

@@ -37,12 +37,31 @@ private static final long serialVersionUID=1L;
     @TableField(value = "name")
     private String name;
 
+    /** 编码 */
+    @ApiModelProperty(value = "编码(对应游戏方ID)")
+    @Excel(name = "编码")
+    @TableField(value = "code")
+    private String code;
+
     /** 所属分类id */
     @ApiModelProperty(value = "所属分类id")
     @Excel(name = "所属分类id")
     @TableField(value = "classify_id")
     private Long classifyId;
 
+    /** 游戏当前期号 */
+    @ApiModelProperty(value = "游戏当前期号(socket推送填充、更新)")
+    @Excel(name = "游戏当前期号")
+    @TableField(value = "game_date")
+    private String gameDate;
+
+    /** 游戏当前期号 */
+    @ApiModelProperty(value = "游戏当前游戏倒计时(socket推送填充、更新)")
+    @Excel(name = "游戏当前倒计时")
+    @TableField(value = "game_time")
+    private String gameTime;
+
+
     /** logo */
     @ApiModelProperty(value = "logo")
     @Excel(name = "logo")

+ 5 - 0
game-business/src/main/java/com/game/business/domain/AppGameBetting.java

@@ -19,6 +19,11 @@ public class AppGameBetting {
     @Excel(name = "游戏投注Id", cellType = Excel.ColumnType.NUMERIC, prompt = "游戏投注Id")
     private Long id;
 
+    @Excel(name = "游戏平台ID")
+    @TableField(value = "class_id")
+    @ApiModelProperty(value = "游戏平台ID")
+    private Long classId;
+
     @Excel(name = "游戏Id")
     @TableField(value = "game_id")
     @ApiModelProperty(value = "游戏Id")

+ 6 - 0
game-business/src/main/java/com/game/business/domain/AppGameClassify.java

@@ -36,6 +36,12 @@ private static final long serialVersionUID=1L;
     @TableField(value = "name")
     private String name;
 
+    /** 编码 */
+    @ApiModelProperty(value = "编码(对应游戏方ID)")
+    @Excel(name = "编码")
+    @TableField(value = "code")
+    private String code;
+
     /** logo */
     @ApiModelProperty(value = "logo")
     @Excel(name = "logo")

+ 6 - 0
game-business/src/main/java/com/game/business/domain/AppGameLottery.java

@@ -19,6 +19,12 @@ public class AppGameLottery {
     @Excel(name = "游戏开奖Id", cellType = Excel.ColumnType.NUMERIC, prompt = "游戏开奖Id")
     private Long id;
 
+
+    @Excel(name = "游戏类型Id")
+    @TableField(value = "class_id")
+    @ApiModelProperty(value = "游戏类型Id")
+    private Long classId;
+
     @Excel(name = "游戏Id")
     @TableField(value = "game_id")
     @ApiModelProperty(value = "游戏Id")

+ 955 - 0
game-business/src/main/java/com/game/business/domain/AppUser.java

@@ -0,0 +1,955 @@
+package com.game.business.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.game.common.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * app用户对象 app_user
+ *
+ * @author game
+ * @date 2024-06-18
+ */
+@ApiModel(value = "app_user", description = "app用户")
+@TableName(value= "app_user")
+@Data
+public class AppUser
+        {
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty(value = "$column.columnComment")
+    @TableId(value = "userid" , type = IdType.AUTO)
+    private Long userid;
+
+    /** 地址  */
+    @ApiModelProperty(value = "地址 ")
+    @Excel(name = "地址 ")
+    @TableField(value = "address")
+    private String address;
+
+    /** 直属上级代理(后台管理员) */
+    @ApiModelProperty(value = "直属上级代理(后台管理员)")
+    @Excel(name = "直属上级代理" , readConverterExp = "后=台管理员")
+    @TableField(value = "agent_id")
+    private Long agentId;
+
+    /** 映票余额 */
+    @ApiModelProperty(value = "映票余额")
+    @Excel(name = "映票余额")
+    @TableField(value = "amount")
+    private Double amount;
+
+    /** 主播等级 */
+    @ApiModelProperty(value = "主播等级")
+    @Excel(name = "主播等级")
+    @TableField(value = "anchor_grade")
+    private Long anchorGrade;
+
+    /** 主播积分 */
+    @ApiModelProperty(value = "主播积分")
+    @Excel(name = "主播积分")
+    @TableField(value = "anchor_point")
+    private Long anchorPoint;
+
+    /** 当前版本号 */
+    @ApiModelProperty(value = "当前版本号")
+    @Excel(name = "当前版本号")
+    @TableField(value = "app_version")
+    private String appVersion;
+
+    /** 当前版本code */
+    @ApiModelProperty(value = "当前版本code")
+    @Excel(name = "当前版本code")
+    @TableField(value = "app_version_code")
+    private String appVersionCode;
+
+    /** 用户头像 */
+    @ApiModelProperty(value = "用户头像")
+    @Excel(name = "用户头像")
+    @TableField(value = "avatar")
+    private String avatar;
+
+    /** 连续登录天数 */
+    @ApiModelProperty(value = "连续登录天数")
+    @Excel(name = "连续登录天数")
+    @TableField(value = "award_login_day")
+    private Long awardLoginDay;
+
+    /** 生日 */
+    @ApiModelProperty(value = "生日")
+    @Excel(name = "生日")
+    @TableField(value = "birthday")
+    private String birthday;
+
+    /** 全站广播功能 0:关闭功能 1:开启功能 */
+    @ApiModelProperty(value = "全站广播功能 0:关闭功能 1:开启功能")
+    @Excel(name = "全站广播功能 0:关闭功能 1:开启功能")
+    @TableField(value = "broad_cast")
+    private Long broadCast;
+
+    /** 分类id对应app_live_channel表 */
+    @ApiModelProperty(value = "分类id对应app_live_channel表")
+    @Excel(name = "分类id对应app_live_channel表")
+    @TableField(value = "channel_id")
+    private Long channelId;
+
+    /** 充值隐身 0:不隐身 1:隐身 */
+    @ApiModelProperty(value = "充值隐身 0:不隐身 1:隐身")
+    @Excel(name = "充值隐身 0:不隐身 1:隐身")
+    @TableField(value = "charge_show")
+    private Long chargeShow;
+
+    /** 魅力等级 */
+    @ApiModelProperty(value = "魅力等级")
+    @Excel(name = "魅力等级")
+    @TableField(value = "charm_grade")
+    private Long charmGrade;
+
+    /** 魅力积分 */
+    @ApiModelProperty(value = "魅力积分")
+    @Excel(name = "魅力积分")
+    @TableField(value = "charm_point")
+    private Long charmPoint;
+
+    /** 城市 */
+    @ApiModelProperty(value = "城市")
+    @Excel(name = "城市")
+    @TableField(value = "city")
+    private String city;
+
+    /** 0:未编辑过 1:编辑过了 */
+    @ApiModelProperty(value = "0:未编辑过 1:编辑过了")
+    @Excel(name = "0:未编辑过 1:编辑过了")
+    @TableField(value = "city_edit")
+    private Long cityEdit;
+
+    /** 金币 /充值金额 */
+    @ApiModelProperty(value = "金币 /充值金额")
+    @Excel(name = "金币 /充值金额")
+    @TableField(value = "coin")
+    private Double coin;
+
+    /** 星座 */
+    @ApiModelProperty(value = "星座")
+    @Excel(name = "星座")
+    @TableField(value = "constellation")
+    private String constellation;
+
+    /** 消费总额(财富积分) */
+    @ApiModelProperty(value = "消费总额(财富积分)")
+    @Excel(name = "消费总额(财富积分)")
+    @TableField(value = "consumption")
+    private Double consumption;
+
+    /** 注册时间 */
+    @ApiModelProperty(value = "注册时间")
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    /** 分成方案 */
+    @ApiModelProperty(value = "分成方案")
+    @Excel(name = "分成方案")
+    @TableField(value = "deal_scale_plan")
+    private Long dealScalePlan;
+
+    /** 删除状态 0:未删除(默认) 1:已删除 */
+    @ApiModelProperty(value = "删除状态 0:未删除(默认) 1:已删除")
+    @TableField(value = "del_flag")
+    private Long delFlag;
+
+    /** 用户当前设备信息ID  */
+    @ApiModelProperty(value = "用户当前设备信息ID ")
+    @Excel(name = "用户当前设备信息ID ")
+    @TableField(value = "device_id")
+    private String deviceId;
+
+    /** 贡献榜排行隐身 0:不隐身 1:隐身 */
+    @ApiModelProperty(value = "贡献榜排行隐身 0:不隐身 1:隐身")
+    @Excel(name = "贡献榜排行隐身 0:不隐身 1:隐身")
+    @TableField(value = "devote_show")
+    private Long devoteShow;
+
+    /** 礼物全局广播 0:关闭 1:开启 */
+    @ApiModelProperty(value = "礼物全局广播 0:关闭 1:开启")
+    @Excel(name = "礼物全局广播 0:关闭 1:开启")
+    @TableField(value = "gift_global_broadcast")
+    private Long giftGlobalBroadcast;
+
+    /** 当前装备靓号 */
+    @ApiModelProperty(value = "当前装备靓号")
+    @Excel(name = "当前装备靓号")
+    @TableField(value = "goodnum")
+    private String goodnum;
+
+    /** 主播粉丝团群聊id */
+    @ApiModelProperty(value = "主播粉丝团群聊id")
+    @Excel(name = "主播粉丝团群聊id")
+    @TableField(value = "group_id")
+    private Long groupId;
+
+    /** 房间号(跟随用) */
+    @ApiModelProperty(value = "房间号(跟随用)")
+    @Excel(name = "房间号(跟随用)")
+    @TableField(value = "gs_room_id")
+    private Long gsRoomId;
+
+    /** 跟随房间类型 1:视频 2:语音 */
+    @ApiModelProperty(value = "跟随房间类型 1:视频 2:语音")
+    @Excel(name = "跟随房间类型 1:视频 2:语音")
+    @TableField(value = "gs_room_type")
+    private Long gsRoomType;
+
+    /** 所属公会ID */
+    @ApiModelProperty(value = "所属公会ID")
+    @Excel(name = "所属公会ID")
+    @TableField(value = "guild_id")
+    private Long guildId;
+
+    /** ooo导航分类关联app_live_channel表 */
+    @ApiModelProperty(value = "ooo导航分类关联app_live_channel表")
+    @Excel(name = "ooo导航分类关联app_live_channel表")
+    @TableField(value = "head_no")
+    private Long headNo;
+
+    /** 身高  */
+    @ApiModelProperty(value = "身高 ")
+    @Excel(name = "身高 ")
+    @TableField(value = "height")
+    private Long height;
+
+    /** 隐藏距离 0:不隐藏 1:隐藏 */
+    @ApiModelProperty(value = "隐藏距离 0:不隐藏 1:隐藏")
+    @Excel(name = "隐藏距离 0:不隐藏 1:隐藏")
+    @TableField(value = "hide_distance")
+    private Long hideDistance;
+
+    /** 用户资料图片 */
+    @ApiModelProperty(value = "用户资料图片")
+    @Excel(name = "用户资料图片")
+    @TableField(value = "invite_code")
+    private String inviteCode;
+
+    /** 绑定码 */
+    @ApiModelProperty(value = "绑定码")
+    @Excel(name = "绑定码")
+    @TableField(value = "bind_code")
+    private String bindCode;
+
+    /**  用户当前的位置信息ID */
+    @ApiModelProperty(value = " 用户当前的位置信息ID")
+    @Excel(name = " 用户当前的位置信息ID")
+    @TableField(value = "ipaddr")
+    private String ipaddr;
+
+    /** 主播是否认证 0:未认证 1:已认证  后台添加主播时,如果是认证状态, 需要添加认证记录 */
+    @ApiModelProperty(value = "主播是否认证 0:未认证 1:已认证  后台添加主播时,如果是认证状态, 需要添加认证记录")
+    @Excel(name = "主播是否认证 0:未认证 1:已认证  后台添加主播时,如果是认证状态, 需要添加认证记录")
+    @TableField(value = "is_anchor_auth")
+    private Long isAnchorAuth;
+
+    /** $column.columnComment */
+    @ApiModelProperty(value = "$column.columnComment")
+    @Excel(name = "${comment}" , readConverterExp = "$column.readConverterExp()")
+    @TableField(value = "is_automatic")
+    private Long isAutomatic;
+
+    /** 是否加入极光 0:未加入 1:已加入 */
+    @ApiModelProperty(value = "是否加入极光 0:未加入 1:已加入")
+    @Excel(name = "是否加入极光 0:未加入 1:已加入")
+    @TableField(value = "is_join_jg")
+    private Long isJoinJg;
+
+    /** 是否是多人直播演示账号 1:多人视频直播演示账号 2:多人语音直播演示账号 0:否 */
+    @ApiModelProperty(value = "是否是多人直播演示账号 1:多人视频直播演示账号 2:多人语音直播演示账号 0:否")
+    @Excel(name = "是否是多人直播演示账号 1:多人视频直播演示账号 2:多人语音直播演示账号 0:否")
+    @TableField(value = "is_live_account")
+    private Long isLiveAccount;
+
+    /** 是否开启勿扰 0:未开启 1:开启 */
+    @ApiModelProperty(value = "是否开启勿扰 0:未开启 1:开启")
+    @Excel(name = "是否开启勿扰 0:未开启 1:开启")
+    @TableField(value = "is_not_disturb")
+    private Long isNotDisturb;
+
+    /** 是否是一对一演示账号 1:是 0:否 */
+    @ApiModelProperty(value = "是否是一对一演示账号 1:是 0:否")
+    @Excel(name = "是否是一对一演示账号 1:是 0:否")
+    @TableField(value = "is_ooo_account")
+    private Long isOooAccount;
+
+    /** 是否开启消息推送 0:开启 1:关闭 */
+    @ApiModelProperty(value = "是否开启消息推送 0:开启 1:关闭")
+    @Excel(name = "是否开启消息推送 0:开启 1:关闭")
+    @TableField(value = "is_push")
+    private Long isPush;
+
+    /** 是否推荐 0:不推荐 1:推荐中 */
+    @ApiModelProperty(value = "是否推荐 0:不推荐 1:推荐中")
+    @Excel(name = "是否推荐 0:不推荐 1:推荐中")
+    @TableField(value = "is_recommend")
+    private Long isRecommend;
+
+    /** 是否显示在首页 是否显示在首页 1:展示在首页 0:不展示在首页 */
+    @ApiModelProperty(value = "是否显示在首页 是否显示在首页 1:展示在首页 0:不展示在首页")
+    @Excel(name = "是否显示在首页 是否显示在首页 1:展示在首页 0:不展示在首页")
+    @TableField(value = "is_show_home_page")
+    private Long isShowHomePage;
+
+    /**  用户是否开通了SVIP 1是 0否 */
+    @ApiModelProperty(value = " 用户是否开通了SVIP 1是 0否")
+    @Excel(name = " 用户是否开通了SVIP 1是 0否")
+    @TableField(value = "is_svip")
+    private Long isSvip;
+
+    /** 是否关闭提示音 0:开启 1:关闭 */
+    @ApiModelProperty(value = "是否关闭提示音 0:开启 1:关闭")
+    @Excel(name = "是否关闭提示音 0:开启 1:关闭")
+    @TableField(value = "is_tone")
+    private Long isTone;
+
+    /** 是否开启青少年模式 1:开启 2:未开启 */
+    @ApiModelProperty(value = "是否开启青少年模式 1:开启 2:未开启")
+    @Excel(name = "是否开启青少年模式 1:开启 2:未开启")
+    @TableField(value = "is_youth_model")
+    private Long isYouthModel;
+
+    /** 是否热门显示 1:否 0:是 */
+    @ApiModelProperty(value = "是否热门显示 1:否 0:是")
+    @Excel(name = "是否热门显示 1:否 0:是")
+    @TableField(value = "ishot")
+    private Long ishot;
+
+    /** 是否开起回放 1:未开启 0:已开启 */
+    @ApiModelProperty(value = "是否开起回放 1:未开启 0:已开启")
+    @Excel(name = "是否开起回放 1:未开启 0:已开启")
+    @TableField(value = "isrecord")
+    private Long isrecord;
+
+    /** 是否超管 1:否 0:是 */
+    @ApiModelProperty(value = "是否超管 1:否 0:是")
+    @Excel(name = "是否超管 1:否 0:是")
+    @TableField(value = "issuper")
+    private Long issuper;
+
+    /** 是否开启僵尸粉 1:未开启(默认) 0:已开启 */
+    @ApiModelProperty(value = "是否开启僵尸粉 1:未开启(默认) 0:已开启")
+    @Excel(name = "是否开启僵尸粉 1:未开启(默认) 0:已开启")
+    @TableField(value = "iszombie")
+    private Long iszombie;
+
+    /** 是否真人 0:不是 1:是 */
+    @ApiModelProperty(value = "是否真人 0:不是 1:是")
+    @Excel(name = "是否真人 0:不是 1:是")
+    @TableField(value = "iszombiep")
+    private Long iszombiep;
+
+    /** 加入房间隐身 0:不隐身 1:隐身 */
+    @ApiModelProperty(value = "加入房间隐身 0:不隐身 1:隐身")
+    @Excel(name = "加入房间隐身 0:不隐身 1:隐身")
+    @TableField(value = "join_room_show")
+    private Long joinRoomShow;
+
+    /** 被踢到期时间戳  */
+    @ApiModelProperty(value = "被踢到期时间戳 ")
+    @Excel(name = "被踢到期时间戳 ")
+    @TableField(value = "kick_time")
+    private Long kickTime;
+
+    /** 上次抽奖进度  */
+    @ApiModelProperty(value = "上次抽奖进度 ")
+    @Excel(name = "上次抽奖进度 ")
+    @TableField(value = "last_game_num")
+    private Long lastGameNum;
+
+    /** 上次登录时间(连续登录用) */
+    @ApiModelProperty(value = "上次登录时间(连续登录用)")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "上次登录时间(连续登录用)" , width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField(value = "last_login_day")
+    private Date lastLoginDay;
+
+    /** 最后登录ip */
+    @ApiModelProperty(value = "最后登录ip")
+    @Excel(name = "最后登录ip")
+    @TableField(value = "last_login_ip")
+    private String lastLoginIp;
+
+    /**  上次登录时间 */
+    @ApiModelProperty(value = " 上次登录时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 上次登录时间" , width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField(value = "last_login_time")
+    private Date lastLoginTime;
+
+    /**  离线时间 */
+    @ApiModelProperty(value = " 离线时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 离线时间" , width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField(value = "last_off_line_time")
+    private Date lastOffLineTime;
+
+    /** 纬度  */
+    @ApiModelProperty(value = "纬度 ")
+    @Excel(name = "纬度 ")
+    @TableField(value = "lat")
+    private Double lat;
+
+    /** $column.columnComment */
+    @ApiModelProperty(value = "$column.columnComment")
+    @Excel(name = "${comment}" , readConverterExp = "$column.readConverterExp()")
+    @TableField(value = "level")
+    private Long level;
+
+    /** 是否有直播购 0:没有直播购 1:有直播购 */
+    @ApiModelProperty(value = "是否有直播购 0:没有直播购 1:有直播购")
+    @Excel(name = "是否有直播购 0:没有直播购 1:有直播购")
+    @TableField(value = "live_function")
+    private Long liveFunction;
+
+    /** 视频直播状态:0:未进行直播 1:直播主播 2:直播观众 */
+    @ApiModelProperty(value = "视频直播状态:0:未进行直播 1:直播主播 2:直播观众")
+    @Excel(name = "视频直播状态:0:未进行直播 1:直播主播 2:直播观众")
+    @TableField(value = "live_status")
+    private Long liveStatus;
+
+    /** 封面 */
+    @ApiModelProperty(value = "封面")
+    @Excel(name = "封面")
+    @TableField(value = "live_thumb")
+    private String liveThumb;
+
+    /** 直播封面图 */
+    @ApiModelProperty(value = "直播封面图")
+    @Excel(name = "直播封面图")
+    @TableField(value = "live_thumbs")
+    private String liveThumbs;
+
+    /** 经度  */
+    @ApiModelProperty(value = "经度 ")
+    @Excel(name = "经度 ")
+    @TableField(value = "lng")
+    private Double lng;
+
+    /** 禁用原因  */
+    @ApiModelProperty(value = "禁用原因 ")
+    @Excel(name = "禁用原因 ")
+    @TableField(value = "lock_reason")
+    private String lockReason;
+
+    /** 禁用时间  */
+    @ApiModelProperty(value = "禁用时间 ")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "禁用时间 " , width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField(value = "lock_time")
+    private Date lockTime;
+
+    /** 注册方式 1:手机注册 2:微信注册 3:QQ注册 */
+    @ApiModelProperty(value = "注册方式 1:手机注册 2:微信注册 3:QQ注册")
+    @Excel(name = "注册方式 1:手机注册 2:微信注册 3:QQ注册")
+    @TableField(value = "login_type")
+    private String loginType;
+
+    /** 上级经纪人ID,对应AdminUser表 */
+    @ApiModelProperty(value = "上级经纪人ID,对应AdminUser表")
+    @Excel(name = "上级经纪人ID,对应AdminUser表")
+    @TableField(value = "manager_co_id")
+    private Long managerCoId;
+
+    /** 上级经纪人ID,对应AdminUser表 */
+    @ApiModelProperty(value = "上级经纪人ID,对应AdminUser表")
+    @Excel(name = "上级经纪人ID,对应AdminUser表")
+    @TableField(value = "manager_id")
+    private Long managerId;
+
+    /** 最大连续签到天数 */
+    @ApiModelProperty(value = "最大连续签到天数")
+    @Excel(name = "最大连续签到天数")
+    @TableField(value = "max_sign_count")
+    private Long maxSignCount;
+
+    /**  手机号 */
+    @ApiModelProperty(value = " 手机号")
+    @Excel(name = " 手机号")
+    @TableField(value = "mobile")
+    private String mobile;
+
+    /** 昵称  */
+    @ApiModelProperty(value = "昵称 ")
+    @Excel(name = "昵称 ")
+    @TableField(value = "nickname")
+    private String nickname;
+
+    /** 贵族等级 */
+    @ApiModelProperty(value = "贵族等级")
+    @Excel(name = "贵族等级")
+    @TableField(value = "noble_grade")
+    private Long nobleGrade;
+
+    /** 用户在线状态 0:离线 1:在线 */
+    @ApiModelProperty(value = "用户在线状态 0:离线 1:在线")
+    @Excel(name = "用户在线状态 0:离线 1:在线")
+    @TableField(value = "online_status")
+    private Long onlineStatus;
+
+    /** 首页一对一排序编号 */
+    @ApiModelProperty(value = "首页一对一排序编号")
+    @Excel(name = "首页一对一排序编号")
+    @TableField(value = "ooo_home_page_sort_no")
+    private Long oooHomePageSortNo;
+
+    /** 一对一直播状态:0:未进行直播 1:通话中 2:邀请他人通话 3:正在被邀请 */
+    @ApiModelProperty(value = "一对一直播状态:0:未进行直播 1:通话中 2:邀请他人通话 3:正在被邀请")
+    @Excel(name = "一对一直播状态:0:未进行直播 1:通话中 2:邀请他人通话 3:正在被邀请")
+    @TableField(value = "ooo_live_status")
+    private Long oooLiveStatus;
+
+    /** ooo二级分类id */
+    @ApiModelProperty(value = "ooo二级分类id")
+    @Excel(name = "ooo二级分类id")
+    @TableField(value = "ooo_two_classify_id")
+    private Long oooTwoClassifyId;
+
+    /** 开播随机僵尸粉数量 */
+    @ApiModelProperty(value = "开播随机僵尸粉数量")
+    @Excel(name = "开播随机僵尸粉数量")
+    @TableField(value = "open_live_zombie_num")
+    private Long openLiveZombieNum;
+
+    /** 微信企业ID  */
+    @ApiModelProperty(value = "微信企业ID ")
+    @Excel(name = "微信企业ID ")
+    @TableField(value = "openid")
+    private String openid;
+
+    /** 操作用户名,如禁用操作/解禁操作等 */
+    @ApiModelProperty(value = "操作用户名,如禁用操作/解禁操作等")
+    @Excel(name = "操作用户名,如禁用操作/解禁操作等")
+    @TableField(value = "opt_user_name")
+    private String optUserName;
+
+    /** 密码  */
+    @ApiModelProperty(value = "密码 ")
+    @Excel(name = "密码 ")
+    @TableField(value = "password")
+    private String password;
+
+    /** 手机厂商 */
+    @ApiModelProperty(value = "手机厂商")
+    @Excel(name = "手机厂商")
+    @TableField(value = "phone_firm")
+    private String phoneFirm;
+
+    /** 手机型号 */
+    @ApiModelProperty(value = "手机型号")
+    @Excel(name = "手机型号")
+    @TableField(value = "phone_model")
+    private String phoneModel;
+
+    /** 手机系统 */
+    @ApiModelProperty(value = "手机系统")
+    @Excel(name = "手机系统")
+    @TableField(value = "phone_system")
+    private String phoneSystem;
+
+    /** 手机唯一标识 */
+    @ApiModelProperty(value = "手机唯一标识")
+    @Excel(name = "手机唯一标识")
+    @TableField(value = "phone_uuid")
+    private String phoneUuid;
+
+    /** 直属上级 */
+    @ApiModelProperty(value = "直属上级")
+    @Excel(name = "直属上级")
+    @TableField(value = "pid")
+    private Long pid;
+
+    /** 用户资料图片 */
+    @ApiModelProperty(value = "用户资料图片")
+    @Excel(name = "用户资料图片")
+    @TableField(value = "portrait")
+    private String portrait;
+
+    /** 海报 */
+    @ApiModelProperty(value = "海报")
+    @Excel(name = "海报")
+    @TableField(value = "poster")
+    private String poster;
+
+    /** 省份 */
+    @ApiModelProperty(value = "省份")
+    @Excel(name = "省份")
+    @TableField(value = "province")
+    private String province;
+
+    /** 推送平台 1:小米 2:华为 3:vivo 4:oppo 5:苹果 6:极光 7:apns 8:miApns */
+    @ApiModelProperty(value = "推送平台 1:小米 2:华为 3:vivo 4:oppo 5:苹果 6:极光 7:apns 8:miApns")
+    @Excel(name = "推送平台 1:小米 2:华为 3:vivo 4:oppo 5:苹果 6:极光 7:apns 8:miApns")
+    @TableField(value = "push_platform")
+    private Long pushPlatform;
+
+    /** 推送平台对应的id */
+    @ApiModelProperty(value = "推送平台对应的id")
+    @Excel(name = "推送平台对应的id")
+    @TableField(value = "push_register_id")
+    private String pushRegisterId;
+
+    /** 短视频剩余可观看次数 */
+    @ApiModelProperty(value = "短视频剩余可观看次数")
+    @Excel(name = "短视频剩余可观看次数")
+    @TableField(value = "read_short_video_number")
+    private Long readShortVideoNumber;
+
+    /**  注册类型 */
+    @ApiModelProperty(value = " 注册类型")
+    @Excel(name = " 注册类型")
+    @TableField(value = "reg_type")
+    private Long regType;
+
+    /** 注册时ip */
+    @ApiModelProperty(value = "注册时ip")
+    @Excel(name = "注册时ip")
+    @TableField(value = "register_ip")
+    private String registerIp;
+
+    /** 角色 0:普通用户 1:主播 */
+    @ApiModelProperty(value = "角色 0:普通用户 1:主播")
+    @Excel(name = "角色 0:普通用户 1:主播")
+    @TableField(value = "role")
+    private Long role;
+
+    /** 房间号 */
+    @ApiModelProperty(value = "房间号")
+    @Excel(name = "房间号")
+    @TableField(value = "room_id")
+    private Long roomId;
+
+    /** 房间标题 */
+    @ApiModelProperty(value = "房间标题")
+    @Excel(name = "房间标题")
+    @TableField(value = "room_title")
+    private String roomTitle;
+
+    /** 房间类型 0:是一般直播 1:是私密直播 2:是收费直播 3:是计时直播 4:贵族房间 */
+    @ApiModelProperty(value = "房间类型 0:是一般直播 1:是私密直播 2:是收费直播 3:是计时直播 4:贵族房间")
+    @Excel(name = "房间类型 0:是一般直播 1:是私密直播 2:是收费直播 3:是计时直播 4:贵族房间")
+    @TableField(value = "room_type")
+    private Long roomType;
+
+    /** 房间类型值 */
+    @ApiModelProperty(value = "房间类型值")
+    @Excel(name = "房间类型值")
+    @TableField(value = "room_type_val")
+    private String roomTypeVal;
+
+    /**  盐 */
+    @ApiModelProperty(value = " 盐")
+    @Excel(name = " 盐")
+    @TableField(value = "salt")
+    private String salt;
+
+    /** 三围 */
+    @ApiModelProperty(value = "三围")
+    @Excel(name = "三围")
+    @TableField(value = "sanwei")
+    private String sanwei;
+
+    /** 用户积分 */
+    @ApiModelProperty(value = "用户积分")
+    @Excel(name = "用户积分")
+    @TableField(value = "score")
+    private Long score;
+
+    /** 性别 0:未设置 1:男 2:女  */
+    @ApiModelProperty(value = "性别 0:未设置 1:男 2:女 ")
+    @Excel(name = "性别 0:未设置 1:男 2:女 ")
+    @TableField(value = "sex")
+    private Long sex;
+
+    /** 连续签到次数 */
+    @ApiModelProperty(value = "连续签到次数")
+    @Excel(name = "连续签到次数")
+    @TableField(value = "sign_count")
+    private Long signCount;
+
+    /** 上次签到时间 */
+    @ApiModelProperty(value = "上次签到时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "上次签到时间" , width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField(value = "sign_time")
+    private Date signTime;
+
+    /** 个性签名 */
+    @ApiModelProperty(value = "个性签名")
+    @Excel(name = "个性签名")
+    @TableField(value = "signature")
+    private String signature;
+
+    /** 手机号区域 例如:86 */
+    @ApiModelProperty(value = "手机号区域 例如:86")
+    @Excel(name = "手机号区域 例如:86")
+    @TableField(value = "sms_region")
+    private String smsRegion;
+
+    /** 注册来源 */
+    @ApiModelProperty(value = "注册来源")
+    @Excel(name = "注册来源")
+    @TableField(value = "source")
+    private String source;
+
+    /**  主播星级id */
+    @ApiModelProperty(value = " 主播星级id")
+    @Excel(name = " 主播星级id")
+    @TableField(value = "star_id")
+    private Long starId;
+
+    /**  用户状态 1:禁用 0:正常 */
+    @ApiModelProperty(value = " 用户状态 1:禁用 0:正常")
+    @Excel(name = " 用户状态 1:禁用 0:正常")
+    @TableField(value = "status")
+    private Long status;
+
+    /** 总收益佣金 */
+    @ApiModelProperty(value = "总收益佣金")
+    @Excel(name = "总收益佣金")
+    @TableField(value = "total_amount")
+    private Double totalAmount;
+
+    /** 累计提现金额 */
+    @ApiModelProperty(value = "累计提现金额")
+    @Excel(name = "累计提现金额")
+    @TableField(value = "total_amount_cash")
+    private Double totalAmountCash;
+
+    /** 累计提现金额 */
+    @ApiModelProperty(value = "累计提现金额")
+    @Excel(name = "累计提现金额")
+    @TableField(value = "total_cash")
+    private Double totalCash;
+
+    /** 累计充值金额 */
+    @ApiModelProperty(value = "累计充值金额")
+    @Excel(name = "累计充值金额")
+    @TableField(value = "total_charge")
+    private Double totalCharge;
+
+    /**  微信唯一ID */
+    @ApiModelProperty(value = " 微信唯一ID")
+    @Excel(name = " 微信唯一ID")
+    @TableField(value = "unionid")
+    private String unionid;
+
+    /** 修改密码时间  */
+    @ApiModelProperty(value = "修改密码时间 ")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "修改密码时间 " , width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField(value = "update_pwd_time")
+    private Date updatePwdTime;
+
+    /** 激活码 */
+    @ApiModelProperty(value = "激活码")
+    @Excel(name = "激活码")
+    @TableField(value = "user_activation_key")
+    private String userActivationKey;
+
+    /** 登录邮箱 */
+    @ApiModelProperty(value = "登录邮箱")
+    @Excel(name = "登录邮箱")
+    @TableField(value = "user_email")
+    private String userEmail;
+
+    /** 用户等级 */
+    @ApiModelProperty(value = "用户等级")
+    @Excel(name = "用户等级")
+    @TableField(value = "user_grade")
+    private Long userGrade;
+
+    /** 用户积分 */
+    @ApiModelProperty(value = "用户积分")
+    @Excel(name = "用户积分")
+    @TableField(value = "user_point")
+    private Long userPoint;
+
+    /** 用户设置的在线状态 0:在线 1:忙碌 2:离开 3:通话中 */
+    @ApiModelProperty(value = "用户设置的在线状态 0:在线 1:忙碌 2:离开 3:通话中")
+    @Excel(name = "用户设置的在线状态 0:在线 1:忙碌 2:离开 3:通话中")
+    @TableField(value = "user_set_online_status")
+    private Long userSetOnlineStatus;
+
+    /** 用户类型 1:admin 2:会员  3:游客 */
+    @ApiModelProperty(value = "用户类型 1:admin 2:会员  3:游客")
+    @Excel(name = "用户类型 1:admin 2:会员  3:游客")
+    @TableField(value = "user_type")
+    private Long userType;
+
+    /** 用户个人网站 */
+    @ApiModelProperty(value = "用户个人网站")
+    @Excel(name = "用户个人网站")
+    @TableField(value = "user_url")
+    private String userUrl;
+
+    /** 用户名  */
+    @ApiModelProperty(value = "用户名 ")
+    @Excel(name = "用户名 ")
+    @TableField(value = "username")
+    private String username;
+
+    /** 展示视频  */
+    @ApiModelProperty(value = "展示视频 ")
+    @Excel(name = "展示视频 ")
+    @TableField(value = "video")
+    private String video;
+
+    /** 视频通话时间金币 /min */
+    @ApiModelProperty(value = "视频通话时间金币 /min")
+    @Excel(name = "视频通话时间金币 /min")
+    @TableField(value = "video_coin")
+    private Double videoCoin;
+
+    /** 展示视频封面  */
+    @ApiModelProperty(value = "展示视频封面 ")
+    @Excel(name = "展示视频封面 ")
+    @TableField(value = "video_img")
+    private String videoImg;
+
+    /** 职业 */
+    @ApiModelProperty(value = "职业")
+    @Excel(name = "职业")
+    @TableField(value = "vocation")
+    private String vocation;
+
+    /** 展示声音  */
+    @ApiModelProperty(value = "展示声音 ")
+    @Excel(name = "展示声音 ")
+    @TableField(value = "voice")
+    private String voice;
+
+    /** 语音通话时间金币 /min */
+    @ApiModelProperty(value = "语音通话时间金币 /min")
+    @Excel(name = "语音通话时间金币 /min")
+    @TableField(value = "voice_coin")
+    private Double voiceCoin;
+
+    /** 多人语音直播状态 0:不在语音房间中 2:上麦标识 3:被邀上麦中 4:被踢下麦 5:下麦标识 6:申请上麦中 8:被踢出房间 */
+    @ApiModelProperty(value = "多人语音直播状态 0:不在语音房间中 2:上麦标识 3:被邀上麦中 4:被踢下麦 5:下麦标识 6:申请上麦中 8:被踢出房间")
+    @Excel(name = "多人语音直播状态 0:不在语音房间中 2:上麦标识 3:被邀上麦中 4:被踢下麦 5:下麦标识 6:申请上麦中 8:被踢出房间")
+    @TableField(value = "voice_status")
+    private Long voiceStatus;
+
+    /** 苹果voip */
+    @ApiModelProperty(value = "苹果voip")
+    @Excel(name = "苹果voip")
+    @TableField(value = "voip_token")
+    private String voipToken;
+
+    /** 映票余额 */
+    @ApiModelProperty(value = "映票余额")
+    @Excel(name = "映票余额")
+    @TableField(value = "votes")
+    private Double votes;
+
+    /** 映票总额 */
+    @ApiModelProperty(value = "映票总额")
+    @Excel(name = "映票总额")
+    @TableField(value = "votestotal")
+    private Double votestotal;
+
+    /** 财富等级 */
+    @ApiModelProperty(value = "财富等级")
+    @Excel(name = "财富等级")
+    @TableField(value = "wealth_grade")
+    private Long wealthGrade;
+
+    /**  微信号 */
+    @ApiModelProperty(value = " 微信号")
+    @Excel(name = " 微信号")
+    @TableField(value = "wechat")
+    private String wechat;
+
+    /** 体重  */
+    @ApiModelProperty(value = "体重 ")
+    @Excel(name = "体重 ")
+    @TableField(value = "weight")
+    private Double weight;
+
+    /** 隐藏位置 0:未开启 1:开启 */
+    @ApiModelProperty(value = "隐藏位置 0:未开启 1:开启")
+    @Excel(name = "隐藏位置 0:未开启 1:开启")
+    @TableField(value = "whether_enable_positioning_show")
+    private Long whetherEnablePositioningShow;
+
+    /** 青少年密码 */
+    @ApiModelProperty(value = "青少年密码")
+    @Excel(name = "青少年密码")
+    @TableField(value = "youth_password")
+    private String youthPassword;
+
+    /** 最大僵尸粉数量 */
+    @ApiModelProperty(value = "最大僵尸粉数量")
+    @Excel(name = "最大僵尸粉数量")
+    @TableField(value = "zombie_max_num")
+    private Long zombieMaxNum;
+
+    /** 僵尸粉比例 */
+    @ApiModelProperty(value = "僵尸粉比例")
+    @Excel(name = "僵尸粉比例")
+    @TableField(value = "zombie_ratio")
+    private Double zombieRatio;
+
+    /** 代理等级 0:青铜  1:白银   2:黄金  3:铂金 */
+    @ApiModelProperty(value = "代理等级 0:青铜  1:白银   2:黄金  3:铂金")
+    @Excel(name = "代理等级 0:青铜  1:白银   2:黄金  3:铂金")
+    @TableField(value = "agent_grade")
+    private Long agentGrade;
+
+    /** 直播分成比例 */
+    @ApiModelProperty(value = "直播分成比例")
+    @Excel(name = "直播分成比例")
+    @TableField(value = "live_divided_into")
+    private Double liveDividedInto;
+
+    /** 代理分成比例 */
+    @ApiModelProperty(value = "代理分成比例")
+    @Excel(name = "代理分成比例")
+    @TableField(value = "game_divided_into")
+    private Double gameDividedInto;
+
+    /** 代理绑定时间 */
+    @ApiModelProperty(value = "代理绑定时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "代理绑定时间" , width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField(value = "invite_bind_time")
+    private Date inviteBindTime;
+
+    /** 资金密码 */
+    @ApiModelProperty(value = "资金密码")
+    @Excel(name = "资金密码")
+    @TableField(value = "fund_password")
+    private String fundPassword;
+
+    /** 余额/可提现余额 */
+    @ApiModelProperty(value = "余额/可提现余额")
+    @Excel(name = "余额/可提现余额")
+    @TableField(value = "diamond_coin")
+    private Double diamondCoin;
+
+    /** 累计余额总数 */
+    @ApiModelProperty(value = "累计余额总数")
+    @Excel(name = "累计余额总数")
+    @TableField(value = "diamond_coin_total")
+    private Double diamondCoinTotal;
+
+    /** 累计提现余额 */
+    @ApiModelProperty(value = "累计提现余额")
+    @Excel(name = "累计提现余额")
+    @TableField(value = "diamond_coin_cash_total")
+    private Double diamondCoinCashTotal;
+
+}

+ 212 - 0
game-business/src/main/java/com/game/business/domain/AppUsersCashrecord.java

@@ -0,0 +1,212 @@
+package com.game.business.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.game.common.annotation.Excel;
+import com.game.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 提现记录对象 app_users_cashrecord
+ *
+ * @author game
+ * @date 2024-06-18
+ */
+@ApiModel(value = "app_users_cashrecord", description = "提现记录")
+@TableName(value= "app_users_cashrecord")
+@Data
+public class AppUsersCashrecord
+        {
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty(value = "$column.columnComment")
+    @TableId(value = "id" , type = IdType.AUTO)
+    private Long id;
+
+    /** 账号 */
+    @ApiModelProperty(value = "账号")
+    @Excel(name = "账号")
+    @TableField(value = "account")
+    private String account;
+
+    /** 银行名称 */
+    @ApiModelProperty(value = "银行名称")
+    @Excel(name = "银行名称")
+    @TableField(value = "account_bank")
+    private String accountBank;
+
+    /** 实际到账金额 */
+    @ApiModelProperty(value = "实际到账金额")
+    @Excel(name = "实际到账金额")
+    @TableField(value = "actual_money")
+    private BigDecimal actualMoney;
+
+    /** 申请时间 */
+    @ApiModelProperty(value = "申请时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "申请时间" , width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField(value = "addtime")
+    private Date addtime;
+
+    /** 提现后剩余余额 */
+    @ApiModelProperty(value = "提现后剩余余额")
+    @Excel(name = "提现后剩余余额")
+    @TableField(value = "after_amount")
+    private BigDecimal afterAmount;
+
+    /** 审核人 */
+    @ApiModelProperty(value = "审核人")
+    @Excel(name = "审核人")
+    @TableField(value = "auditby")
+    private String auditby;
+
+    /** 提现前金额 */
+    @ApiModelProperty(value = "提现前金额")
+    @Excel(name = "提现前金额")
+    @TableField(value = "before_amount")
+    private BigDecimal beforeAmount;
+
+    /** 转账商户订单号 */
+    @ApiModelProperty(value = "转账商户订单号")
+    @Excel(name = "转账商户订单号")
+    @TableField(value = "cash_out_biz_no")
+    private String cashOutBizNo;
+
+    /** 转账支付宝订单号 */
+    @ApiModelProperty(value = "转账支付宝订单号")
+    @Excel(name = "转账支付宝订单号")
+    @TableField(value = "cash_out_order_id")
+    private String cashOutOrderId;
+
+    /** 支付宝资金流水号 */
+    @ApiModelProperty(value = "支付宝资金流水号")
+    @Excel(name = "支付宝资金流水号")
+    @TableField(value = "cash_out_pay_order_id")
+    private String cashOutPayOrderId;
+
+    /** 转出备注 */
+    @ApiModelProperty(value = "转出备注")
+    @Excel(name = "转出备注")
+    @TableField(value = "cash_out_remark")
+    private String cashOutRemark;
+
+    /** 账号类型 0无转出  1转出成功   2转出失败  3转出中 */
+    @ApiModelProperty(value = "账号类型 0无转出  1转出成功   2转出失败  3转出中")
+    @Excel(name = "账号类型 0无转出  1转出成功   2转出失败  3转出中")
+    @TableField(value = "cash_out_status")
+    private Long cashOutStatus;
+
+    /** 提现类型:1:收益 2:佣金 3:主播向公会 5:映票兑换金币 6:余额兑换金币 */
+    @ApiModelProperty(value = "提现类型:1:收益 2:佣金 3:主播向公会 5:映票兑换金币 6:余额兑换金币")
+    @Excel(name = "提现类型:1:收益 2:佣金 3:主播向公会 5:映票兑换金币 6:余额兑换金币")
+    @TableField(value = "cash_type")
+    private Long cashType;
+
+    /** 公会ID */
+    @ApiModelProperty(value = "公会ID")
+    @Excel(name = "公会ID")
+    @TableField(value = "guild_id")
+    private Long guildId;
+
+    /** 提现金额 */
+    @ApiModelProperty(value = "提现金额")
+    @Excel(name = "提现金额")
+    @TableField(value = "money")
+    private BigDecimal money;
+
+    /** 姓名 */
+    @ApiModelProperty(value = "姓名")
+    @Excel(name = "姓名")
+    @TableField(value = "name")
+    private String name;
+
+    /** 订单号 */
+    @ApiModelProperty(value = "订单号")
+    @Excel(name = "订单号")
+    @TableField(value = "orderno")
+    private String orderno;
+
+    /** 平台服务费 */
+    @ApiModelProperty(value = "平台服务费")
+    @Excel(name = "平台服务费")
+    @TableField(value = "platform_service")
+    private BigDecimal platformService;
+
+    /** 审核备注 */
+    @ApiModelProperty(value = "审核备注")
+    @Excel(name = "审核备注")
+    @TableField(value = "reason")
+    private String reason;
+
+    /** 备注 */
+    @ApiModelProperty(value = "备注")
+    @Excel(name = "备注")
+    @TableField(value = "remarks")
+    private String remarks;
+
+    /** 服务费 */
+    @ApiModelProperty(value = "服务费")
+    @Excel(name = "服务费")
+    @TableField(value = "service")
+    private BigDecimal service;
+
+    /** 状态 0:审核中 1:审核通过 2:审核拒绝 */
+    @ApiModelProperty(value = "状态 0:审核中 1:审核通过 2:审核拒绝")
+    @Excel(name = "状态 0:审核中 1:审核通过 2:审核拒绝")
+    @TableField(value = "status")
+    private Long status;
+
+    /** $column.columnComment */
+    @ApiModelProperty(value = "$column.columnComment")
+    @Excel(name = "${comment}" , readConverterExp = "$column.readConverterExp()")
+    @TableField(value = "status_name")
+    private String statusName;
+
+    /** 三方订单号 */
+    @ApiModelProperty(value = "三方订单号")
+    @Excel(name = "三方订单号")
+    @TableField(value = "trade_no")
+    private String tradeNo;
+
+    /** 账号类型 1支付宝 2微信 3银行卡 */
+    @ApiModelProperty(value = "账号类型 1支付宝 2微信 3银行卡")
+    @Excel(name = "账号类型 1支付宝 2微信 3银行卡")
+    @TableField(value = "type")
+    private Long type;
+
+    /** 用户ID */
+    @ApiModelProperty(value = "用户ID")
+    @Excel(name = "用户ID")
+    @TableField(value = "uid")
+    private Long uid;
+
+    /** 货币单位类型 1:金币  2:佣金 */
+    @ApiModelProperty(value = "货币单位类型 1:金币  2:佣金")
+    @Excel(name = "货币单位类型 1:金币  2:佣金")
+    @TableField(value = "unit_type")
+    private Long unitType;
+
+    /** 更新时间, 审核时间 */
+    @ApiModelProperty(value = "更新时间, 审核时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "更新时间, 审核时间" , width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField(value = "uptime")
+    private Date uptime;
+
+    /** 提现数量(所有类型cash_type都有值) */
+    @ApiModelProperty(value = "提现数量(所有类型cash_type都有值)")
+    @Excel(name = "提现数量(所有类型cash_type都有值)")
+    @TableField(value = "votes")
+    private BigDecimal votes;
+
+}

+ 193 - 0
game-business/src/main/java/com/game/business/domain/AppUsersCharge.java

@@ -0,0 +1,193 @@
+package com.game.business.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.game.common.annotation.Excel;
+import com.game.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 充值记录对象 app_users_charge
+ *
+ * @author game
+ * @date 2024-06-18
+ */
+@ApiModel(value = "app_users_charge", description = "充值记录")
+@TableName(value= "app_users_charge")
+@Data
+public class AppUsersCharge
+        {
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty(value = "$column.columnComment")
+    @TableId(value = "id" , type = IdType.AUTO)
+    private Long id;
+
+    /** 添加时间 */
+    @ApiModelProperty(value = "添加时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "添加时间" , width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField(value = "addtime")
+    private Date addtime;
+
+    /** 当前剩余金币 */
+    @ApiModelProperty(value = "当前剩余金币")
+    @Excel(name = "当前剩余金币")
+    @TableField(value = "after_coin")
+    private BigDecimal afterCoin;
+
+    /** 直属上级代理(后台管理员) */
+    @ApiModelProperty(value = "直属上级代理(后台管理员)")
+    @Excel(name = "直属上级代理" , readConverterExp = "后=台管理员")
+    @TableField(value = "agent_id")
+    private Long agentId;
+
+    /** 支付环境 */
+    @ApiModelProperty(value = "支付环境")
+    @Excel(name = "支付环境")
+    @TableField(value = "ambient")
+    private Long ambient;
+
+    /** 货币数 */
+    @ApiModelProperty(value = "货币数")
+    @Excel(name = "货币数")
+    @TableField(value = "coin")
+    private BigDecimal coin;
+
+    /** 货币类型  0:金币  1:钻石 */
+    @ApiModelProperty(value = "货币类型  0:金币  1:钻石")
+    @Excel(name = "货币类型  0:金币  1:钻石")
+    @TableField(value = "coin_type")
+    private Long coinType;
+
+    /** 赠送钻石数 */
+    @ApiModelProperty(value = "赠送钻石数")
+    @Excel(name = "赠送钻石数")
+    @TableField(value = "coin_give")
+    private BigDecimal coinGive;
+
+    /** 1是会员(星探)充值 */
+    @ApiModelProperty(value = "1是会员(星探)充值")
+    @Excel(name = "1是会员" , readConverterExp = "星=探")
+    @TableField(value = "is_agent")
+    private Long isAgent;
+
+    /** 是否被删除 */
+    @ApiModelProperty(value = "是否被删除")
+    @Excel(name = "是否被删除")
+    @TableField(value = "is_delete")
+    private Long isDelete;
+
+    /** 是否水军充值 0否 1是 */
+    @ApiModelProperty(value = "是否水军充值 0否 1是")
+    @Excel(name = "是否水军充值 0否 1是")
+    @TableField(value = "is_water")
+    private Long isWater;
+
+    /** 金额 */
+    @ApiModelProperty(value = "金额")
+    @Excel(name = "金额")
+    @TableField(value = "money")
+    private BigDecimal money;
+
+    /** 操作类型  1:充值金币 2:扣减金币 */
+    @ApiModelProperty(value = "操作类型  1:充值金币 2:扣减金币")
+    @Excel(name = "操作类型  1:充值金币 2:扣减金币")
+    @TableField(value = "opt_type")
+    private Long optType;
+
+    /** 操作管理员用户的账号 */
+    @ApiModelProperty(value = "操作管理员用户的账号")
+    @Excel(name = "操作管理员用户的账号")
+    @TableField(value = "opt_user")
+    private String optUser;
+
+    /** 商家订单号 */
+    @ApiModelProperty(value = "商家订单号")
+    @Excel(name = "商家订单号")
+    @TableField(value = "orderno")
+    private String orderno;
+
+    /** 上级用户id */
+    @ApiModelProperty(value = "上级用户id")
+    @Excel(name = "上级用户id")
+    @TableField(value = "pid")
+    private Long pid;
+
+    /** 所属区域家族id */
+    @ApiModelProperty(value = "所属区域家族id")
+    @Excel(name = "所属区域家族id")
+    @TableField(value = "pid_level1")
+    private Long pidLevel1;
+
+    /** 所属家族id */
+    @ApiModelProperty(value = "所属家族id")
+    @Excel(name = "所属家族id")
+    @TableField(value = "pid_level2")
+    private Long pidLevel2;
+
+    /** 所属经纪人id */
+    @ApiModelProperty(value = "所属经纪人id")
+    @Excel(name = "所属经纪人id")
+    @TableField(value = "pid_level3")
+    private Long pidLevel3;
+
+    /** 直属上级id */
+    @ApiModelProperty(value = "直属上级id")
+    @Excel(name = "直属上级id")
+    @TableField(value = "pid_level4")
+    private Long pidLevel4;
+
+    /** 备注 */
+    @ApiModelProperty(value = "备注")
+    @Excel(name = "备注")
+    @TableField(value = "remarks")
+    private String remarks;
+
+    /** 充值规则ID */
+    @ApiModelProperty(value = "充值规则ID")
+    @Excel(name = "充值规则ID")
+    @TableField(value = "rule_id")
+    private Long ruleId;
+
+    /** 状态 0:充值中 1:充值成功 2:充值失败 */
+    @ApiModelProperty(value = "状态 0:充值中 1:充值成功 2:充值失败")
+    @Excel(name = "状态 0:充值中 1:充值成功 2:充值失败")
+    @TableField(value = "status")
+    private Long status;
+
+    /** 充值对象ID */
+    @ApiModelProperty(value = "充值对象ID")
+    @Excel(name = "充值对象ID")
+    @TableField(value = "touid")
+    private Long touid;
+
+    /** 三方平台订单号 */
+    @ApiModelProperty(value = "三方平台订单号")
+    @Excel(name = "三方平台订单号")
+    @TableField(value = "trade_no")
+    private String tradeNo;
+
+    /** 支付类型 1:支付宝app 2:微信app 3:ios-内购 4:手动充值 5:微信 h5支付 */
+    @ApiModelProperty(value = "支付类型 1:支付宝app 2:微信app 3:ios-内购 4:手动充值 5:微信 h5支付")
+    @Excel(name = "支付类型 1:支付宝app 2:微信app 3:ios-内购 4:手动充值 5:微信 h5支付")
+    @TableField(value = "type")
+    private Long type;
+
+    /** 用户ID */
+    @ApiModelProperty(value = "用户ID")
+    @Excel(name = "用户ID")
+    @TableField(value = "uid")
+    private Long uid;
+
+}

+ 229 - 0
game-business/src/main/java/com/game/business/domain/FinTranRecord.java

@@ -0,0 +1,229 @@
+package com.game.business.domain;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.game.common.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 消费记录对象 fin_tran_record
+ *
+ * @author game
+ * @date 2024-06-18
+ */
+@ApiModel(value = "fin_tran_record", description = "消费记录")
+@TableName(value= "fin_tran_record")
+@Data
+public class FinTranRecord
+        {
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @ApiModelProperty(value = "$column.columnComment")
+    @TableId(value = "id" , type = IdType.AUTO)
+    private Long id;
+
+    /** 当前剩余金币 */
+    @ApiModelProperty(value = "当前剩余金币")
+    @Excel(name = "当前剩余金币")
+    @TableField(value = "after_coin")
+    private Double afterCoin;
+
+    /** 当前剩余人民币 */
+    @ApiModelProperty(value = "当前剩余人民币")
+    @Excel(name = "当前剩余人民币")
+    @TableField(value = "after_money")
+    private Double afterMoney;
+
+    /** 当前剩余映票 */
+    @ApiModelProperty(value = "当前剩余映票")
+    @Excel(name = "当前剩余映票")
+    @TableField(value = "after_ticket")
+    private Double afterTicket;
+
+    /** 当前剩余余额 */
+    @ApiModelProperty(value = "当前剩余余额")
+    @Excel(name = "当前剩余余额")
+    @TableField(value = "after_diamond_coin")
+    private Double afterDiamondCoin;
+
+    /** 直属上级代理(后台管理员) */
+    @ApiModelProperty(value = "直属上级代理(后台管理员)")
+    @Excel(name = "直属上级代理" , readConverterExp = "后=台管理员")
+    @TableField(value = "agent_id")
+    private Long agentId;
+
+    /** 交易金币 */
+    @ApiModelProperty(value = "交易金币")
+    @Excel(name = "交易金币")
+    @TableField(value = "coin_change")
+    private Double coinChange;
+
+    /** 变动后的余额 */
+    @ApiModelProperty(value = "变动后的余额")
+    @Excel(name = "变动后的余额")
+    @TableField(value = "diamond_coin_change")
+    private Double diamondCoinChange;
+
+    /**  佣金关系人 */
+    @ApiModelProperty(value = " 佣金关系人")
+    @Excel(name = " 佣金关系人")
+    @TableField(value = "commission_related_uid")
+    private Long commissionRelatedUid;
+
+    /** 消费金额,基于此字段分佣(值如:礼物的价格*数量) */
+    @ApiModelProperty(value = "消费金额,基于此字段分佣(值如:礼物的价格*数量)")
+    @Excel(name = "消费金额,基于此字段分佣" , readConverterExp = "值=如:礼物的价格*数量")
+    @TableField(value = "consumption_coin")
+    private Double consumptionCoin;
+
+    /** 消费人民币,基于此字段分佣(如:充值人民币) */
+    @ApiModelProperty(value = "消费人民币,基于此字段分佣(如:充值人民币)")
+    @Excel(name = "消费人民币,基于此字段分佣" , readConverterExp = "如=:充值人民币")
+    @TableField(value = "consumption_money")
+    private Double consumptionMoney;
+
+    /** 创建时间 */
+    @ApiModelProperty(value = "创建时间")
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    /** 货币类型 1:人民币 2:金币 3:映票 4:余额 */
+    @ApiModelProperty(value = "货币类型 1:人民币 2:金币 3:映票 4:余额")
+    @Excel(name = "货币类型 1:人民币 2:金币 3:映票 4:余额")
+    @TableField(value = "currency_type")
+    private Long currencyType;
+
+    /**  送礼人ID */
+    @ApiModelProperty(value = " 送礼人ID")
+    @Excel(name = " 送礼人ID")
+    @TableField(value = "from_uid")
+    private Long fromUid;
+
+    /** 此记录关联的购买的商品的ID */
+    @ApiModelProperty(value = "此记录关联的购买的商品的ID")
+    @Excel(name = "此记录关联的购买的商品的ID")
+    @TableField(value = "goods_id")
+    private Long goodsId;
+
+    /** 家族ID */
+    @ApiModelProperty(value = "家族ID")
+    @Excel(name = "家族ID")
+    @TableField(value = "guild_id")
+    private Long guildId;
+
+    /** 上级经纪人ID,对应AdminUser表 */
+    @ApiModelProperty(value = "上级经纪人ID,对应AdminUser表")
+    @Excel(name = "上级经纪人ID,对应AdminUser表")
+    @TableField(value = "manager_co_id")
+    private Long managerCoId;
+
+    /** 上级经纪人ID,对应AdminUser表 */
+    @ApiModelProperty(value = "上级经纪人ID,对应AdminUser表")
+    @Excel(name = "上级经纪人ID,对应AdminUser表")
+    @TableField(value = "manager_id")
+    private Long managerId;
+
+    /** 人民币变动 */
+    @ApiModelProperty(value = "人民币变动")
+    @Excel(name = "人民币变动")
+    @TableField(value = "money_change")
+    private Double moneyChange;
+
+    /**  第三表记录id(如:支付记录表id,提现记录表id,游戏记录id) */
+    @ApiModelProperty(value = " 第三表记录id(如:支付记录表id,提现记录表id,游戏记录id)")
+    @Excel(name = " 第三表记录id" , readConverterExp = "如=:支付记录表id,提现记录表id,游戏记录id")
+    @TableField(value = "order_id")
+    private Long orderId;
+
+    /** 收益比例 */
+    @ApiModelProperty(value = "收益比例")
+    @Excel(name = "收益比例")
+    @TableField(value = "perc")
+    private Double perc;
+
+    /**  (礼物、守护、坐骑、靓号、短视频、动态、svpi、贵族、游戏)数量 */
+    @ApiModelProperty(value = " (礼物、守护、坐骑、靓号、短视频、动态、svpi、贵族、游戏)数量")
+    @Excel(name = " (礼物、守护、坐骑、靓号、短视频、动态、svpi、贵族、游戏)数量")
+    @TableField(value = "pro_count")
+    private Long proCount;
+
+    /**  (礼物、守护、坐骑、靓号、短视频、动态、svpi、贵族、游戏、充值)ID */
+    @ApiModelProperty(value = " (礼物、守护、坐骑、靓号、短视频、动态、svpi、贵族、游戏、充值)ID")
+    @Excel(name = " (礼物、守护、坐骑、靓号、短视频、动态、svpi、贵族、游戏、充值)ID")
+    @TableField(value = "pro_id")
+    private Long proId;
+
+    /** 备注 */
+    @ApiModelProperty(value = "备注")
+    @Excel(name = "备注")
+    @TableField(value = "remarks")
+    private String remarks;
+
+    /**  场景id(视频直播房间id,语音直播房间id,一对一直播房间id) */
+    @ApiModelProperty(value = " 场景id(视频直播房间id,语音直播房间id,一对一直播房间id)")
+    @Excel(name = " 场景id" , readConverterExp = "视=频直播房间id,语音直播房间id,一对一直播房间id")
+    @TableField(value = "scene_id1")
+    private Long sceneId1;
+
+    /**  某次直播时间段内的一个标识 */
+    @ApiModelProperty(value = " 某次直播时间段内的一个标识")
+    @Excel(name = " 某次直播时间段内的一个标识")
+    @TableField(value = "scene_id2")
+    private String sceneId2;
+
+    /**  直播房间类型(1.视频直播房间,2.语音直播房间,3.一对一直播房间,7.私聊,8.群聊,9.短视频) */
+    @ApiModelProperty(value = " 直播房间类型(1.视频直播房间,2.语音直播房间,3.一对一直播房间,7.私聊,8.群聊,9.短视频)")
+    @Excel(name = " 直播房间类型(1.视频直播房间,2.语音直播房间,3.一对一直播房间,7.私聊,8.群聊,9.短视频)")
+    @TableField(value = "scene_type")
+    private Long sceneType;
+
+    /** 映票变动 */
+    @ApiModelProperty(value = "映票变动")
+    @Excel(name = "映票变动")
+    @TableField(value = "ticket_change")
+    private Double ticketChange;
+
+    /**  受益的人ID */
+    @ApiModelProperty(value = " 受益的人ID")
+    @Excel(name = " 受益的人ID")
+    @TableField(value = "to_uid")
+    private Long toUid;
+
+    /** 交易组ID,ID相同说明是一次交易产生的 */
+    @ApiModelProperty(value = "交易组ID,ID相同说明是一次交易产生的")
+    @Excel(name = "交易组ID,ID相同说明是一次交易产生的")
+    @TableField(value = "tran_group_id")
+    private Long tranGroupId;
+
+    /**  1级交易类型 */
+    @ApiModelProperty(value = " 1级交易类型")
+    @Excel(name = " 1级交易类型")
+    @TableField(value = "tran_type1")
+    private Long tranType1;
+
+    /**  2级交易类型 FinTranType2 */
+    @ApiModelProperty(value = " 2级交易类型 FinTranType2")
+    @Excel(name = " 2级交易类型 FinTranType2")
+    @TableField(value = "tran_type2")
+    private Long tranType2;
+
+    /**  3级交易类型 FinTranType3 */
+    @ApiModelProperty(value = " 3级交易类型 FinTranType3")
+    @Excel(name = " 3级交易类型 FinTranType3")
+    @TableField(value = "tran_type3")
+    private Long tranType3;
+
+    /**  用户ID */
+    @ApiModelProperty(value = " 用户ID")
+    @Excel(name = " 用户ID")
+    @TableField(value = "uid")
+    private Long uid;
+
+}

+ 61 - 0
game-business/src/main/java/com/game/business/mapper/AppUserMapper.java

@@ -0,0 +1,61 @@
+package com.game.business.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.game.business.domain.AppUser;
+
+/**
+ * app用户Mapper接口
+ *
+ * @author game
+ * @date 2024-06-18
+ */
+public interface AppUserMapper extends BaseMapper<AppUser> {
+    /**
+     * 查询app用户
+     *
+     * @param userid app用户主键
+     * @return app用户
+     */
+    public AppUser selectAppUserByUserid(Long userid);
+
+    /**
+     * 查询app用户列表
+     *
+     * @param appUser app用户
+     * @return app用户集合
+     */
+    public List<AppUser> selectAppUserList(AppUser appUser);
+
+    /**
+     * 新增app用户
+     *
+     * @param appUser app用户
+     * @return 结果
+     */
+    public int insertAppUser(AppUser appUser);
+
+    /**
+     * 修改app用户
+     *
+     * @param appUser app用户
+     * @return 结果
+     */
+    public int updateAppUser(AppUser appUser);
+
+    /**
+     * 删除app用户
+     *
+     * @param userid app用户主键
+     * @return 结果
+     */
+    public int deleteAppUserByUserid(Long userid);
+
+    /**
+     * 批量删除app用户
+     *
+     * @param userids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteAppUserByUserids(Long[] userids);
+}

+ 61 - 0
game-business/src/main/java/com/game/business/mapper/AppUsersCashrecordMapper.java

@@ -0,0 +1,61 @@
+package com.game.business.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.game.business.domain.AppUsersCashrecord;
+
+/**
+ * 提现记录Mapper接口
+ *
+ * @author game
+ * @date 2024-06-18
+ */
+public interface AppUsersCashrecordMapper extends BaseMapper<AppUsersCashrecord> {
+    /**
+     * 查询提现记录
+     *
+     * @param id 提现记录主键
+     * @return 提现记录
+     */
+    public AppUsersCashrecord selectAppUsersCashrecordById(Long id);
+
+    /**
+     * 查询提现记录列表
+     *
+     * @param appUsersCashrecord 提现记录
+     * @return 提现记录集合
+     */
+    public List<AppUsersCashrecord> selectAppUsersCashrecordList(AppUsersCashrecord appUsersCashrecord);
+
+    /**
+     * 新增提现记录
+     *
+     * @param appUsersCashrecord 提现记录
+     * @return 结果
+     */
+    public int insertAppUsersCashrecord(AppUsersCashrecord appUsersCashrecord);
+
+    /**
+     * 修改提现记录
+     *
+     * @param appUsersCashrecord 提现记录
+     * @return 结果
+     */
+    public int updateAppUsersCashrecord(AppUsersCashrecord appUsersCashrecord);
+
+    /**
+     * 删除提现记录
+     *
+     * @param id 提现记录主键
+     * @return 结果
+     */
+    public int deleteAppUsersCashrecordById(Long id);
+
+    /**
+     * 批量删除提现记录
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteAppUsersCashrecordByIds(Long[] ids);
+}

+ 61 - 0
game-business/src/main/java/com/game/business/mapper/AppUsersChargeMapper.java

@@ -0,0 +1,61 @@
+package com.game.business.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.game.business.domain.AppUsersCharge;
+
+/**
+ * 充值记录Mapper接口
+ *
+ * @author game
+ * @date 2024-06-18
+ */
+public interface AppUsersChargeMapper extends BaseMapper<AppUsersCharge> {
+    /**
+     * 查询充值记录
+     *
+     * @param id 充值记录主键
+     * @return 充值记录
+     */
+    public AppUsersCharge selectAppUsersChargeById(Long id);
+
+    /**
+     * 查询充值记录列表
+     *
+     * @param appUsersCharge 充值记录
+     * @return 充值记录集合
+     */
+    public List<AppUsersCharge> selectAppUsersChargeList(AppUsersCharge appUsersCharge);
+
+    /**
+     * 新增充值记录
+     *
+     * @param appUsersCharge 充值记录
+     * @return 结果
+     */
+    public int insertAppUsersCharge(AppUsersCharge appUsersCharge);
+
+    /**
+     * 修改充值记录
+     *
+     * @param appUsersCharge 充值记录
+     * @return 结果
+     */
+    public int updateAppUsersCharge(AppUsersCharge appUsersCharge);
+
+    /**
+     * 删除充值记录
+     *
+     * @param id 充值记录主键
+     * @return 结果
+     */
+    public int deleteAppUsersChargeById(Long id);
+
+    /**
+     * 批量删除充值记录
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteAppUsersChargeByIds(Long[] ids);
+}

+ 61 - 0
game-business/src/main/java/com/game/business/mapper/FinTranRecordMapper.java

@@ -0,0 +1,61 @@
+package com.game.business.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.game.business.domain.FinTranRecord;
+
+/**
+ * 消费记录Mapper接口
+ *
+ * @author game
+ * @date 2024-06-18
+ */
+public interface FinTranRecordMapper extends BaseMapper<FinTranRecord> {
+    /**
+     * 查询消费记录
+     *
+     * @param id 消费记录主键
+     * @return 消费记录
+     */
+    public FinTranRecord selectFinTranRecordById(Long id);
+
+    /**
+     * 查询消费记录列表
+     *
+     * @param finTranRecord 消费记录
+     * @return 消费记录集合
+     */
+    public List<FinTranRecord> selectFinTranRecordList(FinTranRecord finTranRecord);
+
+    /**
+     * 新增消费记录
+     *
+     * @param finTranRecord 消费记录
+     * @return 结果
+     */
+    public int insertFinTranRecord(FinTranRecord finTranRecord);
+
+    /**
+     * 修改消费记录
+     *
+     * @param finTranRecord 消费记录
+     * @return 结果
+     */
+    public int updateFinTranRecord(FinTranRecord finTranRecord);
+
+    /**
+     * 删除消费记录
+     *
+     * @param id 消费记录主键
+     * @return 结果
+     */
+    public int deleteFinTranRecordById(Long id);
+
+    /**
+     * 批量删除消费记录
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteFinTranRecordByIds(Long[] ids);
+}

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

@@ -3,5 +3,14 @@ package com.game.business.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.game.business.domain.AppGameBetting;
 
+import java.util.List;
+
 public interface IAppGameBettingService extends IService<AppGameBetting> {
+
+
+    List<AppGameBetting> getIsWinning(Long classId, Long gameId, String gameDate, Integer isWinning);
+
+    boolean updateById(AppGameBetting appGameBetting);
+
+    boolean save(AppGameBetting appGameBetting);
 }

+ 7 - 0
game-business/src/main/java/com/game/business/service/IAppGameClassifyService.java

@@ -58,4 +58,11 @@ public interface IAppGameClassifyService extends IService<AppGameClassify> {
      * @return 结果
      */
     public int deleteAppGameClassifyById(Long id);
+
+    /**
+     * 根据code查询
+     * @param code
+     * @return
+     */
+    AppGameClassify getByCode(String code);
 }

+ 4 - 0
game-business/src/main/java/com/game/business/service/IAppGameLotteryService.java

@@ -7,4 +7,8 @@ import com.game.business.domain.AppGameLottery;
  * 游戏开奖记录业务接口
  */
 public interface IAppGameLotteryService extends IService<AppGameLottery> {
+
+    long selectCount(Long classId, Long gameId, String gameDate);
+
+    boolean save(AppGameLottery appGameLottery);
 }

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

@@ -58,4 +58,12 @@ public interface IAppGameService extends IService<AppGame> {
      * @return 结果
      */
     public int deleteAppGameById(Long id);
+
+    /**
+     * 根据编码查询游戏
+     * @param classId
+     * @param code
+     * @return
+     */
+    AppGame selectAppGameByClassIdAndCode(Long classId, String code);
 }

+ 61 - 0
game-business/src/main/java/com/game/business/service/IAppUserService.java

@@ -0,0 +1,61 @@
+package com.game.business.service;
+
+import java.util.List;
+import com.game.business.domain.AppUser;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * app用户Service接口
+ *
+ * @author game
+ * @date 2024-06-18
+ */
+public interface IAppUserService extends IService<AppUser> {
+    /**
+     * 查询app用户
+     *
+     * @param userid app用户主键
+     * @return app用户
+     */
+    public AppUser selectAppUserByUserid(Long userid);
+
+    /**
+     * 查询app用户列表
+     *
+     * @param appUser app用户
+     * @return app用户集合
+     */
+    public List<AppUser> selectAppUserList(AppUser appUser);
+
+    /**
+     * 新增app用户
+     *
+     * @param appUser app用户
+     * @return 结果
+     */
+    public int insertAppUser(AppUser appUser);
+
+    /**
+     * 修改app用户
+     *
+     * @param appUser app用户
+     * @return 结果
+     */
+    public int updateAppUser(AppUser appUser);
+
+    /**
+     * 批量删除app用户
+     *
+     * @param userids 需要删除的app用户主键集合
+     * @return 结果
+     */
+    public int deleteAppUserByUserids(Long[] userids);
+
+    /**
+     * 删除app用户信息
+     *
+     * @param userid app用户主键
+     * @return 结果
+     */
+    public int deleteAppUserByUserid(Long userid);
+}

+ 61 - 0
game-business/src/main/java/com/game/business/service/IAppUsersCashrecordService.java

@@ -0,0 +1,61 @@
+package com.game.business.service;
+
+import java.util.List;
+import com.game.business.domain.AppUsersCashrecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 提现记录Service接口
+ *
+ * @author game
+ * @date 2024-06-18
+ */
+public interface IAppUsersCashrecordService extends IService<AppUsersCashrecord> {
+    /**
+     * 查询提现记录
+     *
+     * @param id 提现记录主键
+     * @return 提现记录
+     */
+    public AppUsersCashrecord selectAppUsersCashrecordById(Long id);
+
+    /**
+     * 查询提现记录列表
+     *
+     * @param appUsersCashrecord 提现记录
+     * @return 提现记录集合
+     */
+    public List<AppUsersCashrecord> selectAppUsersCashrecordList(AppUsersCashrecord appUsersCashrecord);
+
+    /**
+     * 新增提现记录
+     *
+     * @param appUsersCashrecord 提现记录
+     * @return 结果
+     */
+    public int insertAppUsersCashrecord(AppUsersCashrecord appUsersCashrecord);
+
+    /**
+     * 修改提现记录
+     *
+     * @param appUsersCashrecord 提现记录
+     * @return 结果
+     */
+    public int updateAppUsersCashrecord(AppUsersCashrecord appUsersCashrecord);
+
+    /**
+     * 批量删除提现记录
+     *
+     * @param ids 需要删除的提现记录主键集合
+     * @return 结果
+     */
+    public int deleteAppUsersCashrecordByIds(Long[] ids);
+
+    /**
+     * 删除提现记录信息
+     *
+     * @param id 提现记录主键
+     * @return 结果
+     */
+    public int deleteAppUsersCashrecordById(Long id);
+}

+ 61 - 0
game-business/src/main/java/com/game/business/service/IAppUsersChargeService.java

@@ -0,0 +1,61 @@
+package com.game.business.service;
+
+import java.util.List;
+import com.game.business.domain.AppUsersCharge;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 充值记录Service接口
+ *
+ * @author game
+ * @date 2024-06-18
+ */
+public interface IAppUsersChargeService extends IService<AppUsersCharge> {
+    /**
+     * 查询充值记录
+     *
+     * @param id 充值记录主键
+     * @return 充值记录
+     */
+    public AppUsersCharge selectAppUsersChargeById(Long id);
+
+    /**
+     * 查询充值记录列表
+     *
+     * @param appUsersCharge 充值记录
+     * @return 充值记录集合
+     */
+    public List<AppUsersCharge> selectAppUsersChargeList(AppUsersCharge appUsersCharge);
+
+    /**
+     * 新增充值记录
+     *
+     * @param appUsersCharge 充值记录
+     * @return 结果
+     */
+    public int insertAppUsersCharge(AppUsersCharge appUsersCharge);
+
+    /**
+     * 修改充值记录
+     *
+     * @param appUsersCharge 充值记录
+     * @return 结果
+     */
+    public int updateAppUsersCharge(AppUsersCharge appUsersCharge);
+
+    /**
+     * 批量删除充值记录
+     *
+     * @param ids 需要删除的充值记录主键集合
+     * @return 结果
+     */
+    public int deleteAppUsersChargeByIds(Long[] ids);
+
+    /**
+     * 删除充值记录信息
+     *
+     * @param id 充值记录主键
+     * @return 结果
+     */
+    public int deleteAppUsersChargeById(Long id);
+}

+ 61 - 0
game-business/src/main/java/com/game/business/service/IFinTranRecordService.java

@@ -0,0 +1,61 @@
+package com.game.business.service;
+
+import java.util.List;
+import com.game.business.domain.FinTranRecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 消费记录Service接口
+ *
+ * @author game
+ * @date 2024-06-18
+ */
+public interface IFinTranRecordService extends IService<FinTranRecord> {
+    /**
+     * 查询消费记录
+     *
+     * @param id 消费记录主键
+     * @return 消费记录
+     */
+    public FinTranRecord selectFinTranRecordById(Long id);
+
+    /**
+     * 查询消费记录列表
+     *
+     * @param finTranRecord 消费记录
+     * @return 消费记录集合
+     */
+    public List<FinTranRecord> selectFinTranRecordList(FinTranRecord finTranRecord);
+
+    /**
+     * 新增消费记录
+     *
+     * @param finTranRecord 消费记录
+     * @return 结果
+     */
+    public int insertFinTranRecord(FinTranRecord finTranRecord);
+
+    /**
+     * 修改消费记录
+     *
+     * @param finTranRecord 消费记录
+     * @return 结果
+     */
+    public int updateFinTranRecord(FinTranRecord finTranRecord);
+
+    /**
+     * 批量删除消费记录
+     *
+     * @param ids 需要删除的消费记录主键集合
+     * @return 结果
+     */
+    public int deleteFinTranRecordByIds(Long[] ids);
+
+    /**
+     * 删除消费记录信息
+     *
+     * @param id 消费记录主键
+     * @return 结果
+     */
+    public int deleteFinTranRecordById(Long id);
+}

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

@@ -1,11 +1,39 @@
 package com.game.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.game.business.domain.AppGameBetting;
 import com.game.business.mapper.AppGameBettingMapper;
 import com.game.business.service.IAppGameBettingService;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service
 public class AppGameBettingServiceImpl extends ServiceImpl<AppGameBettingMapper, AppGameBetting> implements IAppGameBettingService {
+
+    private AppGameBettingMapper appGameBettingMapper;
+
+    @Override
+    public List<AppGameBetting> getIsWinning(Long classId, Long gameId, String gameDate, Integer isWinning) {
+
+        LambdaQueryWrapper<AppGameBetting> queryWrapper = Wrappers.lambdaQuery();;
+        queryWrapper.eq(AppGameBetting::getClassId, classId);
+        queryWrapper.eq(AppGameBetting::getGameId, gameId);
+        queryWrapper.eq(AppGameBetting::getGameDate, gameDate);
+        queryWrapper.eq(AppGameBetting::getIsWinning, isWinning);
+        return appGameBettingMapper.selectList(queryWrapper);
+
+    }
+
+    @Override
+    public boolean updateById(AppGameBetting appGameBetting) {
+        return appGameBettingMapper.updateById(appGameBetting) > 0;
+    }
+
+    @Override
+    public boolean save(AppGameBetting appGameBetting) {
+        return appGameBettingMapper.insert(appGameBetting) > 0;
+    }
 }

+ 12 - 0
game-business/src/main/java/com/game/business/service/impl/AppGameClassifyServiceImpl.java

@@ -1,7 +1,11 @@
 package com.game.business.service.impl;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import java.util.List;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.game.business.mapper.AppGameClassifyMapper;
@@ -15,6 +19,7 @@ import com.game.business.service.IAppGameClassifyService;
  * @date 2024-06-14
  */
 @Service
+@DS("slave")
 public class AppGameClassifyServiceImpl extends ServiceImpl<AppGameClassifyMapper, AppGameClassify> implements IAppGameClassifyService {
     @Autowired
     private AppGameClassifyMapper appGameClassifyMapper;
@@ -84,4 +89,11 @@ public class AppGameClassifyServiceImpl extends ServiceImpl<AppGameClassifyMappe
     public int deleteAppGameClassifyById(Long id) {
         return appGameClassifyMapper.deleteAppGameClassifyById(id);
     }
+
+    @Override
+    public AppGameClassify getByCode(String code) {
+        LambdaQueryWrapper<AppGameClassify> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(AppGameClassify::getCode, code);
+        return appGameClassifyMapper.selectOne(queryWrapper);
+    }
 }

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

@@ -1,11 +1,31 @@
 package com.game.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.game.business.domain.AppGameLottery;
 import com.game.business.mapper.AppGameLotteryMapper;
 import com.game.business.service.IAppGameLotteryService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 @Service
 public class AppGameLotteryServiceImpl extends ServiceImpl<AppGameLotteryMapper, AppGameLottery> implements IAppGameLotteryService {
+
+    @Autowired
+    private AppGameLotteryMapper appGameLotteryMapper;
+
+    @Override
+    public long selectCount(Long classId, Long gameId, String gameDate) {
+        LambdaQueryWrapper<AppGameLottery> queryLotteryWrapper = Wrappers.lambdaQuery();;
+        queryLotteryWrapper.eq(AppGameLottery::getClassId, classId);
+        queryLotteryWrapper.eq(AppGameLottery::getGameId, gameId);
+        queryLotteryWrapper.eq(AppGameLottery::getGameDate, gameDate);
+        return appGameLotteryMapper.selectCount(queryLotteryWrapper);
+    }
+
+    @Override
+    public boolean save(AppGameLottery appGameLottery) {
+        return appGameLotteryMapper.insert(appGameLottery) > 0;
+    }
 }

+ 16 - 1
game-business/src/main/java/com/game/business/service/impl/AppGameServiceImpl.java

@@ -1,8 +1,14 @@
 package com.game.business.service.impl;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import java.util.List;
-        import com.game.common.utils.DateUtils;
+
+import com.game.common.annotation.DataSource;
+import com.game.common.enums.DataSourceType;
+import com.game.common.utils.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.game.business.mapper.AppGameMapper;
@@ -16,6 +22,7 @@ import com.game.business.service.IAppGameService;
  * @date 2024-06-14
  */
 @Service
+@DS("slave")
 public class AppGameServiceImpl extends ServiceImpl<AppGameMapper, AppGame> implements IAppGameService {
     @Autowired
     private AppGameMapper appGameMapper;
@@ -86,4 +93,12 @@ public class AppGameServiceImpl extends ServiceImpl<AppGameMapper, AppGame> impl
     public int deleteAppGameById(Long id) {
         return appGameMapper.deleteAppGameById(id);
     }
+
+    @Override
+    public AppGame selectAppGameByClassIdAndCode(Long classId, String code) {
+        LambdaQueryWrapper<AppGame> queryGameWrapper = Wrappers.lambdaQuery();;
+        queryGameWrapper.eq(AppGame::getCode, code);
+        queryGameWrapper.eq(AppGame::getClassifyId, classId);
+        return appGameMapper.selectOne(queryGameWrapper);
+    }
 }

+ 94 - 0
game-business/src/main/java/com/game/business/service/impl/AppUserServiceImpl.java

@@ -0,0 +1,94 @@
+package com.game.business.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.List;
+
+import com.game.common.annotation.DataSource;
+import com.game.common.enums.DataSourceType;
+import com.game.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.game.business.mapper.AppUserMapper;
+import com.game.business.domain.AppUser;
+import com.game.business.service.IAppUserService;
+
+/**
+ * app用户Service业务层处理
+ *
+ * @author game
+ * @date 2024-06-18
+ */
+@Service
+@DS("slave")
+public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> implements IAppUserService {
+    @Autowired
+    private AppUserMapper appUserMapper;
+
+    /**
+     * 查询app用户
+     *
+     * @param userid app用户主键
+     * @return app用户
+     */
+    @Override
+    public AppUser selectAppUserByUserid(Long userid) {
+        return appUserMapper.selectAppUserByUserid(userid);
+    }
+
+    /**
+     * 查询app用户列表
+     *
+     * @param appUser app用户
+     * @return app用户
+     */
+    @Override
+    public List<AppUser> selectAppUserList(AppUser appUser) {
+        return appUserMapper.selectAppUserList(appUser);
+    }
+
+    /**
+     * 新增app用户
+     *
+     * @param appUser app用户
+     * @return 结果
+     */
+    @Override
+    public int insertAppUser(AppUser appUser) {
+                appUser.setCreateTime(DateUtils.getNowDate());
+            return appUserMapper.insertAppUser(appUser);
+    }
+
+    /**
+     * 修改app用户
+     *
+     * @param appUser app用户
+     * @return 结果
+     */
+    @Override
+    public int updateAppUser(AppUser appUser) {
+        return appUserMapper.updateAppUser(appUser);
+    }
+
+    /**
+     * 批量删除app用户
+     *
+     * @param userids 需要删除的app用户主键
+     * @return 结果
+     */
+    @Override
+    public int deleteAppUserByUserids(Long[] userids) {
+        return appUserMapper.deleteAppUserByUserids(userids);
+    }
+
+    /**
+     * 删除app用户信息
+     *
+     * @param userid app用户主键
+     * @return 结果
+     */
+    @Override
+    public int deleteAppUserByUserid(Long userid) {
+        return appUserMapper.deleteAppUserByUserid(userid);
+    }
+}

+ 92 - 0
game-business/src/main/java/com/game/business/service/impl/AppUsersCashrecordServiceImpl.java

@@ -0,0 +1,92 @@
+package com.game.business.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.List;
+
+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 com.game.business.mapper.AppUsersCashrecordMapper;
+import com.game.business.domain.AppUsersCashrecord;
+import com.game.business.service.IAppUsersCashrecordService;
+
+/**
+ * 提现记录Service业务层处理
+ *
+ * @author game
+ * @date 2024-06-18
+ */
+@Service
+@DS("slave")
+public class AppUsersCashrecordServiceImpl extends ServiceImpl<AppUsersCashrecordMapper, AppUsersCashrecord> implements IAppUsersCashrecordService {
+    @Autowired
+    private AppUsersCashrecordMapper appUsersCashrecordMapper;
+
+    /**
+     * 查询提现记录
+     *
+     * @param id 提现记录主键
+     * @return 提现记录
+     */
+    @Override
+    public AppUsersCashrecord selectAppUsersCashrecordById(Long id) {
+        return appUsersCashrecordMapper.selectAppUsersCashrecordById(id);
+    }
+
+    /**
+     * 查询提现记录列表
+     *
+     * @param appUsersCashrecord 提现记录
+     * @return 提现记录
+     */
+    @Override
+    public List<AppUsersCashrecord> selectAppUsersCashrecordList(AppUsersCashrecord appUsersCashrecord) {
+        return appUsersCashrecordMapper.selectAppUsersCashrecordList(appUsersCashrecord);
+    }
+
+    /**
+     * 新增提现记录
+     *
+     * @param appUsersCashrecord 提现记录
+     * @return 结果
+     */
+    @Override
+    public int insertAppUsersCashrecord(AppUsersCashrecord appUsersCashrecord) {
+            return appUsersCashrecordMapper.insertAppUsersCashrecord(appUsersCashrecord);
+    }
+
+    /**
+     * 修改提现记录
+     *
+     * @param appUsersCashrecord 提现记录
+     * @return 结果
+     */
+    @Override
+    public int updateAppUsersCashrecord(AppUsersCashrecord appUsersCashrecord) {
+        return appUsersCashrecordMapper.updateAppUsersCashrecord(appUsersCashrecord);
+    }
+
+    /**
+     * 批量删除提现记录
+     *
+     * @param ids 需要删除的提现记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteAppUsersCashrecordByIds(Long[] ids) {
+        return appUsersCashrecordMapper.deleteAppUsersCashrecordByIds(ids);
+    }
+
+    /**
+     * 删除提现记录信息
+     *
+     * @param id 提现记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteAppUsersCashrecordById(Long id) {
+        return appUsersCashrecordMapper.deleteAppUsersCashrecordById(id);
+    }
+}

+ 92 - 0
game-business/src/main/java/com/game/business/service/impl/AppUsersChargeServiceImpl.java

@@ -0,0 +1,92 @@
+package com.game.business.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.List;
+
+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 com.game.business.mapper.AppUsersChargeMapper;
+import com.game.business.domain.AppUsersCharge;
+import com.game.business.service.IAppUsersChargeService;
+
+/**
+ * 充值记录Service业务层处理
+ *
+ * @author game
+ * @date 2024-06-18
+ */
+@Service
+@DS("slave")
+public class AppUsersChargeServiceImpl extends ServiceImpl<AppUsersChargeMapper, AppUsersCharge> implements IAppUsersChargeService {
+    @Autowired
+    private AppUsersChargeMapper appUsersChargeMapper;
+
+    /**
+     * 查询充值记录
+     *
+     * @param id 充值记录主键
+     * @return 充值记录
+     */
+    @Override
+    public AppUsersCharge selectAppUsersChargeById(Long id) {
+        return appUsersChargeMapper.selectAppUsersChargeById(id);
+    }
+
+    /**
+     * 查询充值记录列表
+     *
+     * @param appUsersCharge 充值记录
+     * @return 充值记录
+     */
+    @Override
+    public List<AppUsersCharge> selectAppUsersChargeList(AppUsersCharge appUsersCharge) {
+        return appUsersChargeMapper.selectAppUsersChargeList(appUsersCharge);
+    }
+
+    /**
+     * 新增充值记录
+     *
+     * @param appUsersCharge 充值记录
+     * @return 结果
+     */
+    @Override
+    public int insertAppUsersCharge(AppUsersCharge appUsersCharge) {
+            return appUsersChargeMapper.insertAppUsersCharge(appUsersCharge);
+    }
+
+    /**
+     * 修改充值记录
+     *
+     * @param appUsersCharge 充值记录
+     * @return 结果
+     */
+    @Override
+    public int updateAppUsersCharge(AppUsersCharge appUsersCharge) {
+        return appUsersChargeMapper.updateAppUsersCharge(appUsersCharge);
+    }
+
+    /**
+     * 批量删除充值记录
+     *
+     * @param ids 需要删除的充值记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteAppUsersChargeByIds(Long[] ids) {
+        return appUsersChargeMapper.deleteAppUsersChargeByIds(ids);
+    }
+
+    /**
+     * 删除充值记录信息
+     *
+     * @param id 充值记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteAppUsersChargeById(Long id) {
+        return appUsersChargeMapper.deleteAppUsersChargeById(id);
+    }
+}

+ 95 - 0
game-business/src/main/java/com/game/business/service/impl/FinTranRecordServiceImpl.java

@@ -0,0 +1,95 @@
+package com.game.business.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.List;
+
+import com.game.common.annotation.DataSource;
+import com.game.common.enums.DataSourceType;
+import com.game.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.game.business.mapper.FinTranRecordMapper;
+import com.game.business.domain.FinTranRecord;
+import com.game.business.service.IFinTranRecordService;
+
+/**
+ * 消费记录Service业务层处理
+ *
+ * @author game
+ * @date 2024-06-18
+ */
+@Service
+@DS("slave")
+public class FinTranRecordServiceImpl extends ServiceImpl<FinTranRecordMapper, FinTranRecord> implements IFinTranRecordService {
+
+    @Autowired
+    private FinTranRecordMapper finTranRecordMapper;
+
+    /**
+     * 查询消费记录
+     *
+     * @param id 消费记录主键
+     * @return 消费记录
+     */
+    @Override
+    public FinTranRecord selectFinTranRecordById(Long id) {
+        return finTranRecordMapper.selectFinTranRecordById(id);
+    }
+
+    /**
+     * 查询消费记录列表
+     *
+     * @param finTranRecord 消费记录
+     * @return 消费记录
+     */
+    @Override
+    public List<FinTranRecord> selectFinTranRecordList(FinTranRecord finTranRecord) {
+        return finTranRecordMapper.selectFinTranRecordList(finTranRecord);
+    }
+
+    /**
+     * 新增消费记录
+     *
+     * @param finTranRecord 消费记录
+     * @return 结果
+     */
+    @Override
+    public int insertFinTranRecord(FinTranRecord finTranRecord) {
+                finTranRecord.setCreateTime(DateUtils.getNowDate());
+            return finTranRecordMapper.insertFinTranRecord(finTranRecord);
+    }
+
+    /**
+     * 修改消费记录
+     *
+     * @param finTranRecord 消费记录
+     * @return 结果
+     */
+    @Override
+    public int updateFinTranRecord(FinTranRecord finTranRecord) {
+        return finTranRecordMapper.updateFinTranRecord(finTranRecord);
+    }
+
+    /**
+     * 批量删除消费记录
+     *
+     * @param ids 需要删除的消费记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteFinTranRecordByIds(Long[] ids) {
+        return finTranRecordMapper.deleteFinTranRecordByIds(ids);
+    }
+
+    /**
+     * 删除消费记录信息
+     *
+     * @param id 消费记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteFinTranRecordById(Long id) {
+        return finTranRecordMapper.deleteFinTranRecordById(id);
+    }
+}

+ 113 - 0
game-business/src/main/java/com/game/business/task/AppGameBettingTask.java

@@ -0,0 +1,113 @@
+package com.game.business.task;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.game.business.domain.AppGameBetting;
+import com.game.business.domain.AppUser;
+import com.game.business.domain.FinTranRecord;
+import com.game.business.service.IAppGameBettingService;
+import com.game.business.service.IAppUserService;
+import com.game.business.service.IFinTranRecordService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class AppGameBettingTask {
+
+    @Autowired
+    private IAppGameBettingService appGameBettingService;
+
+    @Autowired
+    private IAppUserService appUserService;
+
+    @Autowired
+    private IFinTranRecordService finTranRecordService;
+
+    public void gameBettingTask(Long classId, Long gameId, String gameDate, String bettingItem){
+
+        List<AppGameBetting> list = appGameBettingService.getIsWinning(classId, gameId, gameDate, 0);
+
+        if(list == null || list.isEmpty()){
+            return;
+        }
+
+        for (int i = 0; i < list.size(); i++) {
+            AppGameBetting appGameBetting = list.get(i);
+            appGameBetting.setUpdateTime(new Date());
+            if(!appGameBetting.getBettingItem().equals(bettingItem)){
+                appGameBetting.setIsWinning(2);
+                appGameBettingService.updateById(appGameBetting);
+                continue;
+            }
+
+            AppUser appUser = appUserService.selectAppUserByUserid(appGameBetting.getUserId());
+            if(appUser == null){
+                appGameBetting.setIsWinning(1);
+                appGameBettingService.updateById(appGameBetting);
+                continue;
+            }
+
+            // 更新用户余额
+            appUser.setDiamondCoin(appUser.getDiamondCoin() + (appGameBetting.getBettingAmount() * appGameBetting.getBettingMultiple()) );
+            appUser.setDiamondCoinTotal(appUser.getDiamondCoinCashTotal() + (appGameBetting.getBettingAmount() * appGameBetting.getBettingMultiple()));
+            appUserService.updateAppUser(appUser);
+
+            appGameBetting.setIsWinning(1);
+            appGameBettingService.updateById(appGameBetting);
+
+            FinTranRecord finTranRecord = new FinTranRecord();
+
+            finTranRecord.setAfterCoin(appUser.getCoin());
+            finTranRecord.setCoinChange(0.00);
+
+            finTranRecord.setAfterMoney(0.00);
+            finTranRecord.setMoneyChange(0.00);
+
+            finTranRecord.setAfterDiamondCoin(appUser.getDiamondCoin());
+            finTranRecord.setDiamondCoinChange(appGameBetting.getBettingAmount());
+
+            finTranRecord.setAfterTicket(0.00);
+            finTranRecord.setTicketChange(0.00);
+
+            finTranRecord.setToUid(appUser.getUserid());
+            finTranRecord.setUid(appUser.getUserid());
+
+            finTranRecord.setSceneId1(0L);
+            finTranRecord.setSceneId2(null);
+            finTranRecord.setSceneType(0L);
+
+            finTranRecord.setTranGroupId(appGameBetting.getId());
+            finTranRecord.setTranType1(17L);
+            finTranRecord.setTranType2(200L);
+            finTranRecord.setTranType3(20001L);
+
+            finTranRecord.setRemarks("游戏中奖");
+
+            finTranRecord.setConsumptionCoin(appGameBetting.getBettingAmount());
+            finTranRecord.setConsumptionMoney(0.00);
+            finTranRecord.setCommissionRelatedUid(0L);
+            finTranRecord.setAgentId(appUser.getAgentId());
+
+            finTranRecord.setCreateTime(new Date());
+
+            finTranRecord.setCurrencyType(4L);
+
+            finTranRecord.setFromUid(0L);
+            finTranRecord.setGoodsId(0L);
+            finTranRecord.setGuildId(0L);
+            finTranRecord.setManagerCoId(0L);
+            finTranRecord.setManagerId(0L);
+
+            finTranRecord.setPerc(0.00);
+            finTranRecord.setProId(0L);
+            finTranRecord.setProCount(0L);
+
+            finTranRecord.setOrderId(appGameBetting.getId());
+
+            finTranRecordService.insertFinTranRecord(finTranRecord);
+        }
+    }
+}

+ 4 - 0
game-business/src/main/java/com/game/business/task/AppUserCountTask.java

@@ -0,0 +1,4 @@
+package com.game.business.task;
+
+public class AppUserCountTask {
+}

+ 3 - 3
game-business/src/main/java/com/game/business/util/Common.java

@@ -2,10 +2,10 @@ package com.game.business.util;
 
 public class Common {
 
-    public static final String GANME_ONE_NAME = "";
-    public static final String GAME_ONE_CODE = "";
+    public static final String GANME_ONE_NAME = "one";
+    public static final String GAME_ONE_CODE = "1";
     public static final String GANME_TWO_NAME = "";
     public static final String GANME_THREES_NAME = "";
 
-    public static final String WS_GAME_URL = "";
+    public static final String WS_GAME_URL = "ws://47.115.49.14:8000/ws";
 }

+ 160 - 22
game-business/src/main/java/com/game/business/websocket/client/GameOneClient.java

@@ -1,18 +1,25 @@
 package com.game.business.websocket.client;
 
+import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.game.business.config.GameOneConfig;
 import com.game.business.domain.AppGame;
+import com.game.business.domain.AppGameClassify;
 import com.game.business.domain.AppGameLottery;
+import com.game.business.service.IAppGameClassifyService;
 import com.game.business.service.IAppGameLotteryService;
 import com.game.business.service.IAppGameService;
+import com.game.business.task.AppGameBettingTask;
 import com.game.business.util.Common;
-import com.game.common.utils.DateUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import javax.websocket.*;
+import java.util.Date;
 
 @Component
 @ClientEndpoint
@@ -24,6 +31,12 @@ public class GameOneClient {
     @Autowired
     private IAppGameService appGameService;
 
+    @Autowired
+    private IAppGameClassifyService appGameClassifyService;
+
+    @Autowired
+    private AppGameBettingTask appGameBettingTask;
+
     @OnOpen
     public void onOpen(Session session) throws Exception{
         System.out.printf("game one 游戏已连接 server");
@@ -57,43 +70,168 @@ public class GameOneClient {
     public void onMessage(Session session, String message){
         try {
             if(StringUtils.isBlank(message)){
-                System.out.printf("game one 数据为空");
+                System.out.println("game one 数据为空");
                 return;
             }
 
-            System.out.printf("game one 接收数据[" + message + "]");
+            System.out.println("game one 接收数据" + message);
+            JSONArray dataArry = JSONArray.parseArray(message);
 
-            JSONObject jsonObject = JSONObject.parseObject(message);
-            String code = jsonObject.getString("code");
+            Integer type = null;
 
-            if(StringUtils.isBlank(code) || !code.equals(Common.GAME_ONE_CODE)){
-                System.out.printf("game one 接收数据错误[" + message + "]");
+            for (int i = 0; i < dataArry.size(); i++) {
+                JSONObject jsonObject = dataArry.getJSONObject(i);
+                if(jsonObject.containsKey("type")){
+                    type = jsonObject.getInteger("type");
+                    break;
+                }
+            }
+
+            if(type == null){
+                System.out.println("游戏socket推送类型为空。");
                 return;
             }
 
-            // 是否为开奖
-            Integer isLottery = jsonObject.getInteger("isLottery");
-            if(isLottery == 0){
+            // 更新倒计时
+            if(type == 1){
+
+                JSONArray gameDataArry = null;
+                String time = null;
+                String classCode = null;
+                for (int i = 0; i < dataArry.size(); i++) {
+                    JSONObject jsonObject = dataArry.getJSONObject(i);
+                    if(jsonObject.containsKey("data")){
+                        gameDataArry = jsonObject.getJSONArray("data");
+                    }
+                    if(jsonObject.containsKey("time")){
+                        time = jsonObject.getString("time");
+                    }
+                    if(jsonObject.containsKey("id")){
+                        classCode = jsonObject.getString("id");
+                    }
+                }
+
+                if(classCode == null){
+                    System.out.println("游戏socket推送倒计时,平台ID为空。");
+                    return;
+                }
+
+                if(gameDataArry == null){
+                    System.out.println("游戏socket推送倒计时,data对象为空。");
+                    return;
+                }
+
+                if(time == null){
+                    System.out.println("游戏socket推送倒计时,time为空。");
+                    return;
+                }
+
+                AppGameClassify appGameClassify = appGameClassifyService.getByCode(classCode);
+                if(appGameClassify == null){
+                    System.out.println("开奖游戏平台不存在:" + classCode);
+                }
+
+                for (int i = 0; i < gameDataArry.size(); i++) {
+                    JSONObject jsonObject = gameDataArry.getJSONObject(i);
+                    String gameCode = jsonObject.getString("id");
+                    if(gameCode == null){
+                        System.out.println("游戏socket推送倒计时,游戏id为空。");
+                        continue;
+                    }
+
+                    AppGame appGame = appGameService.selectAppGameByClassIdAndCode(appGameClassify.getId(), gameCode);
+                    if(appGame == null){
+                        System.out.println("开奖游戏不存在:" + gameCode);
+                    }
+                    appGame.setGameTime(time);
+                    appGameService.updateAppGame(appGame);
+                }
                 return;
             }
 
-            AppGame appGame = appGameService.selectAppGameById(0L);
+            if(type != 2 && type != 3){
+                return;
+            }
 
-            String gameDate = jsonObject.getString("gameDate");
-            String gameRecordDate = jsonObject.getString("gameRecordDate");
-            String gameLotterySucc = jsonObject.getString("gameLotterySucc");
+            JSONArray gameArry = null;
+            String classCode = null;
+            for (int i = 0; i < dataArry.size(); i++) {
+                JSONObject jsonObject = dataArry.getJSONObject(i);
+                if(jsonObject.containsKey("gameTypeSortArrayVOS")){
+                    gameArry = jsonObject.getJSONArray("data");
+                }
+                if(jsonObject.containsKey("id")){
+                    classCode = jsonObject.getString("id");
+                }
+            }
 
-            AppGameLottery appGameLottery = new AppGameLottery();
-            appGameLottery.setGameId(appGame.getId());
-            appGameLottery.setGameDate(gameDate);
-            appGameLottery.setIsLottery(isLottery);
-            appGameLottery.setGameRecordDate(DateUtils.parseDate(gameRecordDate));
-            appGameLottery.setGameLotterySucc(gameLotterySucc);
+            if(gameArry == null){
+                System.out.println("游戏socket推送期号或开奖,gameTypeSortArrayVOS对象为空。");
+                return;
+            }
 
-            appGameLotteryService.save(appGameLottery);
+            if(classCode == null){
+                System.out.println("游戏socket推送期号或开奖,平台ID为空。");
+                return;
+            }
 
-            // 开奖结算
+            AppGameClassify appGameClassify = appGameClassifyService.getByCode(classCode);
+            if(appGameClassify == null){
+                System.out.println("开奖游戏平台不存在:" + classCode);
+            }
 
+            for (int i = 0; i < gameArry.size(); i++) {
+                JSONObject gameLotteryObject = gameArry.getJSONObject(i);
+                String gameCode = gameLotteryObject.getString("id");
+
+                if(gameCode == null){
+                    System.out.println("游戏socket推送期号或开奖,游戏ID为空。");
+                    return;
+                }
+
+                AppGame appGame = appGameService.selectAppGameByClassIdAndCode(appGameClassify.getId(), gameCode);
+                if(appGame == null){
+                    System.out.println("开奖游戏不存在:" + gameCode);
+                }
+
+                String gameDate = gameLotteryObject.getString("gameDate");
+
+                if(gameDate == null){
+                    System.out.println("游戏socket推送期号或开奖,期号为空。");
+                    return;
+                }
+
+                if(type == 3){
+                    appGame.setGameDate(gameDate);
+                    appGameService.updateAppGame(appGame);
+                    continue;
+                }
+
+                long count = appGameLotteryService.selectCount(appGame.getClassifyId(), appGame.getId(), gameDate);
+
+                if(count > 0){
+                    System.out.println("游戏socket推送开奖,当前期已开过将,游戏编码:" + gameCode + ",期号:" + gameDate);
+                    continue;
+                }
+
+                Integer isLottery = gameLotteryObject.getInteger("isLottery");
+                String gameLotterySucc = gameLotteryObject.getString("gameLotterySucc");
+
+                // 保存开奖记录
+                AppGameLottery appGameLottery = new AppGameLottery();
+                appGameLottery.setGameId(appGame.getId());
+                appGameLottery.setGameDate(gameDate);
+                appGameLottery.setIsLottery(isLottery);
+                appGameLottery.setGameRecordDate(new Date());
+                appGameLottery.setGameLotterySucc(gameLotterySucc);
+                appGameLotteryService.save(appGameLottery);
+
+                if(isLottery != 1){
+                    continue;
+                }
+
+                appGameBettingTask.gameBettingTask(appGameClassify.getId(), appGame.getId(), gameDate, gameLotterySucc);
+            }
         }catch (Exception e){
             e.printStackTrace();
             System.out.printf("game one 接收数据异常[" + e.getMessage() + "]");

+ 6 - 1
game-business/src/main/resources/mapper/business/AppGameClassifyMapper.xml

@@ -7,19 +7,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <resultMap type="com.game.business.domain.AppGameClassify" id="AppGameClassifyResult">
         <result property="id"    column="id"    />
         <result property="name"    column="name"    />
+        <result property="code"    column="code"    />
         <result property="logoUrl"    column="logo_url"    />
         <result property="status"    column="status"    />
         <result property="orderno"    column="orderno"    />
     </resultMap>
 
     <sql id="selectAppGameClassifyVo">
-        select id, name, logo_url, status, orderno from app_game_classify
+        select id, name, code, logo_url, status, orderno from app_game_classify
     </sql>
 
     <select id="selectAppGameClassifyList" parameterType="com.game.business.domain.AppGameClassify" resultMap="AppGameClassifyResult">
         <include refid="selectAppGameClassifyVo"/>
         <where>  
             <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
+            <if test="code != null  and code != ''"> and code like concat('%', #{code}, '%')</if>
             <if test="logoUrl != null  and logoUrl != ''"> and logo_url = #{logoUrl}</if>
             <if test="status != null "> and status = #{status}</if>
             <if test="orderno != null "> and orderno = #{orderno}</if>
@@ -36,6 +38,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
             <if test="name != null">name,</if>
+            <if test="code != null">code,</if>
             <if test="logoUrl != null">logo_url,</if>
             <if test="status != null">status,</if>
             <if test="orderno != null">orderno,</if>
@@ -43,6 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
             <if test="name != null">#{name},</if>
+            <if test="code != null">#{code},</if>
             <if test="logoUrl != null">#{logoUrl},</if>
             <if test="status != null">#{status},</if>
             <if test="orderno != null">#{orderno},</if>
@@ -53,6 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         update app_game_classify
         <trim prefix="SET" suffixOverrides=",">
             <if test="name != null">name = #{name},</if>
+            <if test="code != null">code = #{code},</if>
             <if test="logoUrl != null">logo_url = #{logoUrl},</if>
             <if test="status != null">status = #{status},</if>
             <if test="orderno != null">orderno = #{orderno},</if>

+ 11 - 1
game-business/src/main/resources/mapper/business/AppGameMapper.xml

@@ -7,7 +7,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <resultMap type="com.game.business.domain.AppGame" id="AppGameResult">
         <result property="id"    column="id"    />
         <result property="name"    column="name"    />
+        <result property="code"    column="code"    />
         <result property="classifyId"    column="classify_id"    />
+        <result property="gameDate"    column="game_date"    />
+        <result property="gameTime"    column="game_time"    />
         <result property="logoUrl"    column="logo_url"    />
         <result property="gamePath"    column="game_path"    />
         <result property="status"    column="status"    />
@@ -20,13 +23,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectAppGameVo">
-        select id, name, classify_id, logo_url, game_path, status, create_time, orderno, game_expand1, game_expand2, game_expand3, game_expand4 from app_game
+        select id, name, code, classify_id, game_date, game_time, logo_url, game_path, status, create_time, orderno, game_expand1, game_expand2, game_expand3, game_expand4 from app_game
     </sql>
 
     <select id="selectAppGameList" parameterType="com.game.business.domain.AppGame" resultMap="AppGameResult">
         <include refid="selectAppGameVo"/>
         <where>  
             <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
+            <if test="code != null  and code != ''"> and code like concat('%', #{code}, '%')</if>
+            <if test="gameDate != null  and gameDate != ''"> and game_date like concat('%', #{gameDate}, '%')</if>
             <if test="classifyId != null "> and classify_id = #{classifyId}</if>
             <if test="logoUrl != null  and logoUrl != ''"> and logo_url = #{logoUrl}</if>
             <if test="gamePath != null  and gamePath != ''"> and game_path = #{gamePath}</if>
@@ -49,6 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
             <if test="name != null">name,</if>
+            <if test="code != null">code,</if>
             <if test="classifyId != null">classify_id,</if>
             <if test="logoUrl != null">logo_url,</if>
             <if test="gamePath != null">game_path,</if>
@@ -63,6 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
             <if test="name != null">#{name},</if>
+            <if test="code != null">#{code},</if>
             <if test="classifyId != null">#{classifyId},</if>
             <if test="logoUrl != null">#{logoUrl},</if>
             <if test="gamePath != null">#{gamePath},</if>
@@ -80,7 +87,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         update app_game
         <trim prefix="SET" suffixOverrides=",">
             <if test="name != null">name = #{name},</if>
+            <if test="code != null">code = #{code},</if>
             <if test="classifyId != null">classify_id = #{classifyId},</if>
+            <if test="gameDate != null">game_date = #{gameDate},</if>
+            <if test="gameTime != null">game_time = #{gameTime},</if>
             <if test="logoUrl != null">logo_url = #{logoUrl},</if>
             <if test="gamePath != null">game_path = #{gamePath},</if>
             <if test="status != null">status = #{status},</if>

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

@@ -0,0 +1,816 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.game.business.mapper.AppUserMapper">
+    
+    <resultMap type="com.game.business.domain.AppUser" id="AppUserResult">
+        <result property="userid"    column="userid"    />
+        <result property="address"    column="address"    />
+        <result property="agentId"    column="agent_id"    />
+        <result property="amount"    column="amount"    />
+        <result property="anchorGrade"    column="anchor_grade"    />
+        <result property="anchorPoint"    column="anchor_point"    />
+        <result property="appVersion"    column="app_version"    />
+        <result property="appVersionCode"    column="app_version_code"    />
+        <result property="avatar"    column="avatar"    />
+        <result property="awardLoginDay"    column="award_login_day"    />
+        <result property="birthday"    column="birthday"    />
+        <result property="broadCast"    column="broad_cast"    />
+        <result property="channelId"    column="channel_id"    />
+        <result property="chargeShow"    column="charge_show"    />
+        <result property="charmGrade"    column="charm_grade"    />
+        <result property="charmPoint"    column="charm_point"    />
+        <result property="city"    column="city"    />
+        <result property="cityEdit"    column="city_edit"    />
+        <result property="coin"    column="coin"    />
+        <result property="constellation"    column="constellation"    />
+        <result property="consumption"    column="consumption"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="dealScalePlan"    column="deal_scale_plan"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="deviceId"    column="device_id"    />
+        <result property="devoteShow"    column="devote_show"    />
+        <result property="giftGlobalBroadcast"    column="gift_global_broadcast"    />
+        <result property="goodnum"    column="goodnum"    />
+        <result property="groupId"    column="group_id"    />
+        <result property="gsRoomId"    column="gs_room_id"    />
+        <result property="gsRoomType"    column="gs_room_type"    />
+        <result property="guildId"    column="guild_id"    />
+        <result property="headNo"    column="head_no"    />
+        <result property="height"    column="height"    />
+        <result property="hideDistance"    column="hide_distance"    />
+        <result property="inviteCode"    column="invite_code"    />
+        <result property="bindCode"    column="bind_code"    />
+        <result property="ipaddr"    column="ipaddr"    />
+        <result property="isAnchorAuth"    column="is_anchor_auth"    />
+        <result property="isAutomatic"    column="is_automatic"    />
+        <result property="isJoinJg"    column="is_join_jg"    />
+        <result property="isLiveAccount"    column="is_live_account"    />
+        <result property="isNotDisturb"    column="is_not_disturb"    />
+        <result property="isOooAccount"    column="is_ooo_account"    />
+        <result property="isPush"    column="is_push"    />
+        <result property="isRecommend"    column="is_recommend"    />
+        <result property="isShowHomePage"    column="is_show_home_page"    />
+        <result property="isSvip"    column="is_svip"    />
+        <result property="isTone"    column="is_tone"    />
+        <result property="isYouthModel"    column="is_youth_model"    />
+        <result property="ishot"    column="ishot"    />
+        <result property="isrecord"    column="isrecord"    />
+        <result property="issuper"    column="issuper"    />
+        <result property="iszombie"    column="iszombie"    />
+        <result property="iszombiep"    column="iszombiep"    />
+        <result property="joinRoomShow"    column="join_room_show"    />
+        <result property="kickTime"    column="kick_time"    />
+        <result property="lastGameNum"    column="last_game_num"    />
+        <result property="lastLoginDay"    column="last_login_day"    />
+        <result property="lastLoginIp"    column="last_login_ip"    />
+        <result property="lastLoginTime"    column="last_login_time"    />
+        <result property="lastOffLineTime"    column="last_off_line_time"    />
+        <result property="lat"    column="lat"    />
+        <result property="level"    column="level"    />
+        <result property="liveFunction"    column="live_function"    />
+        <result property="liveStatus"    column="live_status"    />
+        <result property="liveThumb"    column="live_thumb"    />
+        <result property="liveThumbs"    column="live_thumbs"    />
+        <result property="lng"    column="lng"    />
+        <result property="lockReason"    column="lock_reason"    />
+        <result property="lockTime"    column="lock_time"    />
+        <result property="loginType"    column="login_type"    />
+        <result property="managerCoId"    column="manager_co_id"    />
+        <result property="managerId"    column="manager_id"    />
+        <result property="maxSignCount"    column="max_sign_count"    />
+        <result property="mobile"    column="mobile"    />
+        <result property="nickname"    column="nickname"    />
+        <result property="nobleGrade"    column="noble_grade"    />
+        <result property="onlineStatus"    column="online_status"    />
+        <result property="oooHomePageSortNo"    column="ooo_home_page_sort_no"    />
+        <result property="oooLiveStatus"    column="ooo_live_status"    />
+        <result property="oooTwoClassifyId"    column="ooo_two_classify_id"    />
+        <result property="openLiveZombieNum"    column="open_live_zombie_num"    />
+        <result property="openid"    column="openid"    />
+        <result property="optUserName"    column="opt_user_name"    />
+        <result property="password"    column="password"    />
+        <result property="phoneFirm"    column="phone_firm"    />
+        <result property="phoneModel"    column="phone_model"    />
+        <result property="phoneSystem"    column="phone_system"    />
+        <result property="phoneUuid"    column="phone_uuid"    />
+        <result property="pid"    column="pid"    />
+        <result property="portrait"    column="portrait"    />
+        <result property="poster"    column="poster"    />
+        <result property="province"    column="province"    />
+        <result property="pushPlatform"    column="push_platform"    />
+        <result property="pushRegisterId"    column="push_register_id"    />
+        <result property="readShortVideoNumber"    column="read_short_video_number"    />
+        <result property="regType"    column="reg_type"    />
+        <result property="registerIp"    column="register_ip"    />
+        <result property="role"    column="role"    />
+        <result property="roomId"    column="room_id"    />
+        <result property="roomTitle"    column="room_title"    />
+        <result property="roomType"    column="room_type"    />
+        <result property="roomTypeVal"    column="room_type_val"    />
+        <result property="salt"    column="salt"    />
+        <result property="sanwei"    column="sanwei"    />
+        <result property="score"    column="score"    />
+        <result property="sex"    column="sex"    />
+        <result property="signCount"    column="sign_count"    />
+        <result property="signTime"    column="sign_time"    />
+        <result property="signature"    column="signature"    />
+        <result property="smsRegion"    column="sms_region"    />
+        <result property="source"    column="source"    />
+        <result property="starId"    column="star_id"    />
+        <result property="status"    column="status"    />
+        <result property="totalAmount"    column="total_amount"    />
+        <result property="totalAmountCash"    column="total_amount_cash"    />
+        <result property="totalCash"    column="total_cash"    />
+        <result property="totalCharge"    column="total_charge"    />
+        <result property="unionid"    column="unionid"    />
+        <result property="updatePwdTime"    column="update_pwd_time"    />
+        <result property="userActivationKey"    column="user_activation_key"    />
+        <result property="userEmail"    column="user_email"    />
+        <result property="userGrade"    column="user_grade"    />
+        <result property="userPoint"    column="user_point"    />
+        <result property="userSetOnlineStatus"    column="user_set_online_status"    />
+        <result property="userType"    column="user_type"    />
+        <result property="userUrl"    column="user_url"    />
+        <result property="username"    column="username"    />
+        <result property="video"    column="video"    />
+        <result property="videoCoin"    column="video_coin"    />
+        <result property="videoImg"    column="video_img"    />
+        <result property="vocation"    column="vocation"    />
+        <result property="voice"    column="voice"    />
+        <result property="voiceCoin"    column="voice_coin"    />
+        <result property="voiceStatus"    column="voice_status"    />
+        <result property="voipToken"    column="voip_token"    />
+        <result property="votes"    column="votes"    />
+        <result property="votestotal"    column="votestotal"    />
+        <result property="wealthGrade"    column="wealth_grade"    />
+        <result property="wechat"    column="wechat"    />
+        <result property="weight"    column="weight"    />
+        <result property="whetherEnablePositioningShow"    column="whether_enable_positioning_show"    />
+        <result property="youthPassword"    column="youth_password"    />
+        <result property="zombieMaxNum"    column="zombie_max_num"    />
+        <result property="zombieRatio"    column="zombie_ratio"    />
+        <result property="agentGrade"    column="agent_grade"    />
+        <result property="liveDividedInto"    column="live_divided_into"    />
+        <result property="gameDividedInto"    column="game_divided_into"    />
+        <result property="inviteBindTime"    column="invite_bind_time"    />
+        <result property="fundPassword"    column="fund_password"    />
+        <result property="diamondCoin"    column="diamond_coin"    />
+        <result property="diamondCoinTotal"    column="diamond_coin_total"    />
+        <result property="diamondCoinCashTotal"    column="diamond_coin_cash_total"    />
+    </resultMap>
+
+    <sql id="selectAppUserVo">
+        select userid, address, agent_id, amount, anchor_grade, anchor_point, app_version, app_version_code, avatar, award_login_day, birthday, broad_cast, channel_id, charge_show, charm_grade, charm_point, city, city_edit, coin, constellation, consumption, create_time, deal_scale_plan, del_flag, device_id, devote_show, gift_global_broadcast, goodnum, group_id, gs_room_id, gs_room_type, guild_id, head_no, height, hide_distance, invite_code, bind_code, ipaddr, is_anchor_auth, is_automatic, is_join_jg, is_live_account, is_not_disturb, is_ooo_account, is_push, is_recommend, is_show_home_page, is_svip, is_tone, is_youth_model, ishot, isrecord, issuper, iszombie, iszombiep, join_room_show, kick_time, last_game_num, last_login_day, last_login_ip, last_login_time, last_off_line_time, lat, level, live_function, live_status, live_thumb, live_thumbs, lng, lock_reason, lock_time, login_type, manager_co_id, manager_id, max_sign_count, mobile, nickname, noble_grade, online_status, ooo_home_page_sort_no, ooo_live_status, ooo_two_classify_id, open_live_zombie_num, openid, opt_user_name, password, phone_firm, phone_model, phone_system, phone_uuid, pid, portrait, poster, province, push_platform, push_register_id, read_short_video_number, reg_type, register_ip, role, room_id, room_title, room_type, room_type_val, salt, sanwei, score, sex, sign_count, sign_time, signature, sms_region, source, star_id, status, total_amount, total_amount_cash, total_cash, total_charge, unionid, update_pwd_time, user_activation_key, user_email, user_grade, user_point, user_set_online_status, user_type, user_url, username, video, video_coin, video_img, vocation, voice, voice_coin, voice_status, voip_token, votes, votestotal, wealth_grade, wechat, weight, whether_enable_positioning_show, youth_password, zombie_max_num, zombie_ratio, agent_grade, live_divided_into, game_divided_into, invite_bind_time, fund_password, diamond_coin, diamond_coin_total, diamond_coin_cash_total from app_user
+    </sql>
+
+    <select id="selectAppUserList" parameterType="com.game.business.domain.AppUser" resultMap="AppUserResult">
+        <include refid="selectAppUserVo"/>
+        <where>  
+            <if test="address != null  and address != ''"> and address = #{address}</if>
+            <if test="agentId != null "> and agent_id = #{agentId}</if>
+            <if test="amount != null "> and amount = #{amount}</if>
+            <if test="anchorGrade != null "> and anchor_grade = #{anchorGrade}</if>
+            <if test="anchorPoint != null "> and anchor_point = #{anchorPoint}</if>
+            <if test="appVersion != null  and appVersion != ''"> and app_version = #{appVersion}</if>
+            <if test="appVersionCode != null  and appVersionCode != ''"> and app_version_code = #{appVersionCode}</if>
+            <if test="avatar != null  and avatar != ''"> and avatar = #{avatar}</if>
+            <if test="awardLoginDay != null "> and award_login_day = #{awardLoginDay}</if>
+            <if test="birthday != null  and birthday != ''"> and birthday = #{birthday}</if>
+            <if test="broadCast != null "> and broad_cast = #{broadCast}</if>
+            <if test="channelId != null "> and channel_id = #{channelId}</if>
+            <if test="chargeShow != null "> and charge_show = #{chargeShow}</if>
+            <if test="charmGrade != null "> and charm_grade = #{charmGrade}</if>
+            <if test="charmPoint != null "> and charm_point = #{charmPoint}</if>
+            <if test="city != null  and city != ''"> and city = #{city}</if>
+            <if test="cityEdit != null "> and city_edit = #{cityEdit}</if>
+            <if test="coin != null "> and coin = #{coin}</if>
+            <if test="constellation != null  and constellation != ''"> and constellation = #{constellation}</if>
+            <if test="consumption != null "> and consumption = #{consumption}</if>
+            <if test="dealScalePlan != null "> and deal_scale_plan = #{dealScalePlan}</if>
+            <if test="deviceId != null  and deviceId != ''"> and device_id = #{deviceId}</if>
+            <if test="devoteShow != null "> and devote_show = #{devoteShow}</if>
+            <if test="giftGlobalBroadcast != null "> and gift_global_broadcast = #{giftGlobalBroadcast}</if>
+            <if test="goodnum != null  and goodnum != ''"> and goodnum = #{goodnum}</if>
+            <if test="groupId != null "> and group_id = #{groupId}</if>
+            <if test="gsRoomId != null "> and gs_room_id = #{gsRoomId}</if>
+            <if test="gsRoomType != null "> and gs_room_type = #{gsRoomType}</if>
+            <if test="guildId != null "> and guild_id = #{guildId}</if>
+            <if test="headNo != null "> and head_no = #{headNo}</if>
+            <if test="height != null "> and height = #{height}</if>
+            <if test="hideDistance != null "> and hide_distance = #{hideDistance}</if>
+            <if test="inviteCode != null  and inviteCode != ''"> and invite_code = #{inviteCode}</if>
+            <if test="bindCode != null  and bindCode != ''"> and bind_code = #{bindCode}</if>
+            <if test="ipaddr != null  and ipaddr != ''"> and ipaddr = #{ipaddr}</if>
+            <if test="isAnchorAuth != null "> and is_anchor_auth = #{isAnchorAuth}</if>
+            <if test="isAutomatic != null "> and is_automatic = #{isAutomatic}</if>
+            <if test="isJoinJg != null "> and is_join_jg = #{isJoinJg}</if>
+            <if test="isLiveAccount != null "> and is_live_account = #{isLiveAccount}</if>
+            <if test="isNotDisturb != null "> and is_not_disturb = #{isNotDisturb}</if>
+            <if test="isOooAccount != null "> and is_ooo_account = #{isOooAccount}</if>
+            <if test="isPush != null "> and is_push = #{isPush}</if>
+            <if test="isRecommend != null "> and is_recommend = #{isRecommend}</if>
+            <if test="isShowHomePage != null "> and is_show_home_page = #{isShowHomePage}</if>
+            <if test="isSvip != null "> and is_svip = #{isSvip}</if>
+            <if test="isTone != null "> and is_tone = #{isTone}</if>
+            <if test="isYouthModel != null "> and is_youth_model = #{isYouthModel}</if>
+            <if test="ishot != null "> and ishot = #{ishot}</if>
+            <if test="isrecord != null "> and isrecord = #{isrecord}</if>
+            <if test="issuper != null "> and issuper = #{issuper}</if>
+            <if test="iszombie != null "> and iszombie = #{iszombie}</if>
+            <if test="iszombiep != null "> and iszombiep = #{iszombiep}</if>
+            <if test="joinRoomShow != null "> and join_room_show = #{joinRoomShow}</if>
+            <if test="kickTime != null "> and kick_time = #{kickTime}</if>
+            <if test="lastGameNum != null "> and last_game_num = #{lastGameNum}</if>
+            <if test="lastLoginDay != null "> and last_login_day = #{lastLoginDay}</if>
+            <if test="lastLoginIp != null  and lastLoginIp != ''"> and last_login_ip = #{lastLoginIp}</if>
+            <if test="lastLoginTime != null "> and last_login_time = #{lastLoginTime}</if>
+            <if test="lastOffLineTime != null "> and last_off_line_time = #{lastOffLineTime}</if>
+            <if test="lat != null "> and lat = #{lat}</if>
+            <if test="level != null "> and level = #{level}</if>
+            <if test="liveFunction != null "> and live_function = #{liveFunction}</if>
+            <if test="liveStatus != null "> and live_status = #{liveStatus}</if>
+            <if test="liveThumb != null  and liveThumb != ''"> and live_thumb = #{liveThumb}</if>
+            <if test="liveThumbs != null  and liveThumbs != ''"> and live_thumbs = #{liveThumbs}</if>
+            <if test="lng != null "> and lng = #{lng}</if>
+            <if test="lockReason != null  and lockReason != ''"> and lock_reason = #{lockReason}</if>
+            <if test="lockTime != null "> and lock_time = #{lockTime}</if>
+            <if test="loginType != null  and loginType != ''"> and login_type = #{loginType}</if>
+            <if test="managerCoId != null "> and manager_co_id = #{managerCoId}</if>
+            <if test="managerId != null "> and manager_id = #{managerId}</if>
+            <if test="maxSignCount != null "> and max_sign_count = #{maxSignCount}</if>
+            <if test="mobile != null  and mobile != ''"> and mobile = #{mobile}</if>
+            <if test="nickname != null  and nickname != ''"> and nickname like concat('%', #{nickname}, '%')</if>
+            <if test="nobleGrade != null "> and noble_grade = #{nobleGrade}</if>
+            <if test="onlineStatus != null "> and online_status = #{onlineStatus}</if>
+            <if test="oooHomePageSortNo != null "> and ooo_home_page_sort_no = #{oooHomePageSortNo}</if>
+            <if test="oooLiveStatus != null "> and ooo_live_status = #{oooLiveStatus}</if>
+            <if test="oooTwoClassifyId != null "> and ooo_two_classify_id = #{oooTwoClassifyId}</if>
+            <if test="openLiveZombieNum != null "> and open_live_zombie_num = #{openLiveZombieNum}</if>
+            <if test="openid != null  and openid != ''"> and openid = #{openid}</if>
+            <if test="optUserName != null  and optUserName != ''"> and opt_user_name like concat('%', #{optUserName}, '%')</if>
+            <if test="password != null  and password != ''"> and password = #{password}</if>
+            <if test="phoneFirm != null  and phoneFirm != ''"> and phone_firm = #{phoneFirm}</if>
+            <if test="phoneModel != null  and phoneModel != ''"> and phone_model = #{phoneModel}</if>
+            <if test="phoneSystem != null  and phoneSystem != ''"> and phone_system = #{phoneSystem}</if>
+            <if test="phoneUuid != null  and phoneUuid != ''"> and phone_uuid = #{phoneUuid}</if>
+            <if test="pid != null "> and pid = #{pid}</if>
+            <if test="portrait != null  and portrait != ''"> and portrait = #{portrait}</if>
+            <if test="poster != null  and poster != ''"> and poster = #{poster}</if>
+            <if test="province != null  and province != ''"> and province = #{province}</if>
+            <if test="pushPlatform != null "> and push_platform = #{pushPlatform}</if>
+            <if test="pushRegisterId != null  and pushRegisterId != ''"> and push_register_id = #{pushRegisterId}</if>
+            <if test="readShortVideoNumber != null "> and read_short_video_number = #{readShortVideoNumber}</if>
+            <if test="regType != null "> and reg_type = #{regType}</if>
+            <if test="registerIp != null  and registerIp != ''"> and register_ip = #{registerIp}</if>
+            <if test="role != null "> and role = #{role}</if>
+            <if test="roomId != null "> and room_id = #{roomId}</if>
+            <if test="roomTitle != null  and roomTitle != ''"> and room_title = #{roomTitle}</if>
+            <if test="roomType != null "> and room_type = #{roomType}</if>
+            <if test="roomTypeVal != null  and roomTypeVal != ''"> and room_type_val = #{roomTypeVal}</if>
+            <if test="salt != null  and salt != ''"> and salt = #{salt}</if>
+            <if test="sanwei != null  and sanwei != ''"> and sanwei = #{sanwei}</if>
+            <if test="score != null "> and score = #{score}</if>
+            <if test="sex != null "> and sex = #{sex}</if>
+            <if test="signCount != null "> and sign_count = #{signCount}</if>
+            <if test="signTime != null "> and sign_time = #{signTime}</if>
+            <if test="signature != null  and signature != ''"> and signature = #{signature}</if>
+            <if test="smsRegion != null  and smsRegion != ''"> and sms_region = #{smsRegion}</if>
+            <if test="source != null  and source != ''"> and source = #{source}</if>
+            <if test="starId != null "> and star_id = #{starId}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="totalAmount != null "> and total_amount = #{totalAmount}</if>
+            <if test="totalAmountCash != null "> and total_amount_cash = #{totalAmountCash}</if>
+            <if test="totalCash != null "> and total_cash = #{totalCash}</if>
+            <if test="totalCharge != null "> and total_charge = #{totalCharge}</if>
+            <if test="unionid != null  and unionid != ''"> and unionid = #{unionid}</if>
+            <if test="updatePwdTime != null "> and update_pwd_time = #{updatePwdTime}</if>
+            <if test="userActivationKey != null  and userActivationKey != ''"> and user_activation_key = #{userActivationKey}</if>
+            <if test="userEmail != null  and userEmail != ''"> and user_email = #{userEmail}</if>
+            <if test="userGrade != null "> and user_grade = #{userGrade}</if>
+            <if test="userPoint != null "> and user_point = #{userPoint}</if>
+            <if test="userSetOnlineStatus != null "> and user_set_online_status = #{userSetOnlineStatus}</if>
+            <if test="userType != null "> and user_type = #{userType}</if>
+            <if test="userUrl != null  and userUrl != ''"> and user_url = #{userUrl}</if>
+            <if test="username != null  and username != ''"> and username like concat('%', #{username}, '%')</if>
+            <if test="video != null  and video != ''"> and video = #{video}</if>
+            <if test="videoCoin != null "> and video_coin = #{videoCoin}</if>
+            <if test="videoImg != null  and videoImg != ''"> and video_img = #{videoImg}</if>
+            <if test="vocation != null  and vocation != ''"> and vocation = #{vocation}</if>
+            <if test="voice != null  and voice != ''"> and voice = #{voice}</if>
+            <if test="voiceCoin != null "> and voice_coin = #{voiceCoin}</if>
+            <if test="voiceStatus != null "> and voice_status = #{voiceStatus}</if>
+            <if test="voipToken != null  and voipToken != ''"> and voip_token = #{voipToken}</if>
+            <if test="votes != null "> and votes = #{votes}</if>
+            <if test="votestotal != null "> and votestotal = #{votestotal}</if>
+            <if test="wealthGrade != null "> and wealth_grade = #{wealthGrade}</if>
+            <if test="wechat != null  and wechat != ''"> and wechat = #{wechat}</if>
+            <if test="weight != null "> and weight = #{weight}</if>
+            <if test="whetherEnablePositioningShow != null "> and whether_enable_positioning_show = #{whetherEnablePositioningShow}</if>
+            <if test="youthPassword != null  and youthPassword != ''"> and youth_password = #{youthPassword}</if>
+            <if test="zombieMaxNum != null "> and zombie_max_num = #{zombieMaxNum}</if>
+            <if test="zombieRatio != null "> and zombie_ratio = #{zombieRatio}</if>
+            <if test="agentGrade != null "> and agent_grade = #{agentGrade}</if>
+            <if test="liveDividedInto != null "> and live_divided_into = #{liveDividedInto}</if>
+            <if test="gameDividedInto != null "> and game_divided_into = #{gameDividedInto}</if>
+            <if test="inviteBindTime != null "> and invite_bind_time = #{inviteBindTime}</if>
+            <if test="fundPassword != null  and fundPassword != ''"> and fund_password = #{fundPassword}</if>
+            <if test="diamondCoin != null "> and diamond_coin = #{diamondCoin}</if>
+            <if test="diamondCoinTotal != null "> and diamond_coin_total = #{diamondCoinTotal}</if>
+            <if test="diamondCoinCashTotal != null "> and diamond_coin_cash_total = #{diamondCoinCashTotal}</if>
+        </where>
+    </select>
+    
+    <select id="selectAppUserByUserid" parameterType="Long" resultMap="AppUserResult">
+        <include refid="selectAppUserVo"/>
+        where userid = #{userid}
+    </select>
+        
+    <insert id="insertAppUser" parameterType="com.game.business.domain.AppUser">
+        insert into app_user
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="userid != null">userid,</if>
+            <if test="address != null">address,</if>
+            <if test="agentId != null">agent_id,</if>
+            <if test="amount != null">amount,</if>
+            <if test="anchorGrade != null">anchor_grade,</if>
+            <if test="anchorPoint != null">anchor_point,</if>
+            <if test="appVersion != null">app_version,</if>
+            <if test="appVersionCode != null">app_version_code,</if>
+            <if test="avatar != null">avatar,</if>
+            <if test="awardLoginDay != null">award_login_day,</if>
+            <if test="birthday != null">birthday,</if>
+            <if test="broadCast != null">broad_cast,</if>
+            <if test="channelId != null">channel_id,</if>
+            <if test="chargeShow != null">charge_show,</if>
+            <if test="charmGrade != null">charm_grade,</if>
+            <if test="charmPoint != null">charm_point,</if>
+            <if test="city != null">city,</if>
+            <if test="cityEdit != null">city_edit,</if>
+            <if test="coin != null">coin,</if>
+            <if test="constellation != null">constellation,</if>
+            <if test="consumption != null">consumption,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="dealScalePlan != null">deal_scale_plan,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="deviceId != null">device_id,</if>
+            <if test="devoteShow != null">devote_show,</if>
+            <if test="giftGlobalBroadcast != null">gift_global_broadcast,</if>
+            <if test="goodnum != null">goodnum,</if>
+            <if test="groupId != null">group_id,</if>
+            <if test="gsRoomId != null">gs_room_id,</if>
+            <if test="gsRoomType != null">gs_room_type,</if>
+            <if test="guildId != null">guild_id,</if>
+            <if test="headNo != null">head_no,</if>
+            <if test="height != null">height,</if>
+            <if test="hideDistance != null">hide_distance,</if>
+            <if test="inviteCode != null">invite_code,</if>
+            <if test="bindCode != null">bind_code,</if>
+            <if test="ipaddr != null">ipaddr,</if>
+            <if test="isAnchorAuth != null">is_anchor_auth,</if>
+            <if test="isAutomatic != null">is_automatic,</if>
+            <if test="isJoinJg != null">is_join_jg,</if>
+            <if test="isLiveAccount != null">is_live_account,</if>
+            <if test="isNotDisturb != null">is_not_disturb,</if>
+            <if test="isOooAccount != null">is_ooo_account,</if>
+            <if test="isPush != null">is_push,</if>
+            <if test="isRecommend != null">is_recommend,</if>
+            <if test="isShowHomePage != null">is_show_home_page,</if>
+            <if test="isSvip != null">is_svip,</if>
+            <if test="isTone != null">is_tone,</if>
+            <if test="isYouthModel != null">is_youth_model,</if>
+            <if test="ishot != null">ishot,</if>
+            <if test="isrecord != null">isrecord,</if>
+            <if test="issuper != null">issuper,</if>
+            <if test="iszombie != null">iszombie,</if>
+            <if test="iszombiep != null">iszombiep,</if>
+            <if test="joinRoomShow != null">join_room_show,</if>
+            <if test="kickTime != null">kick_time,</if>
+            <if test="lastGameNum != null">last_game_num,</if>
+            <if test="lastLoginDay != null">last_login_day,</if>
+            <if test="lastLoginIp != null">last_login_ip,</if>
+            <if test="lastLoginTime != null">last_login_time,</if>
+            <if test="lastOffLineTime != null">last_off_line_time,</if>
+            <if test="lat != null">lat,</if>
+            <if test="level != null">level,</if>
+            <if test="liveFunction != null">live_function,</if>
+            <if test="liveStatus != null">live_status,</if>
+            <if test="liveThumb != null">live_thumb,</if>
+            <if test="liveThumbs != null">live_thumbs,</if>
+            <if test="lng != null">lng,</if>
+            <if test="lockReason != null">lock_reason,</if>
+            <if test="lockTime != null">lock_time,</if>
+            <if test="loginType != null">login_type,</if>
+            <if test="managerCoId != null">manager_co_id,</if>
+            <if test="managerId != null">manager_id,</if>
+            <if test="maxSignCount != null">max_sign_count,</if>
+            <if test="mobile != null">mobile,</if>
+            <if test="nickname != null">nickname,</if>
+            <if test="nobleGrade != null">noble_grade,</if>
+            <if test="onlineStatus != null">online_status,</if>
+            <if test="oooHomePageSortNo != null">ooo_home_page_sort_no,</if>
+            <if test="oooLiveStatus != null">ooo_live_status,</if>
+            <if test="oooTwoClassifyId != null">ooo_two_classify_id,</if>
+            <if test="openLiveZombieNum != null">open_live_zombie_num,</if>
+            <if test="openid != null">openid,</if>
+            <if test="optUserName != null">opt_user_name,</if>
+            <if test="password != null">password,</if>
+            <if test="phoneFirm != null">phone_firm,</if>
+            <if test="phoneModel != null">phone_model,</if>
+            <if test="phoneSystem != null">phone_system,</if>
+            <if test="phoneUuid != null">phone_uuid,</if>
+            <if test="pid != null">pid,</if>
+            <if test="portrait != null">portrait,</if>
+            <if test="poster != null">poster,</if>
+            <if test="province != null">province,</if>
+            <if test="pushPlatform != null">push_platform,</if>
+            <if test="pushRegisterId != null">push_register_id,</if>
+            <if test="readShortVideoNumber != null">read_short_video_number,</if>
+            <if test="regType != null">reg_type,</if>
+            <if test="registerIp != null">register_ip,</if>
+            <if test="role != null">role,</if>
+            <if test="roomId != null">room_id,</if>
+            <if test="roomTitle != null">room_title,</if>
+            <if test="roomType != null">room_type,</if>
+            <if test="roomTypeVal != null">room_type_val,</if>
+            <if test="salt != null">salt,</if>
+            <if test="sanwei != null">sanwei,</if>
+            <if test="score != null">score,</if>
+            <if test="sex != null">sex,</if>
+            <if test="signCount != null">sign_count,</if>
+            <if test="signTime != null">sign_time,</if>
+            <if test="signature != null">signature,</if>
+            <if test="smsRegion != null">sms_region,</if>
+            <if test="source != null">source,</if>
+            <if test="starId != null">star_id,</if>
+            <if test="status != null">status,</if>
+            <if test="totalAmount != null">total_amount,</if>
+            <if test="totalAmountCash != null">total_amount_cash,</if>
+            <if test="totalCash != null">total_cash,</if>
+            <if test="totalCharge != null">total_charge,</if>
+            <if test="unionid != null">unionid,</if>
+            <if test="updatePwdTime != null">update_pwd_time,</if>
+            <if test="userActivationKey != null">user_activation_key,</if>
+            <if test="userEmail != null">user_email,</if>
+            <if test="userGrade != null">user_grade,</if>
+            <if test="userPoint != null">user_point,</if>
+            <if test="userSetOnlineStatus != null">user_set_online_status,</if>
+            <if test="userType != null">user_type,</if>
+            <if test="userUrl != null">user_url,</if>
+            <if test="username != null">username,</if>
+            <if test="video != null">video,</if>
+            <if test="videoCoin != null">video_coin,</if>
+            <if test="videoImg != null">video_img,</if>
+            <if test="vocation != null">vocation,</if>
+            <if test="voice != null">voice,</if>
+            <if test="voiceCoin != null">voice_coin,</if>
+            <if test="voiceStatus != null">voice_status,</if>
+            <if test="voipToken != null">voip_token,</if>
+            <if test="votes != null">votes,</if>
+            <if test="votestotal != null">votestotal,</if>
+            <if test="wealthGrade != null">wealth_grade,</if>
+            <if test="wechat != null">wechat,</if>
+            <if test="weight != null">weight,</if>
+            <if test="whetherEnablePositioningShow != null">whether_enable_positioning_show,</if>
+            <if test="youthPassword != null">youth_password,</if>
+            <if test="zombieMaxNum != null">zombie_max_num,</if>
+            <if test="zombieRatio != null">zombie_ratio,</if>
+            <if test="agentGrade != null">agent_grade,</if>
+            <if test="liveDividedInto != null">live_divided_into,</if>
+            <if test="gameDividedInto != null">game_divided_into,</if>
+            <if test="inviteBindTime != null">invite_bind_time,</if>
+            <if test="fundPassword != null">fund_password,</if>
+            <if test="diamondCoin != null">diamond_coin,</if>
+            <if test="diamondCoinTotal != null">diamond_coin_total,</if>
+            <if test="diamondCoinCashTotal != null">diamond_coin_cash_total,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="userid != null">#{userid},</if>
+            <if test="address != null">#{address},</if>
+            <if test="agentId != null">#{agentId},</if>
+            <if test="amount != null">#{amount},</if>
+            <if test="anchorGrade != null">#{anchorGrade},</if>
+            <if test="anchorPoint != null">#{anchorPoint},</if>
+            <if test="appVersion != null">#{appVersion},</if>
+            <if test="appVersionCode != null">#{appVersionCode},</if>
+            <if test="avatar != null">#{avatar},</if>
+            <if test="awardLoginDay != null">#{awardLoginDay},</if>
+            <if test="birthday != null">#{birthday},</if>
+            <if test="broadCast != null">#{broadCast},</if>
+            <if test="channelId != null">#{channelId},</if>
+            <if test="chargeShow != null">#{chargeShow},</if>
+            <if test="charmGrade != null">#{charmGrade},</if>
+            <if test="charmPoint != null">#{charmPoint},</if>
+            <if test="city != null">#{city},</if>
+            <if test="cityEdit != null">#{cityEdit},</if>
+            <if test="coin != null">#{coin},</if>
+            <if test="constellation != null">#{constellation},</if>
+            <if test="consumption != null">#{consumption},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="dealScalePlan != null">#{dealScalePlan},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="deviceId != null">#{deviceId},</if>
+            <if test="devoteShow != null">#{devoteShow},</if>
+            <if test="giftGlobalBroadcast != null">#{giftGlobalBroadcast},</if>
+            <if test="goodnum != null">#{goodnum},</if>
+            <if test="groupId != null">#{groupId},</if>
+            <if test="gsRoomId != null">#{gsRoomId},</if>
+            <if test="gsRoomType != null">#{gsRoomType},</if>
+            <if test="guildId != null">#{guildId},</if>
+            <if test="headNo != null">#{headNo},</if>
+            <if test="height != null">#{height},</if>
+            <if test="hideDistance != null">#{hideDistance},</if>
+            <if test="inviteCode != null">#{inviteCode},</if>
+            <if test="bindCode != null">#{bindCode},</if>
+            <if test="ipaddr != null">#{ipaddr},</if>
+            <if test="isAnchorAuth != null">#{isAnchorAuth},</if>
+            <if test="isAutomatic != null">#{isAutomatic},</if>
+            <if test="isJoinJg != null">#{isJoinJg},</if>
+            <if test="isLiveAccount != null">#{isLiveAccount},</if>
+            <if test="isNotDisturb != null">#{isNotDisturb},</if>
+            <if test="isOooAccount != null">#{isOooAccount},</if>
+            <if test="isPush != null">#{isPush},</if>
+            <if test="isRecommend != null">#{isRecommend},</if>
+            <if test="isShowHomePage != null">#{isShowHomePage},</if>
+            <if test="isSvip != null">#{isSvip},</if>
+            <if test="isTone != null">#{isTone},</if>
+            <if test="isYouthModel != null">#{isYouthModel},</if>
+            <if test="ishot != null">#{ishot},</if>
+            <if test="isrecord != null">#{isrecord},</if>
+            <if test="issuper != null">#{issuper},</if>
+            <if test="iszombie != null">#{iszombie},</if>
+            <if test="iszombiep != null">#{iszombiep},</if>
+            <if test="joinRoomShow != null">#{joinRoomShow},</if>
+            <if test="kickTime != null">#{kickTime},</if>
+            <if test="lastGameNum != null">#{lastGameNum},</if>
+            <if test="lastLoginDay != null">#{lastLoginDay},</if>
+            <if test="lastLoginIp != null">#{lastLoginIp},</if>
+            <if test="lastLoginTime != null">#{lastLoginTime},</if>
+            <if test="lastOffLineTime != null">#{lastOffLineTime},</if>
+            <if test="lat != null">#{lat},</if>
+            <if test="level != null">#{level},</if>
+            <if test="liveFunction != null">#{liveFunction},</if>
+            <if test="liveStatus != null">#{liveStatus},</if>
+            <if test="liveThumb != null">#{liveThumb},</if>
+            <if test="liveThumbs != null">#{liveThumbs},</if>
+            <if test="lng != null">#{lng},</if>
+            <if test="lockReason != null">#{lockReason},</if>
+            <if test="lockTime != null">#{lockTime},</if>
+            <if test="loginType != null">#{loginType},</if>
+            <if test="managerCoId != null">#{managerCoId},</if>
+            <if test="managerId != null">#{managerId},</if>
+            <if test="maxSignCount != null">#{maxSignCount},</if>
+            <if test="mobile != null">#{mobile},</if>
+            <if test="nickname != null">#{nickname},</if>
+            <if test="nobleGrade != null">#{nobleGrade},</if>
+            <if test="onlineStatus != null">#{onlineStatus},</if>
+            <if test="oooHomePageSortNo != null">#{oooHomePageSortNo},</if>
+            <if test="oooLiveStatus != null">#{oooLiveStatus},</if>
+            <if test="oooTwoClassifyId != null">#{oooTwoClassifyId},</if>
+            <if test="openLiveZombieNum != null">#{openLiveZombieNum},</if>
+            <if test="openid != null">#{openid},</if>
+            <if test="optUserName != null">#{optUserName},</if>
+            <if test="password != null">#{password},</if>
+            <if test="phoneFirm != null">#{phoneFirm},</if>
+            <if test="phoneModel != null">#{phoneModel},</if>
+            <if test="phoneSystem != null">#{phoneSystem},</if>
+            <if test="phoneUuid != null">#{phoneUuid},</if>
+            <if test="pid != null">#{pid},</if>
+            <if test="portrait != null">#{portrait},</if>
+            <if test="poster != null">#{poster},</if>
+            <if test="province != null">#{province},</if>
+            <if test="pushPlatform != null">#{pushPlatform},</if>
+            <if test="pushRegisterId != null">#{pushRegisterId},</if>
+            <if test="readShortVideoNumber != null">#{readShortVideoNumber},</if>
+            <if test="regType != null">#{regType},</if>
+            <if test="registerIp != null">#{registerIp},</if>
+            <if test="role != null">#{role},</if>
+            <if test="roomId != null">#{roomId},</if>
+            <if test="roomTitle != null">#{roomTitle},</if>
+            <if test="roomType != null">#{roomType},</if>
+            <if test="roomTypeVal != null">#{roomTypeVal},</if>
+            <if test="salt != null">#{salt},</if>
+            <if test="sanwei != null">#{sanwei},</if>
+            <if test="score != null">#{score},</if>
+            <if test="sex != null">#{sex},</if>
+            <if test="signCount != null">#{signCount},</if>
+            <if test="signTime != null">#{signTime},</if>
+            <if test="signature != null">#{signature},</if>
+            <if test="smsRegion != null">#{smsRegion},</if>
+            <if test="source != null">#{source},</if>
+            <if test="starId != null">#{starId},</if>
+            <if test="status != null">#{status},</if>
+            <if test="totalAmount != null">#{totalAmount},</if>
+            <if test="totalAmountCash != null">#{totalAmountCash},</if>
+            <if test="totalCash != null">#{totalCash},</if>
+            <if test="totalCharge != null">#{totalCharge},</if>
+            <if test="unionid != null">#{unionid},</if>
+            <if test="updatePwdTime != null">#{updatePwdTime},</if>
+            <if test="userActivationKey != null">#{userActivationKey},</if>
+            <if test="userEmail != null">#{userEmail},</if>
+            <if test="userGrade != null">#{userGrade},</if>
+            <if test="userPoint != null">#{userPoint},</if>
+            <if test="userSetOnlineStatus != null">#{userSetOnlineStatus},</if>
+            <if test="userType != null">#{userType},</if>
+            <if test="userUrl != null">#{userUrl},</if>
+            <if test="username != null">#{username},</if>
+            <if test="video != null">#{video},</if>
+            <if test="videoCoin != null">#{videoCoin},</if>
+            <if test="videoImg != null">#{videoImg},</if>
+            <if test="vocation != null">#{vocation},</if>
+            <if test="voice != null">#{voice},</if>
+            <if test="voiceCoin != null">#{voiceCoin},</if>
+            <if test="voiceStatus != null">#{voiceStatus},</if>
+            <if test="voipToken != null">#{voipToken},</if>
+            <if test="votes != null">#{votes},</if>
+            <if test="votestotal != null">#{votestotal},</if>
+            <if test="wealthGrade != null">#{wealthGrade},</if>
+            <if test="wechat != null">#{wechat},</if>
+            <if test="weight != null">#{weight},</if>
+            <if test="whetherEnablePositioningShow != null">#{whetherEnablePositioningShow},</if>
+            <if test="youthPassword != null">#{youthPassword},</if>
+            <if test="zombieMaxNum != null">#{zombieMaxNum},</if>
+            <if test="zombieRatio != null">#{zombieRatio},</if>
+            <if test="agentGrade != null">#{agentGrade},</if>
+            <if test="liveDividedInto != null">#{liveDividedInto},</if>
+            <if test="gameDividedInto != null">#{gameDividedInto},</if>
+            <if test="inviteBindTime != null">#{inviteBindTime},</if>
+            <if test="fundPassword != null">#{fundPassword},</if>
+            <if test="diamondCoin != null">#{diamondCoin},</if>
+            <if test="diamondCoinTotal != null">#{diamondCoinTotal},</if>
+            <if test="diamondCoinCashTotal != null">#{diamondCoinCashTotal},</if>
+         </trim>
+    </insert>
+
+    <update id="updateAppUser" parameterType="com.game.business.domain.AppUser">
+        update app_user
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="address != null">address = #{address},</if>
+            <if test="agentId != null">agent_id = #{agentId},</if>
+            <if test="amount != null">amount = #{amount},</if>
+            <if test="anchorGrade != null">anchor_grade = #{anchorGrade},</if>
+            <if test="anchorPoint != null">anchor_point = #{anchorPoint},</if>
+            <if test="appVersion != null">app_version = #{appVersion},</if>
+            <if test="appVersionCode != null">app_version_code = #{appVersionCode},</if>
+            <if test="avatar != null">avatar = #{avatar},</if>
+            <if test="awardLoginDay != null">award_login_day = #{awardLoginDay},</if>
+            <if test="birthday != null">birthday = #{birthday},</if>
+            <if test="broadCast != null">broad_cast = #{broadCast},</if>
+            <if test="channelId != null">channel_id = #{channelId},</if>
+            <if test="chargeShow != null">charge_show = #{chargeShow},</if>
+            <if test="charmGrade != null">charm_grade = #{charmGrade},</if>
+            <if test="charmPoint != null">charm_point = #{charmPoint},</if>
+            <if test="city != null">city = #{city},</if>
+            <if test="cityEdit != null">city_edit = #{cityEdit},</if>
+            <if test="coin != null">coin = #{coin},</if>
+            <if test="constellation != null">constellation = #{constellation},</if>
+            <if test="consumption != null">consumption = #{consumption},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="dealScalePlan != null">deal_scale_plan = #{dealScalePlan},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="deviceId != null">device_id = #{deviceId},</if>
+            <if test="devoteShow != null">devote_show = #{devoteShow},</if>
+            <if test="giftGlobalBroadcast != null">gift_global_broadcast = #{giftGlobalBroadcast},</if>
+            <if test="goodnum != null">goodnum = #{goodnum},</if>
+            <if test="groupId != null">group_id = #{groupId},</if>
+            <if test="gsRoomId != null">gs_room_id = #{gsRoomId},</if>
+            <if test="gsRoomType != null">gs_room_type = #{gsRoomType},</if>
+            <if test="guildId != null">guild_id = #{guildId},</if>
+            <if test="headNo != null">head_no = #{headNo},</if>
+            <if test="height != null">height = #{height},</if>
+            <if test="hideDistance != null">hide_distance = #{hideDistance},</if>
+            <if test="inviteCode != null">invite_code = #{inviteCode},</if>
+            <if test="bindCode != null">bind_code = #{bindCode},</if>
+            <if test="ipaddr != null">ipaddr = #{ipaddr},</if>
+            <if test="isAnchorAuth != null">is_anchor_auth = #{isAnchorAuth},</if>
+            <if test="isAutomatic != null">is_automatic = #{isAutomatic},</if>
+            <if test="isJoinJg != null">is_join_jg = #{isJoinJg},</if>
+            <if test="isLiveAccount != null">is_live_account = #{isLiveAccount},</if>
+            <if test="isNotDisturb != null">is_not_disturb = #{isNotDisturb},</if>
+            <if test="isOooAccount != null">is_ooo_account = #{isOooAccount},</if>
+            <if test="isPush != null">is_push = #{isPush},</if>
+            <if test="isRecommend != null">is_recommend = #{isRecommend},</if>
+            <if test="isShowHomePage != null">is_show_home_page = #{isShowHomePage},</if>
+            <if test="isSvip != null">is_svip = #{isSvip},</if>
+            <if test="isTone != null">is_tone = #{isTone},</if>
+            <if test="isYouthModel != null">is_youth_model = #{isYouthModel},</if>
+            <if test="ishot != null">ishot = #{ishot},</if>
+            <if test="isrecord != null">isrecord = #{isrecord},</if>
+            <if test="issuper != null">issuper = #{issuper},</if>
+            <if test="iszombie != null">iszombie = #{iszombie},</if>
+            <if test="iszombiep != null">iszombiep = #{iszombiep},</if>
+            <if test="joinRoomShow != null">join_room_show = #{joinRoomShow},</if>
+            <if test="kickTime != null">kick_time = #{kickTime},</if>
+            <if test="lastGameNum != null">last_game_num = #{lastGameNum},</if>
+            <if test="lastLoginDay != null">last_login_day = #{lastLoginDay},</if>
+            <if test="lastLoginIp != null">last_login_ip = #{lastLoginIp},</if>
+            <if test="lastLoginTime != null">last_login_time = #{lastLoginTime},</if>
+            <if test="lastOffLineTime != null">last_off_line_time = #{lastOffLineTime},</if>
+            <if test="lat != null">lat = #{lat},</if>
+            <if test="level != null">level = #{level},</if>
+            <if test="liveFunction != null">live_function = #{liveFunction},</if>
+            <if test="liveStatus != null">live_status = #{liveStatus},</if>
+            <if test="liveThumb != null">live_thumb = #{liveThumb},</if>
+            <if test="liveThumbs != null">live_thumbs = #{liveThumbs},</if>
+            <if test="lng != null">lng = #{lng},</if>
+            <if test="lockReason != null">lock_reason = #{lockReason},</if>
+            <if test="lockTime != null">lock_time = #{lockTime},</if>
+            <if test="loginType != null">login_type = #{loginType},</if>
+            <if test="managerCoId != null">manager_co_id = #{managerCoId},</if>
+            <if test="managerId != null">manager_id = #{managerId},</if>
+            <if test="maxSignCount != null">max_sign_count = #{maxSignCount},</if>
+            <if test="mobile != null">mobile = #{mobile},</if>
+            <if test="nickname != null">nickname = #{nickname},</if>
+            <if test="nobleGrade != null">noble_grade = #{nobleGrade},</if>
+            <if test="onlineStatus != null">online_status = #{onlineStatus},</if>
+            <if test="oooHomePageSortNo != null">ooo_home_page_sort_no = #{oooHomePageSortNo},</if>
+            <if test="oooLiveStatus != null">ooo_live_status = #{oooLiveStatus},</if>
+            <if test="oooTwoClassifyId != null">ooo_two_classify_id = #{oooTwoClassifyId},</if>
+            <if test="openLiveZombieNum != null">open_live_zombie_num = #{openLiveZombieNum},</if>
+            <if test="openid != null">openid = #{openid},</if>
+            <if test="optUserName != null">opt_user_name = #{optUserName},</if>
+            <if test="password != null">password = #{password},</if>
+            <if test="phoneFirm != null">phone_firm = #{phoneFirm},</if>
+            <if test="phoneModel != null">phone_model = #{phoneModel},</if>
+            <if test="phoneSystem != null">phone_system = #{phoneSystem},</if>
+            <if test="phoneUuid != null">phone_uuid = #{phoneUuid},</if>
+            <if test="pid != null">pid = #{pid},</if>
+            <if test="portrait != null">portrait = #{portrait},</if>
+            <if test="poster != null">poster = #{poster},</if>
+            <if test="province != null">province = #{province},</if>
+            <if test="pushPlatform != null">push_platform = #{pushPlatform},</if>
+            <if test="pushRegisterId != null">push_register_id = #{pushRegisterId},</if>
+            <if test="readShortVideoNumber != null">read_short_video_number = #{readShortVideoNumber},</if>
+            <if test="regType != null">reg_type = #{regType},</if>
+            <if test="registerIp != null">register_ip = #{registerIp},</if>
+            <if test="role != null">role = #{role},</if>
+            <if test="roomId != null">room_id = #{roomId},</if>
+            <if test="roomTitle != null">room_title = #{roomTitle},</if>
+            <if test="roomType != null">room_type = #{roomType},</if>
+            <if test="roomTypeVal != null">room_type_val = #{roomTypeVal},</if>
+            <if test="salt != null">salt = #{salt},</if>
+            <if test="sanwei != null">sanwei = #{sanwei},</if>
+            <if test="score != null">score = #{score},</if>
+            <if test="sex != null">sex = #{sex},</if>
+            <if test="signCount != null">sign_count = #{signCount},</if>
+            <if test="signTime != null">sign_time = #{signTime},</if>
+            <if test="signature != null">signature = #{signature},</if>
+            <if test="smsRegion != null">sms_region = #{smsRegion},</if>
+            <if test="source != null">source = #{source},</if>
+            <if test="starId != null">star_id = #{starId},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="totalAmount != null">total_amount = #{totalAmount},</if>
+            <if test="totalAmountCash != null">total_amount_cash = #{totalAmountCash},</if>
+            <if test="totalCash != null">total_cash = #{totalCash},</if>
+            <if test="totalCharge != null">total_charge = #{totalCharge},</if>
+            <if test="unionid != null">unionid = #{unionid},</if>
+            <if test="updatePwdTime != null">update_pwd_time = #{updatePwdTime},</if>
+            <if test="userActivationKey != null">user_activation_key = #{userActivationKey},</if>
+            <if test="userEmail != null">user_email = #{userEmail},</if>
+            <if test="userGrade != null">user_grade = #{userGrade},</if>
+            <if test="userPoint != null">user_point = #{userPoint},</if>
+            <if test="userSetOnlineStatus != null">user_set_online_status = #{userSetOnlineStatus},</if>
+            <if test="userType != null">user_type = #{userType},</if>
+            <if test="userUrl != null">user_url = #{userUrl},</if>
+            <if test="username != null">username = #{username},</if>
+            <if test="video != null">video = #{video},</if>
+            <if test="videoCoin != null">video_coin = #{videoCoin},</if>
+            <if test="videoImg != null">video_img = #{videoImg},</if>
+            <if test="vocation != null">vocation = #{vocation},</if>
+            <if test="voice != null">voice = #{voice},</if>
+            <if test="voiceCoin != null">voice_coin = #{voiceCoin},</if>
+            <if test="voiceStatus != null">voice_status = #{voiceStatus},</if>
+            <if test="voipToken != null">voip_token = #{voipToken},</if>
+            <if test="votes != null">votes = #{votes},</if>
+            <if test="votestotal != null">votestotal = #{votestotal},</if>
+            <if test="wealthGrade != null">wealth_grade = #{wealthGrade},</if>
+            <if test="wechat != null">wechat = #{wechat},</if>
+            <if test="weight != null">weight = #{weight},</if>
+            <if test="whetherEnablePositioningShow != null">whether_enable_positioning_show = #{whetherEnablePositioningShow},</if>
+            <if test="youthPassword != null">youth_password = #{youthPassword},</if>
+            <if test="zombieMaxNum != null">zombie_max_num = #{zombieMaxNum},</if>
+            <if test="zombieRatio != null">zombie_ratio = #{zombieRatio},</if>
+            <if test="agentGrade != null">agent_grade = #{agentGrade},</if>
+            <if test="liveDividedInto != null">live_divided_into = #{liveDividedInto},</if>
+            <if test="gameDividedInto != null">game_divided_into = #{gameDividedInto},</if>
+            <if test="inviteBindTime != null">invite_bind_time = #{inviteBindTime},</if>
+            <if test="fundPassword != null">fund_password = #{fundPassword},</if>
+            <if test="diamondCoin != null">diamond_coin = #{diamondCoin},</if>
+            <if test="diamondCoinTotal != null">diamond_coin_total = #{diamondCoinTotal},</if>
+            <if test="diamondCoinCashTotal != null">diamond_coin_cash_total = #{diamondCoinCashTotal},</if>
+        </trim>
+        where userid = #{userid}
+    </update>
+
+    <delete id="deleteAppUserByUserid" parameterType="Long">
+        delete from app_user where userid = #{userid}
+    </delete>
+
+    <delete id="deleteAppUserByUserids" parameterType="String">
+        delete from app_user where userid in 
+        <foreach item="userid" collection="array" open="(" separator="," close=")">
+            #{userid}
+        </foreach>
+    </delete>
+</mapper>

+ 198 - 0
game-business/src/main/resources/mapper/business/AppUsersCashrecordMapper.xml

@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.game.business.mapper.AppUsersCashrecordMapper">
+    
+    <resultMap type="com.game.business.domain.AppUsersCashrecord" id="AppUsersCashrecordResult">
+        <result property="id"    column="id"    />
+        <result property="account"    column="account"    />
+        <result property="accountBank"    column="account_bank"    />
+        <result property="actualMoney"    column="actual_money"    />
+        <result property="addtime"    column="addtime"    />
+        <result property="afterAmount"    column="after_amount"    />
+        <result property="auditby"    column="auditby"    />
+        <result property="beforeAmount"    column="before_amount"    />
+        <result property="cashOutBizNo"    column="cash_out_biz_no"    />
+        <result property="cashOutOrderId"    column="cash_out_order_id"    />
+        <result property="cashOutPayOrderId"    column="cash_out_pay_order_id"    />
+        <result property="cashOutRemark"    column="cash_out_remark"    />
+        <result property="cashOutStatus"    column="cash_out_status"    />
+        <result property="cashType"    column="cash_type"    />
+        <result property="guildId"    column="guild_id"    />
+        <result property="money"    column="money"    />
+        <result property="name"    column="name"    />
+        <result property="orderno"    column="orderno"    />
+        <result property="platformService"    column="platform_service"    />
+        <result property="reason"    column="reason"    />
+        <result property="remarks"    column="remarks"    />
+        <result property="service"    column="service"    />
+        <result property="status"    column="status"    />
+        <result property="statusName"    column="status_name"    />
+        <result property="tradeNo"    column="trade_no"    />
+        <result property="type"    column="type"    />
+        <result property="uid"    column="uid"    />
+        <result property="unitType"    column="unit_type"    />
+        <result property="uptime"    column="uptime"    />
+        <result property="votes"    column="votes"    />
+    </resultMap>
+
+    <sql id="selectAppUsersCashrecordVo">
+        select id, account, account_bank, actual_money, addtime, after_amount, auditby, before_amount, cash_out_biz_no, cash_out_order_id, cash_out_pay_order_id, cash_out_remark, cash_out_status, cash_type, guild_id, money, name, orderno, platform_service, reason, remarks, service, status, status_name, trade_no, type, uid, unit_type, uptime, votes from app_users_cashrecord
+    </sql>
+
+    <select id="selectAppUsersCashrecordList" parameterType="com.game.business.domain.AppUsersCashrecord" resultMap="AppUsersCashrecordResult">
+        <include refid="selectAppUsersCashrecordVo"/>
+        <where>  
+            <if test="account != null  and account != ''"> and account = #{account}</if>
+            <if test="accountBank != null  and accountBank != ''"> and account_bank = #{accountBank}</if>
+            <if test="actualMoney != null "> and actual_money = #{actualMoney}</if>
+            <if test="addtime != null "> and addtime = #{addtime}</if>
+            <if test="afterAmount != null "> and after_amount = #{afterAmount}</if>
+            <if test="auditby != null  and auditby != ''"> and auditby = #{auditby}</if>
+            <if test="beforeAmount != null "> and before_amount = #{beforeAmount}</if>
+            <if test="cashOutBizNo != null  and cashOutBizNo != ''"> and cash_out_biz_no = #{cashOutBizNo}</if>
+            <if test="cashOutOrderId != null  and cashOutOrderId != ''"> and cash_out_order_id = #{cashOutOrderId}</if>
+            <if test="cashOutPayOrderId != null  and cashOutPayOrderId != ''"> and cash_out_pay_order_id = #{cashOutPayOrderId}</if>
+            <if test="cashOutRemark != null  and cashOutRemark != ''"> and cash_out_remark = #{cashOutRemark}</if>
+            <if test="cashOutStatus != null "> and cash_out_status = #{cashOutStatus}</if>
+            <if test="cashType != null "> and cash_type = #{cashType}</if>
+            <if test="guildId != null "> and guild_id = #{guildId}</if>
+            <if test="money != null "> and money = #{money}</if>
+            <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
+            <if test="orderno != null  and orderno != ''"> and orderno = #{orderno}</if>
+            <if test="platformService != null "> and platform_service = #{platformService}</if>
+            <if test="reason != null  and reason != ''"> and reason = #{reason}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+            <if test="service != null "> and service = #{service}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="statusName != null  and statusName != ''"> and status_name like concat('%', #{statusName}, '%')</if>
+            <if test="tradeNo != null  and tradeNo != ''"> and trade_no = #{tradeNo}</if>
+            <if test="type != null "> and type = #{type}</if>
+            <if test="uid != null "> and uid = #{uid}</if>
+            <if test="unitType != null "> and unit_type = #{unitType}</if>
+            <if test="uptime != null "> and uptime = #{uptime}</if>
+            <if test="votes != null "> and votes = #{votes}</if>
+        </where>
+    </select>
+    
+    <select id="selectAppUsersCashrecordById" parameterType="Long" resultMap="AppUsersCashrecordResult">
+        <include refid="selectAppUsersCashrecordVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertAppUsersCashrecord" parameterType="com.game.business.domain.AppUsersCashrecord">
+        insert into app_users_cashrecord
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="account != null">account,</if>
+            <if test="accountBank != null">account_bank,</if>
+            <if test="actualMoney != null">actual_money,</if>
+            <if test="addtime != null">addtime,</if>
+            <if test="afterAmount != null">after_amount,</if>
+            <if test="auditby != null">auditby,</if>
+            <if test="beforeAmount != null">before_amount,</if>
+            <if test="cashOutBizNo != null">cash_out_biz_no,</if>
+            <if test="cashOutOrderId != null">cash_out_order_id,</if>
+            <if test="cashOutPayOrderId != null">cash_out_pay_order_id,</if>
+            <if test="cashOutRemark != null">cash_out_remark,</if>
+            <if test="cashOutStatus != null">cash_out_status,</if>
+            <if test="cashType != null">cash_type,</if>
+            <if test="guildId != null">guild_id,</if>
+            <if test="money != null">money,</if>
+            <if test="name != null">name,</if>
+            <if test="orderno != null">orderno,</if>
+            <if test="platformService != null">platform_service,</if>
+            <if test="reason != null">reason,</if>
+            <if test="remarks != null">remarks,</if>
+            <if test="service != null">service,</if>
+            <if test="status != null">status,</if>
+            <if test="statusName != null">status_name,</if>
+            <if test="tradeNo != null">trade_no,</if>
+            <if test="type != null">type,</if>
+            <if test="uid != null">uid,</if>
+            <if test="unitType != null">unit_type,</if>
+            <if test="uptime != null">uptime,</if>
+            <if test="votes != null">votes,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="account != null">#{account},</if>
+            <if test="accountBank != null">#{accountBank},</if>
+            <if test="actualMoney != null">#{actualMoney},</if>
+            <if test="addtime != null">#{addtime},</if>
+            <if test="afterAmount != null">#{afterAmount},</if>
+            <if test="auditby != null">#{auditby},</if>
+            <if test="beforeAmount != null">#{beforeAmount},</if>
+            <if test="cashOutBizNo != null">#{cashOutBizNo},</if>
+            <if test="cashOutOrderId != null">#{cashOutOrderId},</if>
+            <if test="cashOutPayOrderId != null">#{cashOutPayOrderId},</if>
+            <if test="cashOutRemark != null">#{cashOutRemark},</if>
+            <if test="cashOutStatus != null">#{cashOutStatus},</if>
+            <if test="cashType != null">#{cashType},</if>
+            <if test="guildId != null">#{guildId},</if>
+            <if test="money != null">#{money},</if>
+            <if test="name != null">#{name},</if>
+            <if test="orderno != null">#{orderno},</if>
+            <if test="platformService != null">#{platformService},</if>
+            <if test="reason != null">#{reason},</if>
+            <if test="remarks != null">#{remarks},</if>
+            <if test="service != null">#{service},</if>
+            <if test="status != null">#{status},</if>
+            <if test="statusName != null">#{statusName},</if>
+            <if test="tradeNo != null">#{tradeNo},</if>
+            <if test="type != null">#{type},</if>
+            <if test="uid != null">#{uid},</if>
+            <if test="unitType != null">#{unitType},</if>
+            <if test="uptime != null">#{uptime},</if>
+            <if test="votes != null">#{votes},</if>
+         </trim>
+    </insert>
+
+    <update id="updateAppUsersCashrecord" parameterType="com.game.business.domain.AppUsersCashrecord">
+        update app_users_cashrecord
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="account != null">account = #{account},</if>
+            <if test="accountBank != null">account_bank = #{accountBank},</if>
+            <if test="actualMoney != null">actual_money = #{actualMoney},</if>
+            <if test="addtime != null">addtime = #{addtime},</if>
+            <if test="afterAmount != null">after_amount = #{afterAmount},</if>
+            <if test="auditby != null">auditby = #{auditby},</if>
+            <if test="beforeAmount != null">before_amount = #{beforeAmount},</if>
+            <if test="cashOutBizNo != null">cash_out_biz_no = #{cashOutBizNo},</if>
+            <if test="cashOutOrderId != null">cash_out_order_id = #{cashOutOrderId},</if>
+            <if test="cashOutPayOrderId != null">cash_out_pay_order_id = #{cashOutPayOrderId},</if>
+            <if test="cashOutRemark != null">cash_out_remark = #{cashOutRemark},</if>
+            <if test="cashOutStatus != null">cash_out_status = #{cashOutStatus},</if>
+            <if test="cashType != null">cash_type = #{cashType},</if>
+            <if test="guildId != null">guild_id = #{guildId},</if>
+            <if test="money != null">money = #{money},</if>
+            <if test="name != null">name = #{name},</if>
+            <if test="orderno != null">orderno = #{orderno},</if>
+            <if test="platformService != null">platform_service = #{platformService},</if>
+            <if test="reason != null">reason = #{reason},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+            <if test="service != null">service = #{service},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="statusName != null">status_name = #{statusName},</if>
+            <if test="tradeNo != null">trade_no = #{tradeNo},</if>
+            <if test="type != null">type = #{type},</if>
+            <if test="uid != null">uid = #{uid},</if>
+            <if test="unitType != null">unit_type = #{unitType},</if>
+            <if test="uptime != null">uptime = #{uptime},</if>
+            <if test="votes != null">votes = #{votes},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteAppUsersCashrecordById" parameterType="Long">
+        delete from app_users_cashrecord where id = #{id}
+    </delete>
+
+    <delete id="deleteAppUsersCashrecordByIds" parameterType="String">
+        delete from app_users_cashrecord where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 183 - 0
game-business/src/main/resources/mapper/business/AppUsersChargeMapper.xml

@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.game.business.mapper.AppUsersChargeMapper">
+    
+    <resultMap type="com.game.business.domain.AppUsersCharge" id="AppUsersChargeResult">
+        <result property="id"    column="id"    />
+        <result property="addtime"    column="addtime"    />
+        <result property="afterCoin"    column="after_coin"    />
+        <result property="agentId"    column="agent_id"    />
+        <result property="ambient"    column="ambient"    />
+        <result property="coin"    column="coin"    />
+        <result property="coinType"    column="coin_type"    />
+        <result property="coinGive"    column="coin_give"    />
+        <result property="isAgent"    column="is_agent"    />
+        <result property="isDelete"    column="is_delete"    />
+        <result property="isWater"    column="is_water"    />
+        <result property="money"    column="money"    />
+        <result property="optType"    column="opt_type"    />
+        <result property="optUser"    column="opt_user"    />
+        <result property="orderno"    column="orderno"    />
+        <result property="pid"    column="pid"    />
+        <result property="pidLevel1"    column="pid_level1"    />
+        <result property="pidLevel2"    column="pid_level2"    />
+        <result property="pidLevel3"    column="pid_level3"    />
+        <result property="pidLevel4"    column="pid_level4"    />
+        <result property="remarks"    column="remarks"    />
+        <result property="ruleId"    column="rule_id"    />
+        <result property="status"    column="status"    />
+        <result property="touid"    column="touid"    />
+        <result property="tradeNo"    column="trade_no"    />
+        <result property="type"    column="type"    />
+        <result property="uid"    column="uid"    />
+    </resultMap>
+
+    <sql id="selectAppUsersChargeVo">
+        select id, addtime, after_coin, agent_id, ambient, coin, coin_type, coin_give, is_agent, is_delete, is_water, money, opt_type, opt_user, orderno, pid, pid_level1, pid_level2, pid_level3, pid_level4, remarks, rule_id, status, touid, trade_no, type, uid from app_users_charge
+    </sql>
+
+    <select id="selectAppUsersChargeList" parameterType="com.game.business.domain.AppUsersCharge" resultMap="AppUsersChargeResult">
+        <include refid="selectAppUsersChargeVo"/>
+        <where>  
+            <if test="addtime != null "> and addtime = #{addtime}</if>
+            <if test="afterCoin != null "> and after_coin = #{afterCoin}</if>
+            <if test="agentId != null "> and agent_id = #{agentId}</if>
+            <if test="ambient != null "> and ambient = #{ambient}</if>
+            <if test="coin != null "> and coin = #{coin}</if>
+            <if test="coinType != null "> and coin_type = #{coinType}</if>
+            <if test="coinGive != null "> and coin_give = #{coinGive}</if>
+            <if test="isAgent != null "> and is_agent = #{isAgent}</if>
+            <if test="isDelete != null "> and is_delete = #{isDelete}</if>
+            <if test="isWater != null "> and is_water = #{isWater}</if>
+            <if test="money != null "> and money = #{money}</if>
+            <if test="optType != null "> and opt_type = #{optType}</if>
+            <if test="optUser != null  and optUser != ''"> and opt_user = #{optUser}</if>
+            <if test="orderno != null  and orderno != ''"> and orderno = #{orderno}</if>
+            <if test="pid != null "> and pid = #{pid}</if>
+            <if test="pidLevel1 != null "> and pid_level1 = #{pidLevel1}</if>
+            <if test="pidLevel2 != null "> and pid_level2 = #{pidLevel2}</if>
+            <if test="pidLevel3 != null "> and pid_level3 = #{pidLevel3}</if>
+            <if test="pidLevel4 != null "> and pid_level4 = #{pidLevel4}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+            <if test="ruleId != null "> and rule_id = #{ruleId}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="touid != null "> and touid = #{touid}</if>
+            <if test="tradeNo != null  and tradeNo != ''"> and trade_no = #{tradeNo}</if>
+            <if test="type != null "> and type = #{type}</if>
+            <if test="uid != null "> and uid = #{uid}</if>
+        </where>
+    </select>
+    
+    <select id="selectAppUsersChargeById" parameterType="Long" resultMap="AppUsersChargeResult">
+        <include refid="selectAppUsersChargeVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertAppUsersCharge" parameterType="com.game.business.domain.AppUsersCharge">
+        insert into app_users_charge
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="addtime != null">addtime,</if>
+            <if test="afterCoin != null">after_coin,</if>
+            <if test="agentId != null">agent_id,</if>
+            <if test="ambient != null">ambient,</if>
+            <if test="coin != null">coin,</if>
+            <if test="coinType != null">coin_type,</if>
+            <if test="coinGive != null">coin_give,</if>
+            <if test="isAgent != null">is_agent,</if>
+            <if test="isDelete != null">is_delete,</if>
+            <if test="isWater != null">is_water,</if>
+            <if test="money != null">money,</if>
+            <if test="optType != null">opt_type,</if>
+            <if test="optUser != null">opt_user,</if>
+            <if test="orderno != null">orderno,</if>
+            <if test="pid != null">pid,</if>
+            <if test="pidLevel1 != null">pid_level1,</if>
+            <if test="pidLevel2 != null">pid_level2,</if>
+            <if test="pidLevel3 != null">pid_level3,</if>
+            <if test="pidLevel4 != null">pid_level4,</if>
+            <if test="remarks != null">remarks,</if>
+            <if test="ruleId != null">rule_id,</if>
+            <if test="status != null">status,</if>
+            <if test="touid != null">touid,</if>
+            <if test="tradeNo != null">trade_no,</if>
+            <if test="type != null">type,</if>
+            <if test="uid != null">uid,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="addtime != null">#{addtime},</if>
+            <if test="afterCoin != null">#{afterCoin},</if>
+            <if test="agentId != null">#{agentId},</if>
+            <if test="ambient != null">#{ambient},</if>
+            <if test="coin != null">#{coin},</if>
+            <if test="coinType != null">#{coinType},</if>
+            <if test="coinGive != null">#{coinGive},</if>
+            <if test="isAgent != null">#{isAgent},</if>
+            <if test="isDelete != null">#{isDelete},</if>
+            <if test="isWater != null">#{isWater},</if>
+            <if test="money != null">#{money},</if>
+            <if test="optType != null">#{optType},</if>
+            <if test="optUser != null">#{optUser},</if>
+            <if test="orderno != null">#{orderno},</if>
+            <if test="pid != null">#{pid},</if>
+            <if test="pidLevel1 != null">#{pidLevel1},</if>
+            <if test="pidLevel2 != null">#{pidLevel2},</if>
+            <if test="pidLevel3 != null">#{pidLevel3},</if>
+            <if test="pidLevel4 != null">#{pidLevel4},</if>
+            <if test="remarks != null">#{remarks},</if>
+            <if test="ruleId != null">#{ruleId},</if>
+            <if test="status != null">#{status},</if>
+            <if test="touid != null">#{touid},</if>
+            <if test="tradeNo != null">#{tradeNo},</if>
+            <if test="type != null">#{type},</if>
+            <if test="uid != null">#{uid},</if>
+         </trim>
+    </insert>
+
+    <update id="updateAppUsersCharge" parameterType="com.game.business.domain.AppUsersCharge">
+        update app_users_charge
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="addtime != null">addtime = #{addtime},</if>
+            <if test="afterCoin != null">after_coin = #{afterCoin},</if>
+            <if test="agentId != null">agent_id = #{agentId},</if>
+            <if test="ambient != null">ambient = #{ambient},</if>
+            <if test="coin != null">coin = #{coin},</if>
+            <if test="coinType != null">coin_type = #{coinType},</if>
+            <if test="coinGive != null">coin_give = #{coinGive},</if>
+            <if test="isAgent != null">is_agent = #{isAgent},</if>
+            <if test="isDelete != null">is_delete = #{isDelete},</if>
+            <if test="isWater != null">is_water = #{isWater},</if>
+            <if test="money != null">money = #{money},</if>
+            <if test="optType != null">opt_type = #{optType},</if>
+            <if test="optUser != null">opt_user = #{optUser},</if>
+            <if test="orderno != null">orderno = #{orderno},</if>
+            <if test="pid != null">pid = #{pid},</if>
+            <if test="pidLevel1 != null">pid_level1 = #{pidLevel1},</if>
+            <if test="pidLevel2 != null">pid_level2 = #{pidLevel2},</if>
+            <if test="pidLevel3 != null">pid_level3 = #{pidLevel3},</if>
+            <if test="pidLevel4 != null">pid_level4 = #{pidLevel4},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+            <if test="ruleId != null">rule_id = #{ruleId},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="touid != null">touid = #{touid},</if>
+            <if test="tradeNo != null">trade_no = #{tradeNo},</if>
+            <if test="type != null">type = #{type},</if>
+            <if test="uid != null">uid = #{uid},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteAppUsersChargeById" parameterType="Long">
+        delete from app_users_charge where id = #{id}
+    </delete>
+
+    <delete id="deleteAppUsersChargeByIds" parameterType="String">
+        delete from app_users_charge where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 217 - 0
game-business/src/main/resources/mapper/business/FinTranRecordMapper.xml

@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.game.business.mapper.FinTranRecordMapper">
+    
+    <resultMap type="com.game.business.domain.FinTranRecord" id="FinTranRecordResult">
+        <result property="id"    column="id"    />
+        <result property="afterCoin"    column="after_coin"    />
+        <result property="afterMoney"    column="after_money"    />
+        <result property="afterTicket"    column="after_ticket"    />
+        <result property="afterDiamondCoin"    column="after_diamond_coin"    />
+        <result property="agentId"    column="agent_id"    />
+        <result property="coinChange"    column="coin_change"    />
+        <result property="diamondCoinChange"    column="diamond_coin_change"    />
+        <result property="commissionRelatedUid"    column="commission_related_uid"    />
+        <result property="consumptionCoin"    column="consumption_coin"    />
+        <result property="consumptionMoney"    column="consumption_money"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="currencyType"    column="currency_type"    />
+        <result property="fromUid"    column="from_uid"    />
+        <result property="goodsId"    column="goods_id"    />
+        <result property="guildId"    column="guild_id"    />
+        <result property="managerCoId"    column="manager_co_id"    />
+        <result property="managerId"    column="manager_id"    />
+        <result property="moneyChange"    column="money_change"    />
+        <result property="orderId"    column="order_id"    />
+        <result property="perc"    column="perc"    />
+        <result property="proCount"    column="pro_count"    />
+        <result property="proId"    column="pro_id"    />
+        <result property="remarks"    column="remarks"    />
+        <result property="sceneId1"    column="scene_id1"    />
+        <result property="sceneId2"    column="scene_id2"    />
+        <result property="sceneType"    column="scene_type"    />
+        <result property="ticketChange"    column="ticket_change"    />
+        <result property="toUid"    column="to_uid"    />
+        <result property="tranGroupId"    column="tran_group_id"    />
+        <result property="tranType1"    column="tran_type1"    />
+        <result property="tranType2"    column="tran_type2"    />
+        <result property="tranType3"    column="tran_type3"    />
+        <result property="uid"    column="uid"    />
+    </resultMap>
+
+    <sql id="selectFinTranRecordVo">
+        select id, after_coin, after_money, after_ticket, after_diamond_coin, agent_id, coin_change, diamond_coin_change, commission_related_uid, consumption_coin, consumption_money, create_time, currency_type, from_uid, goods_id, guild_id, manager_co_id, manager_id, money_change, order_id, perc, pro_count, pro_id, remarks, scene_id1, scene_id2, scene_type, ticket_change, to_uid, tran_group_id, tran_type1, tran_type2, tran_type3, uid from fin_tran_record
+    </sql>
+
+    <select id="selectFinTranRecordList" parameterType="com.game.business.domain.FinTranRecord" resultMap="FinTranRecordResult">
+        <include refid="selectFinTranRecordVo"/>
+        <where>  
+            <if test="afterCoin != null "> and after_coin = #{afterCoin}</if>
+            <if test="afterMoney != null "> and after_money = #{afterMoney}</if>
+            <if test="afterTicket != null "> and after_ticket = #{afterTicket}</if>
+            <if test="afterDiamondCoin != null "> and after_diamond_coin = #{afterDiamondCoin}</if>
+            <if test="agentId != null "> and agent_id = #{agentId}</if>
+            <if test="coinChange != null "> and coin_change = #{coinChange}</if>
+            <if test="diamondCoinChange != null "> and diamond_coin_change = #{diamondCoinChange}</if>
+            <if test="commissionRelatedUid != null "> and commission_related_uid = #{commissionRelatedUid}</if>
+            <if test="consumptionCoin != null "> and consumption_coin = #{consumptionCoin}</if>
+            <if test="consumptionMoney != null "> and consumption_money = #{consumptionMoney}</if>
+            <if test="currencyType != null "> and currency_type = #{currencyType}</if>
+            <if test="fromUid != null "> and from_uid = #{fromUid}</if>
+            <if test="goodsId != null "> and goods_id = #{goodsId}</if>
+            <if test="guildId != null "> and guild_id = #{guildId}</if>
+            <if test="managerCoId != null "> and manager_co_id = #{managerCoId}</if>
+            <if test="managerId != null "> and manager_id = #{managerId}</if>
+            <if test="moneyChange != null "> and money_change = #{moneyChange}</if>
+            <if test="orderId != null "> and order_id = #{orderId}</if>
+            <if test="perc != null "> and perc = #{perc}</if>
+            <if test="proCount != null "> and pro_count = #{proCount}</if>
+            <if test="proId != null "> and pro_id = #{proId}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+            <if test="sceneId1 != null "> and scene_id1 = #{sceneId1}</if>
+            <if test="sceneId2 != null  and sceneId2 != ''"> and scene_id2 = #{sceneId2}</if>
+            <if test="sceneType != null "> and scene_type = #{sceneType}</if>
+            <if test="ticketChange != null "> and ticket_change = #{ticketChange}</if>
+            <if test="toUid != null "> and to_uid = #{toUid}</if>
+            <if test="tranGroupId != null "> and tran_group_id = #{tranGroupId}</if>
+            <if test="tranType1 != null "> and tran_type1 = #{tranType1}</if>
+            <if test="tranType2 != null "> and tran_type2 = #{tranType2}</if>
+            <if test="tranType3 != null "> and tran_type3 = #{tranType3}</if>
+            <if test="uid != null "> and uid = #{uid}</if>
+        </where>
+    </select>
+    
+    <select id="selectFinTranRecordById" parameterType="Long" resultMap="FinTranRecordResult">
+        <include refid="selectFinTranRecordVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertFinTranRecord" parameterType="com.game.business.domain.FinTranRecord">
+        insert into fin_tran_record
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="afterCoin != null">after_coin,</if>
+            <if test="afterMoney != null">after_money,</if>
+            <if test="afterTicket != null">after_ticket,</if>
+            <if test="afterDiamondCoin != null">after_diamond_coin,</if>
+            <if test="agentId != null">agent_id,</if>
+            <if test="coinChange != null">coin_change,</if>
+            <if test="diamondCoinChange != null">diamond_coin_change,</if>
+            <if test="commissionRelatedUid != null">commission_related_uid,</if>
+            <if test="consumptionCoin != null">consumption_coin,</if>
+            <if test="consumptionMoney != null">consumption_money,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="currencyType != null">currency_type,</if>
+            <if test="fromUid != null">from_uid,</if>
+            <if test="goodsId != null">goods_id,</if>
+            <if test="guildId != null">guild_id,</if>
+            <if test="managerCoId != null">manager_co_id,</if>
+            <if test="managerId != null">manager_id,</if>
+            <if test="moneyChange != null">money_change,</if>
+            <if test="orderId != null">order_id,</if>
+            <if test="perc != null">perc,</if>
+            <if test="proCount != null">pro_count,</if>
+            <if test="proId != null">pro_id,</if>
+            <if test="remarks != null">remarks,</if>
+            <if test="sceneId1 != null">scene_id1,</if>
+            <if test="sceneId2 != null">scene_id2,</if>
+            <if test="sceneType != null">scene_type,</if>
+            <if test="ticketChange != null">ticket_change,</if>
+            <if test="toUid != null">to_uid,</if>
+            <if test="tranGroupId != null">tran_group_id,</if>
+            <if test="tranType1 != null">tran_type1,</if>
+            <if test="tranType2 != null">tran_type2,</if>
+            <if test="tranType3 != null">tran_type3,</if>
+            <if test="uid != null">uid,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="afterCoin != null">#{afterCoin},</if>
+            <if test="afterMoney != null">#{afterMoney},</if>
+            <if test="afterTicket != null">#{afterTicket},</if>
+            <if test="afterDiamondCoin != null">#{afterDiamondCoin},</if>
+            <if test="agentId != null">#{agentId},</if>
+            <if test="coinChange != null">#{coinChange},</if>
+            <if test="diamondCoinChange != null">#{diamondCoinChange},</if>
+            <if test="commissionRelatedUid != null">#{commissionRelatedUid},</if>
+            <if test="consumptionCoin != null">#{consumptionCoin},</if>
+            <if test="consumptionMoney != null">#{consumptionMoney},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="currencyType != null">#{currencyType},</if>
+            <if test="fromUid != null">#{fromUid},</if>
+            <if test="goodsId != null">#{goodsId},</if>
+            <if test="guildId != null">#{guildId},</if>
+            <if test="managerCoId != null">#{managerCoId},</if>
+            <if test="managerId != null">#{managerId},</if>
+            <if test="moneyChange != null">#{moneyChange},</if>
+            <if test="orderId != null">#{orderId},</if>
+            <if test="perc != null">#{perc},</if>
+            <if test="proCount != null">#{proCount},</if>
+            <if test="proId != null">#{proId},</if>
+            <if test="remarks != null">#{remarks},</if>
+            <if test="sceneId1 != null">#{sceneId1},</if>
+            <if test="sceneId2 != null">#{sceneId2},</if>
+            <if test="sceneType != null">#{sceneType},</if>
+            <if test="ticketChange != null">#{ticketChange},</if>
+            <if test="toUid != null">#{toUid},</if>
+            <if test="tranGroupId != null">#{tranGroupId},</if>
+            <if test="tranType1 != null">#{tranType1},</if>
+            <if test="tranType2 != null">#{tranType2},</if>
+            <if test="tranType3 != null">#{tranType3},</if>
+            <if test="uid != null">#{uid},</if>
+         </trim>
+    </insert>
+
+    <update id="updateFinTranRecord" parameterType="com.game.business.domain.FinTranRecord">
+        update fin_tran_record
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="afterCoin != null">after_coin = #{afterCoin},</if>
+            <if test="afterMoney != null">after_money = #{afterMoney},</if>
+            <if test="afterTicket != null">after_ticket = #{afterTicket},</if>
+            <if test="afterDiamondCoin != null">after_diamond_coin = #{afterDiamondCoin},</if>
+            <if test="agentId != null">agent_id = #{agentId},</if>
+            <if test="coinChange != null">coin_change = #{coinChange},</if>
+            <if test="diamondCoinChange != null">diamond_coin_change = #{diamondCoinChange},</if>
+            <if test="commissionRelatedUid != null">commission_related_uid = #{commissionRelatedUid},</if>
+            <if test="consumptionCoin != null">consumption_coin = #{consumptionCoin},</if>
+            <if test="consumptionMoney != null">consumption_money = #{consumptionMoney},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="currencyType != null">currency_type = #{currencyType},</if>
+            <if test="fromUid != null">from_uid = #{fromUid},</if>
+            <if test="goodsId != null">goods_id = #{goodsId},</if>
+            <if test="guildId != null">guild_id = #{guildId},</if>
+            <if test="managerCoId != null">manager_co_id = #{managerCoId},</if>
+            <if test="managerId != null">manager_id = #{managerId},</if>
+            <if test="moneyChange != null">money_change = #{moneyChange},</if>
+            <if test="orderId != null">order_id = #{orderId},</if>
+            <if test="perc != null">perc = #{perc},</if>
+            <if test="proCount != null">pro_count = #{proCount},</if>
+            <if test="proId != null">pro_id = #{proId},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+            <if test="sceneId1 != null">scene_id1 = #{sceneId1},</if>
+            <if test="sceneId2 != null">scene_id2 = #{sceneId2},</if>
+            <if test="sceneType != null">scene_type = #{sceneType},</if>
+            <if test="ticketChange != null">ticket_change = #{ticketChange},</if>
+            <if test="toUid != null">to_uid = #{toUid},</if>
+            <if test="tranGroupId != null">tran_group_id = #{tranGroupId},</if>
+            <if test="tranType1 != null">tran_type1 = #{tranType1},</if>
+            <if test="tranType2 != null">tran_type2 = #{tranType2},</if>
+            <if test="tranType3 != null">tran_type3 = #{tranType3},</if>
+            <if test="uid != null">uid = #{uid},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteFinTranRecordById" parameterType="Long">
+        delete from fin_tran_record where id = #{id}
+    </delete>
+
+    <delete id="deleteFinTranRecordByIds" parameterType="String">
+        delete from fin_tran_record where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>