Selaa lähdekoodia

设计师接口修改

hcst_sunzhen 5 vuotta sitten
vanhempi
commit
36554b5cc2

+ 29 - 0
jeecg-boot-base-common/src/main/java/org/jeecg/common/util/DateUtils.java

@@ -1105,6 +1105,35 @@ public class DateUtils extends PropertyEditorSupport {
         return quarterStartEndDateMap;
     }
 
+    /**
+     * 获取上个季度的年度和季度数
+     * @param date
+     * @return
+     */
+    public static Map<String,Integer> lastQuarter(Date date){
+        Map<String,Integer> resultMap = new HashMap<>();
+       //获取当天所在
+       Map<String,Integer> yearQuarter = getYearQuarter(date);
+       Integer lastyear = yearQuarter.get("year");
+       Integer lastquarter = yearQuarter.get("quarter");
+
+        Integer year = 0;
+        Integer quarter = 0;
+
+       if(lastquarter == 4 || lastquarter == 3 || lastquarter == 2){
+           year = lastyear;
+           quarter = lastyear - 1;
+       }else{
+           year = lastyear -1;
+           quarter = 1;
+       }
+
+       resultMap.put("year",year);
+       resultMap.put("quarter",quarter);
+
+       return resultMap;
+    }
+
     public static void main(String[] args) throws ParseException {
         //SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
         //Date friDay = DateUtils.getFriday(new Date());

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

@@ -316,7 +316,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
         //循环编导列表计算视频有效率并排序
         for (UserDto2 userDto : planList) {
             //有效视频数量 1toutiao 2kuaishou
-            int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(2, thisYear, thisQuarter, userDto.getUserId());
+            int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(2, thisYear, thisQuarter, userDto.getUserId(),"0214283aa16f943efbb149ea4bb18f18");
             //总视频数量
             int videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId("plan", startTime, endTime, userDto.getUserId());
             //视频有效率
@@ -333,7 +333,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
 
         //循环前30%有绩效的人数并计算其绩效,并入库
         for (int i = 0; i <= top30 - 1; i++) {
-            //总消耗--获取这个人所在项目的总消耗
+            //总消耗--获取这个人的总消耗
             BigDecimal totalCost = userEfficientVideoMapMapper.getTotalCostByPlanId(planList.get(i).getUserId(), startTime, endTime);
             //总绩效=总消耗*提点比例(5‰)*提成比例(编导40%)
             BigDecimal totalPerformance = totalCost.multiply(new BigDecimal("0.005")).multiply(new BigDecimal("0.4"));
@@ -389,7 +389,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
         List<UserDto2> shotList = userEfficientVideoMapMapper.getKuaishouShotList(); //拍摄
         for (UserDto2 userDto : shotList) {
             //有效视频数量 //1toutiao 2kuaishou
-            int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(2,thisYear, thisQuarter, userDto.getUserId());
+            int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(2,thisYear, thisQuarter, userDto.getUserId(),"7bff9afed625aeeabca6bffe3c189183");
             //总视频数量
             int videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId("shot", startTime, endTime, userDto.getUserId());
             //视频有效率
@@ -462,7 +462,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
         List<UserDto2> clipList = userEfficientVideoMapMapper.getKuaishouClipList(); //剪辑
         for (UserDto2 userDto : clipList) {
             //有效视频数量
-            int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(2, thisYear, thisQuarter, userDto.getUserId());
+            int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(2, thisYear, thisQuarter, userDto.getUserId(),"f38d8d70cf7ec50d5357a749e4dbf8ee");
             //总视频数量
             int videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId("clip", startTime, endTime, userDto.getUserId());
             //视频有效率
@@ -638,7 +638,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
         //循环编导列表计算视频有效率并排序
         for (UserDto2 userDto : planList) {
             //有效视频数量
-            int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(1, thisYear, thisQuarter, userDto.getUserId());  //媒体类型 //1头条 2快手
+            int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(1, thisYear, thisQuarter, userDto.getUserId(),"0214283aa16f943efbb149ea4bb18f18");  //媒体类型 //1头条 2快手
             //总视频数量
             int videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId("plan", startTime, endTime, userDto.getUserId());
             //视频有效率
@@ -711,7 +711,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
         List<UserDto2> shotList = userEfficientVideoMapMapper.getToutiaoShotList(); //拍摄
         for (UserDto2 userDto : shotList) {
             //有效视频数量
-            int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(1,thisYear, thisQuarter, userDto.getUserId());
+            int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(1,thisYear, thisQuarter, userDto.getUserId(),"7bff9afed625aeeabca6bffe3c189183");
             //总视频数量
             int videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId("shot", startTime, endTime, userDto.getUserId());
             //视频有效率
@@ -784,7 +784,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
         List<UserDto2> clipList = userEfficientVideoMapMapper.getKuaishouClipList(); //剪辑
         for (UserDto2 userDto : clipList) {
             //有效视频数量 //1头条 2快手
-            int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(1, thisYear, thisQuarter, userDto.getUserId());
+            int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(1, thisYear, thisQuarter, userDto.getUserId(),"f38d8d70cf7ec50d5357a749e4dbf8ee");
             //总视频数量
             int videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId("clip", startTime, endTime, userDto.getUserId());
             //视频有效率
@@ -951,17 +951,18 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
     ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //绩效计算结束
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
+/*
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //页面接口 start
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //1
-    //季度到前一天为止个人的有效数量、素材总数、素材有效率、总跑量
+    //上个季度个人的有效数量、素材总数、素材有效率、总跑量
     //{"effiVideoCount有效数":70,"videoCount素材总数":200,"effiRate":40,"cost":2019;performance绩效":20000}
     @Override
     public Map<String, Object> getPerformanceInfo() {
         Map<String, Object> performanceInfoMap = new HashMap<>();
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        //String roleCode = sysRoleMapper.getRoleCodeByUserId(sysUser.getId());
         //LoginUser sysUser = new LoginUser();
         //sysUser.setId("9712328fddd1443faf566ddb87693658");
         String orgCode = sysUser.getOrgCode();
@@ -970,9 +971,43 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
             appType = 1;
         } else if (null != orgCode && orgCode.startsWith("A01A07")) {//快手
             appType = 2;
+        }else{
+            log.info("getPerformanceInfo接口" + sysUser.getRealname() + "orgCode不正确");
+            return performanceInfoMap;
+        }
+
+        Map<String,Integer> quarterMap = DateUtils.lastQuarter(new Date());
+        Integer year = quarterMap.get("year");
+        Integer quarter = quarterMap.get("quarter");
+        Map<String,String> startEndDateMap = DateUtils.quarterStartEndDate(year,quarter);
+        String startDate = startEndDateMap.get("startDate");
+        String endDate = startEndDateMap.get("endDate");
+
+        //获取本人的视频总有效数量
+        int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(appType, year, quarter, sysUser.getId());
+        //获取本人的视频总数
+        int videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId(roleCode, startDate, endDate, sysUser.getId());
+        //获取本人目前的视频有效率
+        BigDecimal videoEffiRate = BigDecimal.ZERO;
+        if (effiVideoCount != 0 && videoCount != 0) {
+            videoEffiRate = new BigDecimal(String.valueOf(effiVideoCount)).divide(new BigDecimal(String.valueOf(videoCount))).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP);
         }
+
+        BigDecimal cost = userEfficientVideoMapMapper.getQuarterCost(sysUser.getId(), year, quarter, appType);
+        BigDecimal performance = userEfficientVideoMapMapper.getQuarterPerformance(sysUser.getId(), year, quarter, appType);
+
+        performanceInfoMap.put("effiVideoCount", effiVideoCount);
+        performanceInfoMap.put("videoCount", videoCount);
+        performanceInfoMap.put("effiRate", videoEffiRate);
+        performanceInfoMap.put("cost", cost);
+        performanceInfoMap.put("performance",performance);
+
+        log.info(roleCode + ":" + sysUser.getRealname() + "getPerformanceInfo接口结束");
+        return performanceInfoMap;
+
+        ////////////////////////////////////////////////////////
         //获取前一天的时间
-        Date date = new Date();
+        *//*Date date = new Date();
         Date getDate = DateUtils.addDay(date, -1);
         String startDate = DateUtils.getQuarterStartDate(getDate);
         String endDate = DateUtils.getQuarterEndDate(getDate);
@@ -995,7 +1030,188 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
         //获取本人的总跑量
         BigDecimal cost = BigDecimal.ZERO;
 
-        //TODO --需要区分平台 修改sql
+
+        if (roleCode.equals("plan")) {
+            cost = userEfficientVideoMapMapper.getTotalCostByPlanId(sysUser.getId(), startDate, endDate);
+        } else if (roleCode.equals("shot")) {
+            cost = userEfficientVideoMapMapper.getTotalCostByShotId(sysUser.getId(), startDate, endDate);
+        } else if (roleCode.equals("clip")) {
+            cost = userEfficientVideoMapMapper.getTotalCostByClipId(sysUser.getId(), startDate, endDate);
+        }*//*
+////////////////////////////////////////////////////////
+    }
+
+    //2
+    //有效率排行榜
+    //{"list":[{"name":"pipi","effiRate":50},{"name":"pipixia","effiRate":40},{"name":"pipiqiu","effiRate":30}],"performance":performance}
+    @Override
+    public Map<String, Object> effiRateRank(Integer size) {
+        Map<String, Object> resultMap = new HashMap<>();
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        String orgCode = sysUser.getOrgCode();
+        Integer appType = null;
+        if (null != orgCode && orgCode.startsWith("A01A08")) {//头条
+            appType = 1;
+        } else if (null != orgCode && orgCode.startsWith("A01A07")) {//快手
+            appType = 2;
+        }
+
+        Map<String,Integer> quarterMap = DateUtils.lastQuarter(new Date());
+        Integer year = quarterMap.get("year");
+        Integer quarter = quarterMap.get("quarter");
+        Map<String,String> startEndDateMap = DateUtils.quarterStartEndDate(year,quarter);
+        String startDate = startEndDateMap.get("startDate");
+        String endDate = startEndDateMap.get("endDate");
+
+        Map<String, String> lastDateMap = getLastDateInfo();
+        String roleCode = sysRoleMapper.getRoleCodeByUserId(sysUser.getId());
+        log.info(roleCode + ":" + sysUser.getRealname() + "有效率排行榜接口开始");
+
+        List<UserDto2> userRoleList = new ArrayList<>();
+
+        if(appType == 1){
+            if (roleCode.equals("plan")) {
+                userRoleList = userEfficientVideoMapMapper.getToutiaoPlanList(); //编导
+            } else if (roleCode.equals("shot")) {
+                userRoleList = userEfficientVideoMapMapper.getToutiaoShotList(); //拍摄
+            } else if (roleCode.equals("clip")) {
+                userRoleList = userEfficientVideoMapMapper.getToutiaoClipList(); //剪辑
+            }
+        }else{
+            if (roleCode.equals("plan")) {
+                userRoleList = userEfficientVideoMapMapper.getKuaishouPlanList(); //编导
+            } else if (roleCode.equals("shot")) {
+                userRoleList = userEfficientVideoMapMapper.getKuaishouShotList(); //拍摄
+            } else if (roleCode.equals("clip")) {
+                userRoleList = userEfficientVideoMapMapper.getKuaishouClipList(); //剪辑
+            }
+        }
+
+        if (userRoleList != null) {
+            for (UserDto2 userDto : userRoleList) {
+                //有效视频数量
+                int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(appType, Integer.parseInt(lastDateMap.get("year")), Integer.parseInt(lastDateMap.get("quarter")), userDto.getUserId());
+                //总视频数量
+                int videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId(roleCode, startDate, endDate, userDto.getUserId());
+                //视频有效率
+                BigDecimal effiRate = BigDecimal.ZERO;
+                if (effiVideoCount != 0 && videoCount != 0) {
+                    effiRate = new BigDecimal(String.valueOf(effiVideoCount)).divide(new BigDecimal(String.valueOf(videoCount))).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP);
+                }
+                userDto.setEffiRate(effiRate);
+            }
+            Collections.sort(userRoleList, new EffiRateComparator());
+
+            //去掉list中前30的数据
+            if (size != null) {
+                userRoleList.subList(size, userRoleList.size()).clear();
+            }
+
+            resultMap.put("userRoleList", userRoleList);
+        } else {
+            resultMap.put("userRoleList", null);
+        }
+
+        log.info(roleCode + ":" + sysUser.getRealname() + "有效率排行榜接口结束");
+        return resultMap;
+    }
+
+    //3
+    //素材、素材跑量、封面点击数、封面曝光数、行为数
+    //{"videoUrl":"http://dadfadfadf.mp4","videoCost":34.56,"pageClickCount":1200,"pageExposureCount":3939,"behaviorCount":5000}
+    @Override
+    public List<DesignMaterialInfo> materialInfoList() {
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        //LoginUser sysUser = new LoginUser();
+        //sysUser.setId("9712328fddd1443faf566ddb87693658");
+        String roleCode = sysRoleMapper.getRoleCodeByUserId(sysUser.getId());
+        log.info(roleCode + ":" + sysUser.getRealname() + "materialInfoList接口开始");
+
+        String orgCode = sysUser.getOrgCode();
+        Integer appType = null;
+        if (null != orgCode && orgCode.startsWith("A01A08")) {//头条
+            appType = 1;
+        } else if (null != orgCode && orgCode.startsWith("A01A07")) {//快手
+            appType = 2;
+        }
+
+        Map<String,Integer> quarterMap = DateUtils.lastQuarter(new Date());
+        Integer year = quarterMap.get("year");
+        Integer quarter = quarterMap.get("quarter");
+        Map<String,String> startEndDateMap = DateUtils.quarterStartEndDate(year,quarter);
+        String startDate = startEndDateMap.get("startDate");
+        String endDate = startEndDateMap.get("endDate");
+
+       *//* Date date = new Date();
+        Date getDate = DateUtils.addDay(date, -1);
+        String startDate = DateUtils.getQuarterStartDate(getDate);
+        String endDate = DateUtils.getQuarterEndDate(getDate);
+        String endNowDate = DateUtils.formatDate(getDate);*//*
+
+        List<DesignMaterialInfo> materialInfoList = new ArrayList<>();
+
+        if(appType == 1){
+            materialInfoList = null;
+        }else{
+            materialInfoList = userEfficientVideoMapMapper.designMaterialInfoList(roleCode, sysUser.getId(), startDate, endDate);
+        }
+
+        log.info(roleCode + ":" + sysUser.getRealname() + "materialInfoList接口结束");
+        return materialInfoList;
+    }
+
+    //4
+    //点击+符号 投放账户、投放账户、跑量
+    //{"videoAccount":"aabbcc","servingAccount":"ttyyhh","cost":34234.43}
+    @Override
+    public List<DesignMaterialInfo> materialAccountInfo(String materialInfoId) {
+        log.info("materialAccountInfo接口开始");
+        Date date = new Date();
+        Date getDate = DateUtils.addDay(date, -1);
+        String startDate = DateUtils.getQuarterStartDate(getDate);
+        String endDate = DateUtils.getQuarterEndDate(getDate);
+        String endNowDate = DateUtils.formatDate(getDate);
+
+        List<DesignMaterialInfo> materialInfoList = userEfficientVideoMapMapper.getMaterialAccountInfoByMaterialId(materialInfoId, startDate, endNowDate);
+        log.info("materialAccountInfo接口结束");
+        return materialInfoList;
+    }*/
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //页面接口 start
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //1
+    //季度到前一天为止个人的有效数量、素材总数、素材有效率、总跑量
+    //{"effiVideoCount有效数":70,"videoCount素材总数":200,"effiRate":40,"cost":2019;performance绩效":20000}
+    public Map<String, Object> getPerformanceInfo() {
+        Map<String, Object> performanceInfoMap = new HashMap<>();
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        //LoginUser sysUser = new LoginUser();
+        //sysUser.setId("9712328fddd1443faf566ddb87693658");
+
+        //获取前一天的时间
+        Date date = new Date();
+        Date getDate = DateUtils.addDay(date, -1);
+        String startDate = DateUtils.getQuarterStartDate(getDate);
+        String endDate = DateUtils.getQuarterEndDate(getDate);
+        String endNowDate = DateUtils.formatDate(getDate);
+
+        String roleCode = sysRoleMapper.getRoleCodeByUserId(sysUser.getId());
+
+        log.info(roleCode + ":" + sysUser.getRealname() + "getPerformanceInfo接口开始");
+
+        Map<String, String> lastDateMap = getLastDateInfo();
+        //获取本人的视频总有效数量
+        int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(2,Integer.parseInt(lastDateMap.get("year")), Integer.parseInt(lastDateMap.get("quarter")), sysUser.getId(),null);
+        //获取本人的视频总数
+        int videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId(roleCode, startDate, endNowDate, sysUser.getId());
+        //获取本人目前的视频有效率
+        BigDecimal videoEffiRate = BigDecimal.ZERO;
+        if (effiVideoCount != 0 && videoCount != 0) {
+            videoEffiRate = new BigDecimal(String.valueOf(effiVideoCount)).divide(new BigDecimal(String.valueOf(videoCount))).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP);
+        }
+        //获取本人的总跑量
+        BigDecimal cost = BigDecimal.ZERO;
+
         if (roleCode.equals("plan")) {
             cost = userEfficientVideoMapMapper.getTotalCostByPlanId(sysUser.getId(), startDate, endDate);
         } else if (roleCode.equals("shot")) {
@@ -1016,17 +1232,12 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
     //2
     //有效率排行榜
     //{"list":[{"name":"pipi","effiRate":50},{"name":"pipixia","effiRate":40},{"name":"pipiqiu","effiRate":30}],"performance":performance}
-    @Override
     public Map<String, Object> effiRateRank(Integer size) {
         Map<String, Object> resultMap = new HashMap<>();
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String orgCode = sysUser.getOrgCode();
-        Integer appType = null;
-        if (null != orgCode && orgCode.startsWith("A01A08")) {//头条
-            appType = 1;
-        } else if (null != orgCode && orgCode.startsWith("A01A07")) {//快手
-            appType = 2;
-        }
+        //LoginUser sysUser = new LoginUser();
+        //sysUser.setId("9712328fddd1443faf566ddb87693658");
+
         //获取前一天的时间
         Date date = new Date();
         Date getDate = DateUtils.addDay(date, -1);
@@ -1054,7 +1265,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
         if (userRoleList != null) {
             for (UserDto userDto : userRoleList) {
                 //有效视频数量
-                int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(appType, Integer.parseInt(lastDateMap.get("year")), Integer.parseInt(lastDateMap.get("quarter")), userDto.getUserId());
+                int effiVideoCount = userEfficientVideoMapMapper.getEffiVideoCountByUserId(2,Integer.parseInt(lastDateMap.get("year")), Integer.parseInt(lastDateMap.get("quarter")), userDto.getUserId(),null);
                 //总视频数量
                 int videoCount = userEfficientVideoMapMapper.getQuarterMaterialCountByUserId(roleCode, startDate, endNowDate, userDto.getUserId());
                 //视频有效率
@@ -1134,7 +1345,6 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
     //3
     //素材、素材跑量、封面点击数、封面曝光数、行为数
     //{"videoUrl":"http://dadfadfadf.mp4","videoCost":34.56,"pageClickCount":1200,"pageExposureCount":3939,"behaviorCount":5000}
-    @Override
     public List<DesignMaterialInfo> materialInfoList() {
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         //LoginUser sysUser = new LoginUser();
@@ -1158,7 +1368,6 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
     //4
     //点击+符号 投放账户、投放账户、跑量
     //{"videoAccount":"aabbcc","servingAccount":"ttyyhh","cost":34234.43}
-    @Override
     public List<DesignMaterialInfo> materialAccountInfo(String materialInfoId) {
         log.info("materialAccountInfo接口开始");
         Date date = new Date();

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

@@ -21,7 +21,7 @@ public interface UserEfficientVideoMapMapper extends BaseMapper<UserEfficientVid
 
     int getEffiVideoCountBySignature(@Param("signature")String signature, @Param("appType")Integer appType);
 
-    int getEffiVideoCountByUserId(@Param("appType")int appType, @Param("year")int year, @Param("quarter")int quarter, @Param("userId")String userId);
+    int getEffiVideoCountByUserId(@Param("appType")int appType, @Param("year")int year, @Param("quarter")int quarter, @Param("userId")String userId, @Param("roleId")String roleId);
 
     int getQuarterMaterialCountByUserId(@Param("roleCode")String roleCode, @Param("startTime")String startTime, @Param("endTime")String endTime, @Param("userId")String userId);
 
@@ -80,5 +80,9 @@ public interface UserEfficientVideoMapMapper extends BaseMapper<UserEfficientVid
 
     BigDecimal toutiaoGetTotalCostByPlanId(@Param("userId")String userId, @Param("startDate")String startDate, @Param("endDate")String endDate);
 
+    BigDecimal getQuarterPerformance(@Param("userId")String userId, @Param("year")int year, @Param("quarter")int quarter, @Param("appType")int appType);
+
+    BigDecimal getQuarterCost(@Param("userId")String userId, @Param("year")int year, @Param("quarter")int quarter, @Param("appType")int appType);
+
 }
 

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

@@ -49,6 +49,7 @@
         where year = #{year}
         and quarter = #{quarter}
         and user_id = #{userId}
+        and role_id = #{roleId}
         and app_type = #{appType}
     </select>
 
@@ -539,4 +540,36 @@
         where e.shot_id = #{userId}
     </select>
 
+    <!-- 根据year、quarter、user_id获取季度总绩效 -->
+    <select id="getQuarterPerformance" resultType="java.math.BigDecimal">
+        select
+        total_performance
+        from
+        ctop_user_efficient_video_map
+        where
+        user_id = #{userId}
+        and
+        year = #{year}
+        and
+        quarter = #{quarter}
+        and
+        app_type = #{appType}
+    </select>
+
+    <!-- 根据year、quarter、user_id获取季度总消耗 -->
+    <select id="getQuarterCost" resultType="java.math.BigDecimal">
+        select
+        total_cost
+        from
+        ctop_user_efficient_video_map
+        where
+        user_id = #{userId}
+        and
+        year = #{year}
+        and
+        quarter = #{quarter}
+        and
+        app_type = #{appType}
+    </select>
+
 </mapper>