Browse Source

业务数据导出增加油管、声破天、迪士尼年付续费数据

zoujiajian 2 years ago
parent
commit
72a620b59f

+ 4 - 0
netflix-dao/src/main/java/com/cyksj/mapper/manage/statistics/StatisticsExportMapper.java

@@ -78,4 +78,8 @@ public interface StatisticsExportMapper{
 	Map<String, Long> getEpOrderNumsGroupSource(@Param("startDate") String startDate, @Param("endDate") String endDate);
 
 	Integer getOverPayByGoodsId(@Param("goodsId") Long goodsId, @Param("skuIds") List<Long> skuIds, @Param("lastMonth") String lastMonth, @Param("thisMonth") DateTime thisMonth, @Param("nextMonth") DateTime nextMonth);
+
+	Integer getYearNumOfRenewalsByGoodsId(@Param("goodsId") Long goodsId, @Param("lastElevMonth") String lastElevMonth, @Param("lastYearMonth") String lastYearMonth);
+
+	Integer getActualNumberOfRenewalsByGoodsId(@Param("goodsId") Long goodsId, @Param("lastElevMonth") String lastElevMonth, @Param("lastYearMonth") String lastYearMonth);
 }

+ 18 - 0
netflix-dao/src/main/java/com/cyksj/model/excel/ExcelMonthOrderData.java

@@ -80,6 +80,24 @@ public class ExcelMonthOrderData {
 	@ExcelProperty({"品类数据类", "AI类复购数据", "C.A用户中购买第二单流媒体产品的用户数"})
 	private Integer monthAiNewPayStreamingNumOfUser;
 
+	@ExcelProperty({"品类数据类", "油管年付", "A.应续费人数"})
+	private Integer youtubeNumOfRenewals;
+
+	@ExcelProperty({"品类数据类", "油管年付", "B.实际续费人数"})
+	private Integer youtubeActualNumberOfRenewals;
+
+	@ExcelProperty({"品类数据类", "声破天年付", "A.应续费人数"})
+	private Integer spotifyNumOfRenewals;
+
+	@ExcelProperty({"品类数据类", "声破天年付", "B.实际续费人数"})
+	private Integer spotifyActualNumberOfRenewals;
+
+	@ExcelProperty({"品类数据类", "迪士尼年付", "A.应续费人数"})
+	private Integer disneyNumOfRenewals;
+
+	@ExcelProperty({"品类数据类", "迪士尼年付", "B.实际续费人数"})
+	private Integer disneyActualNumberOfRenewals;
+
 	@ExcelProperty({"用户维度", "当月新用户", "订单量"})
 	private Integer monthlyNewUserOrders;
 

+ 19 - 0
netflix-dao/src/main/resources/mapper/StatisticsExportMapper.xml

@@ -575,4 +575,23 @@
         </if>
         )
     </select>
+
+    <select id="getYearNumOfRenewalsByGoodsId" resultType="java.lang.Integer">
+        select count(distinct user_id)
+        from order_don
+        where created_time BETWEEN #{lastYearMonth} and #{lastElevMonth}
+          and `status` not in ('close', 'noPayment', 'refund')
+          and goods_id = #{goodsId}
+    </select>
+
+    <select id="getActualNumberOfRenewalsByGoodsId" resultType="java.lang.Integer">
+        select count(distinct user_id)
+        from order_don o
+        where created_time BETWEEN #{lastYearMonth} and #{lastElevMonth}
+          and `status` not in ('close', 'noPayment', 'refund')
+          and goods_id = #{goodsId}
+        and exists (select 1 from order_don where created_time > #{lastElevMonth}
+            and `status` not in ('close', 'noPayment', 'refund')
+            and goods_id = #{goodsId} and user_id = o.user_id limit 1)
+    </select>
 </mapper>

+ 22 - 0
netflix-service/src/main/java/com/cyksj/service/mange/statistics/impl/StatisticsDataServiceImpl.java

@@ -615,6 +615,22 @@ public class StatisticsDataServiceImpl implements StatisticsDataService {
 		//超期购买 中间隔断一个月购买的用户数
 		Integer overMjPayNumOfUser = statisticsExportMapper.getOverPayByGoodsId(null, midJourneyMonthSkuId, lastMonth, thisMonth, nextMonth);
 
+		//油管年付
+		Long ybGoodsId = 5l;
+		Integer youtubeNumOfRenewals = statisticsExportMapper.getYearNumOfRenewalsByGoodsId(ybGoodsId, lastElevMonth, lastYearMonth);
+		//实际续费人数
+		Integer youtubeActualNumberOfRenewals = statisticsExportMapper.getActualNumberOfRenewalsByGoodsId(ybGoodsId, lastElevMonth, lastYearMonth);
+		//声破天 续费数据
+		Long spGoodsId = 4l;
+		Integer spotifyNumOfRenewals = statisticsExportMapper.getYearNumOfRenewalsByGoodsId(spGoodsId, lastElevMonth, lastYearMonth);
+		//实际续费人数
+		Integer spotifyActualNumberOfRenewals = statisticsExportMapper.getActualNumberOfRenewalsByGoodsId(spGoodsId, lastElevMonth, lastYearMonth);
+		//迪士尼年付
+		Long dsGoodsId = 3l;
+		Integer disneyNumOfRenewals = statisticsExportMapper.getYearNumOfRenewalsByGoodsId(dsGoodsId, lastElevMonth, lastYearMonth);
+		//实际续费人数
+		Integer disneyActualNumberOfRenewals = statisticsExportMapper.getActualNumberOfRenewalsByGoodsId(dsGoodsId, lastElevMonth, lastYearMonth);
+
 		//流媒体当月首单
 		Integer monthStreamingNewNumOfUser = statisticsExportMapper.getMonthStreamingNewNumOfUser(thisMonth, nextMonth);
 
@@ -689,6 +705,12 @@ public class StatisticsDataServiceImpl implements StatisticsDataService {
 				.setMonthlyNewUserOrdersMoney(monthlyNewUserOrdersMoney)
 				.setMonthlyBeforeUserOrders(monthlyBeforeUserOrders)
 				.setMonthlyBeforeUserOrdersMoney(monthlyBeforeUserOrdersMoney)
+				.setYoutubeNumOfRenewals(youtubeNumOfRenewals)
+				.setYoutubeActualNumberOfRenewals(youtubeActualNumberOfRenewals)
+				.setSpotifyNumOfRenewals(spotifyNumOfRenewals)
+				.setSpotifyActualNumberOfRenewals(spotifyActualNumberOfRenewals)
+				.setDisneyNumOfRenewals(disneyNumOfRenewals)
+				.setDisneyActualNumberOfRenewals(disneyActualNumberOfRenewals)
 				;
 //				.setNfTicketNumOfUser(nfTicketNumOfUser)
 //				.setAiTicketNumOfUser(aiTicketNumOfUser)