소스 검색

APP用户列表页统计数据 未对接广告商先取部分数据

marxjaw 5 달 전
부모
커밋
18ce9a36d3

+ 13 - 4
yt-agent/agent-service/src/main/java/com/ytpm/controller/YtAppUserController.java

@@ -1,15 +1,13 @@
 package com.ytpm.controller;
 
 import com.ytpm.app.param.YtAppUserListParam;
+import com.ytpm.app.view.AppUserStaticsView;
 import com.ytpm.app.view.YtAppUserListView;
 import com.ytpm.general.ResultTable;
 import com.ytpm.service.YtAppUserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-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.annotation.Resource;
 
@@ -31,4 +29,15 @@ public class YtAppUserController {
     public ResultTable<YtAppUserListView> selectAppUserList(@RequestBody YtAppUserListParam param){
         return appUserService.selectAppUserList(param);
     }
+
+    /**
+     * 查询用户广告数据统计列表
+     */
+    @GetMapping("/staticList")
+    @ApiOperation(value = "查询用户广告数据统计列表")
+    public ResultTable<AppUserStaticsView> staticList(){
+        return appUserService.staticList();
+    }
+
+
 }

+ 39 - 0
yt-agent/agent-service/src/main/java/com/ytpm/dao/AgentStaticsMapper.java

@@ -0,0 +1,39 @@
+package com.ytpm.dao;
+
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.math.BigDecimal;
+
+@Mapper
+public interface AgentStaticsMapper {
+    /**
+     * 查询用户数
+     */
+    Integer getUserNum(@Param("format") String format);
+
+    /**
+     * 查询封禁数
+     */
+    Integer getBannedNum(@Param("format") String format);
+
+    /**
+     * 查询提现用户数
+     */
+    Integer getWithdrawNum(@Param("format") String format);
+
+    /**
+     * 查询提现笔数
+     */
+    Integer getWithdrawCount(@Param("format") String format);
+
+    /**
+     * 已发提现金额
+     */
+    BigDecimal getWithdrawSum(@Param("format") String format);
+
+    /**
+     * 总广告数
+     */
+    Integer getVideoWatchCount(@Param("format") String format);
+}

+ 6 - 0
yt-agent/agent-service/src/main/java/com/ytpm/service/YtAppUserService.java

@@ -1,6 +1,7 @@
 package com.ytpm.service;
 
 import com.ytpm.app.param.YtAppUserListParam;
+import com.ytpm.app.view.AppUserStaticsView;
 import com.ytpm.app.view.YtAppUserListView;
 import com.ytpm.general.ResultTable;
 
@@ -12,4 +13,9 @@ public interface YtAppUserService {
      * @return 分页列表
      */
     ResultTable<YtAppUserListView> selectAppUserList(YtAppUserListParam param);
+
+    /**
+     * 查询用户广告数据统计列表
+     */
+    ResultTable<AppUserStaticsView> staticList();
 }

+ 35 - 4
yt-agent/agent-service/src/main/java/com/ytpm/service/impl/YtAppUserServiceImpl.java

@@ -1,20 +1,21 @@
 package com.ytpm.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.ytpm.app.model.YtAppUserLoginRecord;
 import com.ytpm.app.param.YtAppUserListParam;
+import com.ytpm.app.view.AppUserStaticsView;
 import com.ytpm.app.view.YtAppUserListView;
-import com.ytpm.dao.AppUserLoginMapper;
-import com.ytpm.dao.AppUserMapper;
-import com.ytpm.dao.AppVideoWatchMapper;
-import com.ytpm.dao.AppWithdrawMapper;
+import com.ytpm.dao.*;
 import com.ytpm.general.ResultTable;
 import com.ytpm.service.YtAppUserService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 
@@ -32,6 +33,8 @@ public class YtAppUserServiceImpl implements YtAppUserService {
     private AppVideoWatchMapper videoWatchMapper;
     @Resource
     private AppWithdrawMapper withdrawMapper;
+    @Resource
+    private AgentStaticsMapper staticsMapper;
 
 
     /**
@@ -57,6 +60,34 @@ public class YtAppUserServiceImpl implements YtAppUserService {
         return ResultTable.resultTableOk(new PageInfo<YtAppUserListView>(views));
     }
 
+    /**
+     * 查询用户广告数据统计列表
+     */
+    @Override
+    public ResultTable<AppUserStaticsView> staticList() {
+        List<AppUserStaticsView> list = new ArrayList<>();
+        AppUserStaticsView view;
+        List<String> formatList = Arrays.asList("%Y-%m", "%Y-%m-%d");
+        for (String format : formatList) {
+            view = new AppUserStaticsView();
+            view.setStaticsType("%Y-%m".equals(format)?1:2);
+            //用户数
+            view.setUserNum(staticsMapper.getUserNum(format));
+            //封禁用户数
+            view.setBannedNum(staticsMapper.getBannedNum(format));
+            //提现用户数
+            view.setWithdrawNum(staticsMapper.getWithdrawNum(format));
+            //提现笔数
+            view.setWithdrawCount(staticsMapper.getWithdrawCount(format));
+            //已发提现金额
+            view.setWithdrawAmount(staticsMapper.getWithdrawSum(format));
+            //总广告数
+            view.setVideoWatchCount(staticsMapper.getVideoWatchCount(format));
+            list.add(view);
+        }
+        return ResultTable.resultTableOk(new PageInfo<>(list));
+    }
+
     /**
      * 查询用户当日播放视频总数
      */

+ 53 - 0
yt-agent/agent-service/src/main/resources/mapper/AgentStaticsMapper.xml

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ytpm.dao.AgentStaticsMapper">
+
+    <select id="getUserNum" resultType="java.lang.Integer">
+        SELECT
+            count( user_id )
+        FROM
+            yt_app_user
+        WHERE
+            DATE_FORMAT(registry_time,#{format} ) = DATE_FORMAT(NOW(),#{format})
+    </select>
+    <select id="getBannedNum" resultType="java.lang.Integer">
+        SELECT
+            count( user_id )
+        FROM
+            yt_platform_banned
+        WHERE
+            DATE_FORMAT(banned_time,#{format} ) = DATE_FORMAT(NOW(),#{format})
+    </select>
+    <select id="getWithdrawNum" resultType="java.lang.Integer">
+        SELECT
+            count( user_id )
+        FROM
+            yt_app_withdraw_record
+        WHERE
+            DATE_FORMAT(withdraw_time,#{format} ) = DATE_FORMAT(NOW(),#{format})
+    </select>
+    <select id="getWithdrawCount" resultType="java.lang.Integer">
+        SELECT
+            count( * )
+        FROM
+            yt_app_withdraw_record
+        WHERE
+            DATE_FORMAT(withdraw_time,#{format} ) = DATE_FORMAT(NOW(),#{format})
+    </select>
+    <select id="getWithdrawSum" resultType="java.math.BigDecimal">
+        SELECT
+            sum( withdraw_amount )
+        FROM
+            yt_app_withdraw_record
+        WHERE
+            withdraw_status = 1
+            AND DATE_FORMAT(withdraw_time,#{format} ) = DATE_FORMAT(NOW(),#{format})
+    </select>
+    <select id="getVideoWatchCount" resultType="java.lang.Integer">
+        select
+            count(*)
+        from yt_app_video_watch_record
+        where
+            DATE_FORMAT(watch_time,#{format} ) = DATE_FORMAT(NOW(),#{format})
+    </select>
+</mapper>

+ 30 - 0
yt-common/src/main/java/com/ytpm/app/view/AppUserStaticsView.java

@@ -0,0 +1,30 @@
+package com.ytpm.app.view;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+@ApiModel("APP用户数据统计")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class AppUserStaticsView {
+    @ApiModelProperty("用户册数")
+    private Integer userNum;
+    @ApiModelProperty("封禁人数")
+    private Integer bannedNum;
+    @ApiModelProperty("提现人数")
+    private Integer withdrawNum;
+    @ApiModelProperty("提现笔数")
+    private Integer withdrawCount;
+    @ApiModelProperty("已提现金额")
+    private BigDecimal withdrawAmount;
+    @ApiModelProperty("总广告数")
+    private Integer videoWatchCount;
+    @ApiModelProperty("数据类型 1-当月 2-当日")
+    private Integer staticsType;
+}