Quellcode durchsuchen

增加按时间统计总收益接口

marxjaw vor 3 Monaten
Ursprung
Commit
1d834acb35

+ 8 - 0
yt-agent/agent-service/src/main/java/com/ytpm/controller/YtAppUserController.java

@@ -6,6 +6,7 @@ import com.ytpm.app.param.YtAppUserListParam;
 import com.ytpm.app.view.AppUserStaticsView;
 import com.ytpm.app.view.YtAppUserListView;
 import com.ytpm.app.view.YtUserEcpmListView;
+import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
 import com.ytpm.service.YtAppUserService;
 import io.swagger.annotations.Api;
@@ -19,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 
 @Api(tags = "APP应用管理模块")
 @RestController
@@ -39,6 +41,12 @@ public class YtAppUserController {
         return appUserService.selectAppUserList(param, userInfo);
     }
 
+    @PostMapping("/getRevenueByTime")
+    @ApiOperation(value = "根据时间获取收益")
+    public Result<BigDecimal> getRevenueByTime(@RequestBody YtAppUserListParam param, @AuthenticationPrincipal AgentUserInfo userInfo) {
+        return appUserService.getRevenueByTime(param, userInfo.getUserId());
+    }
+
     /**
      * 查询用户广告数据统计列表
      */

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

@@ -8,6 +8,8 @@ import com.ytpm.app.view.YtUserEcpmListView;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
 
+import java.math.BigDecimal;
+
 
 public interface YtAppUserService {
     /**
@@ -26,4 +28,9 @@ public interface YtAppUserService {
      * 查询用户的ecpm列表
      */
     ResultTable<YtUserEcpmListView> ecpmList(String userId,Integer adsourceType);
+
+    /**
+     * 根据时间统计收益
+     */
+    Result<BigDecimal> getRevenueByTime(YtAppUserListParam param, String userId);
 }

+ 16 - 0
yt-agent/agent-service/src/main/java/com/ytpm/service/impl/YtAppUserServiceImpl.java

@@ -18,11 +18,13 @@ import com.ytpm.dao.AppUserLoginMapper;
 import com.ytpm.dao.AppVideoWatchMapper;
 import com.ytpm.dao.AppWithdrawMapper;
 import com.ytpm.feign.AppFeign;
+import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
 import com.ytpm.service.YtAppUserService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -135,6 +137,20 @@ public class YtAppUserServiceImpl implements YtAppUserService {
         return ResultTable.resultTableOk(new PageInfo<>(data));
     }
 
+    /**
+     * 根据时间统计收益
+     */
+    @Override
+    public Result<BigDecimal> getRevenueByTime(YtAppUserListParam param, String userId) {
+        List<YtApp> ytApps = appMapper.queryAll(userId);
+        if(CollUtil.isEmpty(ytApps)) {
+            return Result.resultObjOk(BigDecimal.ZERO);
+        }
+        String appIds = ytApps.stream().map(YtApp::getAppId).collect(Collectors.joining(","));
+        param.setAppIds(appIds);
+        return Result.resultObjOk(appFeign.getRevenueByTime(param));
+    }
+
 
     /**
      * 查询用户当日播放视频总数

+ 3 - 0
yt-app/app-feign/src/main/java/com/ytpm/feign/AppFeign.java

@@ -81,4 +81,7 @@ public interface AppFeign {
 
     @GetMapping("/ad/getAgentProfit")
     List<AgentAdGroupStaticsVO> getAgentProfit(@RequestParam(name = "appIds")String appIds);
+
+    @PostMapping("/user/getRevenueByTime")
+    BigDecimal getRevenueByTime(@RequestBody YtAppUserListParam param);
 }

+ 8 - 0
yt-app/app-service/src/main/java/com/ytpm/controller/dyz/UserController.java

@@ -69,6 +69,14 @@ public class UserController {
         return ResultTable.resultTableOk(new PageInfo<YtAppUserListView>(dyzUsers));
     }
 
+    /**
+     * 根据时间统计收益
+     */
+    @PostMapping("/getRevenueByTime")
+    public BigDecimal getRevenueByTime(@RequestBody YtAppUserListParam param) {
+        return adRecordMapper.getRevenueByTime(param);
+    }
+
     /**
      * 设置用户扩展信息
      */

+ 7 - 0
yt-app/app-service/src/main/java/com/ytpm/dao/dyz/AdRecordMapper.java

@@ -2,6 +2,8 @@ package com.ytpm.dao.dyz;
 
 import com.ytpm.agent.view.AgentAdGroupStaticsVO;
 import com.ytpm.app.model.YtDyzAdRecord;
+import com.ytpm.app.param.AppQueryUserTodayTimeParam;
+import com.ytpm.app.param.YtAppUserListParam;
 import com.ytpm.middle.view.AppRevenueHourVO;
 import org.apache.ibatis.annotations.Param;
 import org.mapstruct.Mapper;
@@ -53,4 +55,9 @@ public interface AdRecordMapper {
      * 查询广告平台分组统计
      */
     List<AgentAdGroupStaticsVO> getAdGroupStatics(@Param("appIds")String appIds);
+
+    /**
+     * 根据时间统计收益
+     */
+    BigDecimal getRevenueByTime(YtAppUserListParam param);
 }

+ 20 - 0
yt-app/app-service/src/main/resources/mapper/dyz/AdRecordMapper.xml

@@ -210,4 +210,24 @@
           AND DATE( finish_time ) = DATE(now())
         group by network_form_id,`hour`
     </select>
+    <select id="getRevenueByTime" resultType="java.math.BigDecimal">
+        select
+            sum(ar.revenue)
+        from yt_dyz_ad_record ar
+        join yt_app_user au on ar.user_id = au.user_id
+        <where>
+            <if test="appIds != null and appIds != ''">
+                and ar.app_id in
+                <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="registryTimeBegin != null ">
+                and DATE_FORMAT(au.registry_time,'%Y-%m-%d') <![CDATA[>=]]> #{registryTimeBegin}
+            </if>
+            <if test="registryTimeEnd != null ">
+                and DATE_FORMAT(au.registry_time,'%Y-%m-%d') <![CDATA[<=]]> #{registryTimeEnd}
+            </if>
+        </where>
+    </select>
 </mapper>