Bläddra i källkod

修改内容:广告名称模糊查询;ltv接口编写

lth 1 år sedan
förälder
incheckning
738e4aa4b5

+ 14 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/controller/GameDataController.java

@@ -87,4 +87,18 @@ public class GameDataController {
         return ResultVO.ok(gameDataService.getGameDataAgainDay(dto));
     }
 
+    @ApiOperation(value = "LTV数据")
+    //@PreAuthorize(permissionKey = "gameData:adsGameDay:ltv")
+    @PostMapping("/ltv")
+    public ResultVO<Page<LtvDataVO>> getLtvData(@RequestBody LtvDataDTO dto) {
+        return ResultVO.ok(gameDataService.getLtvData(dto));
+    }
+
+    @ApiOperation(value = "LTV数据总计一栏")
+    //@PreAuthorize(permissionKey = "gameData:adsGameDay:ltvTotal")
+    @PostMapping("/ltv/total")
+    public ResultVO<LtvDataTotalVO> getLtvDataTotal(@RequestBody LtvDataTotalDTO dto) {
+        return ResultVO.ok(gameDataService.getLtvTotalData(dto));
+    }
+
 }

+ 70 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/LtvDataDTO.java

@@ -0,0 +1,70 @@
+package com.zanxiang.game.data.serve.pojo.dto;
+
+import com.zanxiang.game.data.serve.pojo.base.BasePage;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDate;
+
+/**
+ * @author tianhua
+ * @time 2023/8/9
+ * @Description 查询LTV数据的条件参数实体
+ **/
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class LtvDataDTO extends BasePage {
+
+    /**
+     * 游戏ID
+     */
+    @ApiModelProperty(notes = "游戏ID")
+    private Long gameId;
+
+    /**
+     * 推广游戏应用类别
+     */
+    @ApiModelProperty(notes = "游戏类别")
+    private Long classify;
+
+    /**
+     * SDK来源
+     */
+    @ApiModelProperty(value = "SDK来源")
+    private String sourceSystem;
+
+    /**
+     * 注册时间(开始)
+     */
+    @ApiModelProperty(notes = "注册开始时间")
+    private LocalDate registeredBeginDate;
+
+    /**
+     * 注册时间(结束)
+     */
+    @ApiModelProperty(notes = "注册结束时间")
+    private LocalDate registeredEndDate;
+
+    /**
+     * 选择展示数据种类
+     */
+    @ApiModelProperty(notes = "选择展示数据种类:buy -> 买量 ; nature -> 自然量 ; total -> 总量")
+    private String tableTypes;
+
+    /**
+     * 排序字段
+     */
+    @ApiModelProperty(notes = "排序字段")
+    private String sortFiled;
+
+    /**
+     * 排序方式:升序asc;降序desc
+     */
+    @ApiModelProperty(notes = "排序方式:升序asc;降序desc")
+    private String sortType;
+}

+ 58 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/dto/LtvDataTotalDTO.java

@@ -0,0 +1,58 @@
+package com.zanxiang.game.data.serve.pojo.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDate;
+
+/**
+ * @author tianhua
+ * @time 2023/8/9
+ * @Description 查询LTV数据总计的条件参数实体
+ **/
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class LtvDataTotalDTO{
+
+    /**
+     * 游戏ID
+     */
+    @ApiModelProperty(notes = "游戏ID")
+    private Long gameId;
+
+    /**
+     * 推广游戏应用类别
+     */
+    @ApiModelProperty(notes = "游戏类别")
+    private Long classify;
+
+    /**
+     * SDK来源
+     */
+    @ApiModelProperty(value = "SDK来源")
+    private String sourceSystem;
+
+    /**
+     * 注册时间(开始)
+     */
+    @ApiModelProperty(notes = "注册开始时间")
+    private LocalDate registeredBeginDate;
+
+    /**
+     * 注册时间(结束)
+     */
+    @ApiModelProperty(notes = "注册结束时间")
+    private LocalDate registeredEndDate;
+
+    /**
+     * 选择展示数据种类
+     */
+    @ApiModelProperty(notes = "选择展示数据种类:buy -> 买量 ; nature -> 自然量 ; total -> 总量")
+    private String tableTypes;
+
+}

+ 812 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/entity/AdsGameFirstNewUserAgainDay.java

@@ -0,0 +1,812 @@
+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;
+
+/**
+ * <p>
+ * 游戏首日充值用户首日注册且充值用户复充趋势
+ * </p>
+ *
+ * @author auto
+ * @since 2023-08-09
+ */
+@Data
+@Table(AdsGameFirstNewUserAgainDay.TABLE_NAME)
+@PK({"dt", "sourceSystem", "gameId", "gameName"})
+public class AdsGameFirstNewUserAgainDay implements Serializable {
+    private static final long serialVersionUID = 1L;
+    public static final String TABLE_NAME = "ads_game_first_new_user_again_day";
+
+    /**
+     * 用户注册时间
+     */
+    private LocalDate dt;
+
+    /**
+     * SDK来源
+     */
+    private String sourceSystem;
+
+    /**
+     * 游戏ID
+     */
+    private Long gameId;
+
+    /**
+     * 游戏名称
+     */
+    private String gameName;
+
+    /**
+     * 游戏类别
+     */
+    @Column
+    private Long classify;
+
+    /**
+     * 首日注册且充值用户复充趋势第1天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa1;
+
+    /**
+     * 首日注册且充值用户复充趋势在第2天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa2;
+
+    /**
+     * 首日注册且充值用户复充趋势在第3天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa3;
+
+    /**
+     * 首日注册且充值用户复充趋势在第4天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa4;
+
+    /**
+     * 首日注册且充值用户复充趋势在第5天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa5;
+
+    /**
+     * 首日注册且充值用户复充趋势在第6天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa6;
+
+    /**
+     * 首日注册且充值用户复充趋势在第7天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa7;
+
+    /**
+     * 首日注册且充值用户复充趋势在第8天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa8;
+
+    /**
+     * 首日注册且充值用户复充趋势在第9天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa9;
+
+    /**
+     * 首日注册且充值用户复充趋势在第10天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa10;
+
+    /**
+     * 首日注册且充值用户复充趋势在第11天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa11;
+
+    /**
+     * 首日注册且充值用户复充趋势在第12天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa12;
+
+    /**
+     * 首日注册且充值用户复充趋势在第13天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa13;
+
+    /**
+     * 首日注册且充值用户复充趋势在第14天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa14;
+
+    /**
+     * 首日注册且充值用户复充趋势在第15天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa15;
+
+    /**
+     * 首日注册且充值用户复充趋势在第16天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa16;
+
+    /**
+     * 首日注册且充值用户复充趋势在第17天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa17;
+
+    /**
+     * 首日注册且充值用户复充趋势在第18天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa18;
+
+    /**
+     * 首日注册且充值用户复充趋势在第19天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa19;
+
+    /**
+     * 首日注册且充值用户复充趋势在第20天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa20;
+
+    /**
+     * 首日注册且充值用户复充趋势在第21天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa21;
+
+    /**
+     * 首日注册且充值用户复充趋势在第22天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa22;
+
+    /**
+     * 首日注册且充值用户复充趋势在第23天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa23;
+
+    /**
+     * 首日注册且充值用户复充趋势在第24天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa24;
+
+    /**
+     * 首日注册且充值用户复充趋势在第25天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa25;
+
+    /**
+     * 首日注册且充值用户复充趋势在第26天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa26;
+
+    /**
+     * 首日注册且充值用户复充趋势在第27天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa27;
+
+    /**
+     * 首日注册且充值用户复充趋势在第28天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa28;
+
+    /**
+     * 首日注册且充值用户复充趋势在第29天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa29;
+
+    /**
+     * 首日注册且充值用户复充趋势在第30天:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againDa30;
+
+    /**
+     * 首日注册且充值用户复充趋势在第2月:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againM2;
+
+    /**
+     * 首日注册且充值用户复充趋势在第3月:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againM3;
+
+    /**
+     * 首日注册且充值用户复充趋势在第4月:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againM4;
+
+    /**
+     * 首日注册且充值用户复充趋势在第5月:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againM5;
+
+    /**
+     * 首日注册且充值用户复充趋势在第6月:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againM6;
+
+    /**
+     * 首日注册且充值用户复充趋势在第7月:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againM7;
+
+    /**
+     * 首日注册且充值用户复充趋势在第8月:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againM8;
+
+    /**
+     * 首日注册且充值用户复充趋势在第9月:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againM9;
+
+    /**
+     * 首日注册且充值用户复充趋势在第10月:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againM10;
+
+    /**
+     * 首日注册且充值用户复充趋势在第11月:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againM11;
+
+    /**
+     * 首日注册且充值用户复充趋势在第1年:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againY1;
+
+    /**
+     * 首日注册且充值的用户至今:充值金额,充值人数,充值占比(总)
+     */
+    @Column
+    private String againTotal;
+
+    /**
+     * 首日注册且充值用户复充趋势第1天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa1;
+
+    /**
+     * 首日注册且充值用户复充趋势在第2天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa2;
+
+    /**
+     * 首日注册且充值用户复充趋势在第3天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa3;
+
+    /**
+     * 首日注册且充值用户复充趋势在第4天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa4;
+
+    /**
+     * 首日注册且充值用户复充趋势在第5天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa5;
+
+    /**
+     * 首日注册且充值用户复充趋势在第6天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa6;
+
+    /**
+     * 首日注册且充值用户复充趋势在第7天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa7;
+
+    /**
+     * 首日注册且充值用户复充趋势在第8天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa8;
+
+    /**
+     * 首日注册且充值用户复充趋势在第9天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa9;
+
+    /**
+     * 首日注册且充值用户复充趋势在第10天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa10;
+
+    /**
+     * 首日注册且充值用户复充趋势在第11天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa11;
+
+    /**
+     * 首日注册且充值用户复充趋势在第12天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa12;
+
+    /**
+     * 首日注册且充值用户复充趋势在第13天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa13;
+
+    /**
+     * 首日注册且充值用户复充趋势在第14天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa14;
+
+    /**
+     * 首日注册且充值用户复充趋势在第15天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa15;
+
+    /**
+     * 首日注册且充值用户复充趋势在第16天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa16;
+
+    /**
+     * 首日注册且充值用户复充趋势在第17天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa17;
+
+    /**
+     * 首日注册且充值用户复充趋势在第18天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa18;
+
+    /**
+     * 首日注册且充值用户复充趋势在第19天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa19;
+
+    /**
+     * 首日注册且充值用户复充趋势在第20天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa20;
+
+    /**
+     * 首日注册且充值用户复充趋势在第21天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa21;
+
+    /**
+     * 首日注册且充值用户复充趋势在第22天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa22;
+
+    /**
+     * 首日注册且充值用户复充趋势在第23天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa23;
+
+    /**
+     * 首日注册且充值用户复充趋势在第24天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa24;
+
+    /**
+     * 首日注册且充值用户复充趋势在第25天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa25;
+
+    /**
+     * 首日注册且充值用户复充趋势在第26天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa26;
+
+    /**
+     * 首日注册且充值用户复充趋势在第27天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa27;
+
+    /**
+     * 首日注册且充值用户复充趋势在第28天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa28;
+
+    /**
+     * 首日注册且充值用户复充趋势在第29天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa29;
+
+    /**
+     * 首日注册且充值用户复充趋势在第30天:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyDa30;
+
+    /**
+     * 首日注册且充值用户复充趋势在第2月:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyM2;
+
+    /**
+     * 首日注册且充值用户复充趋势在第3月:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyM3;
+
+    /**
+     * 首日注册且充值用户复充趋势在第4月:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyM4;
+
+    /**
+     * 首日注册且充值用户复充趋势在第5月:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyM5;
+
+    /**
+     * 首日注册且充值用户复充趋势在第6月:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyM6;
+
+    /**
+     * 首日注册且充值用户复充趋势在第7月:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyM7;
+
+    /**
+     * 首日注册且充值用户复充趋势在第8月:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyM8;
+
+    /**
+     * 首日注册且充值用户复充趋势在第9月:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyM9;
+
+    /**
+     * 首日注册且充值用户复充趋势在第10月:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyM10;
+
+    /**
+     * 首日注册且充值用户复充趋势在第11月:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyM11;
+
+    /**
+     * 首日注册且充值用户复充趋势在第1年:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyY1;
+
+    /**
+     * 首日注册且充值的用户至今:充值金额,充值人数,充值占比(买量)
+     */
+    @Column
+    private String buyTotal;
+
+    /**
+     * 首日注册且充值用户复充趋势第1天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa1;
+
+    /**
+     * 首日注册且充值用户复充趋势在第2天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa2;
+
+    /**
+     * 首日注册且充值用户复充趋势在第3天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa3;
+
+    /**
+     * 首日注册且充值用户复充趋势在第4天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa4;
+
+    /**
+     * 首日注册且充值用户复充趋势在第5天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa5;
+
+    /**
+     * 首日注册且充值用户复充趋势在第6天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa6;
+
+    /**
+     * 首日注册且充值用户复充趋势在第7天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa7;
+
+    /**
+     * 首日注册且充值用户复充趋势在第8天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa8;
+
+    /**
+     * 首日注册且充值用户复充趋势在第9天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa9;
+
+    /**
+     * 首日注册且充值用户复充趋势在第10天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa10;
+
+    /**
+     * 首日注册且充值用户复充趋势在第11天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa11;
+
+    /**
+     * 首日注册且充值用户复充趋势在第12天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa12;
+
+    /**
+     * 首日注册且充值用户复充趋势在第13天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa13;
+
+    /**
+     * 首日注册且充值用户复充趋势在第14天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa14;
+
+    /**
+     * 首日注册且充值用户复充趋势在第15天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa15;
+
+    /**
+     * 首日注册且充值用户复充趋势在第16天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa16;
+
+    /**
+     * 首日注册且充值用户复充趋势在第17天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa17;
+
+    /**
+     * 首日注册且充值用户复充趋势在第18天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa18;
+
+    /**
+     * 首日注册且充值用户复充趋势在第19天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa19;
+
+    /**
+     * 首日注册且充值用户复充趋势在第20天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa20;
+
+    /**
+     * 首日注册且充值用户复充趋势在第21天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa21;
+
+    /**
+     * 首日注册且充值用户复充趋势在第22天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa22;
+
+    /**
+     * 首日注册且充值用户复充趋势在第23天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa23;
+
+    /**
+     * 首日注册且充值用户复充趋势在第24天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa24;
+
+    /**
+     * 首日注册且充值用户复充趋势在第25天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa25;
+
+    /**
+     * 首日注册且充值用户复充趋势在第26天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa26;
+
+    /**
+     * 首日注册且充值用户复充趋势在第27天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa27;
+
+    /**
+     * 首日注册且充值用户复充趋势在第28天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa28;
+
+    /**
+     * 首日注册且充值用户复充趋势在第29天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa29;
+
+    /**
+     * 首日注册且充值用户复充趋势在第30天:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureDa30;
+
+    /**
+     * 首日注册且充值用户复充趋势在第2月:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureM2;
+
+    /**
+     * 首日注册且充值用户复充趋势在第3月:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureM3;
+
+    /**
+     * 首日注册且充值用户复充趋势在第4月:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureM4;
+
+    /**
+     * 首日注册且充值用户复充趋势在第5月:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureM5;
+
+    /**
+     * 首日注册且充值用户复充趋势在第6月:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureM6;
+
+    /**
+     * 首日注册且充值用户复充趋势在第7月:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureM7;
+
+    /**
+     * 首日注册且充值用户复充趋势在第8月:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureM8;
+
+    /**
+     * 首日注册且充值用户复充趋势在第9月:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureM9;
+
+    /**
+     * 首日注册且充值用户复充趋势在第10月:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureM10;
+
+    /**
+     * 首日注册且充值用户复充趋势在第11月:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureM11;
+
+    /**
+     * 首日注册且充值用户复充趋势在第1年:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureY1;
+
+    /**
+     * 首日注册且充值的用户至今:充值金额,充值人数,充值占比(自然量)
+     */
+    @Column
+    private String natureTotal;
+
+
+}
+
+
+

+ 9 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/LtvDataTotalVO.java

@@ -0,0 +1,9 @@
+package com.zanxiang.game.data.serve.pojo.vo;
+
+/**
+ * @author tianhua
+ * @time 2023/8/9
+ * @Description
+ **/
+public class LtvDataTotalVO {
+}

+ 244 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/LtvDataVO.java

@@ -0,0 +1,244 @@
+package com.zanxiang.game.data.serve.pojo.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+/**
+ * @author tianhua
+ * @time 2023/8/9
+ * @Description ltv数据展示实体
+ **/
+@Data
+public class LtvDataVO {
+
+    /**
+     * 游戏ID
+     */
+    @ApiModelProperty(value = "游戏ID")
+    private Long gameId;
+
+    /**
+     * 推广游戏名称
+     */
+    @ApiModelProperty(value = "游戏名称")
+    private String gameName;
+
+    /**
+     * 推广游戏应用类型
+     */
+    @ApiModelProperty(value = "游戏类型")
+    private Long gameClassify;
+
+    /**
+     * SDK来源
+     */
+    @ApiModelProperty(value = "SDK来源")
+    private String sourceSystem;
+
+    /**
+     * 注册时间
+     */
+    @ApiModelProperty(value = "注册时间(消耗时间)")
+    private LocalDate costDate;
+
+    /**
+     * 消耗
+     */
+    @ApiModelProperty(value = "消耗")
+    private BigDecimal cost;
+
+    /**
+     * 注册人数
+     */
+    @ApiModelProperty(value = "注册人数")
+    private Long regNum;
+
+    /**
+     * 首日新用户充值次数(总量)
+     */
+    @ApiModelProperty(value = "首日新用户充值次数(总量)")
+    private Long firstNewUserAmountCount;
+
+    /**
+     * 首日新用户充值人数(总量)
+     */
+    @ApiModelProperty(value = "首日新用户充值人数(总量)")
+    private Long firstNewUserAmountNum;
+
+    /**
+     * 首日新用户充值金额(总量)
+     */
+    @ApiModelProperty(value = "首日新用户充值金额(总量)")
+    private BigDecimal firstNewUserAmount;
+
+    /**
+     * 老用户充值次数(总量)
+     */
+    @ApiModelProperty(value = "老用户充值次数(总量)")
+    private Long oldUserCount;
+
+    /**
+     * 老用户充值人数(总量)
+     */
+    @ApiModelProperty(value = "老用户充值人数(总量)")
+    private Long oldUserNum;
+
+    /**
+     * 老用户充值金额(总量)
+     */
+    @ApiModelProperty(value = "老用户充值金额(总量)")
+    private BigDecimal oldUserAmount;
+
+    /**
+     * 账面充值次数(总量)
+     */
+    @ApiModelProperty(value = "账面充值次数(总量)")
+    private Long amountCount;
+
+    /**
+     * 账面充值人数(总量)
+     */
+    @ApiModelProperty(value = "账面充值人数(总量)")
+    private Long amountNum;
+
+    /**
+     * 账面充值金额(总量)
+     */
+    @ApiModelProperty(value = "账面充值金额(总量)")
+    private BigDecimal amount;
+
+    /**
+     * 新用户累计充值次数(总量)
+     */
+    @ApiModelProperty(value = "新用户累计充值次数(总量)")
+    private Long newUserTotalAmountCount;
+
+    /**
+     * 新用户累计充值人数(总量)
+     */
+    @ApiModelProperty(value = "新用户累计充值人数(总量)")
+    private Long newUserTotalAmountNum;
+
+    /**
+     * 新用户累计充值金额(总量)
+     */
+    @ApiModelProperty(value = "新用户累计充值金额(总量)")
+    private BigDecimal newUserTotalAmount;
+
+    /**
+     * 首日Roi(总量)
+     */
+    @ApiModelProperty(value = "首日Roi(总量)")
+    private BigDecimal firstRoi;
+
+    @ApiModelProperty(value = "首日付费率(总)")
+    private BigDecimal firstAmountRate;
+
+    @ApiModelProperty(value = "当天付费率(总)")
+    private BigDecimal todayAmountRate;
+
+    /**
+     * 新用户付费比(总量)
+     */
+    @ApiModelProperty(value = "新用户付费比(总量)")
+    private BigDecimal newUserRate;
+
+    /**
+     * 首日客单价(总量)
+     */
+    @ApiModelProperty(value = "首日客单价(总量)")
+    private BigDecimal firstAvgAmount;
+
+    /**
+     * 当天客单价(总量)
+     */
+    @ApiModelProperty(value = "当天客单价(总量)")
+    private BigDecimal todayAvgAmount;
+
+    /**
+     * 账面客单价(总量)
+     */
+    @ApiModelProperty(value = "账面客单价(总量)")
+    private BigDecimal avgAmount;
+
+    /**
+     * 复充率(总量)
+     */
+    @ApiModelProperty(value = "复充率(总量)")
+    private BigDecimal userAgainRate;
+
+    /**
+     * 新增注册ARPU(总量)
+     */
+    @ApiModelProperty(value = "新增注册ARPU(总量)")
+    private BigDecimal regUserArpu;
+
+    /**
+     * 首日付费ARPU(总量)
+     */
+    @ApiModelProperty(value = "首日付费ARPU(总量)")
+    private BigDecimal firstAmountArpu;
+
+    /**
+     * 当天付费ARPU(总量)
+     */
+    @ApiModelProperty(value = "当天付费ARPU(总量)")
+    private BigDecimal todayAmountArpu;
+
+    /**
+     * 账面ARPU(总量)
+     */
+    @ApiModelProperty(value = "账面ARPU(总量)")
+    private BigDecimal amountArpu;
+
+    @ApiModelProperty(value = "注册成本(总量) = 消耗 / 注册人数")
+    private BigDecimal regCost;
+
+    @ApiModelProperty(value = "总回收率(总量) = 新用户累计充值金额 / 消耗")
+    private BigDecimal totalRoi;
+
+    @ApiModelProperty(value = "首日充值成本(总量) = 消耗 / 首日新用户充值人数")
+    private BigDecimal firstNewUserRechargeCost;
+
+    @ApiModelProperty(value = "总充值成本(总量) = 消耗 / 新用户累计充值人数")
+    private BigDecimal totalRechargeCost;
+
+    @ApiModelProperty(value = "单日付费100+人数(总量)")
+    private Long hundredUserNum;
+
+    @ApiModelProperty(value = "单日付费100+成本 = 消耗 / 单日付费100+人数(总量)")
+    private BigDecimal hundredUserNumCost;
+
+    @ApiModelProperty(value = "首日创角人数(总量)")
+    private Long firstRoleNum;
+
+    @ApiModelProperty(value = "创角人数(总量)")
+    private Long roleNum;
+
+    @ApiModelProperty(value = "新用户累计创角人数(总量)")
+    private Long newUserTotalRoleNum;
+
+    @ApiModelProperty(value = "首日创角人数成本(总量)")
+    private BigDecimal firstRoleNumCost;
+
+    @ApiModelProperty(value = "创角人数成本(总量)")
+    private BigDecimal roleNumCost;
+
+    @ApiModelProperty(value = "新用户累计创角人数成本(总量)")
+    private BigDecimal newUserTotalRoleNumCost;
+
+    @ApiModelProperty(value = "首日创角率(总量)")
+    private BigDecimal firstRoleNumRate;
+
+    @ApiModelProperty(value = "创角率(总量)")
+    private BigDecimal roleNumRate;
+
+    @ApiModelProperty(value = "新用户累计创角率(总量)")
+    private BigDecimal newUserTotalRoleNumRate;
+
+
+
+}

+ 15 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/IGameDataService.java

@@ -54,4 +54,19 @@ public interface IGameDataService {
 
 
     Page<GameDataH5VO> getH5Recharge(GameDataH5DTO dto);
+
+    /**
+     * ltv数据
+     * @param dto
+     * @return
+     */
+    Page<LtvDataVO> getLtvData(LtvDataDTO dto);
+
+    /**
+     * ltv数据总计一栏
+     * @param dto
+     * @return
+     */
+    LtvDataTotalVO getLtvTotalData(LtvDataTotalDTO dto);
+
 }

+ 66 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/GameDataServiceImpl.java

@@ -2928,6 +2928,72 @@ public class GameDataServiceImpl implements IGameDataService {
         return new Page<>(gameDataH5VOList, pager);
     }
 
+    /**
+     * ltv数据
+     * @param dto 前端查询条件参数实体
+     * @return 分页数据
+     */
+    @Override
+    public Page<LtvDataVO> getLtvData(LtvDataDTO dto) {
+        if (dto.getRegisteredBeginDate() == null || dto.getRegisteredEndDate() == null) {
+            //查询时间不传递默认传递当天
+            dto.setRegisteredBeginDate(LocalDate.now());
+            dto.setRegisteredEndDate(LocalDate.now());
+        }
+        //如果没有排序条件给默认值
+        if (StringUtils.isBlank(dto.getSortFiled())) {
+            dto.setSortFiled("dt");
+        }
+        if (StringUtils.isBlank(dto.getSortType())) {
+            dto.setSortType(OrderByEnum.DESC.getOrderType());
+        }
+        //默认查询总数据
+        if (StringUtils.isBlank(dto.getTableTypes())) {
+            dto.setTableTypes("total");
+        }
+        //创建查询条件
+        Criteria cri = Cnd.cri();
+        //拼接游戏ID
+        if (dto.getGameId() != null) {
+            cri.where().andEquals("game_id", dto.getGameId());
+        }
+        //拼接游戏应用类型
+        if (dto.getClassify() != null) {
+            cri.where().andEquals("classify", dto.getClassify());
+        }
+        //拼接SDK来源
+        if (StringUtils.isNotBlank(dto.getSourceSystem())) {
+            cri.where().andEquals("source_system", dto.getSourceSystem());
+        }
+        //拼接查询时间
+        if (dto.getRegisteredBeginDate() != null && dto.getRegisteredEndDate() != null) {
+            cri.where().andBetween("dt", dto.getRegisteredBeginDate(), dto.getRegisteredEndDate());
+        }
+
+        //创建sql查询数据
+        Sql sql = Sqls.create("""
+                """);
+        //设置自定义回传类型
+        sql.setCallback(Sqls.callback.entities());
+        sql.setEntity(dao.getEntity(LtvDataVO.class));
+        //设置pager对象
+        Pager pager = dao.createPager(dto.getPageNum(), dto.getPageSize());
+        sql.setPager(pager);
+        //执行sql
+        dao.execute(sql);
+        //得到结果集list
+        List<LtvDataVO> list = sql.getList(LtvDataVO.class);
+        //设置查询总数
+        pager.setRecordCount(dao.count(AdsGameDay.class, cri));
+
+        return new Page<>(list, pager);
+    }
+
+    @Override
+    public LtvDataTotalVO getLtvTotalData(LtvDataTotalDTO dto) {
+        return null;
+    }
+
     private List<H5NatureUserVO> getH5NatureUserVOList(GameDataH5DTO dto, Map<String, Object> importDayNMap, GameDataH5VO item) {
         Sql natureGameSql = Sqls.queryEntity("""
                 select

+ 4 - 4
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/PromotionDayServiceImpl.java

@@ -419,8 +419,8 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
             cri.where().andEquals("account_id", dto.getAccountId());
         }
         if (StringUtils.isNotBlank(dto.getAccountName())) {
-            //拼接推广账号名称查询条件
-            cri.where().andEquals("account_name", dto.getAccountName());
+            //拼接推广账号名称查询条件 模糊查询
+            cri.where().andLike("account_name", dto.getAccountName());
         }
         if (StringUtils.isNotBlank(dto.getAccountType())) {
             //推广账号类型
@@ -442,7 +442,7 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
             cri.where().andEquals("classify", dto.getClassify());
         }
         if (StringUtils.isNotBlank(dto.getPromotionName())) {
-            cri.where().andEquals("promotion_name", dto.getPromotionName());
+            cri.where().andLike("promotion_name", dto.getPromotionName());
         }
         if (dto.getPromotionId() != null) {
             cri.where().andEquals("promotion_id", dto.getPromotionId());
@@ -451,7 +451,7 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
             cri.where().andEquals("status", dto.getStatus());
         }
         if (StringUtils.isNotBlank(dto.getProjectName())) {
-            cri.where().andEquals("project_name", dto.getProjectName());
+            cri.where().andLike("project_name", dto.getProjectName());
         }
         if (dto.getProjectId() != null) {
             cri.where().andEquals("project_id", dto.getProjectId());