浏览代码

Merge remote-tracking branch 'origin/package-data' into package-data

lth 1 年之前
父节点
当前提交
a5485ddce0
共有 14 个文件被更改,包括 679 次插入5 次删除
  1. 4 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/AdsAgentRechargeRankingController.java
  2. 37 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/AdsOrderDetailController.java
  3. 9 1
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/base/BasePage.java
  4. 18 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/AdsAgentRechargeRankingListDTO.java
  5. 72 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/AdsOrderDetailListDTO.java
  6. 9 3
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/AdsAgentRechargeRanking.java
  7. 24 1
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/AdsOrderDetail.java
  8. 89 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/AdsAgentRechargeRankingVO.java
  9. 129 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/AdsOrderDetailSummaryVO.java
  10. 129 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/AdsOrderDetailVO.java
  11. 4 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/IAdsAgentRechargeRankingService.java
  12. 10 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/IAdsOrderDetailService.java
  13. 37 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/AdsAgentRechargeRankingServiceImpl.java
  14. 108 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/AdsOrderDetailService.java

+ 4 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/AdsAgentRechargeRankingController.java

@@ -0,0 +1,4 @@
+package com.zanxiang.game.data.serve.controller;
+
+public class AdsAgentRechargeRankingController {
+}

+ 37 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/AdsOrderDetailController.java

@@ -0,0 +1,37 @@
+package com.zanxiang.game.data.serve.controller;
+
+import com.zanxiang.erp.security.annotation.PreAuthorize;
+import com.zanxiang.game.data.serve.pojo.dto.AdsOrderDetailListDTO;
+import com.zanxiang.game.data.serve.pojo.vo.AdsOrderDetailVO;
+import com.zanxiang.game.data.serve.service.IAdsOrderDetailService;
+import com.zanxiang.game.data.serve.utils.Page;
+import com.zanxiang.module.util.pojo.ResultVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+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;
+
+@Slf4j
+@Api(tags = {"订单详情"})
+@RestController
+@RequestMapping("/order")
+public class AdsOrderDetailController {
+
+    @Autowired
+    private IAdsOrderDetailService gameOrderService;
+
+    @PreAuthorize(permissionKey = "gameData:order:list")
+    @ApiOperation(value = "订单详情列表")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = AdsOrderDetailVO.class)})
+    @PostMapping("/list")
+    public ResultVO<Page<AdsOrderDetailVO>> orderList(@Validated @RequestBody AdsOrderDetailListDTO dto) {
+        return ResultVO.ok(gameOrderService.listOfPage(dto));
+    }
+}

+ 9 - 1
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/base/BasePage.java

@@ -2,12 +2,20 @@ package com.zanxiang.game.data.serve.pojo.base;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.nutz.dao.pager.Pager;
 
 @Data
-public class BasePage<T> {
+public class BasePage {
     @ApiModelProperty(notes = "页码")
     private Integer pageNum = 1;
 
     @ApiModelProperty(notes = "分页大小")
     private Integer pageSize = 10;
+
+    public Pager toPage() {
+        Pager pager = new Pager();
+        pager.setPageNumber(pageNum);
+        pager.setPageSize(pageSize);
+        return pager;
+    }
 }

+ 18 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/AdsAgentRechargeRankingListDTO.java

@@ -0,0 +1,18 @@
+package com.zanxiang.game.data.serve.pojo.dto;
+
+import com.zanxiang.game.data.serve.pojo.base.BasePage;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Data
+public class AdsAgentRechargeRankingListDTO extends BasePage {
+
+    private LocalDate beginTime;
+
+    private LocalDate endTime;
+
+    private String agentId;
+
+    private String pitcherId;
+}

+ 72 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/AdsOrderDetailListDTO.java

@@ -0,0 +1,72 @@
+package com.zanxiang.game.data.serve.pojo.dto;
+
+import com.zanxiang.game.data.serve.pojo.base.BasePage;
+import com.zanxiang.game.data.serve.pojo.entity.AdsOrderDetail;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class AdsOrderDetailListDTO extends BasePage {
+
+    @ApiModelProperty(notes = "订单创建时间")
+    private LocalDateTime beginOrderTime;
+
+    @ApiModelProperty(notes = "订单创建时间")
+    private LocalDateTime endOrderTime;
+
+    @ApiModelProperty(notes = "订单号")
+    private String orderId;
+
+    @ApiModelProperty(notes = "CP订单号")
+    private String cpOrderId;
+
+    @ApiModelProperty(notes = "商户订单号")
+    private String merchantOrderNo;
+
+    @ApiModelProperty(notes = "投手 id")
+    private String zxPitcherId;
+
+    @ApiModelProperty(notes = "玩家ID")
+    private String gameUserId;
+
+    @ApiModelProperty(notes = "玩家账号")
+    private String username;
+
+    @ApiModelProperty(notes = "父游戏ID")
+    private String parentId;
+
+    @ApiModelProperty(notes = "充值游戏ID")
+    private String orderGameId;
+
+    @ApiModelProperty(notes = "用户游戏ID")
+    private String gameId;
+
+    @ApiModelProperty(notes = "广告账号")
+    private String accountId;
+
+    @ApiModelProperty(notes = "归属渠道ID")
+    private String agentId;
+
+    @ApiModelProperty(notes = "操作系统")
+    private String os;
+
+    @ApiModelProperty(notes = "支付状态,1为待处理,2为成功,3为失败")
+    private String orderStatus;
+
+    @ApiModelProperty(notes = "支付方式")
+    private String payway;
+
+    @ApiModelProperty(notes = "角色ID")
+    private String roleId;
+
+    @ApiModelProperty(notes = "角色名称")
+    private String roleName;
+
+    @ApiModelProperty(notes = "用户注册时间")
+    private LocalDateTime beginRegTime;
+
+    @ApiModelProperty(notes = "用户注册时间")
+    private LocalDateTime endRegTime;
+}

+ 9 - 3
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/AdsAgentRechargeRanking.java

@@ -52,6 +52,12 @@ public class AdsAgentRechargeRanking implements Serializable {
     @Column
     private String pitcher;
 
+    /**
+     * 投手ID
+     */
+    @Column
+    private String pitcherId;
+
     /**
      * 推广媒体
      */
@@ -68,19 +74,19 @@ public class AdsAgentRechargeRanking implements Serializable {
      * 累计充值今额
      */
     @Column
-    private BigDecimal totalAmount;
+    private BigDecimal newUserTotalRechargeAmount;
 
     /**
      * 累计充值人数
      */
     @Column
-    private Long totalRechargeUserCount;
+    private Long newUserTotalRechargeNum;
 
     /**
      * 累计充值次数
      */
     @Column
-    private Long totalRechargeCount;
+    private Long newUserTotalRechargeCount;
 
     /**
      * 平均单价

+ 24 - 1
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/AdsOrderDetail.java

@@ -18,7 +18,7 @@ import java.time.LocalDateTime;
  * 订单明细
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-06-30
  */
 @Data
@@ -88,6 +88,12 @@ public class AdsOrderDetail implements Serializable {
     @Column
     private String agentId;
 
+    /**
+     * 父游戏ID
+     */
+    @Column
+    private String parentId;
+
     /**
      * 注册游戏ID
      */
@@ -106,6 +112,12 @@ public class AdsOrderDetail implements Serializable {
     @Column
     private String zxPitcherName;
 
+    /**
+     * 投手ID
+     */
+    @Column
+    private String zxPitcherId;
+
     /**
      * 广告账号
      */
@@ -184,12 +196,23 @@ public class AdsOrderDetail implements Serializable {
     @Column
     private String serverId;
 
+    /**
+     * 服务器名称
+     */
+    @Column
+    private String serverName;
+
     /**
      * 角色id
      */
     @Column
     private String roleId;
 
+    /**
+     * 角色名称
+     */
+    @Column
+    private String roleName;
     /**
      * 等级
      */

+ 89 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/AdsAgentRechargeRankingVO.java

@@ -0,0 +1,89 @@
+package com.zanxiang.game.data.serve.pojo.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.nutz.dao.entity.annotation.Column;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+@Data
+public class AdsAgentRechargeRankingVO {
+
+    /**
+     * 日期(充值时间)
+     */
+    @ApiModelProperty(notes = "日期(充值时间)")
+    private LocalDate dt;
+
+    /**
+     * 推广渠道账号
+     */
+    private Long agentId;
+
+    /**
+     * 推广渠道名称
+     */
+    @Column
+    private String agentName;
+
+    /**
+     * 投手
+     */
+    @Column
+    private String pitcher;
+
+    /**
+     * 推广媒体
+     */
+    @Column
+    private String type;
+
+    /**
+     * 当天充值金额
+     */
+    @Column
+    private BigDecimal todayAmount;
+
+    /**
+     * 累计充值今额
+     */
+    @Column
+    private BigDecimal totalAmount;
+
+    /**
+     * 累计充值人数
+     */
+    @Column
+    private Long totalRechargeUserCount;
+
+    /**
+     * 累计充值次数
+     */
+    @Column
+    private Long totalRechargeCount;
+
+    /**
+     * 平均单价
+     */
+    @Column
+    private BigDecimal avgAmount;
+
+    /**
+     * 注册人数
+     */
+    @Column
+    private Long regUserCount;
+
+    /**
+     * 累计消耗
+     */
+    @Column
+    private BigDecimal totalCost;
+
+    /**
+     * 回本率
+     */
+    @Column
+    private BigDecimal roi;
+}

+ 129 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/AdsOrderDetailSummaryVO.java

@@ -0,0 +1,129 @@
+package com.zanxiang.game.data.serve.pojo.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Data
+public class AdsOrderDetailSummaryVO {
+
+    @ApiModelProperty(notes = "订单创建日期")
+    private LocalDate day;
+
+    @ApiModelProperty(notes = "SDK来源")
+    private String sourceSystem;
+
+    @ApiModelProperty(notes = "订单号")
+    private String orderId;
+
+    @ApiModelProperty(notes = "CP订单")
+    private String cpOrderId;
+
+    @ApiModelProperty(notes = "CP名称")
+    private String cpName;
+
+    @ApiModelProperty(notes = "第三方支付订单号")
+    private String merchantOrderNo;
+
+    @ApiModelProperty(notes = "游戏玩家ID")
+    private String gameUserId;
+
+    @ApiModelProperty(notes = "用户名")
+    private String username;
+
+    @ApiModelProperty(notes = "注册时间")
+    private LocalDateTime regTime;
+
+    @ApiModelProperty(notes = "注册渠道ID")
+    private String agentId;
+
+    @ApiModelProperty(notes = "父游戏ID")
+    private String parentId;
+
+    @ApiModelProperty(notes = "注册游戏ID")
+    private String gameId;
+
+    @ApiModelProperty(notes = "注册游戏类别,3开头为android 4 开头为IOS 5 开头为H5 6开头为小程序 对应于game_class中的ID")
+    private String classify;
+
+    @ApiModelProperty(notes = "投手名称")
+    private String zxPitcherName;
+
+    @ApiModelProperty(notes = "投手ID")
+    private String zxPitcherId;
+
+    @ApiModelProperty(notes = "广告账号")
+    private String accountId;
+
+    @ApiModelProperty(notes = "推广媒体")
+    private String accountType;
+
+    @ApiModelProperty(notes = "广告id")
+    private String adId;
+
+    @ApiModelProperty(notes = "充值渠道ID")
+    private String orderAgentId;
+
+    @ApiModelProperty(notes = "充值游戏ID")
+    private String orderGameId;
+
+    @ApiModelProperty(notes = "充值游戏类型")
+    private String orderGameClassify;
+
+    @ApiModelProperty(notes = "游戏商品名称")
+    private String productName;
+
+    @ApiModelProperty(notes = "货物总价")
+    private BigDecimal amount;
+
+    @ApiModelProperty(notes = "实际支付金额")
+    private BigDecimal realAmount;
+
+    @ApiModelProperty(notes = "支付方式名称")
+    private String payway;
+
+    @ApiModelProperty(notes = "支付场景")
+    private String payScene;
+
+    @ApiModelProperty(notes = "收款账户")
+    private String payAccountId;
+
+    @ApiModelProperty(notes = "服务器id")
+    private String serverId;
+
+    @ApiModelProperty(notes = "服务器名称")
+    private String serverName;
+
+    @ApiModelProperty(notes = "角色id")
+    private String roleId;
+
+    @ApiModelProperty(notes = "角色名称")
+    private String roleName;
+
+    @ApiModelProperty(notes = "等级")
+    private String roleLevel;
+
+    @ApiModelProperty(notes = "vip等级")
+    private String roleVip;
+
+    @ApiModelProperty(notes = "操作系统")
+    private String os;
+
+    @ApiModelProperty(notes = "是否切换")
+    private String orderIsSwitch;
+
+    @ApiModelProperty(notes = "订单充值时间")
+    private LocalDateTime orderCreateTime;
+
+    @ApiModelProperty(notes = "支付时间")
+    private String payTime;
+
+    @ApiModelProperty(notes = "支付状态,1为待处理,2为成功,3为失败")
+    private String orderStatus;
+
+    @ApiModelProperty(notes = "是否首充:1是,0否")
+    private String isFirstRecharge;
+}

+ 129 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/AdsOrderDetailVO.java

@@ -0,0 +1,129 @@
+package com.zanxiang.game.data.serve.pojo.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Data
+public class AdsOrderDetailVO {
+
+    @ApiModelProperty(notes = "订单创建日期")
+    private LocalDate day;
+
+    @ApiModelProperty(notes = "SDK来源")
+    private String sourceSystem;
+
+    @ApiModelProperty(notes = "订单号")
+    private String orderId;
+
+    @ApiModelProperty(notes = "CP订单")
+    private String cpOrderId;
+
+    @ApiModelProperty(notes = "CP名称")
+    private String cpName;
+
+    @ApiModelProperty(notes = "第三方支付订单号")
+    private String merchantOrderNo;
+
+    @ApiModelProperty(notes = "游戏玩家ID")
+    private String gameUserId;
+
+    @ApiModelProperty(notes = "用户名")
+    private String username;
+
+    @ApiModelProperty(notes = "注册时间")
+    private LocalDateTime regTime;
+
+    @ApiModelProperty(notes = "注册渠道ID")
+    private String agentId;
+
+    @ApiModelProperty(notes = "父游戏ID")
+    private String parentId;
+
+    @ApiModelProperty(notes = "注册游戏ID")
+    private String gameId;
+
+    @ApiModelProperty(notes = "注册游戏类别,3开头为android 4 开头为IOS 5 开头为H5 6开头为小程序 对应于game_class中的ID")
+    private String classify;
+
+    @ApiModelProperty(notes = "投手名称")
+    private String zxPitcherName;
+
+    @ApiModelProperty(notes = "投手ID")
+    private String zxPitcherId;
+
+    @ApiModelProperty(notes = "广告账号")
+    private String accountId;
+
+    @ApiModelProperty(notes = "推广媒体")
+    private String accountType;
+
+    @ApiModelProperty(notes = "广告id")
+    private String adId;
+
+    @ApiModelProperty(notes = "充值渠道ID")
+    private String orderAgentId;
+
+    @ApiModelProperty(notes = "充值游戏ID")
+    private String orderGameId;
+
+    @ApiModelProperty(notes = "充值游戏类型")
+    private String orderGameClassify;
+
+    @ApiModelProperty(notes = "游戏商品名称")
+    private String productName;
+
+    @ApiModelProperty(notes = "货物总价")
+    private BigDecimal amount;
+
+    @ApiModelProperty(notes = "实际支付金额")
+    private BigDecimal realAmount;
+
+    @ApiModelProperty(notes = "支付方式名称")
+    private String payway;
+
+    @ApiModelProperty(notes = "支付场景")
+    private String payScene;
+
+    @ApiModelProperty(notes = "收款账户")
+    private String payAccountId;
+
+    @ApiModelProperty(notes = "服务器id")
+    private String serverId;
+
+    @ApiModelProperty(notes = "服务器名称")
+    private String serverName;
+
+    @ApiModelProperty(notes = "角色id")
+    private String roleId;
+
+    @ApiModelProperty(notes = "角色名称")
+    private String roleName;
+
+    @ApiModelProperty(notes = "等级")
+    private String roleLevel;
+
+    @ApiModelProperty(notes = "vip等级")
+    private String roleVip;
+
+    @ApiModelProperty(notes = "操作系统")
+    private String os;
+
+    @ApiModelProperty(notes = "是否切换")
+    private String orderIsSwitch;
+
+    @ApiModelProperty(notes = "订单充值时间")
+    private LocalDateTime orderCreateTime;
+
+    @ApiModelProperty(notes = "支付时间")
+    private String payTime;
+
+    @ApiModelProperty(notes = "支付状态,1为待处理,2为成功,3为失败")
+    private String orderStatus;
+
+    @ApiModelProperty(notes = "是否首充:1是,0否")
+    private String isFirstRecharge;
+}

+ 4 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/IAdsAgentRechargeRankingService.java

@@ -0,0 +1,4 @@
+package com.zanxiang.game.data.serve.service;
+
+public interface IAdsAgentRechargeRankingService {
+}

+ 10 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/IAdsOrderDetailService.java

@@ -0,0 +1,10 @@
+package com.zanxiang.game.data.serve.service;
+
+import com.zanxiang.game.data.serve.pojo.dto.AdsOrderDetailListDTO;
+import com.zanxiang.game.data.serve.pojo.vo.AdsOrderDetailVO;
+import com.zanxiang.game.data.serve.utils.Page;
+
+public interface IAdsOrderDetailService {
+
+    Page<AdsOrderDetailVO> listOfPage(AdsOrderDetailListDTO dto);
+}

+ 37 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/AdsAgentRechargeRankingServiceImpl.java

@@ -0,0 +1,37 @@
+package com.zanxiang.game.data.serve.service.impl;
+
+import com.zanxiang.game.data.serve.pojo.dto.AdsAgentRechargeRankingListDTO;
+import com.zanxiang.game.data.serve.pojo.entity.AdsAgentRechargeRanking;
+import com.zanxiang.game.data.serve.pojo.vo.AdsAgentRechargeRankingVO;
+import com.zanxiang.game.data.serve.service.IAdsAgentRechargeRankingService;
+import com.zanxiang.game.data.serve.utils.Page;
+import com.zanxiang.module.util.bean.BeanUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.nutz.dao.Dao;
+import org.nutz.dao.pager.Pager;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+public class AdsAgentRechargeRankingServiceImpl implements IAdsAgentRechargeRankingService {
+
+    @Autowired
+    private Dao dao;
+
+    private Page<AdsAgentRechargeRankingVO> list(AdsAgentRechargeRankingListDTO dto) {
+        Pager pager = dto.toPage();
+        String sql = """
+                select * from ads_agent_recharge_ranking
+                group by 
+                """;
+        return null;
+    }
+
+    private AdsAgentRechargeRankingVO toVO(AdsAgentRechargeRanking agentRechargeRanking) {
+        if (agentRechargeRanking == null) {
+            return null;
+        }
+        return BeanUtil.copy(agentRechargeRanking, AdsAgentRechargeRankingVO.class);
+    }
+}

+ 108 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/AdsOrderDetailService.java

@@ -0,0 +1,108 @@
+package com.zanxiang.game.data.serve.service.impl;
+
+import com.zanxiang.erp.security.util.SecurityUtil;
+import com.zanxiang.game.data.serve.pojo.dto.AdsOrderDetailListDTO;
+import com.zanxiang.game.data.serve.pojo.entity.AdsOrderDetail;
+import com.zanxiang.game.data.serve.pojo.vo.AdsOrderDetailVO;
+import com.zanxiang.game.data.serve.service.IAdsOrderDetailService;
+import com.zanxiang.game.data.serve.utils.Page;
+import com.zanxiang.module.util.bean.BeanUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.nutz.dao.Cnd;
+import org.nutz.dao.Dao;
+import org.nutz.dao.pager.Pager;
+import org.nutz.dao.util.cri.Exps;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Slf4j
+@Service
+public class AdsOrderDetailService implements IAdsOrderDetailService {
+
+    @Autowired
+    private Dao dao;
+
+    @Override
+    public Page<AdsOrderDetailVO> listOfPage(AdsOrderDetailListDTO dto) {
+        if (StringUtils.isBlank(dto.getZxPitcherId()) && !SecurityUtil.isManager()) {
+            // 只有管理员才能查看全部数据
+            dto.setZxPitcherId(SecurityUtil.getUserId().toString());
+        }
+        Pager pager = dto.toPage();
+        Cnd cnd = Cnd.where(Exps.isNull(AdsOrderDetail::getZxPitcherId).setNot(true));
+        if (dto.getBeginOrderTime() != null) {
+            cnd.and(AdsOrderDetail::getOrderCreateTime, ">=", dto.getBeginOrderTime());
+        }
+        if (dto.getEndOrderTime() != null) {
+            cnd.and(AdsOrderDetail::getOrderCreateTime, "<=", dto.getEndOrderTime());
+        }
+        if (StringUtils.isNotBlank(dto.getOrderId())) {
+            cnd.and(AdsOrderDetail::getOrderId, "=", dto.getOrderId());
+        }
+        if (StringUtils.isNotBlank(dto.getCpOrderId())) {
+            cnd.and(AdsOrderDetail::getCpOrderId, "=", dto.getCpOrderId());
+        }
+        if (StringUtils.isNotBlank(dto.getMerchantOrderNo())) {
+            cnd.and(AdsOrderDetail::getMerchantOrderNo, "=", dto.getMerchantOrderNo());
+        }
+        if (StringUtils.isNotBlank(dto.getZxPitcherId())) {
+            cnd.and(AdsOrderDetail::getZxPitcherId, "=", dto.getZxPitcherId());
+        }
+        if (StringUtils.isNotBlank(dto.getGameUserId())) {
+            cnd.and(AdsOrderDetail::getGameUserId, "=", dto.getGameUserId());
+        }
+        if (StringUtils.isNotBlank(dto.getUsername())) {
+            cnd.and(AdsOrderDetail::getUsername, "like", "%" + dto.getUsername() + "%");
+        }
+        if (StringUtils.isNotBlank(dto.getParentId())) {
+            cnd.and(AdsOrderDetail::getParentId, "=", dto.getParentId());
+        }
+        if (StringUtils.isNotBlank(dto.getOrderGameId())) {
+            cnd.and(AdsOrderDetail::getOrderGameId, "=", dto.getOrderGameId());
+        }
+        if (StringUtils.isNotBlank(dto.getGameId())) {
+            cnd.and(AdsOrderDetail::getGameId, "=", dto.getGameId());
+        }
+        if (StringUtils.isNotBlank(dto.getAccountId())) {
+            cnd.and(AdsOrderDetail::getAccountId, "=", dto.getAccountId());
+        }
+        if (StringUtils.isNotBlank(dto.getAgentId())) {
+            cnd.and(AdsOrderDetail::getAgentId, "=", dto.getAgentId());
+        }
+        if (StringUtils.isNotBlank(dto.getOs())) {
+            cnd.and(AdsOrderDetail::getOs, "=", dto.getOs());
+        }
+        if (StringUtils.isNotBlank(dto.getOrderStatus())) {
+            cnd.and(AdsOrderDetail::getOrderStatus, "=", dto.getOrderStatus());
+        }
+        if (StringUtils.isNotBlank(dto.getPayway())) {
+            cnd.and(AdsOrderDetail::getPayway, "=", dto.getPayway());
+        }
+        if (StringUtils.isNotBlank(dto.getRoleId())) {
+            cnd.and(AdsOrderDetail::getRoleId, "=", dto.getRoleId());
+        }
+        if (StringUtils.isNotBlank(dto.getRoleName())) {
+            cnd.and(AdsOrderDetail::getRoleName, "=", dto.getRoleName());
+        }
+        if (dto.getBeginRegTime() != null) {
+            cnd.and(AdsOrderDetail::getRegTime, ">=", dto.getBeginRegTime());
+        }
+        if (dto.getEndRegTime() != null) {
+            cnd.and(AdsOrderDetail::getRegTime, "<=", dto.getEndRegTime());
+        }
+        List<AdsOrderDetailVO> records = dao.query(AdsOrderDetail.class, cnd, pager).stream().map(this::toVO).collect(Collectors.toList());
+        pager.setRecordCount(dao.count(AdsOrderDetail.class, cnd));
+        return new Page<>(records, pager);
+    }
+
+    private AdsOrderDetailVO toVO(AdsOrderDetail gameOrder) {
+        if (gameOrder == null) {
+            return null;
+        }
+        return BeanUtil.copy(gameOrder, AdsOrderDetailVO.class);
+    }
+}