소스 검색

Merge branch 'package' of GameCenter/game-center into dev

zhimo 1 년 전
부모
커밋
785d074508
18개의 변경된 파일2323개의 추가작업 그리고 226개의 파일을 삭제
  1. 4 4
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/AdsOrderDetailListDTO.java
  2. 1829 0
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/AdsGameActiveOrderDay.java
  3. 3 3
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/AdsGameActiveRegDay.java
  4. 99 111
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/ActiveDataDayVO.java
  5. 0 12
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/ActiveDataTotalVO.java
  6. 35 5
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/ActiveDataTrendVO.java
  7. 158 66
      game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/IActiveDataServiceImpl.java
  8. 5 0
      game-module/game-module-base/src/main/java/com/zanxiang/game/module/base/pojo/enums/GameAuthEnum.java
  9. 7 2
      game-module/game-module-base/src/main/java/com/zanxiang/game/module/base/pojo/vo/GameAuthUserVO.java
  10. 2 3
      game-module/game-module-base/src/main/java/com/zanxiang/game/module/base/rpc/GameAuthRpc.java
  11. 12 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/controller/ChoiceController.java
  12. 9 4
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/controller/OrderController.java
  13. 65 4
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/rpc/impl/GameAuthRpcImpl.java
  14. 8 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/IGameAuthService.java
  15. 9 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/IOrderService.java
  16. 4 4
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/AgentServiceImpl.java
  17. 63 8
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/GameAuthServiceImpl.java
  18. 11 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/OrderServiceImpl.java

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

@@ -174,15 +174,15 @@ public class AdsOrderDetailListDTO extends BasePage {
     private LocalDate payTimeEnd;
 
     /**
-     * 充值到支付的间隔时间(最小分)
+     * 注册与充值的间隔时间(最小分)
      */
-    @ApiModelProperty("充值到支付的间隔时间(分)")
+    @ApiModelProperty("注册与充值的间隔时间(分)")
     private Long regPayIntervalTimeMin;
 
     /**
-     * 充值到支付的间隔时间(最大分)
+     * 注册与充值的间隔时间(最大分)
      */
-    @ApiModelProperty("充值到支付的间隔时间(分)")
+    @ApiModelProperty("注册与充值的间隔时间(分)")
     private Long regPayIntervalTimeMax;
 
     /**

+ 1829 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/AdsGameActiveOrderDay.java

@@ -0,0 +1,1829 @@
+package com.zanxiang.game.data.serve.pojo.entity;
+
+import lombok.Data;
+import org.nutz.dao.entity.annotation.Column;
+import org.nutz.dao.entity.annotation.PK;
+import org.nutz.dao.entity.annotation.Table;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+
+@Data
+@Table(AdsGameActiveOrderDay.TABLE_NAME)
+@PK({"dt", "gameId", "sourceSystem"})
+public class AdsGameActiveOrderDay implements Serializable {
+    private static final long serialVersionUID = 1L;
+    public static final String TABLE_NAME = "ads_game_active_order_day";
+     
+    /**
+    * 用户注册时间
+    */
+    private LocalDate dt;
+    
+    /**
+    * SDK来源
+    */
+    private String sourceSystem;
+    
+    /**
+    * 游戏ID
+    */
+    private Long gameId;
+    
+    /**
+    * 游戏名称
+    */    
+    @Column
+    private String gameName;
+    
+    /**
+    * 游戏类别
+    */    
+    @Column
+    private Long gameClassify;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da1;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da2;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da3;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da4;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da5;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da6;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da7;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da8;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da9;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da10;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da11;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da12;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da13;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da14;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da15;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da16;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da17;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da18;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da19;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da20;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da21;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da22;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da23;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da24;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da25;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da26;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da27;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da28;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da29;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da30;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da31;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da32;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da33;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da34;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da35;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da36;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da37;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da38;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da39;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da40;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da41;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da42;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da43;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da44;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da45;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da46;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da47;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da48;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da49;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da50;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da51;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da52;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da53;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da54;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da55;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da56;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da57;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da58;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da59;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da60;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da61;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da62;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da63;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da64;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da65;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da66;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da67;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da68;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da69;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da70;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da71;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da72;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da73;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da74;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da75;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da76;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da77;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da78;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da79;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da80;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da81;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da82;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da83;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da84;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da85;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da86;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da87;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da88;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da89;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String da90;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String m4;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String m5;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String m6;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String m7;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String m8;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String m9;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String m10;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String m11;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String m12;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa1;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa2;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa3;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa4;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa5;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa6;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa7;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa8;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa9;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa10;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa11;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa12;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa13;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa14;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa15;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa16;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa17;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa18;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa19;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa20;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa21;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa22;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa23;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa24;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa25;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa26;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa27;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa28;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa29;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa30;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa31;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa32;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa33;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa34;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa35;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa36;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa37;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa38;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa39;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa40;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa41;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa42;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa43;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa44;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa45;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa46;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa47;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa48;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa49;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa50;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa51;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa52;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa53;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa54;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa55;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa56;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa57;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa58;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa59;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa60;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa61;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa62;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa63;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa64;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa65;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa66;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa67;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa68;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa69;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa70;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa71;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa72;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa73;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa74;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa75;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa76;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa77;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa78;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa79;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa80;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa81;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa82;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa83;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa84;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa85;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa86;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa87;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa88;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa89;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyDa90;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyM4;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyM5;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyM6;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyM7;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyM8;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyM9;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyM10;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyM11;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String buyM12;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa1;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa2;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa3;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa4;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa5;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa6;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa7;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa8;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa9;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa10;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa11;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa12;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa13;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa14;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa15;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa16;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa17;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa18;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa19;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa20;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa21;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa22;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa23;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa24;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa25;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa26;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa27;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa28;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa29;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa30;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa31;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa32;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa33;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa34;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa35;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa36;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa37;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa38;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa39;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa40;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa41;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa42;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa43;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa44;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa45;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa46;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa47;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa48;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa49;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa50;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa51;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa52;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa53;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa54;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa55;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa56;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa57;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa58;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa59;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa60;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa61;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa62;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa63;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa64;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa65;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa66;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa67;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa68;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa69;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa70;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa71;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa72;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa73;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa74;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa75;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa76;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa77;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa78;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa79;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa80;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa81;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa82;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa83;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa84;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa85;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa86;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa87;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa88;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa89;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureDa90;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureM4;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureM5;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureM6;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureM7;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureM8;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureM9;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureM10;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureM11;
+    
+    /**
+    * 第N天的新用户,第N天的老用户,付费留存率
+    */    
+    @Column
+    private String natureM12;
+
+}
+
+

+ 3 - 3
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/AdsGameActiveDay.java → game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/AdsGameActiveRegDay.java

@@ -9,11 +9,11 @@ import java.io.Serializable;
 import java.time.LocalDate;
 
 @Data
-@Table(AdsGameActiveDay.TABLE_NAME)
+@Table(AdsGameActiveRegDay.TABLE_NAME)
 @PK({"dt", "gameId", "sourceSystem"})
-public class AdsGameActiveDay implements Serializable {
+public class AdsGameActiveRegDay implements Serializable {
     private static final long serialVersionUID = 1L;
-    public static final String TABLE_NAME = "ads_game_active_day";
+    public static final String TABLE_NAME = "ads_game_active_reg_day";
      
     /**
     * 用户注册时间

+ 99 - 111
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/ActiveDataDayVO.java

@@ -836,607 +836,595 @@ public class ActiveDataDayVO {
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "不展示")
-    private String total;
-
-    /**
-     * 活跃人数/留存率
-     */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da1Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da2Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da3Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da4Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da5Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da6Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da7Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da8Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da9Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da10Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da11Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da12Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da13Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da14Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da15Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da16Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da17Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da18Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da19Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da20Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da21Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da22Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da23Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da24Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da25Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da26Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da27Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da28Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da29Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da30Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da31Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da32Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da33Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da34Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da35Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da36Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da37Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da38Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da39Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da40Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da41Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da42Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da43Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da44Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da45Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da46Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da47Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da48Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da49Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da50Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da51Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da52Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da53Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da54Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da55Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da56Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da57Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da58Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da59Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da60Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da61Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da62Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da63Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da64Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da65Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da66Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da67Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da68Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da69Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da70Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da71Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da72Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da73Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da74Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da75Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da76Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da77Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da78Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da79Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da80Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da81Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da82Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da83Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da84Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da85Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da86Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da87Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da88Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da89Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第1-90天(活跃人数/留存率)")
+    @ApiModelProperty(value = "第1-90天(展示的数据)")
     private ActiveDataTrendVO da90Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第4-12月(活跃人数/留存率)")
+    @ApiModelProperty(value = "第4-12月(展示的数据)")
     private ActiveDataTrendVO m4Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第4-12月(活跃人数/留存率)")
+    @ApiModelProperty(value = "第4-12月(展示的数据)")
     private ActiveDataTrendVO m5Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第4-12月(活跃人数/留存率)")
+    @ApiModelProperty(value = "第4-12月(展示的数据)")
     private ActiveDataTrendVO m6Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第4-12月(活跃人数/留存率)")
+    @ApiModelProperty(value = "第4-12月(展示的数据)")
     private ActiveDataTrendVO m7Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第4-12月(活跃人数/留存率)")
+    @ApiModelProperty(value = "第4-12月(展示的数据)")
     private ActiveDataTrendVO m8Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第4-12月(活跃人数/留存率)")
+    @ApiModelProperty(value = "第4-12月(展示的数据)")
     private ActiveDataTrendVO m9Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第4-12月(活跃人数/留存率)")
+    @ApiModelProperty(value = "第4-12月(展示的数据)")
     private ActiveDataTrendVO m10Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第4-12月(活跃人数/留存率)")
+    @ApiModelProperty(value = "第4-12月(展示的数据)")
     private ActiveDataTrendVO m11Trend;
 
     /**
      * 活跃人数/留存率
      */
-    @ApiModelProperty(value = "第4-12月(活跃人数/留存率)")
+    @ApiModelProperty(value = "第4-12月(展示的数据)")
     private ActiveDataTrendVO m12Trend;
 
-    /**
-     * 活跃人数/留存率
-     */
-    @ApiModelProperty(value = "总(活跃人数/留存率)")
-    private ActiveDataTrendVO totalTrend;
-
 }

+ 0 - 12
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/ActiveDataTotalVO.java

@@ -802,12 +802,6 @@ public class ActiveDataTotalVO {
     @ApiModelProperty(value = "不展示")
     private String m12;
 
-    /**
-     * 活跃人数/留存率
-     */
-    @ApiModelProperty(value = "不展示")
-    private String total;
-
     /**
      * 活跃人数/留存率
      */
@@ -1402,10 +1396,4 @@ public class ActiveDataTotalVO {
     @ApiModelProperty(value = "第4-12月(活跃人数/留存率)")
     private ActiveDataTrendVO m12Trend;
 
-    /**
-     * 活跃人数/留存率
-     */
-    @ApiModelProperty(value = "总(活跃人数/留存率)")
-    private ActiveDataTrendVO totalTrend;
-
 }

+ 35 - 5
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/ActiveDataTrendVO.java

@@ -15,15 +15,45 @@ import java.math.BigDecimal;
 public class ActiveDataTrendVO {
 
     /**
-     * 活跃人数
+     * 活跃人数(注册留存数据)
      */
-    @ApiModelProperty(notes = "活跃人数")
+    @ApiModelProperty(notes = "活跃人数(注册留存数据)")
     private Long activeNum;
 
     /**
-     * 留存率
+     * 留存率(注册留存数据)
      */
-    @ApiModelProperty(notes = "留存率")
-    private BigDecimal activeRate;
+    @ApiModelProperty(notes = "留存率(注册留存数据)")
+    private BigDecimal regActiveRate;
+
+    /**
+     * 第N天的新增付费用户(付费留存数据)
+     */
+    @ApiModelProperty(notes = "第N天的新增付费用户(付费留存数据)")
+    private Long newUserAmountNum;
+
+    /**
+     * 第N天的老活跃用户数(付费留存数据)
+     */
+    @ApiModelProperty(notes = "第N天的老活跃用户数(付费留存数据)")
+    private Long oldActiveUserNum;
+
+    /**
+     * 累计到第N天的付费用户数(付费留存数据)
+     */
+    @ApiModelProperty(notes = "累计到第N天的付费用户数(付费留存数据)")
+    private Long newUserTotalAmountNum;
+
+    /**
+     * 累计到第N天的活跃用户数(付费留存数据)
+     */
+    @ApiModelProperty(notes = "累计到第N天的活跃用户数(付费留存数据)")
+    private Long newActiveUserTotalNum;
+
+    /**
+     * 付费留存率(付费留存数据)
+     */
+    @ApiModelProperty(notes = "付费留存率(付费留存数据)")
+    private BigDecimal amountActiveRate;
 
 }

+ 158 - 66
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/IActiveDataServiceImpl.java

@@ -3,7 +3,8 @@ package com.zanxiang.game.data.serve.service.impl;
 import com.google.common.base.CaseFormat;
 import com.zanxiang.game.data.serve.pojo.dto.ActiveDataDayDTO;
 import com.zanxiang.game.data.serve.pojo.dto.ActiveDataTotalDTO;
-import com.zanxiang.game.data.serve.pojo.entity.AdsGameActiveDay;
+import com.zanxiang.game.data.serve.pojo.entity.AdsGameActiveOrderDay;
+import com.zanxiang.game.data.serve.pojo.entity.AdsGameActiveRegDay;
 import com.zanxiang.game.data.serve.pojo.enums.OrderByEnum;
 import com.zanxiang.game.data.serve.pojo.vo.ActiveDataDayVO;
 import com.zanxiang.game.data.serve.pojo.vo.ActiveDataTotalVO;
@@ -128,26 +129,22 @@ public class IActiveDataServiceImpl implements IActiveDataService {
         //查询的class
         Class<?> tempClazz = null;
         //默认查询注册留存
-        String queryTableName;
+        String queryTableName = StringUtils.EMPTY;
         if (StringUtils.isBlank(dto.getActiveTypes())) {
             dto.setActiveTypes("reg");
         }
         switch (dto.getActiveTypes()) {
             case "reg" -> {
-                queryTableName = "ads_game_active_day";
-                tempClazz = AdsGameActiveDay.class;
+                queryTableName = "ads_game_active_reg_day";
+                tempClazz = AdsGameActiveRegDay.class;
             }
             case "role" -> {
                 queryTableName = "";
-                tempClazz = AdsGameActiveDay.class;
+                tempClazz = AdsGameActiveRegDay.class;
             }
             case "amount" -> {
-                queryTableName = "";
-                tempClazz = AdsGameActiveDay.class;
-            }
-            default -> {
-                queryTableName = "ads_game_active_day";
-                tempClazz = AdsGameActiveDay.class;
+                queryTableName = "ads_game_active_order_day";
+                tempClazz = AdsGameActiveOrderDay.class;
             }
         }
         //创建查询条件
@@ -201,13 +198,18 @@ public class IActiveDataServiceImpl implements IActiveDataService {
         pager.setRecordCount(dao.count(tempClazz, cri));
         List<ActiveDataDayVO> activeDataDayVOList = list.stream().map(vo -> {
             //将string转成 ActiveDataTrendVO 对象
-            formatDayN(vo);
+            formatDayN(vo, dto.getActiveTypes());
             return vo;
         }).collect(Collectors.toList());
 
         return new Page<>(activeDataDayVOList, pager);
     }
 
+    /**
+     * 留存每日数据总计
+     * @param dto ActiveDataTotalDTO
+     * @return ActiveDataTotalVO
+     */
     @Override
     public ActiveDataTotalVO getActiveDataTotal(ActiveDataTotalDTO dto) {
         //默认查询总数据
@@ -215,15 +217,14 @@ public class IActiveDataServiceImpl implements IActiveDataService {
             dto.setTableTypes("total");
         }
         //默认查询注册留存
-        String queryTableName;
+        String queryTableName = StringUtils.EMPTY;
         if (StringUtils.isBlank(dto.getActiveTypes())) {
             dto.setActiveTypes("reg");
         }
         switch (dto.getActiveTypes()) {
-            case "reg" -> queryTableName = "ads_game_active_day";
+            case "reg" -> queryTableName = "ads_game_active_reg_day";
             case "role" -> queryTableName = "";
-            case "amount" -> queryTableName = "";
-            default -> queryTableName = "ads_game_active_day";
+            case "amount" -> queryTableName = "ads_game_active_order_day";
         }
         //创建查询条件
         Criteria cri = Cnd.cri();
@@ -270,7 +271,7 @@ public class IActiveDataServiceImpl implements IActiveDataService {
         //voActiveData有值时进行映射的取值处理
         if (StringUtils.isNotBlank(voActiveData.getDa1())) {
             //计算留存dayN数据
-            formatTotalDayN(voActiveData);
+            formatTotalDayN(voActiveData, dto.getActiveTypes());
         }
         //将两个对象的属性结合
         copyNullProperties(voActiveData, voGameData);
@@ -313,7 +314,7 @@ public class IActiveDataServiceImpl implements IActiveDataService {
     }
 
     /**
-     * 游戏首日复充总计sql(首日复充数据部分)
+     * 留存每日总计sql(留存dayN数据部分)
      *
      * @param type 查询的类型 buy、nature、total
      * @param tableName 表名
@@ -331,28 +332,62 @@ public class IActiveDataServiceImpl implements IActiveDataService {
         //拼接查询条件
         StringBuilder trendDay = new StringBuilder(StringUtils.EMPTY);
         trendDay.append("SELECT ");
-        //90天数据
-        for (int day = 1; day <= 90; day++) {
-            trendDay.append("""
+        if ("ads_game_active_reg_day".equals(tableName)) {
+            //90天数据
+            for (int day = 1; day <= 90; day++) {
+                trendDay.append("""
                     CONCAT( SUM(CAST(SPLIT_PART(%sda%s, '/', 1) AS BIGINT(20))), '/',
                             SUM(IF(DATE_ADD(dt, INTERVAL %s day) <= Local.now(), %sreg_num, 0))
                     ) AS da%s,
                        """.formatted(type, day, day-1, type, day));
-        }
-        //m4-m12数据
-        for (int month = 4; month <= 12; month++) {
-            trendDay.append("""
+            }
+            //m4-m11数据
+            for (int month = 4; month < 12; month++) {
+                trendDay.append("""
                     CONCAT( SUM(CAST(SPLIT_PART(%sm%s, '/', 1) AS BIGINT(20))), '/',
                             SUM(IF(DATE_ADD(dt, INTERVAL %s month) <= Local.now(), %sreg_num, 0))
                     ) AS m%s,
                        """.formatted(type, month, month, type, month));
+            }
+            //m12数据
+            trendDay.append("""
+                    CONCAT( SUM(CAST(SPLIT_PART(%sm12, '/', 1) AS BIGINT(20))), '/',
+                            SUM(IF(DATE_ADD(dt, INTERVAL 12 month) <= Local.now(), %sreg_num, 0))
+                    ) AS m12
+                       """.formatted(type, type));
+        } else if ("ads_game_active_order_day".equals(tableName)) {
+            // 第N天新增付费用户数/第N天老活跃用户数/累计到第N天的付费用户数/累计到第N天的活跃人数
+            //90天数据
+            for (int day = 1; day <= 90; day++) {
+                trendDay.append("""
+                    CONCAT( SUM(CAST(SPLIT_PART(%sda%s, '/', 1) AS BIGINT(20))), '/',
+                            SUM(CAST(SPLIT_PART(%sda%s, '/', 2) AS BIGINT(20))), '/',
+                            SUM(IF(DATE_ADD(dt, INTERVAL %s day) <= Local.now(), CAST(SPLIT_PART(%sda%s, '/', 3) AS BIGINT(20)), 0)), '/',
+                            SUM(IF(DATE_ADD(dt, INTERVAL %s day) <= Local.now(), CAST(SPLIT_PART(%sda%s, '/', 4) AS BIGINT(20)), 0))
+                    ) AS da%s,
+                       """.formatted(type, day, type, day, day-1, type, day, day-1, type, day, day));
+            }
+            //m4-m11数据
+            for (int month = 4; month < 12; month++) {
+                trendDay.append("""
+                    CONCAT( SUM(CAST(SPLIT_PART(%sm%s, '/', 1) AS BIGINT(20))), '/',
+                            SUM(CAST(SPLIT_PART(%sm%s, '/', 2) AS BIGINT(20))), '/',
+                            SUM(IF(DATE_ADD(dt, INTERVAL %s month) <= Local.now(), CAST(SPLIT_PART(%sm%s, '/', 3) AS BIGINT(20)), 0)), '/',
+                            SUM(IF(DATE_ADD(dt, INTERVAL %s month) <= Local.now(), CAST(SPLIT_PART(%sm%s, '/', 4) AS BIGINT(20)), 0))
+                    ) AS m%s,
+                       """.formatted(type, month, type, month, month, type, month, month, type, month, month));
+            }
+            //m12数据
+            trendDay.append("""
+                    CONCAT( SUM(CAST(SPLIT_PART(%sm12, '/', 1) AS BIGINT(20))), '/',
+                            SUM(CAST(SPLIT_PART(%sm12, '/', 2) AS BIGINT(20))), '/',
+                            SUM(IF(DATE_ADD(dt, INTERVAL 12 month) <= Local.now(), CAST(SPLIT_PART(%sm12, '/', 3) AS BIGINT(20)), 0)), '/',
+                            SUM(IF(DATE_ADD(dt, INTERVAL 12 month) <= Local.now(), CAST(SPLIT_PART(%sm12, '/', 4) AS BIGINT(20)), 0))
+                    ) AS m12
+                       """.formatted(type, type, type, type));
+        } else {
+
         }
-        //total数据
-        trendDay.append("""
-                CONCAT( SUM(CAST(SPLIT_PART(%stotal, '/', 1) AS BIGINT(20))), '/',
-                        SUM(%sreg_num)
-                ) AS total
-                   """.formatted(type, type));
         trendDay.append("FROM game_ads.");
         trendDay.append(tableName);
 
@@ -362,49 +397,109 @@ public class IActiveDataServiceImpl implements IActiveDataService {
     /**
      * 通过反射赋值留存数据dayN
      * @param vo ActiveDataDayVO
+     * @param activeType 留存类型 : reg -> 注册留存; role -> 创角留存; amount -> 付费留存
      */
-    private void formatDayN(ActiveDataDayVO vo) {
+    private void formatDayN(ActiveDataDayVO vo, String activeType) {
         if (CollectionUtils.isEmpty(activeDataDayNFieldMapList)) {
             return;
         }
-        activeDataDayNFieldMapList.forEach(dayNFieldMapList -> {
-            try {
-                String[] temps = ((String) dayNFieldMapList.getT1().get(vo)).split("/");
-                dayNFieldMapList.getT2().set(vo, ActiveDataTrendVO.builder()
-                        .activeNum(Long.valueOf(temps[0]))
-                        .activeRate(new BigDecimal(temps[1]))
-                        .build());
-            } catch (IllegalAccessException e) {
-                e.printStackTrace();
-            }
-        });
+        if ("reg".equals(activeType)) {
+            //处理注册留存数据
+            activeDataDayNFieldMapList.forEach(dayNFieldMapList -> {
+                try {
+                    String[] temps = ((String) dayNFieldMapList.getT1().get(vo)).split("/");
+                    dayNFieldMapList.getT2().set(vo, ActiveDataTrendVO.builder()
+                            .activeNum(Long.valueOf(temps[0]))
+                            .regActiveRate(new BigDecimal(temps[1]))
+                            .build());
+                } catch (IllegalAccessException e) {
+                    e.printStackTrace();
+                }
+            });
+        } else if ("amount".equals(activeType)) {
+            //处理付费留存数据
+            activeDataDayNFieldMapList.forEach(dayNFieldMapList -> {
+                try {
+                    //  第N天的新增付费用户,第N天的老活跃用户,第N天的累计付费用户,第N天的累计活跃用户,付费留存率
+                    String[] temps = ((String) dayNFieldMapList.getT1().get(vo)).split("/");
+                    dayNFieldMapList.getT2().set(vo, ActiveDataTrendVO.builder()
+                            .newUserAmountNum(Long.valueOf(temps[0]))
+                            .oldActiveUserNum(Long.valueOf(temps[1]))
+                            .newUserTotalAmountNum(Long.valueOf(temps[2]))
+                            .newActiveUserTotalNum(Long.valueOf(temps[3]))
+                            .amountActiveRate(new BigDecimal(temps[4]))
+                            .build());
+                } catch (IllegalAccessException e) {
+                    e.printStackTrace();
+                }
+            });
+        } else {
+            //处理创角留存数据
+            activeDataDayNFieldMapList.forEach(dayNFieldMapList -> {
+                try {
+                    //  第N天新用户数/第N天老用户数/累计到第N天的新用户数/付费留存率
+                    String[] temps = ((String) dayNFieldMapList.getT1().get(vo)).split("/");
+                    dayNFieldMapList.getT2().set(vo, ActiveDataTrendVO.builder()
+                            .build());
+                } catch (IllegalAccessException e) {
+                    e.printStackTrace();
+                }
+            });
+        }
     }
 
     /**
      * 通过反射赋值留存数据总计的dayN
      * 活跃人数/注册人数(去掉时间没到的数据)
      * @param vo ActiveDataTotalVO
+     * @param activeType 留存类型 : reg -> 注册留存; role -> 创角留存; amount -> 付费留存
      */
-    private void formatTotalDayN(ActiveDataTotalVO vo) {
+    private void formatTotalDayN(ActiveDataTotalVO vo, String activeType) {
         if (CollectionUtils.isEmpty(activeDataDayNTotalFieldMapList)) {
             return;
         }
-        activeDataDayNTotalFieldMapList.forEach(dayNFieldMapList -> {
-            try {
-                String[] temps = ((String) dayNFieldMapList.getT1().get(vo)).split("/");
-                //活跃人数
-                Long activeNum = Long.valueOf(temps[0]);
-                //注册人数
-                Long regNum = Long.valueOf(temps[1]);
-                dayNFieldMapList.getT2().set(vo, ActiveDataTrendVO.builder()
-                        .activeNum(activeNum)
-                        .activeRate(regNum == 0L ? BigDecimal.ZERO :
-                                BigDecimal.valueOf(activeNum.doubleValue() / regNum.doubleValue()).setScale(4, RoundingMode.HALF_UP))
-                        .build());
-            } catch (IllegalAccessException e) {
-                e.printStackTrace();
-            }
-        });
+        if ("reg".equals(activeType)) {
+            activeDataDayNTotalFieldMapList.forEach(dayNFieldMapList -> {
+                try {
+                    String[] temps = ((String) dayNFieldMapList.getT1().get(vo)).split("/");
+                    //活跃人数
+                    Long activeNum = Long.valueOf(temps[0]);
+                    //注册人数
+                    Long regNum = Long.valueOf(temps[1]);
+                    dayNFieldMapList.getT2().set(vo, ActiveDataTrendVO.builder()
+                            .activeNum(activeNum)
+                            .regActiveRate(regNum == 0L ? BigDecimal.ZERO :
+                                    BigDecimal.valueOf(activeNum.doubleValue() / regNum.doubleValue()).setScale(4, RoundingMode.HALF_UP))
+                            .build());
+                } catch (IllegalAccessException e) {
+                    e.printStackTrace();
+                }
+            });
+        } else if ("amount".equals(activeType)) {
+            activeDataDayNTotalFieldMapList.forEach(dayNFieldMapList -> {
+                try {
+                    // 第N天新增付费用户数/第N天老活跃用户数/累计到第N天的付费用户数/累计到第N天的活跃人数
+                    String[] temps = ((String) dayNFieldMapList.getT1().get(vo)).split("/");
+                    //累计到第N天的活跃人数(活跃人数)
+                    Long activeUserNum = Long.valueOf(temps[3]);
+                    //累计到第N天的付费人数
+                    Long amountTotalNum = Long.valueOf(temps[2]);
+                    dayNFieldMapList.getT2().set(vo, ActiveDataTrendVO.builder()
+                                    .newUserAmountNum(Long.valueOf(temps[0]))
+                                    .oldActiveUserNum(Long.valueOf(temps[1]))
+                                    .newUserTotalAmountNum(amountTotalNum)
+                                    .newActiveUserTotalNum(activeUserNum)
+                                    .amountActiveRate(amountTotalNum == 0L ? BigDecimal.ZERO :
+                                            BigDecimal.valueOf(activeUserNum.doubleValue() / amountTotalNum.doubleValue())
+                                            .setScale(4, RoundingMode.HALF_UP))
+                            .build());
+                } catch (IllegalAccessException e) {
+                    e.printStackTrace();
+                }
+            });
+        } else {
+
+        }
     }
 
     /**
@@ -577,8 +672,7 @@ public class IActiveDataServiceImpl implements IActiveDataService {
                             buy_m9 as m9,
                             buy_m10 as m10,
                             buy_m11 as m11,
-                            buy_m12 as m12,
-                            buy_total as total,
+                            buy_m12 as m12
                         FROM
                     """ + tableName + cri +
                     """
@@ -746,8 +840,7 @@ public class IActiveDataServiceImpl implements IActiveDataService {
                             nature_m9 as m9,
                             nature_m10 as m10,
                             nature_m11 as m11,
-                            nature_m12 as m12,
-                            nature_total as total,
+                            nature_m12 as m12
                         FROM
                     """ + tableName + cri +
                     """
@@ -916,8 +1009,7 @@ public class IActiveDataServiceImpl implements IActiveDataService {
                         m9,
                         m10,
                         m11,
-                        m12,
-                        total
+                        m12
                     FROM
                 """ + tableName + cri +
                 """

+ 5 - 0
game-module/game-module-base/src/main/java/com/zanxiang/game/module/base/pojo/enums/GameAuthEnum.java

@@ -21,6 +21,11 @@ public enum GameAuthEnum {
      */
     ADMIN("ADMIN", "超管"),
 
+    /**
+     * 管理员
+     */
+    MANAGE("MANAGE", "管理员"),
+
     /**
      * 投手
      */

+ 7 - 2
game-module/game-module-base/src/main/java/com/zanxiang/game/module/base/pojo/vo/GameAuthUserVO.java

@@ -24,13 +24,18 @@ public class GameAuthUserVO {
      */
     private Long userId;
 
+    /**
+     * 角色
+     */
+    private GameAuthEnum gameAuthEnum;
+
     /**
      * 游戏id列表
      */
     private List<Long> gameIdList;
 
     /**
-     * 授权类型
+     * 投手列表
      */
-    private GameAuthEnum gameAuthEnum;
+    private List<Long> pitcherList;
 }

+ 2 - 3
game-module/game-module-base/src/main/java/com/zanxiang/game/module/base/rpc/GameAuthRpc.java

@@ -10,10 +10,9 @@ import com.zanxiang.game.module.base.pojo.vo.GameAuthUserVO;
 public interface GameAuthRpc {
 
     /**
-     * 查询指定人的游戏列表, 查询自己则传null
+     * 查询游戏列表
      *
-     * @param userId 用户id
      * @return {@link GameAuthUserVO}
      */
-    GameAuthUserVO getGameAuthByUserIds(Long userId);
+    GameAuthUserVO getGameAuthByUserIds();
 }

+ 12 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/controller/ChoiceController.java

@@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -62,6 +63,9 @@ public class ChoiceController {
     @Autowired
     private IAgentService agentService;
 
+    @Autowired
+    private IGameAuthService gameAuthService;
+
     @ApiOperation(value = "vip等级选择列表")
     @GetMapping(value = "/vip/level/list")
     @PreAuthorize(permissionKey = "manage:choiceVipLevel:list")
@@ -132,6 +136,14 @@ public class ChoiceController {
         return ResultVO.ok(agentService.agentAccountChoiceList());
     }
 
+    @ApiOperation(value = "归因推广人员选择列表")
+    @GetMapping(value = "/agent/user/list")
+    @PreAuthorize(permissionKey = "manage:agentUserChoice:list")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Map.class)})
+    public ResultVO<Map<Long, String>> agentUserChoiceList() {
+        return ResultVO.ok(gameAuthService.agentUserChoiceList());
+    }
+
     @ApiOperation(value = "支付方式选择列表")
     @GetMapping(value = "/pay/way/list")
     @PreAuthorize(permissionKey = "manage:payWayChoice:list")

+ 9 - 4
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/controller/OrderController.java

@@ -18,10 +18,7 @@ import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 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;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 
@@ -75,4 +72,12 @@ public class OrderController {
     public ResultVO<IPage<GameRemitLogVO>> listOfPage(@Validated @RequestBody GameRemitLogListParam param) {
         return ResultVO.ok(gameRemitLogService.listOfPage(param));
     }
+
+    @ApiOperation(value = "订单通知CP手动")
+    @GetMapping(value = "/call/cp")
+    @PreAuthorize(permissionKey = "manage:order:callCp")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
+    public ResultVO<Boolean> callCp(@RequestParam String orderId, String payKey) {
+        return ResultVO.ok(orderService.callCp(orderId, payKey));
+    }
 }

+ 65 - 4
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/rpc/impl/GameAuthRpcImpl.java

@@ -1,14 +1,28 @@
 package com.zanxiang.game.module.manage.rpc.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zanxiang.erp.base.ErpServer;
+import com.zanxiang.erp.base.pojo.vo.SysGameUserGroupRpcVO;
+import com.zanxiang.erp.base.rpc.ISysGameUserGroupRpc;
+import com.zanxiang.erp.security.util.SecurityUtil;
 import com.zanxiang.game.module.base.pojo.enums.GameAuthEnum;
 import com.zanxiang.game.module.base.pojo.vo.GameAuthUserVO;
 import com.zanxiang.game.module.base.rpc.GameAuthRpc;
+import com.zanxiang.game.module.manage.service.IGameAuthRoleService;
 import com.zanxiang.game.module.manage.service.IGameAuthService;
+import com.zanxiang.game.module.mybatis.entity.GameAuth;
+import com.zanxiang.game.module.mybatis.entity.GameAuthRole;
+import com.zanxiang.module.util.exception.BaseException;
+import org.apache.dubbo.config.annotation.DubboReference;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.beans.factory.annotation.Autowired;
 import reactor.util.function.Tuple2;
 
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * @author : lingfeng
@@ -21,13 +35,60 @@ public class GameAuthRpcImpl implements GameAuthRpc {
     @Autowired
     private IGameAuthService gameAuthService;
 
+    @Autowired
+    private IGameAuthRoleService gameAuthRoleService;
+
+    @DubboReference(providedBy = ErpServer.SERVER_DUBBO_NAME)
+    private ISysGameUserGroupRpc sysGameUserGroupRpc;
+
     @Override
-    public GameAuthUserVO getGameAuthByUserIds(Long userId) {
-        Tuple2<String, List<Long>> tuple2 = gameAuthService.getUserGameList(userId.toString());
+    public GameAuthUserVO getGameAuthByUserIds() {
+        //游戏列表
+        Tuple2<String, List<Long>> tuple2 = gameAuthService.getUserGameList(null);
+        //角色
+        GameAuthEnum gameAuthEnum = GameAuthEnum.getByValue(tuple2.getT1());
+        if (gameAuthEnum == null) {
+            throw new BaseException("参数错误, 未查询到相应的角色类型");
+        }
+        //投手列表
+        List<Long> pitcherList = new ArrayList<>();
+        //超管或者管理员, 返回所有角色人
+        if (SecurityUtil.isAdmin() || Objects.equals(gameAuthEnum.getValue(), GameAuthEnum.MANAGE.getValue())) {
+            pitcherList = gameAuthRoleService.list(new LambdaQueryWrapper<GameAuthRole>()
+                    .eq(GameAuthRole::getAuthType, GameAuthEnum.PITCHER.getValue())
+            ).stream().map(GameAuthRole::getUserId).collect(Collectors.toList());
+        }
+        //所有投手
+        List<Long> pitcherIdList = gameAuthRoleService.list(new LambdaQueryWrapper<GameAuthRole>()
+                .eq(GameAuthRole::getAuthType, GameAuthEnum.PITCHER.getValue())
+        ).stream().map(GameAuthRole::getUserId).collect(Collectors.toList());
+        //运营权限
+        if (pitcherList.isEmpty() && Objects.equals(gameAuthEnum.getValue(), GameAuthEnum.OPERATE.getValue())) {
+            pitcherList = gameAuthService.list(new LambdaQueryWrapper<GameAuth>()
+                    .in(GameAuth::getGameId, tuple2.getT2())
+                    .in(GameAuth::getUserId, pitcherIdList)
+            ).stream().map(GameAuth::getUserId).collect(Collectors.toList());
+        }
+        //判断是否是组长, 返回组员
+        SysGameUserGroupRpcVO sysGameUserGroupRpcVO = sysGameUserGroupRpc.getByGroupUser(SecurityUtil.getCompanyId(),
+                SecurityUtil.getUserId()).getData();
+        if (pitcherList.isEmpty() && sysGameUserGroupRpcVO != null) {
+            Collection<Long> memberUserIdList = sysGameUserGroupRpc.memberUserIds(SecurityUtil.getCompanyId(),
+                    SecurityUtil.getUserId()).getData();
+            List<Long> userIdList = memberUserIdList.stream().filter(pitcherIdList::contains).collect(Collectors.toList());
+            pitcherList.addAll(userIdList);
+        }
+        //投手必定返回自己
+        if (Objects.equals(gameAuthEnum.getValue(), GameAuthEnum.PITCHER.getValue())
+                && !pitcherList.contains(SecurityUtil.getUserId())) {
+            pitcherList.add(SecurityUtil.getUserId());
+        }
+        //构造返回
         return GameAuthUserVO.builder()
-                .userId(userId)
+                .userId(SecurityUtil.getUserId())
                 .gameIdList(tuple2.getT2())
-                .gameAuthEnum(GameAuthEnum.getByValue(tuple2.getT1()))
+                .gameAuthEnum(gameAuthEnum)
+                .pitcherList(pitcherList)
                 .build();
     }
 }

+ 8 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/IGameAuthService.java

@@ -10,6 +10,7 @@ import com.zanxiang.game.module.mybatis.entity.GameAuth;
 import reactor.util.function.Tuple2;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author : lingfeng
@@ -57,4 +58,11 @@ public interface IGameAuthService extends IService<GameAuth> {
      * @return {@link Tuple2}<{@link String}, {@link List}<{@link Long}>>
      */
     Tuple2<String, List<Long>> getUserGameList(String userId);
+
+    /**
+     * 代理用户选择列表
+     *
+     * @return {@link Map}<{@link Long}, {@link String}>
+     */
+    Map<Long, String> agentUserChoiceList();
 }

+ 9 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/IOrderService.java

@@ -40,4 +40,13 @@ public interface IOrderService extends IService<Order> {
      * @param response 响应
      */
     void getOrderExcel(OrderParam param, HttpServletResponse response);
+
+    /**
+     * 叫cp
+     *
+     * @param orderId 订单id
+     * @param payKey  支付关键
+     * @return {@link Boolean}
+     */
+    Boolean callCp(String orderId, String payKey);
 }

+ 4 - 4
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/AgentServiceImpl.java

@@ -248,8 +248,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
         List<Agent> agentList;
         //是否需要自然量
         boolean defaultAgent = true;
-        //超管权限, 返回所有渠道
-        if (SecurityUtil.isAdmin()) {
+        //超管/管理员权限, 返回所有渠道
+        if (SecurityUtil.isAdmin() || Objects.equals(gameAuthRole.getAuthType(), GameAuthEnum.MANAGE.getValue())) {
             agentList = super.list(new LambdaQueryWrapper<Agent>()
                     .eq(Strings.isNotBlank(account), Agent::getAccountId, account)
                     .eq(Strings.isNotBlank(pitcherId), Agent::getCreateBy, pitcherId)
@@ -265,7 +265,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
             //组长权限, 获取组员id, 查询组内所有渠道
             Collection<Long> memberUserIdList = sysGameUserGroupRpc.memberUserIds(SecurityUtil.getCompanyId(),
                     SecurityUtil.getUserId()).getData();
-            if (CollectionUtils.isEmpty(memberUserIdList)){
+            if (CollectionUtils.isEmpty(memberUserIdList)) {
                 return Tuples.of(Collections.emptyList(), Collections.emptyList());
             }
             agentList = super.list(new LambdaQueryWrapper<Agent>()
@@ -327,7 +327,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
         //是否需要自然量
         boolean defaultAgent = true;
         //超管权限, 返回所有渠道
-        if (SecurityUtil.isAdmin()) {
+        if (SecurityUtil.isAdmin() || Objects.equals(gameAuthRole.getAuthType(), GameAuthEnum.MANAGE.getValue())) {
             agentList = super.list();
         } else if (Objects.equals(gameAuthRole.getAuthType(), GameAuthEnum.OPERATE.getValue())) {
             //运营权限, 获取拥有的游戏的所有渠道

+ 63 - 8
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/GameAuthServiceImpl.java

@@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zanxiang.erp.base.ErpServer;
+import com.zanxiang.erp.base.pojo.vo.SysGameUserGroupRpcVO;
+import com.zanxiang.erp.base.rpc.ISysGameUserGroupRpc;
 import com.zanxiang.erp.base.rpc.ISysUserRpc;
 import com.zanxiang.erp.security.util.SecurityUtil;
 import com.zanxiang.game.module.base.pojo.enums.DeleteEnum;
@@ -54,6 +57,9 @@ public class GameAuthServiceImpl extends ServiceImpl<GameAuthMapper, GameAuth> i
     @DubboReference(providedBy = ErpServer.SERVER_DUBBO_NAME)
     private ISysUserRpc sysUserRpc;
 
+    @DubboReference(providedBy = ErpServer.SERVER_DUBBO_NAME)
+    private ISysGameUserGroupRpc sysGameUserGroupRpc;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean gameAuthAdd(GameAuthAddParam param) {
@@ -148,19 +154,23 @@ public class GameAuthServiceImpl extends ServiceImpl<GameAuthMapper, GameAuth> i
 
     @Override
     public Tuple2<String, List<Long>> getUserGameList(String userId) {
+        //查询用户权限角色
+        GameAuthRole gameAuthRole = gameAuthRoleService.getOne(new LambdaQueryWrapper<GameAuthRole>()
+                .eq(GameAuthRole::getUserId, SecurityUtil.getUserId()));
+        if (!SecurityUtil.isAdmin() && gameAuthRole == null) {
+            throw new BaseException("参数错误, 无法查询到用户的权限角色信息");
+        }
         //超管权限
-        if (SecurityUtil.isAdmin()) {
+        if (SecurityUtil.isAdmin() && Objects.equals(gameAuthRole.getAuthType(), GameAuthEnum.MANAGE.getValue())) {
             List<Long> gameIdList = super.list(new LambdaQueryWrapper<GameAuth>()
                     .eq(Strings.isNotBlank(userId), GameAuth::getUserId, Strings.isBlank(userId) ? null : Long.valueOf(userId))
             ).stream().map(GameAuth::getGameId).collect(Collectors.toList());
-            return Tuples.of(GameAuthEnum.ADMIN.getValue(), gameIdList);
-        }
-        //非超管权限
-        GameAuthRole gameAuthRole = gameAuthRoleService.getOne(new LambdaQueryWrapper<GameAuthRole>()
-                .eq(GameAuthRole::getUserId, SecurityUtil.getUserId()));
-        if (gameAuthRole == null) {
-            throw new BaseException("参数错误, 无法查询到用户的权限角色信息");
+            if (SecurityUtil.isAdmin()) {
+                return Tuples.of(GameAuthEnum.ADMIN.getValue(), gameIdList);
+            }
+            return Tuples.of(gameAuthRole.getAuthType(), gameIdList);
         }
+        //非超管权限查询
         List<Long> gameIdList = super.list(new LambdaQueryWrapper<GameAuth>()
                 .eq(Strings.isBlank(userId), GameAuth::getUserId, SecurityUtil.getUserId())
                 .eq(Strings.isNotBlank(userId), GameAuth::getUserId, Strings.isBlank(userId) ? null : Long.valueOf(userId))
@@ -168,4 +178,49 @@ public class GameAuthServiceImpl extends ServiceImpl<GameAuthMapper, GameAuth> i
         //返回角色权限以及游戏
         return Tuples.of(gameAuthRole.getAuthType(), gameIdList);
     }
+
+    @Override
+    public Map<Long, String> agentUserChoiceList() {
+        //判断是否是组长
+        SysGameUserGroupRpcVO sysGameUserGroupRpcVO = sysGameUserGroupRpc.getByGroupUser(SecurityUtil.getCompanyId(),
+                SecurityUtil.getUserId()).getData();
+        //判断运营
+        GameAuthRole gameAuthRole = gameAuthRoleService.getOne(new LambdaQueryWrapper<GameAuthRole>()
+                .eq(GameAuthRole::getUserId, SecurityUtil.getUserId()));
+        //所有投手
+        List<Long> pitcherIdList = gameAuthRoleService.list(new LambdaQueryWrapper<GameAuthRole>()
+                .eq(GameAuthRole::getAuthType, GameAuthEnum.PITCHER.getValue())
+        ).stream().map(GameAuthRole::getUserId).collect(Collectors.toList());
+        //游戏权限
+        Tuple2<String, List<Long>> userGameTuple2 = this.getUserGameList(null);
+        if (CollectionUtils.isEmpty(userGameTuple2.getT2())) {
+            throw new BaseException("未查询到用户游戏列表");
+        }
+        List<GameAuth> gameAuthList;
+        //超管或者管理员
+        if (SecurityUtil.isAdmin() || Objects.equals(gameAuthRole.getAuthType(), GameAuthEnum.MANAGE.getValue())) {
+            gameAuthList = super.list(new LambdaQueryWrapper<GameAuth>()
+                    .in(GameAuth::getUserId, pitcherIdList));
+        } else if (Objects.equals(gameAuthRole.getAuthType(), GameAuthEnum.OPERATE.getValue())) {
+            //运营权限
+            gameAuthList = super.list(new LambdaQueryWrapper<GameAuth>()
+                    .in(GameAuth::getGameId, userGameTuple2.getT2())
+                    .in(GameAuth::getUserId, pitcherIdList));
+        } else if (sysGameUserGroupRpcVO != null) {
+            //组长权限, 获取组员id, 查询组内所有人
+            Collection<Long> memberUserIdList = sysGameUserGroupRpc.memberUserIds(SecurityUtil.getCompanyId(),
+                    SecurityUtil.getUserId()).getData();
+            List<Long> userIdList = memberUserIdList.stream().filter(pitcherIdList::contains).collect(Collectors.toList());
+            gameAuthList = super.list(new LambdaQueryWrapper<GameAuth>()
+                    .in(GameAuth::getGameId, userGameTuple2.getT2())
+                    .in(GameAuth::getUserId, userIdList));
+        } else {
+            gameAuthList = super.list(new LambdaQueryWrapper<GameAuth>()
+                    .in(GameAuth::getGameId, userGameTuple2.getT2())
+                    .eq(GameAuth::getUserId, SecurityUtil.getUserId()));
+        }
+        return sysUserRpc.getUserNameByIds(gameAuthList.stream().map(GameAuth::getUserId)
+                .distinct().collect(Collectors.toList())
+        ).getData();
+    }
 }

+ 11 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/OrderServiceImpl.java

@@ -7,10 +7,12 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zanxiang.erp.security.util.SecurityUtil;
+import com.zanxiang.game.module.base.ServerInfo;
 import com.zanxiang.game.module.base.pojo.enums.GameAuthEnum;
 import com.zanxiang.game.module.base.pojo.enums.GameCategoryEnum;
 import com.zanxiang.game.module.base.pojo.enums.PayDeviceEnum;
 import com.zanxiang.game.module.base.pojo.enums.PayWayEnum;
+import com.zanxiang.game.module.base.rpc.IOrderServiceRpc;
 import com.zanxiang.game.module.base.util.DateUtils;
 import com.zanxiang.game.module.manage.pojo.dto.*;
 import com.zanxiang.game.module.manage.pojo.params.OrderParam;
@@ -30,6 +32,7 @@ import com.zanxiang.module.util.excel.ExcelUtil;
 import com.zanxiang.module.util.exception.BaseException;
 import com.zanxiang.module.web.util.WebExcelUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboReference;
 import org.apache.logging.log4j.util.Strings;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -77,6 +80,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     @Autowired
     private IGameAuthService gameAuthService;
 
+    @DubboReference(providedBy = ServerInfo.SERVER_SDK_DUBBO_NAME)
+    private IOrderServiceRpc orderServiceRpc;
+
     @Override
     public IPage<UserOrderListVO> orderList(UserOrderListParam param) {
         //执行查询
@@ -312,4 +318,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             return orderVOList.stream().map(orderVO -> BeanUtil.copy(orderVO, OrderExcelVO.class)).collect(Collectors.toList());
         }), ExcelUtil.DEFAULT_MAX_DATA_SIZE);
     }
+
+    @Override
+    public Boolean callCp(String orderId, String payKey) {
+        return orderServiceRpc.orderCpCall(orderId, payKey);
+    }
 }