Jelajahi Sumber

修改内容:GS角色付费留存

shishaosong 9 bulan lalu
induk
melakukan
ea753818e7

+ 12 - 0
game-gs-data/game-gs-data-serve/src/main/java/com/zanxiang/game/gs/data/serve/controller/GameParentController.java

@@ -2,9 +2,12 @@ package com.zanxiang.game.gs.data.serve.controller;
 
 import com.mybatisflex.core.row.Row;
 import com.zanxiang.game.gs.data.serve.pojo.dto.BigRDTO;
+import com.zanxiang.game.gs.data.serve.pojo.dto.RolePayDTO;
 import com.zanxiang.game.gs.data.serve.pojo.vo.BigRVO;
 import com.zanxiang.game.gs.data.serve.pojo.vo.PageVO;
+import com.zanxiang.game.gs.data.serve.pojo.vo.RolePayVO;
 import com.zanxiang.game.gs.data.serve.service.IAdsRoleAmountDataParentService;
+import com.zanxiang.game.gs.data.serve.service.IAdsRoleAmountRateParentService;
 import com.zanxiang.module.util.pojo.ResultVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -22,6 +25,8 @@ import javax.annotation.Resource;
 public class GameParentController {
     @Resource
     private IAdsRoleAmountDataParentService adsRoleAmountDataParentService;
+    @Resource
+    private IAdsRoleAmountRateParentService adsRoleAmountRateParentService;
 
     @ApiOperation(value = "大R每日充值比")
 //    @PreAuthorize(permissionKey = "gameGs:bigR:list")
@@ -30,4 +35,11 @@ public class GameParentController {
         return ResultVO.ok(adsRoleAmountDataParentService.bigRListOfPage(dto));
     }
 
+    @ApiOperation(value = "GS角色付费留存")
+//    @PreAuthorize(permissionKey = "gameGs:rolePay:list")
+    @PostMapping("/role/pay/retained/listOfPage")
+    public ResultVO<PageVO<RolePayVO, Row>> rolePay(@Validated @RequestBody RolePayDTO dto) {
+        return ResultVO.ok(adsRoleAmountRateParentService.rolePayOfPage(dto));
+    }
+
 }

+ 2 - 0
game-gs-data/game-gs-data-serve/src/main/java/com/zanxiang/game/gs/data/serve/dao/mapper/game/order/GameServerSonMergeMapper.java

@@ -1,5 +1,6 @@
 package com.zanxiang.game.gs.data.serve.dao.mapper.game.order;
 
+import com.mybatisflex.annotation.UseDataSource;
 import com.zanxiang.game.gs.data.serve.pojo.entity.game.order.GameServerSonMerge;
 import com.mybatisflex.core.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
@@ -11,6 +12,7 @@ import org.apache.ibatis.annotations.Mapper;
  * @since 1.0
  */
 @Mapper
+@UseDataSource("game_order")
 public interface GameServerSonMergeMapper extends BaseMapper<GameServerSonMerge> {
 
 

+ 19 - 0
game-gs-data/game-gs-data-serve/src/main/java/com/zanxiang/game/gs/data/serve/dao/mapper/game/parent/AdsRoleAmountRateParentMapper.java

@@ -0,0 +1,19 @@
+package com.zanxiang.game.gs.data.serve.dao.mapper.game.parent;
+
+import com.mybatisflex.annotation.UseDataSource;
+import com.zanxiang.game.gs.data.serve.pojo.entity.game.parent.AdsRoleAmountRateParent;
+import com.mybatisflex.core.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 游戏GS管理-GS角色付费留存 映射层。
+ *
+ * @author shaosong
+ * @since 1.0
+ */
+@Mapper
+@UseDataSource("game_ads_parent")
+public interface AdsRoleAmountRateParentMapper extends BaseMapper<AdsRoleAmountRateParent> {
+
+
+}

+ 29 - 0
game-gs-data/game-gs-data-serve/src/main/java/com/zanxiang/game/gs/data/serve/pojo/dto/RolePayDTO.java

@@ -0,0 +1,29 @@
+package com.zanxiang.game.gs.data.serve.pojo.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotNull;
+import java.time.LocalDate;
+import java.util.List;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class RolePayDTO extends BaseListDTO {
+    @NotNull(message = "SDK来源必填")
+    @ApiModelProperty(notes = "必填:SDK来源;默认ZX_ONE")
+    private String sourceSystem;
+    @ApiModelProperty("排序字段")
+    private String sortFiled;
+    @ApiModelProperty("排序类型:升序 true;降序 false")
+    private Boolean sortAsc = true;
+
+    @ApiModelProperty("指派日期开始")
+    private LocalDate dtBegin;
+    @ApiModelProperty("指派日期结束")
+    private LocalDate dtEnd;
+    @ApiModelProperty("gs id 列表")
+    private List<Long> gsIdList;
+
+}

+ 683 - 0
game-gs-data/game-gs-data-serve/src/main/java/com/zanxiang/game/gs/data/serve/pojo/entity/game/parent/AdsRoleAmountRateParent.java

@@ -0,0 +1,683 @@
+package com.zanxiang.game.gs.data.serve.pojo.entity.game.parent;
+
+import lombok.Data;
+import lombok.AllArgsConstructor;
+import lombok.NoArgsConstructor;
+import lombok.Builder;
+import com.mybatisflex.annotation.Column;
+import com.mybatisflex.annotation.Table;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.lang.String;
+import java.lang.Integer;
+
+/**
+ * 游戏GS管理-GS角色付费留存 实体类。
+ *
+ * @author shaosong
+ * @since 1.0
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Table(value = "ads_role_amount_rate_parent")
+public class AdsRoleAmountRateParent {
+
+    /**
+     * gsID
+     */
+    @Column(value = "gs_id")
+    private Integer gsId;
+
+    /**
+     * gs开始管理时间
+     */
+    @Column(value = "dt")
+    private LocalDate dt;
+
+    /**
+     * 付费角色数量
+     */
+    @Column(value = "role_amount_num")
+    private Integer roleAmountNum;
+
+    /**
+     * 付费次数
+     */
+    @Column(value = "order_count")
+    private Integer orderCount;
+
+    /**
+     * 付费金额
+     */
+    @Column(value = "total_amount")
+    private BigDecimal totalAmount;
+
+    /**
+     * 指派角色数量
+     */
+    @Column(value = "role_num")
+    private Integer roleNum;
+
+    /**
+     * ARPPU(人均付费金额)=付费金额/付费角色数量
+     */
+    @Column(value = "gs_arppu")
+    private BigDecimal gsArppu;
+
+    /**
+     * 客单价(平均每次付费金额)=付费金额/付费次数
+     */
+    @Column(value = "gs_avg")
+    private BigDecimal gsAvg;
+
+    /**
+     * 付费率=付费角色数量/指派角色数量
+     */
+    @Column(value = "gs_rate")
+    private BigDecimal gsRate;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da1")
+    private String da1;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da2")
+    private String da2;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da3")
+    private String da3;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da4")
+    private String da4;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da5")
+    private String da5;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da6")
+    private String da6;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da7")
+    private String da7;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da8")
+    private String da8;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da9")
+    private String da9;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da10")
+    private String da10;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da11")
+    private String da11;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da12")
+    private String da12;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da13")
+    private String da13;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da14")
+    private String da14;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da15")
+    private String da15;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da16")
+    private String da16;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da17")
+    private String da17;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da18")
+    private String da18;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da19")
+    private String da19;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da20")
+    private String da20;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da21")
+    private String da21;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da22")
+    private String da22;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da23")
+    private String da23;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da24")
+    private String da24;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da25")
+    private String da25;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da26")
+    private String da26;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da27")
+    private String da27;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da28")
+    private String da28;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da29")
+    private String da29;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da30")
+    private String da30;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da31")
+    private String da31;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da32")
+    private String da32;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da33")
+    private String da33;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da34")
+    private String da34;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da35")
+    private String da35;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da36")
+    private String da36;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da37")
+    private String da37;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da38")
+    private String da38;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da39")
+    private String da39;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da40")
+    private String da40;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da41")
+    private String da41;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da42")
+    private String da42;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da43")
+    private String da43;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da44")
+    private String da44;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da45")
+    private String da45;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da46")
+    private String da46;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da47")
+    private String da47;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da48")
+    private String da48;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da49")
+    private String da49;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da50")
+    private String da50;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da51")
+    private String da51;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da52")
+    private String da52;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da53")
+    private String da53;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da54")
+    private String da54;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da55")
+    private String da55;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da56")
+    private String da56;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da57")
+    private String da57;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da58")
+    private String da58;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da59")
+    private String da59;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da60")
+    private String da60;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da61")
+    private String da61;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da62")
+    private String da62;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da63")
+    private String da63;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da64")
+    private String da64;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da65")
+    private String da65;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da66")
+    private String da66;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da67")
+    private String da67;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da68")
+    private String da68;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da69")
+    private String da69;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da70")
+    private String da70;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da71")
+    private String da71;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da72")
+    private String da72;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da73")
+    private String da73;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da74")
+    private String da74;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da75")
+    private String da75;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da76")
+    private String da76;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da77")
+    private String da77;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da78")
+    private String da78;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da79")
+    private String da79;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da80")
+    private String da80;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da81")
+    private String da81;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da82")
+    private String da82;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da83")
+    private String da83;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da84")
+    private String da84;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da85")
+    private String da85;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da86")
+    private String da86;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da87")
+    private String da87;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da88")
+    private String da88;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da89")
+    private String da89;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "da90")
+    private String da90;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "m4")
+    private String m4;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "m5")
+    private String m5;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "m6")
+    private String m6;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "m7")
+    private String m7;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "m8")
+    private String m8;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "m9")
+    private String m9;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "m10")
+    private String m10;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "m11")
+    private String m11;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "m12")
+    private String m12;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @Column(value = "total")
+    private String total;
+
+
+}

+ 574 - 0
game-gs-data/game-gs-data-serve/src/main/java/com/zanxiang/game/gs/data/serve/pojo/vo/RolePayVO.java

@@ -0,0 +1,574 @@
+package com.zanxiang.game.gs.data.serve.pojo.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+@Data
+public class RolePayVO {
+
+    /**
+     * gsID
+     */
+    @ApiModelProperty("gsID")
+    private Long gsId;
+
+    @ApiModelProperty("gs 名称")
+    private String gsName;
+
+    /**
+     * gs开始管理时间
+     */
+    @ApiModelProperty("gs指派日期")
+    private LocalDate dt;
+
+    @ApiModelProperty("至今服务天数:当前时间-指派日期")
+    private long dtDiff;
+
+    /**
+     * 指派角色数量
+     */
+    @ApiModelProperty("指派角色数量")
+    private Integer roleNum;
+
+    /**
+     * 付费角色数量
+     */
+    @ApiModelProperty("付费角色数量")
+    private Integer roleAmountNum;
+
+    /**
+     * 付费次数
+     */
+    @ApiModelProperty("付费次数")
+    private Integer orderCount;
+
+    /**
+     * 付费金额
+     */
+    @ApiModelProperty("付费金额")
+    private BigDecimal totalAmount;
+
+    /**
+     * ARPPU(人均付费金额)=付费金额/付费角色数量
+     */
+    @ApiModelProperty("ARPPU(人均付费金额)")
+    private BigDecimal gsArppu;
+
+    /**
+     * 客单价(平均每次付费金额)=付费金额/付费次数
+     */
+    @ApiModelProperty("客单价(平均每次付费金额)")
+    private BigDecimal gsAvg;
+
+    /**
+     * 付费率=付费角色数量/指派角色数量
+     */
+    @ApiModelProperty("付费率")
+    private BigDecimal gsRate;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    @ApiModelProperty("day1 : 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率")
+    private String da1;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da2;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da3;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da4;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da5;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da6;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da7;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da8;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da9;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da10;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da11;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da12;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da13;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da14;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da15;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da16;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da17;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da18;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da19;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da20;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da21;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da22;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da23;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da24;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da25;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da26;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da27;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da28;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da29;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da30;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da31;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da32;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da33;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da34;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da35;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da36;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da37;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da38;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da39;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da40;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da41;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da42;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da43;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da44;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da45;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da46;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da47;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da48;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da49;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da50;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da51;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da52;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da53;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da54;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da55;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da56;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da57;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da58;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da59;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da60;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da61;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da62;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da63;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da64;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da65;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da66;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da67;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da68;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da69;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da70;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da71;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da72;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da73;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da74;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da75;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da76;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da77;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da78;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da79;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da80;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da81;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da82;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da83;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da84;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da85;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da86;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da87;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da88;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da89;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String da90;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String m4;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String m5;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String m6;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String m7;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String m8;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String m9;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String m10;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String m11;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String m12;
+
+    /**
+     * 活跃人数/付费人数/付费累计人数/付费金额/付费率/活跃留存率/付费留存率
+     */
+    private String total;
+
+
+}

+ 20 - 0
game-gs-data/game-gs-data-serve/src/main/java/com/zanxiang/game/gs/data/serve/service/IAdsRoleAmountRateParentService.java

@@ -0,0 +1,20 @@
+package com.zanxiang.game.gs.data.serve.service;
+
+
+import com.mybatisflex.core.row.Row;
+import com.zanxiang.game.gs.data.serve.pojo.dto.RolePayDTO;
+import com.zanxiang.game.gs.data.serve.pojo.entity.game.parent.AdsRoleAmountRateParent;
+import com.mybatisflex.core.service.IService;
+import com.zanxiang.game.gs.data.serve.pojo.vo.PageVO;
+import com.zanxiang.game.gs.data.serve.pojo.vo.RolePayVO;
+
+/**
+ * 游戏GS管理-GS角色付费留存 服务层。
+ *
+ * @author shaosong
+ * @since 1.0
+ */
+public interface IAdsRoleAmountRateParentService extends IService<AdsRoleAmountRateParent> {
+
+    PageVO<RolePayVO, Row> rolePayOfPage(RolePayDTO dto);
+}

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

@@ -0,0 +1,66 @@
+package com.zanxiang.game.gs.data.serve.service.impl;
+
+
+import com.mybatisflex.core.paginate.Page;
+import com.mybatisflex.core.query.QueryWrapper;
+import com.mybatisflex.core.row.Row;
+import com.zanxiang.game.gs.data.serve.pojo.dto.RolePayDTO;
+import com.zanxiang.game.gs.data.serve.pojo.vo.PageVO;
+import com.zanxiang.game.gs.data.serve.pojo.vo.RolePayVO;
+import com.zanxiang.game.gs.data.serve.service.ISysUserService;
+import com.zanxiang.module.util.DateUtil;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Service;
+import com.zanxiang.game.gs.data.serve.service.IAdsRoleAmountRateParentService;
+import com.zanxiang.game.gs.data.serve.pojo.entity.game.parent.AdsRoleAmountRateParent;
+import com.zanxiang.game.gs.data.serve.dao.mapper.game.parent.AdsRoleAmountRateParentMapper;
+import com.mybatisflex.spring.service.impl.ServiceImpl;
+
+import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import static com.zanxiang.game.gs.data.serve.pojo.entity.game.parent.table.AdsRoleAmountDataParentTableDef.ADS_ROLE_AMOUNT_DATA_PARENT;
+import static com.zanxiang.game.gs.data.serve.pojo.entity.game.parent.table.AdsRoleAmountRateParentTableDef.ADS_ROLE_AMOUNT_RATE_PARENT;
+
+/**
+ * 游戏GS管理-GS角色付费留存 服务层实现。
+ *
+ * @author shaosong
+ * @since 1.0
+ */
+@Service
+public class AdsRoleAmountRateParentServiceImpl extends ServiceImpl<AdsRoleAmountRateParentMapper, AdsRoleAmountRateParent> implements IAdsRoleAmountRateParentService {
+    @Resource
+    private ISysUserService sysUserService;
+
+    @Override
+    public PageVO<RolePayVO, Row> rolePayOfPage(RolePayDTO dto) {
+        QueryWrapper rolePayWrapper = getRolePayWrapper(dto);
+        Page<RolePayVO> paginate = getMapper().paginateAs(dto.getPageNum(), dto.getPageSize(), rolePayWrapper, RolePayVO.class);
+        if (0 == paginate.getTotalRow()) {
+            return PageVO.empty(dto);
+        }
+        List<RolePayVO> records = paginate.getRecords();
+        Set<Long> gsIdList = records.stream().map(RolePayVO::getGsId).collect(Collectors.toSet());
+        //GS名称查询
+        Map<Long, String> sysUserMap = CollectionUtils.isEmpty(gsIdList) ? null : sysUserService.getSysUserMap(gsIdList);
+        records.forEach(item -> {
+            item.setGsName(sysUserMap != null ? sysUserMap.get(item.getGsId()) : null);
+            item.setDtDiff(DateUtil.intervalOfDays(item.getDt(), LocalDate.now()));
+        });
+        return new PageVO<>(paginate);
+    }
+
+    private QueryWrapper getRolePayWrapper(RolePayDTO dto) {
+        return QueryWrapper.create()
+                .select(ADS_ROLE_AMOUNT_RATE_PARENT.ALL_COLUMNS)
+                .ge(AdsRoleAmountRateParent::getDt, dto.getDtBegin(), null != dto.getDtBegin())
+                .le(AdsRoleAmountRateParent::getDt, dto.getDtEnd(), null != dto.getDtEnd())
+                .in(AdsRoleAmountRateParent::getGsId, dto.getGsIdList(), CollectionUtils.isNotEmpty(dto.getGsIdList()))
+                .orderBy(dto.getSortFiled(), dto.getSortAsc());
+    }
+}