Pārlūkot izejas kodu

有效视频、素材列表

sunzhen 5 gadi atpakaļ
vecāks
revīzija
8f94b5a5d6

+ 75 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/PerformanceController2.java

@@ -2,6 +2,7 @@ package org.jeecg.modules.system.controller;
 
 import cn.com.ctop.performanceappraisal.entity.Performance;
 import cn.com.ctop.userefficientvideomap.entity.DesignMaterialInfo;
+import cn.com.ctop.userefficientvideomap.entity.UserDto2;
 import cn.com.ctop.userefficientvideomap.mapper.UserEfficientVideoMapMapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -315,4 +316,78 @@ public class PerformanceController2 {
         return result;
     }
 
+    @AutoLog(value = "获取快手绩效时时数据接口")
+    @ApiOperation(value = "获取快手绩效时时数据接口", notes = "获取快手绩效时时数据接口")
+    @GetMapping(value = "/kuaishouPererformanceInfoNow")
+    public Result<List<UserDto2>> kuaishouPererformanceInfoNow(HttpServletRequest req) {
+        Result<List<UserDto2>> result = new Result<List<UserDto2>>();
+        List<UserDto2> userDto2List =  performanceService.kuaishouPerformanceInfoNow();
+        result.setSuccess(true);
+        result.setResult(userDto2List);
+        return result;
+    }
+
+    @AutoLog(value = "获取头条绩效时时数据接口")
+    @ApiOperation(value = "获取头条绩效时时数据接口", notes = "获取头条绩效时时数据接口")
+    @GetMapping(value = "/toutiaoPererformanceInfoNow")
+    public Result<List<UserDto2>> toutiaoPererformanceInfoNow(HttpServletRequest req) {
+        Result<List<UserDto2>> result = new Result<List<UserDto2>>();
+        List<UserDto2> userDto2List =  performanceService.toutiaoPerformanceInfoNow();
+        result.setSuccess(true);
+        result.setResult(userDto2List);
+        return result;
+    }
+
+    @AutoLog(value = "获取快手绩效周报表")
+    @ApiOperation(value = "获取快手绩效周报表", notes = "获取快手绩效周报表")
+    @GetMapping(value = "/kuaishouWeekReport")
+    public Result<List<UserDto2>> kuaishouWeekReport(@RequestParam(name = "startDate") String startDate,
+                                                     @RequestParam(name = "endDate") String endDate,
+                                                     HttpServletRequest req) {
+        Result<List<UserDto2>> result = new Result<List<UserDto2>>();
+        List<UserDto2> userDto2List =  performanceService.kuaishouWeekReport(startDate,endDate);
+        result.setSuccess(true);
+        result.setResult(userDto2List);
+        return result;
+    }
+
+    @AutoLog(value = "获取头条绩效周报表")
+    @ApiOperation(value = "获取头条绩效周报表", notes = "获取头条绩效周报表")
+    @GetMapping(value = "/toutiaoWeekReport")
+    public Result<List<UserDto2>> toutiaoWeekReport(@RequestParam(name = "pageNo") String startDate,
+                                                    @RequestParam(name = "pageNo") String endDate,
+                                                    HttpServletRequest req) {
+        Result<List<UserDto2>> result = new Result<List<UserDto2>>();
+        List<UserDto2> userDto2List =  performanceService.toutiaoWeekReport(startDate,endDate);
+        result.setSuccess(true);
+        result.setResult(userDto2List);
+        return result;
+    }
+
+    @AutoLog(value = "获取快手季度绩效报表")
+    @ApiOperation(value = "获取快手季度绩效报表", notes = "获取快手季度绩效报表")
+    @GetMapping(value = "/kuaishouQuarterReport")
+    public Result<List<UserDto2>> kuaishouQuarterReport(@RequestParam(name = "pageNo") Integer year,
+                                                        @RequestParam(name = "pageNo") Integer quarter,
+                                                        HttpServletRequest req) {
+        Result<List<UserDto2>> result = new Result<List<UserDto2>>();
+        List<UserDto2> userDto2List =  performanceService.kuaishouQuarterReport(year,quarter);
+        result.setSuccess(true);
+        result.setResult(userDto2List);
+        return result;
+    }
+
+    @AutoLog(value = "获取头条季度绩效报表")
+    @ApiOperation(value = "获取头条季度绩效报表", notes = "获取头条季度绩效报表")
+    @GetMapping(value = "/toutiaoQuarterReport")
+    public Result<List<UserDto2>> toutiaoQuarterReport(@RequestParam(name = "pageNo") Integer year,
+                                                       @RequestParam(name = "pageNo") Integer quarter,
+                                                       HttpServletRequest req) {
+        Result<List<UserDto2>> result = new Result<List<UserDto2>>();
+        List<UserDto2> userDto2List =  performanceService.toutiaoQuarterReport(year,quarter);
+        result.setSuccess(true);
+        result.setResult(userDto2List);
+        return result;
+    }
+
 }

+ 19 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/IPerformanceService2.java

@@ -2,6 +2,7 @@ package org.jeecg.modules.system.service;
 
 import cn.com.ctop.performanceappraisal.entity.Performance;
 import cn.com.ctop.userefficientvideomap.entity.DesignMaterialInfo;
+import cn.com.ctop.userefficientvideomap.entity.UserDto2;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 import java.util.List;
@@ -66,4 +67,22 @@ public interface IPerformanceService2 extends IService<Performance> {
 
     Map<String,Object> planeLastQuarterPerformanceInfo(int appType);
 
+    //获取快手绩效时时数据接口
+    List<UserDto2> kuaishouPerformanceInfoNow();
+
+    //获取快手绩效时时数据接口
+    List<UserDto2> toutiaoPerformanceInfoNow();
+
+    //获取快手绩效周报表
+    List<UserDto2> kuaishouWeekReport(String startDate, String endDate);
+
+    //获取头条绩效周报表
+    List<UserDto2> toutiaoWeekReport(String startDate, String endDate);
+
+    //获取快手季度绩效报表
+    List<UserDto2> kuaishouQuarterReport(Integer year, Integer quarter);
+
+    //获取头条季度绩效报表
+    List<UserDto2> toutiaoQuarterReport(Integer year, Integer quarter);
+
 }

+ 194 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/PerformanceServiceImpl2.java

@@ -8,6 +8,7 @@ import cn.com.ctop.planeprojectcost.mapper.PlaneProjectCostMapper;
 import cn.com.ctop.userefficientvideomap.entity.*;
 import cn.com.ctop.userefficientvideomap.mapper.UserEfficientVideoMapMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.sun.xml.internal.rngom.digested.DZeroOrMorePattern;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.system.vo.LoginUser;
@@ -167,7 +168,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
     //头条有效视频计算
     private void toutiaoEffiVideo(Date calcDate, String effiCalcStart, String effiCalcEnd, String effiStart, String effiEnd, int thisYear, int thisMonth, int thisQuarter){
         log.info("头条手有效视频统计开始,统计时间为 " + calcDate);
-        //获取时间段内所有<快手>的有效视频
+        //获取时间段内所有头条的有效视频
         List<EffiVideoDTO> EffiVideoDTOList = userEfficientVideoMapMapper.getToutiaoUserVideoMap(effiStart, effiEnd, effiCalcStart, effiCalcEnd);
 
         for (EffiVideoDTO effiVideoDTO : EffiVideoDTOList) {
@@ -1628,6 +1629,198 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
     }
 
 
+    //获取快手绩效时时数据接口
+    @Override
+    public List<UserDto2> kuaishouPerformanceInfoNow(){
+        //0 获取当前季度的时间
+        Map<String,Integer> dateMap = DateUtils.getYearQuarter(new Date());
+        Integer year = dateMap.get("year");
+        Integer quarter = dateMap.get("quarter");
+        Map<String,String> timeMap = DateUtils.quarterStartEndDate(year, quarter);
+        String startTime = timeMap.get("startTime");
+        String endTime = timeMap.get("endTime");
+
+        //1 获取快手下所有人
+        List<UserDto2> userDto2List = userEfficientVideoMapMapper.getKuaishouDepartUserInfo();
+        //2 循环所有人,并查询出每个人的有效视频数、总视频数、总消耗
+        for(UserDto2 userDto : userDto2List){
+            String roleCode = userDto.getRoleCode();
+            //2.1 获取有效视频数量
+            Integer effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(2, year, quarter,userDto.getUserId(),userDto.getRoleId());
+            //2.2 获取有效视频总数
+            Integer videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId(userDto.getRoleCode(), startTime, endTime, userDto.getUserId());
+            //2.3 总消耗
+            BigDecimal cost = BigDecimal.ZERO;
+            if("clip".equals(roleCode)){
+                cost = userEfficientVideoMapMapper.getTotalCostByPlanId(userDto.getUserId(), startTime, endTime);
+            }else if("plan".equals(roleCode)){
+                cost = userEfficientVideoMapMapper.getTotalCostByPlanId(userDto.getUserId(), startTime, endTime);
+            }else if ("shot".equals(roleCode)){
+                cost = userEfficientVideoMapMapper.getTotalCostByPlanId(userDto.getUserId(), startTime, endTime);
+            }
+            userDto.setCost(cost);
+            userDto.setVideoCount(videoCount);
+            userDto.setEffiVideoCount(effiVideoCount);
+        }
+        return userDto2List;
+    }
+
+    //获取头条绩效实时数据
+    public List<UserDto2> toutiaoPerformanceInfoNow(){
+        //0 获取当前季度的时间
+        Map<String,Integer> dateMap = DateUtils.getYearQuarter(new Date());
+        Integer year = dateMap.get("year");
+        Integer quarter = dateMap.get("quarter");
+        Map<String,String> timeMap = DateUtils.quarterStartEndDate(year, quarter);
+        String startTime = timeMap.get("startTime");
+        String endTime = timeMap.get("endTime");
+
+        //1 获取头条所有人
+        List<UserDto2> userDto2List = userEfficientVideoMapMapper.getToutiaoDepartUserInfo();
+        //2 循环所有人,并查询出每个人的有效视频数、总视频数、总消耗
+        for(UserDto2 userDto : userDto2List){
+            String roleCode = userDto.getRoleCode();
+            //2.1 获取有效视频数量
+            Integer effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(1, year, quarter,userDto.getUserId(),userDto.getRoleId());
+            //2.2 获取视频总数
+            Integer videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId(userDto.getRoleCode(), startTime, endTime, userDto.getUserId());
+            //2.3 总消耗
+            BigDecimal cost = BigDecimal.ZERO;
+            if("clip".equals(roleCode)){
+                cost = userEfficientVideoMapMapper.toutiaoGetTotalCostByPlanId(userDto.getUserId(), startTime, endTime);
+            }else if("plan".equals(roleCode)){
+                cost = userEfficientVideoMapMapper.toutiaoGetTotalCostByPlanId(userDto.getUserId(), startTime, endTime);
+            }else if ("shot".equals(roleCode)){
+                cost = userEfficientVideoMapMapper.toutiaoGetTotalCostByPlanId(userDto.getUserId(), startTime, endTime);
+            }
+            userDto.setCost(cost);
+            userDto.setVideoCount(videoCount);
+            userDto.setEffiVideoCount(effiVideoCount);
+        }
+        return userDto2List;
+    }
+
+    //获取快手绩效时时数据接口
+    @Override
+    public List<UserDto2> kuaishouWeekReport(String startDate, String endDate){
+        //1 获取快手下所有人
+        List<UserDto2> userDto2List = userEfficientVideoMapMapper.getKuaishouDepartUserInfo();
+        //2 循环所有人,并查询出每个人的有效视频数、总视频数、总消耗
+        for(UserDto2 userDto : userDto2List){
+            String roleCode = userDto.getRoleCode();
+            //2.1 获取有效视频数量
+            Integer effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByCalcDate(startDate, endDate, userDto.getRoleId(), userDto.getUserId(),2);
+            //2.2 获取有效视频总数
+            Integer videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId(userDto.getRoleCode(), startDate, endDate, userDto.getUserId());
+            //2.3 总消耗
+            BigDecimal cost = BigDecimal.ZERO;
+            if("clip".equals(roleCode)){
+                cost = userEfficientVideoMapMapper.getTotalCostByPlanId(userDto.getUserId(), startDate, endDate);
+            }else if("plan".equals(roleCode)){
+                cost = userEfficientVideoMapMapper.getTotalCostByPlanId(userDto.getUserId(), startDate, endDate);
+            }else if ("shot".equals(roleCode)){
+                cost = userEfficientVideoMapMapper.getTotalCostByPlanId(userDto.getUserId(), startDate, endDate);
+            }
+            userDto.setCost(cost);
+            userDto.setVideoCount(videoCount);
+            userDto.setEffiVideoCount(effiVideoCount);
+        }
+
+        return userDto2List;
+    }
+
+    //获取头条绩效实时数据
+    public List<UserDto2> toutiaoWeekReport(String startDate, String endDate){
+        //1 获取头条所有人
+        List<UserDto2> userDto2List = userEfficientVideoMapMapper.getToutiaoDepartUserInfo();
+        //2 循环所有人,并查询出每个人的有效视频数、总视频数、总消耗
+        for(UserDto2 userDto : userDto2List){
+            String roleCode = userDto.getRoleCode();
+            //2.1 获取有效视频数量
+            Integer effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByCalcDate(startDate, endDate, userDto.getRoleId(), userDto.getUserId(),1);
+            //2.2 获取视频总数
+            Integer videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId(userDto.getRoleCode(), startDate, endDate, userDto.getUserId());
+            //2.3 总消耗
+            BigDecimal cost = BigDecimal.ZERO;
+            if("clip".equals(roleCode)){
+                cost = userEfficientVideoMapMapper.toutiaoGetTotalCostByPlanId(userDto.getUserId(), startDate, endDate);
+            }else if("plan".equals(roleCode)){
+                cost = userEfficientVideoMapMapper.toutiaoGetTotalCostByPlanId(userDto.getUserId(), startDate, endDate);
+            }else if ("shot".equals(roleCode)){
+                cost = userEfficientVideoMapMapper.toutiaoGetTotalCostByPlanId(userDto.getUserId(), startDate, endDate);
+            }
+            userDto.setCost(cost);
+            userDto.setVideoCount(videoCount);
+            userDto.setEffiVideoCount(effiVideoCount);
+        }
+        return userDto2List;
+    }
+
+    //获取快手季度绩效报表
+    @Override
+    public List<UserDto2> kuaishouQuarterReport(Integer year, Integer quarter){
+        //0 获取当季度的开始和结束时间
+        Map<String,String> timeMap = DateUtils.quarterStartEndDate(year, quarter);
+        String startTime = timeMap.get("startTime");
+        String endTime = timeMap.get("endTime");
+
+        //1 获取快手下所有人
+        List<UserDto2> userDto2List = userEfficientVideoMapMapper.getKuaishouDepartUserInfo();
+        //2 循环所有人,并查询出每个人的有效视频数、总视频数、总消耗
+        for(UserDto2 userDto : userDto2List){
+            String roleCode = userDto.getRoleCode();
+            //2.1 获取有效视频数量
+            Integer effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(2, year, quarter,userDto.getUserId(),userDto.getRoleId());
+            //2.2 获取有效视频总数
+            Integer videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId(userDto.getRoleCode(), startTime, endTime, userDto.getUserId());
+            //2.3 总消耗
+            BigDecimal cost = userEfficientVideoMapMapper.getQuarterCost(userDto.getUserId(),year,quarter,2);
+            if (cost == null){
+                cost=BigDecimal.ZERO;
+            }
+            //2.4 当季度绩效
+            BigDecimal performance = userEfficientVideoMapMapper.getQuarterPerformance(userDto.getUserId(),year, quarter, 2);
+
+            userDto.setEffiRate(performance);
+            userDto.setCost(cost);
+            userDto.setVideoCount(videoCount);
+            userDto.setEffiVideoCount(effiVideoCount);
+        }
+        return userDto2List;
+    }
+
+    //获取快手季度绩效报表
+    @Override
+    public List<UserDto2> toutiaoQuarterReport(Integer year, Integer quarter){
+        //0 获取当季度的开始和结束时间
+        Map<String,String> timeMap = DateUtils.quarterStartEndDate(year, quarter);
+        String startTime = timeMap.get("startTime");
+        String endTime = timeMap.get("endTime");
+
+        //1 获取快手下所有人
+        List<UserDto2> userDto2List = userEfficientVideoMapMapper.getKuaishouDepartUserInfo();
+        //2 循环所有人,并查询出每个人的有效视频数、总视频数、总消耗
+        for(UserDto2 userDto : userDto2List){
+            String roleCode = userDto.getRoleCode();
+            //2.1 获取有效视频数量
+            Integer effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(1, year, quarter,userDto.getUserId(),userDto.getRoleId());
+            //2.2 获取有效视频总数
+            Integer videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId(userDto.getRoleCode(), startTime, endTime, userDto.getUserId());
+            //2.3 总消耗
+            BigDecimal cost = userEfficientVideoMapMapper.getQuarterCost(userDto.getUserId(),year,quarter,1);
+            if (cost == null){
+                cost=BigDecimal.ZERO;
+            }
+            //2.4 当季度绩效
+            BigDecimal performance = userEfficientVideoMapMapper.getQuarterPerformance(userDto.getUserId(),year, quarter, 1);
+
+            userDto.setEffiRate(performance);
+            userDto.setCost(cost);
+            userDto.setVideoCount(videoCount);
+            userDto.setEffiVideoCount(effiVideoCount);
+        }
+        return userDto2List;
+    }
 
 }
 

+ 8 - 0
performance-appraisal/src/main/java/cn/com/ctop/userefficientvideomap/entity/UserDto2.java

@@ -30,4 +30,12 @@ public class UserDto2 implements Serializable {
 
     private String parentId;
 
+    private String roleCode;
+
+    private Integer effiVideoCount;
+
+    private Integer videoCount;
+
+    private BigDecimal cost;
+
 }

+ 7 - 0
performance-appraisal/src/main/java/cn/com/ctop/userefficientvideomap/mapper/UserEfficientVideoMapMapper.java

@@ -106,5 +106,12 @@ public interface UserEfficientVideoMapMapper extends BaseMapper<UserEfficientVid
 
     void updateToutiaoEffiType(@Param("toutiaoEffiType")Integer toutiaoEffiType, @Param("signature")String signature);
 
+    List<UserDto2> getKuaishouDepartUserInfo();
+
+    List<UserDto2> getToutiaoDepartUserInfo();
+
+    //根据天数的区间获取userId获取有效视频数量
+    Integer getEffiVideoCountByCalcDate(@Param("startDate")String startDate, @Param("endDate")String endDate, @Param("roleId")String roleId, @Param("userId")String userId, @Param("appType")Integer appType);
+
 }
 

+ 46 - 1
performance-appraisal/src/main/java/cn/com/ctop/userefficientvideomap/mapper/xml/UserEfficientVideoMapMapper.xml

@@ -564,7 +564,7 @@
         select
         total_cost
         from
-        ctop_user_efficient_video_map
+        ctop_performance
         where
         user_id = #{userId}
         and
@@ -711,5 +711,50 @@
         where code = #{signature}
     </select>
 
+    <!-- 获取北京快手设计部所有编导、剪辑、拍摄的信息 -->
+    <select id="getKuaishouDepartUserInfo" resultType="cn.com.ctop.userefficientvideomap.entity.UserDto2">
+        select u.id as userId,
+        u.realname as realname,
+        r.role_name as roleName,
+        r.role_code as roleCode,
+        r.id as roleId
+        FROM sys_user_depart ud
+        left join sys_depart b on ud.dep_id = b.id
+        left join sys_user u on ud.user_id = u.id
+        left join sys_user_role ur on u.id = ur.user_id
+        left join sys_role r on ur.role_id = r.id
+        WHERE b.parent_id = '4e939124a5f541c88838e49d2a3ea72b'  <!-- 快手设计部 -->
+        and r.role_code in ('plan','clip','shot')
+    </select>
+
+    <!-- 获取北京头条设计部所有编导、剪辑、拍摄的信息 -->
+    <select id="getToutiaoDepartUserInfo" resultType="cn.com.ctop.userefficientvideomap.entity.UserDto2">
+        select u.id as userId,
+        u.realname as realname,
+        r.role_name as roleName,
+        r.role_code as roleCode,
+        r.id as roleId
+        FROM sys_user_depart ud
+        left join sys_depart b on ud.dep_id = b.id
+        left join sys_user u on ud.user_id = u.id
+        left join sys_user_role ur on u.id = ur.user_id
+        left join sys_role r on ur.role_id = r.id
+        WHERE b.parent_id = '26c10ecb5e0d416bb01f8ff983f4588c'  <!-- 快手设计部 -->
+        and r.role_code in ('plan','clip','shot')
+    </select>
+
+    <!-- 根据天数的区间获取userId获取有效视频数量 -->
+    <select id="getEffiVideoCountByCalcDate" resultType="java.lang.Integer">
+        select
+        count(1)
+        from
+        ctop_user_efficient_video_map
+        where user_id = #{userId}
+        and role_id = #{roleId}
+        and app_type = #{appType}
+        and calc_date &lt;= #{endDate}
+        and calc_date &gt;= #{startDate}
+    </select>
+
 
 </mapper>