Преглед изворни кода

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

zhimo пре 1 година
родитељ
комит
c7a04a6130

+ 24 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PromotionDayTotalVO.java

@@ -259,6 +259,24 @@ public class PromotionDayTotalVO {
     @ApiModelProperty(value = "广告总付费成本")
     private BigDecimal totalRechargeCost;
 
+    /**
+     * 新增付费次数成本
+     */
+    @ApiModelProperty(value = "新增付费次数成本 = 消耗 / 新增付费次数")
+    private BigDecimal firstNewUserAmountCountCost;
+
+    /**
+     * 至今付费次数成本
+     */
+    @ApiModelProperty(value = "至今付费次数成本 = 消耗 / 至今付费数")
+    private BigDecimal newUserTotalAmountCountCost;
+
+    /**
+     * 总充值次数成本
+     */
+    @ApiModelProperty(value = "总充值次数成本 = 消耗 / 总充值次数")
+    private BigDecimal totalAmountCountCost;
+
     /**
      * 新增付费ARPPU
      */
@@ -841,6 +859,12 @@ public class PromotionDayTotalVO {
     @ApiModelProperty(value = "付费次数 (应用下载广告数据-付费次数)")
     private Long gamePayCount;
 
+    /**
+     * 付费次数成本
+     */
+    @ApiModelProperty(value = "付费次数成本 = 消耗 / 付费次数")
+    private BigDecimal gamePayCountCost;
+
     /**
      * ltv1 (首日付费金额(attribution_game_in_app_ltv1day) / 注册人数)
      */

+ 24 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/pojo/vo/PromotionDayVO.java

@@ -427,6 +427,24 @@ public class PromotionDayVO {
     @ApiModelProperty(value = "广告总付费成本")
     private BigDecimal totalRechargeCost;
 
+    /**
+     * 新增付费次数成本
+     */
+    @ApiModelProperty(value = "新增付费次数成本 = 消耗 / 新增付费次数")
+    private BigDecimal firstNewUserAmountCountCost;
+
+    /**
+     * 至今付费次数成本
+     */
+    @ApiModelProperty(value = "至今付费次数成本 = 消耗 / 至今付费数")
+    private BigDecimal newUserTotalAmountCountCost;
+
+    /**
+     * 总充值次数成本
+     */
+    @ApiModelProperty(value = "总充值次数成本 = 消耗 / 总充值次数")
+    private BigDecimal totalAmountCountCost;
+
     /**
      * 新增付费ARPPU
      */
@@ -1010,6 +1028,12 @@ public class PromotionDayVO {
     @ApiModelProperty(value = "付费次数 (应用下载广告数据-付费次数)")
     private Long gamePayCount;
 
+    /**
+     * 付费次数成本
+     */
+    @ApiModelProperty(value = "付费次数成本 = 消耗 / 付费次数")
+    private BigDecimal gamePayCountCost;
+
     /**
      * ltv1 (首日付费金额(attribution_game_in_app_ltv1day) / 注册人数)
      */

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

@@ -104,6 +104,10 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
             //将两个对象内容合并
             copyNullProperties(tempVO, vo);
 
+            //总充值次数成本
+            vo.setTotalAmountCountCost(vo.getTotalAmountCount() == 0L ? BigDecimal.ZERO :
+                    vo.getPromotionTotalCost().divide(BigDecimal.valueOf(vo.getTotalAmountCount()), 2, RoundingMode.HALF_UP));
+
             //计算d2(次日)数据
             vo.setD2Trend(PromotionRechargeTrendVO.builder()
                     .roi(vo.getTodayCost().compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO :
@@ -291,6 +295,9 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
         //总付费成本
         vo.setTotalRechargeCost(vo.getTotalAmountNum() == 0L ? BigDecimal.ZERO :
                 vo.getPromotionTotalCost().divide(BigDecimal.valueOf(vo.getTotalAmountNum()), 2, RoundingMode.HALF_UP));
+        //总充值次数成本
+        vo.setTotalAmountCountCost(vo.getTotalAmountCount() == 0L ? BigDecimal.ZERO :
+                vo.getPromotionTotalCost().divide(BigDecimal.valueOf(vo.getTotalAmountCount()), 2, RoundingMode.HALF_UP));
 
         //计算d2,d3,d7,d15数据
         //计算d2(次日)数据
@@ -487,7 +494,7 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
                 	round(if(SUM(click_count) > 0, SUM(today_cost) / SUM(click_count), 0), 2) as avg_click_cost,
                 	round(if(SUM(show_count) > 0, SUM(click_count) / SUM(show_count), 0), 4) as ctr,
                 	SUM(convert_count) as convert_count,
-                	SUM(convert_cost) as convert_cost,
+                	ROUND(IF(SUM(convert_count) > 0, SUM(today_cost) / SUM(convert_count), 0), 2) as convert_cost,
                 	round(if(SUM(click_count) > 0, SUM(convert_count) / SUM(click_count), 0), 4) as convert_rate,
                 	SUM(reg_num) as reg_num,
                 	SUM(first_role_num) as first_role_num,
@@ -547,9 +554,12 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
                     SUM(first_attribution_game_in_app_ltv1day) as first_attribution_game_in_app_ltv1day,
                     ROUND(IF(SUM(today_cost) > 0 , SUM(first_attribution_game_in_app_ltv1day) / SUM(today_cost), 0), 4) as first_attribution_game_in_app_roi1day,
                     SUM(game_pay_count) as game_pay_count,
+                    ROUND(IF(SUM(game_pay_count) > 0, SUM(today_cost) / SUM(game_pay_count), 0), 2) as game_pay_count_cost,
                     ROUND(IF(SUM(reg_num) > 0, SUM(first_attribution_game_in_app_ltv1day) / SUM(reg_num), 0), 2) as ltv_day1,
-                    (SUM(first_new_user_amount_count) - SUM(game_pay_count)) as sub_order_num,
-                    (SUM(first_new_user_amount) - SUM(first_attribution_game_in_app_ltv1day)) as sub_order_amount
+                    (SUM(first_new_user_amount_count) - SUM(first_sub_amount_count)) as sub_order_num,
+                    (SUM(first_new_user_amount) - SUM(first_sub_amount)) as sub_order_amount,
+                    ROUND(IF(SUM(first_new_user_amount_count) > 0, SUM(today_cost) / SUM(first_new_user_amount_count), 0), 2) as first_new_user_amount_count_cost,
+                    ROUND(IF(SUM(new_user_total_amount_count) > 0, SUM(today_cost) / SUM(new_user_total_amount_count), 0), 2) as new_user_total_amount_count_cost
                 FROM
                 	game_ads.ads_promotion_day
                 """;
@@ -606,7 +616,7 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
                 	round(if(SUM(click_count) > 0, SUM(today_cost) / SUM(click_count), 0), 2) as avg_click_cost,
                 	round(if(SUM(show_count) > 0, SUM(click_count) / SUM(show_count), 0), 4) as ctr,
                 	IFNULL(SUM(convert_count), 0) as convert_count,
-                	IFNULL(SUM(convert_cost), 0) as convert_cost,
+                	ROUND(IF(SUM(convert_count) > 0, SUM(today_cost) / SUM(convert_count), 0), 2) as convert_cost,
                 	round(if(SUM(click_count) > 0, SUM(convert_count) / SUM(click_count), 0), 4) as convert_rate,
                 	IFNULL(SUM(reg_num), 0) as reg_num,
                 	IFNULL(SUM(first_role_num), 0) as first_role_num,
@@ -666,9 +676,12 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
                     SUM(first_attribution_game_in_app_ltv1day) as first_attribution_game_in_app_ltv1day,
                     ROUND(IF(SUM(today_cost) > 0 , SUM(first_attribution_game_in_app_ltv1day) / SUM(today_cost), 0), 4) as first_attribution_game_in_app_roi1day,
                     SUM(game_pay_count) as game_pay_count,
+                    ROUND(IF(SUM(game_pay_count) > 0, SUM(today_cost) / SUM(game_pay_count), 0), 2) as game_pay_count_cost,
                     ROUND(IF(SUM(reg_num) > 0, SUM(first_attribution_game_in_app_ltv1day) / SUM(reg_num), 0), 2) as ltv_day1,
-                    (SUM(first_new_user_amount_count) - SUM(game_pay_count)) as sub_order_num,
-                    (SUM(first_new_user_amount) - SUM(first_attribution_game_in_app_ltv1day)) as sub_order_amount
+                    (SUM(first_new_user_amount_count) - SUM(first_sub_amount_count)) as sub_order_num,
+                    (SUM(first_new_user_amount) - SUM(first_sub_amount)) as sub_order_amount,
+                    ROUND(IF(SUM(first_new_user_amount_count) > 0, SUM(today_cost) / SUM(first_new_user_amount_count), 0), 2) as first_new_user_amount_count_cost,
+                    ROUND(IF(SUM(new_user_total_amount_count) > 0, SUM(today_cost) / SUM(new_user_total_amount_count), 0), 2) as new_user_total_amount_count_cost
                 FROM
                 	game_ads.ads_promotion_day
                 """;
@@ -710,4 +723,5 @@ public class PromotionDayServiceImpl implements IAdsPromotionDayService {
                 FROM
                 """;
     }
+
 }

+ 1 - 1
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/SDKApplication.java

@@ -23,7 +23,7 @@ public class SDKApplication {
 
     public static void main(String[] args) {
         SpringApplication.run(SDKApplication.class, args);
-        System.out.println("赞象SDK服务启动成功 <H5微信环境配置控制> ( ´・・)ノ(._.`) \n" +
+        System.out.println("赞象SDK服务启动成功 <解决短信验证码问题> ( ´・・)ノ(._.`) \n" +
                 " ___________ _   __\n" +
                 "/  ___|  _  \\ | / /\n" +
                 "\\ `--.| | | | |/ / \n" +

+ 2 - 3
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/impl/SmsServiceImpl.java

@@ -1,5 +1,6 @@
 package com.zanxiang.game.module.sdk.service.impl;
 
+import cn.hutool.core.util.RandomUtil;
 import com.zanxiang.game.module.base.pojo.enums.HttpStatusEnum;
 import com.zanxiang.game.module.sdk.constant.RedisKeyConstant;
 import com.zanxiang.game.module.sdk.enums.ExpireTimeEnum;
@@ -21,7 +22,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.Objects;
-import java.util.Random;
 
 /**
  * @author : lingfeng
@@ -121,8 +121,7 @@ public class SmsServiceImpl implements ISmsService {
     }
 
     private String randomCode() {
-        Random random = new Random();
-        return String.valueOf(random.nextInt(999999) + 100000);
+        return RandomUtil.randomNumbers(6);
     }
 
     private String smsKey(String mobile, Integer type) {