Przeglądaj źródła

运营绩效计算接口修改

hcst_sunzhen 5 lat temu
rodzic
commit
cb8c7a67d1

+ 26 - 278
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/service/impl/PerformanceOptimizerServiceImpl.java

@@ -72,138 +72,14 @@ public class PerformanceOptimizerServiceImpl extends ServiceImpl<PerformanceOpti
         //获取快手所有运营的数据
         //List<UserDto2> userList = userEfficientVideoMapMapper.getAllKuaishouYunyingDepartUserInfo();
         Integer mediaType = 2;
-        //循环所有快手运营
-        //for(UserDto2 userDto:userList){
-            //userDto.setUserId("ce2cb485afd44d0e8563b4daa5ea6fcb");
-            //String orgCode = userEfficientVideoMapMapper.getDepartIdByUserId(userDto.getUserId());
             //华北
             //查询当前媒体配置信息
             OptimizerConfig config = optimizerConfigService.getEnabledConfigByMediaType(mediaType + "", CtopAdConstant.CTOP_ORGCODE_NORTH_CHINA_PREFIX);
-
             if (null == config) {
                 ResultMapUtils.setResultMap(result, StatusCode.KUAISHOU_OPTINIZER_CONFIG_IS_NULL.getCode());
                 return result;
             }
 
-            //if (null == vos || vos.size() <= 0) {
-            //    ResultMapUtils.setResultMap(result, StatusCode.KUAISHOU_OPTINIZER_PERSONNAL_DATA_IS_NULL.getCode());
-            //    return result;
-            //}
-            //2: 查询媒体季度任务完成情况
-            //UserPerformanceDetailVO performanceDetailVO = getPerformanceDetailVO(mediaType, vos.get(0), config);
-            //result.put("userDetail", performanceDetailVO);
-            //ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS.getCode());
-
-            //获取消耗统计数据信息--该统计是按照user_allocation来统计的数据,不包含转户的情况
-            //log.info(userDto.getUserId());
-            //增加转户的情况
-            //原则a:1. 该季度内最终转给此运营的户,将该户在本季度中不在的时间计算出来,然后计算这段时间内的总消耗,并在总数中减去
-            //2. 季度期间在过此运营负责过的户,将在本季度中在的时间计算出来,然后计算总消耗并在总数中增加上
-
-            //原则b:1.找出改运营手下所有账户,循环每一个账户,然后进行转户判断
-            //2.将该账户下所有转户信息拉取出来,去除受让时间小于季度开始时间 以及 转让时间大于季度结束时间的条目(sql去掉),得到该账户所有信息
-            //3. 创建userMap,根据userId获取自己季度内的各时间段
-            //:查询当前用户截止到目前当前季度的消耗统计数据
-            //List<OptimizerCostDetailVO> vos = getOptimizerTotalCostDetailGroupByUserId(mediaType + "", userDto.getUserId(), year, quarter, startDate, endDate);
-            //BigDecimal totalRoyal = BigDecimal.ZERO;
-            //BigDecimal totalRoyalty = BigDecimal.ZERO;
-            //BigDecimal totalCost = BigDecimal.ZERO;
-            //if(vos.size() != 0){
-            //    OptimizerCostDetailVO vo = vos.get(0);
-            //    //循环accountId
-            //    List<String> accountList = userEfficientVideoMapMapper.getAccountIdByUserId(userDto.getUserId());
-            //    Map<String, List<Map<String, String>>> accountRangeMap = new HashMap<>();
-            //
-            //    for(int i=0; i<accountList.size();i++){
-            //        List<TransferorAccountDTO> transferorAccountDTOList = userEfficientVideoMapMapper.accountTransforerListByUserId(accountList.get(i), startDate, endDate);
-            //
-            //        if(transferorAccountDTOList.size() == 0){
-            //            accountRangeMap.put(accountList.get(i),null);
-            //            continue;
-            //        }
-            //        Map<String, String> DateMap = new HashMap<>();
-            //
-            //        for(int j=0; j<transferorAccountDTOList.size(); j++){
-            //            String transferor = transferorAccountDTOList.get(j).getTransferor();
-            //            //String assignee = transferorAccountDTOList.get(j).getAssignee();
-            //            //如果转让人不是本人,则跳过;按照转让人的逻辑走,因为受让人在下一次转户的时候也会变成转让人
-            //            if( transferor.equals(userDto.getUserId()) ){
-            //                if (j==0){
-            //                    DateMap.put("startDate", startDate);
-            //                }else {
-            //                    DateMap.put("startDate", transferorAccountDTOList.get(j-1).getAssigneeDate());
-            //                }
-            //                DateMap.put("endDate",transferorAccountDTOList.get(j).getTransferorDate());
-            //            }
-            //
-            //            //判断:如果转让人不是本人,受让人也不是,则跳过
-            //            if(DateMap.size() == 0 &&  j != (transferorAccountDTOList.size()-1)     ){   //!assignee.equals(userDto.getUserId())
-            //                continue;
-            //            }
-            //
-            //            if (accountRangeMap.get(accountList.get(i)) != null){
-            //                accountRangeMap.get(accountList.get(i)).add(DateMap);
-            //
-            //                if(j == (transferorAccountDTOList.size()-1)){
-            //                    DateMap.put("startDate", transferorAccountDTOList.get(j).getAssigneeDate());
-            //                    DateMap.put("endDate", endDate);
-            //                }
-            //            }else{
-            //                List<Map<String, String>> userAccountList = new ArrayList<>();
-            //                if(DateMap.size()!= 0 ){
-            //                    userAccountList.add(DateMap);
-            //                }
-            //
-            //                Map<String, String> DateMap2 = new HashMap<>();
-            //                if(j == (transferorAccountDTOList.size()-1)){
-            //                    DateMap2.put("startDate", transferorAccountDTOList.get(j).getAssigneeDate());
-            //                    DateMap2.put("endDate", endDate);
-            //                    userAccountList.add(DateMap2);
-            //                }
-            //                accountRangeMap.put(accountList.get(i), userAccountList);
-            //            }
-            //        }
-            //    }
-            //
-            //    for(Map.Entry<String, List<Map<String, String>>> entry : accountRangeMap.entrySet()){
-            //        String mapKey = entry.getKey();
-            //        List<Map<String, String>> mapValue = entry.getValue();
-            //        if (mapValue == null){
-            //            totalRoyal = totalRoyal.add( userEfficientVideoMapMapper.getAccountSumCharge(mapKey,startDate,endDate)==null?BigDecimal.ZERO: userEfficientVideoMapMapper.getAccountSumCharge(mapKey,startDate,endDate));
-            //        }else{
-            //            for (Map<String, String> map:mapValue){
-            //                totalRoyal = totalRoyal.add( userEfficientVideoMapMapper.getAccountSumCharge(mapKey,map.get("startDate"),map.get("endDate"))==null?BigDecimal.ZERO: userEfficientVideoMapMapper.getAccountSumCharge(mapKey,startDate,endDate));
-            //            }
-            //        }
-            //    }
-            //
-            //    //BigDecimal totalCost = vo.getTotalCost();
-            //    totalCost = totalRoyal;//新增
-            //    //个人季度任务
-            //    BigDecimal personalTask = config.getPersonalTask();
-            //    //判断个人任务是否完成 ,如果完成则给到千分之5,如果未完成,则给到千分之3的绩效
-            //
-            //    if(!userDto.getRoleCode().equals("operationAssistant")){
-            //        if (totalCost.compareTo(personalTask) > 0 ) {
-            //            totalRoyalty = totalCost.multiply(config.getMediaTaskFinishRate()).divide(new BigDecimal("1000")).setScale(2, RoundingMode.HALF_UP);
-            //        } else {
-            //            totalRoyalty = totalCost.multiply(config.getMediaTaskNoFinishRate()).divide(new BigDecimal("1000")).setScale(2, RoundingMode.HALF_UP);
-            //        }
-            //    }
-            //}
-            //
-            ////运营绩效数据入库
-            //PerformanceOptimizer performanceOptimizer = new PerformanceOptimizer();
-            //performanceOptimizer.setAppType(mediaType);
-            //performanceOptimizer.setQuarter(quarter + "");
-            //performanceOptimizer.setYear(year + "");
-            //performanceOptimizer.setRealname(userDto.getRealname());
-            //performanceOptimizer.setTotalCost(totalCost);
-            //performanceOptimizer.setTotalRoyalty(totalRoyalty);
-            //performanceOptimizer.setUserId(userDto.getUserId());
-            //performanceOptimizerMapper.insert(performanceOptimizer);
-
-
             ///////////////方法2
             //1。获取所有快手账户
             //2。循环每个账户,然后查找每个账户下在本季度是否有转户的情况存在;
@@ -234,15 +110,19 @@ public class PerformanceOptimizerServiceImpl extends ServiceImpl<PerformanceOpti
                     }else{
                         Map<String,List<Map<String,String>>> accountMap = userAccountMap.get(userId);
                         //如果此账户本季度没有转户行为,直接创建账户即可,不用再做判断
-                        List<Map<String,String>> dateList = new ArrayList<>();
                         Map<String,String> dateMap = new HashMap<>();
                         dateMap.put("startDate", startDate);
                         dateMap.put("endDate",endDate);
-                        dateList.add(dateMap);
-                        accountMap.put(account, dateList);
+                        if(accountMap.get(account) == null){
+                            List<Map<String,String>> dateList = new ArrayList<>();
+                            dateList.add(dateMap);
+                            accountMap.put(account, dateList);
+                        }else{
+                            List<Map<String,String>> dateList = accountMap.get(account);
+                            dateList.add(dateMap);
+                        }
                     }
                 }else{//如果此账户有转户情况
-
                     //循环所有转户信息
                     for(int j=0; j<transferorAccountDTOList.size(); j++){
                         if ( j==0 ){
@@ -258,13 +138,11 @@ public class PerformanceOptimizerServiceImpl extends ServiceImpl<PerformanceOpti
                                 accountMap.put(account, dateList);
                                 userAccountMap.put(transferorUserId, accountMap);
                             }else{//如果已经有了这个userId,则需要判断是否有此账户
-
                                 if( userAccountMap.get(transferorUserId).get(account)==null ){
-                                    Map<String,List<Map<String,String>>> accountMap = new HashMap<>();
+                                    Map<String,List<Map<String,String>>> accountMap = userAccountMap.get(transferorUserId);
                                     List<Map<String,String>> dateList = new ArrayList<>();
                                     dateList.add(dateMap);
                                     accountMap.put(account, dateList);
-                                    userAccountMap.put(transferorUserId, accountMap);
                                 }else{
                                     List<Map<String,String>> dateList = userAccountMap.get(transferorUserId).get(account);
                                     dateList.add(dateMap);
@@ -285,18 +163,16 @@ public class PerformanceOptimizerServiceImpl extends ServiceImpl<PerformanceOpti
                                     userAccountMap.put(assigneeUserId, accountMap);
                                 }else{//如果已经有了这个userId,则需要判断是否有此账户
                                     if( userAccountMap.get(assigneeUserId).get(account)==null ){
-                                        Map<String,List<Map<String,String>>> accountMap = new HashMap<>();
+                                        Map<String,List<Map<String,String>>> accountMap = userAccountMap.get(assigneeUserId);
                                         List<Map<String,String>> dateList = new ArrayList<>();
                                         dateList.add(dateMap2);
                                         accountMap.put(account, dateList);
-                                        userAccountMap.put(assigneeUserId, accountMap);
                                     }else{
                                         List<Map<String,String>> dateList = userAccountMap.get(assigneeUserId).get(account);
                                         dateList.add(dateMap2);
                                     }
                                 }
                             }
-
                         }else{
                             Map<String,String> dateMap = new HashMap<>();
                             dateMap.put("startDate", transferorAccountDTOList.get(j).getAssigneeDate());
@@ -317,11 +193,10 @@ public class PerformanceOptimizerServiceImpl extends ServiceImpl<PerformanceOpti
                             }else{//如果已经有了这个userId,则需要判断是否有此账户
 
                                 if( userAccountMap.get(assigneeUserId).get(account)==null ){
-                                    Map<String,List<Map<String,String>>> accountMap = new HashMap<>();
+                                    Map<String,List<Map<String,String>>> accountMap = userAccountMap.get(assigneeUserId);
                                     List<Map<String,String>> dateList = new ArrayList<>();
                                     dateList.add(dateMap);
                                     accountMap.put(account, dateList);
-                                    userAccountMap.put(assigneeUserId, accountMap);
                                 }else{
                                     List<Map<String,String>> dateList = userAccountMap.get(assigneeUserId).get(account);
                                     dateList.add(dateMap);
@@ -388,141 +263,13 @@ public class PerformanceOptimizerServiceImpl extends ServiceImpl<PerformanceOpti
                 performance.setTotalRoyalty(totalPerformance);
                 performanceOptimizerMapper.insert(performance);
             }
-
-
-
-        //}
         return result;
     }
 
     //头条运营季度绩效计算
     public void toutiaoYunyingQuarterPerformance(Integer year, Integer quarter, String startDate, String endDate){
-        //Map<String, Object> result = new HashMap<>();
-        ////获取快手所有运营的数据
-        //List<UserDto2> userList = userEfficientVideoMapMapper.getAllToutiaoYunyingDepartUserInfo();
-        //Integer mediaType = 1;
-        ////循环所有toutiao运营
-        //for(UserDto2 userDto:userList){
-        //    //查询当前媒体配置信息
-        //    OptimizerConfig config = optimizerConfigService.getEnabledConfigByMediaType(mediaType + "", CtopAdConstant.CTOP_ORGCODE_NORTH_CHINA_PREFIX);
-        //
-        //    if (null == config) {
-        //        ResultMapUtils.setResultMap(result, StatusCode.KUAISHOU_OPTINIZER_CONFIG_IS_NULL.getCode());
-        //        return ;
-        //    }
-        //
-        //    log.info(userDto.getUserId());
-        //    //增加转户的情况
-        //    //原则a:1. 该季度内最终转给此运营的户,将该户在本季度中不在的时间计算出来,然后计算这段时间内的总消耗,并在总数中减去
-        //    //2. 季度期间在过此运营负责过的户,将在本季度中在的时间计算出来,然后计算总消耗并在总数中增加上
-        //
-        //    //原则b:1.找出改运营手下所有账户,循环每一个账户,然后进行转户判断
-        //    //2.将该账户下所有转户信息拉取出来,去除受让时间小于季度开始时间 以及 转让时间大于季度结束时间的条目(sql去掉),得到该账户所有信息
-        //    //3. 创建userMap,根据userId获取自己季度内的各时间段
-        //    BigDecimal totalRoyal = BigDecimal.ZERO;
-        //    BigDecimal totalRoyalty = BigDecimal.ZERO;
-        //    BigDecimal totalCost = BigDecimal.ZERO;
-        //
-        //    //循环accountId
-        //    List<String> accountList = userEfficientVideoMapMapper.getAccountIdByUserId(userDto.getUserId());
-        //    Map<String, List<Map<String, String>>> accountRangeMap = new HashMap<>();
-        //    if(accountList.size()!=0){
-        //        for(int i=0; i<accountList.size();i++){
-        //            List<TransferorAccountDTO> transferorAccountDTOList = userEfficientVideoMapMapper.accountTransforerListByUserId(accountList.get(i), startDate, endDate);
-        //
-        //            if(transferorAccountDTOList.size() == 0){
-        //                accountRangeMap.put(accountList.get(i),null);
-        //                continue;
-        //            }
-        //            Map<String, String> DateMap = new HashMap<>();
-        //
-        //            for(int j=0; j<transferorAccountDTOList.size(); j++){
-        //                String transferor = transferorAccountDTOList.get(j).getTransferor();
-        //                //如果转让人不是本人,则跳过;按照转让人的逻辑走,因为受让人在下一次转户的时候也会变成转让人
-        //                if( transferor.equals(userDto.getUserId()) ){
-        //                    if (j==0){
-        //                        DateMap.put("startDate", startDate);
-        //                    }else {
-        //                        DateMap.put("startDate", transferorAccountDTOList.get(j-1).getAssigneeDate());
-        //                    }
-        //                    DateMap.put("endDate",transferorAccountDTOList.get(j).getTransferorDate());
-        //                }
-        //
-        //                //判断:如果转让人不是本人,受让人也不是,则跳过
-        //                if(DateMap.size() == 0 &&  j != (transferorAccountDTOList.size()-1)     ){
-        //                    continue;
-        //                }
-        //
-        //                if (accountRangeMap.get(accountList.get(i)) != null){
-        //                    accountRangeMap.get(accountList.get(i)).add(DateMap);
-        //
-        //                    if(j == (transferorAccountDTOList.size()-1)){
-        //                        DateMap.put("startDate", transferorAccountDTOList.get(j).getAssigneeDate());
-        //                        DateMap.put("endDate", endDate);
-        //                    }
-        //                }else{
-        //                    List<Map<String, String>> userAccountList = new ArrayList<>();
-        //                    if(DateMap.size()!= 0 ){
-        //                        userAccountList.add(DateMap);
-        //                    }
-        //
-        //                    Map<String, String> DateMap2 = new HashMap<>();
-        //                    if(j == (transferorAccountDTOList.size()-1)){
-        //                        DateMap2.put("startDate", transferorAccountDTOList.get(j).getAssigneeDate());
-        //                        DateMap2.put("endDate", endDate);
-        //                        userAccountList.add(DateMap2);
-        //                    }
-        //                    accountRangeMap.put(accountList.get(i), userAccountList);
-        //                }
-        //            }
-        //        }
-        //    }else{
-        //        continue;
-        //    }
-        //
-        //        for(Map.Entry<String, List<Map<String, String>>> entry : accountRangeMap.entrySet()){
-        //            String mapKey = entry.getKey();
-        //            List<Map<String, String>> mapValue = entry.getValue();
-        //            if (mapValue == null){
-        //                totalRoyal = totalRoyal.add( userEfficientVideoMapMapper.getToutiaoAccountSumCharge(mapKey,startDate,endDate)==null?BigDecimal.ZERO : userEfficientVideoMapMapper.getToutiaoAccountSumCharge(mapKey,startDate,endDate) );
-        //            }else{
-        //                for (Map<String, String> map:mapValue){
-        //                    totalRoyal = totalRoyal.add( userEfficientVideoMapMapper.getToutiaoAccountSumCharge(mapKey,map.get("startDate"),map.get("endDate"))==null?BigDecimal.ZERO: userEfficientVideoMapMapper.getToutiaoAccountSumCharge(mapKey,startDate,endDate));
-        //                }
-        //            }
-        //        }
-        //
-        //        totalCost = totalRoyal;//新增
-        //        //个人季度任务
-        //        BigDecimal personalTask = config.getPersonalTask();
-        //        //判断个人任务是否完成 ,如果完成则给到千分之5,如果未完成,则给到千分之3的绩效
-        //
-        //        if(!userDto.getRoleCode().equals("operationAssistant")){
-        //            if (totalCost.compareTo(personalTask) > 0 ) {
-        //                totalRoyalty = totalCost.multiply(config.getMediaTaskFinishRate()).divide(new BigDecimal("1000")).setScale(2, RoundingMode.HALF_UP);
-        //            } else {
-        //                totalRoyalty = totalCost.multiply(config.getMediaTaskNoFinishRate()).divide(new BigDecimal("1000")).setScale(2, RoundingMode.HALF_UP);
-        //            }
-        //        }
-        //
-        //
-        //    //运营绩效数据入库
-        //    PerformanceOptimizer performanceOptimizer = new PerformanceOptimizer();
-        //    performanceOptimizer.setAppType(mediaType);
-        //    performanceOptimizer.setQuarter(quarter + "");
-        //    performanceOptimizer.setYear(year + "");
-        //    performanceOptimizer.setRealname(userDto.getRealname());
-        //    performanceOptimizer.setTotalCost(totalCost);
-        //    performanceOptimizer.setTotalRoyalty(totalRoyalty);
-        //    performanceOptimizer.setUserId(userDto.getUserId());
-        //    performanceOptimizerMapper.insert(performanceOptimizer);
-        //}
-
-
-
-
-        //方法2
-        //1。获取所有快手账户
+        //方法
+        //1。获取所有头条账户
         //2。循环每个账户,然后查找每个账户下在本季度是否有转户的情况存在;
         Integer mediaType = 1;
         //创建map,Map<String人,Map<String账户,时间段List<Map<String开始时间,String结束时间>>>>
@@ -530,6 +277,7 @@ public class PerformanceOptimizerServiceImpl extends ServiceImpl<PerformanceOpti
         OptimizerConfig config = optimizerConfigService.getEnabledConfigByMediaType(mediaType + "", CtopAdConstant.CTOP_ORGCODE_NORTH_CHINA_PREFIX);
         //获取所有头条的账户
         List<String> accountList = userEfficientVideoMapMapper.getAccountListByMediaId(mediaType);
+
         //循环所有账户
         for(String account:accountList){
             String userId = userEfficientVideoMapMapper.getAccountUserId(account);
@@ -551,15 +299,19 @@ public class PerformanceOptimizerServiceImpl extends ServiceImpl<PerformanceOpti
                 }else{
                     Map<String,List<Map<String,String>>> accountMap = userAccountMap.get(userId);
                     //如果此账户本季度没有转户行为,直接创建账户即可,不用再做判断
-                    List<Map<String,String>> dateList = new ArrayList<>();
                     Map<String,String> dateMap = new HashMap<>();
                     dateMap.put("startDate", startDate);
                     dateMap.put("endDate",endDate);
-                    dateList.add(dateMap);
-                    accountMap.put(account, dateList);
+                    if(accountMap.get(account) == null){
+                        List<Map<String,String>> dateList = new ArrayList<>();
+                        dateList.add(dateMap);
+                        accountMap.put(account, dateList);
+                    }else{
+                        List<Map<String,String>> dateList = accountMap.get(account);
+                        dateList.add(dateMap);
+                    }
                 }
             }else{//如果此账户有转户情况
-
                 //循环所有转户信息
                 for(int j=0; j<transferorAccountDTOList.size(); j++){
                     if ( j==0 ){
@@ -575,13 +327,11 @@ public class PerformanceOptimizerServiceImpl extends ServiceImpl<PerformanceOpti
                             accountMap.put(account, dateList);
                             userAccountMap.put(transferorUserId, accountMap);
                         }else{//如果已经有了这个userId,则需要判断是否有此账户
-
                             if( userAccountMap.get(transferorUserId).get(account)==null ){
-                                Map<String,List<Map<String,String>>> accountMap = new HashMap<>();
+                                Map<String,List<Map<String,String>>> accountMap = userAccountMap.get(transferorUserId);
                                 List<Map<String,String>> dateList = new ArrayList<>();
                                 dateList.add(dateMap);
                                 accountMap.put(account, dateList);
-                                userAccountMap.put(transferorUserId, accountMap);
                             }else{
                                 List<Map<String,String>> dateList = userAccountMap.get(transferorUserId).get(account);
                                 dateList.add(dateMap);
@@ -602,18 +352,16 @@ public class PerformanceOptimizerServiceImpl extends ServiceImpl<PerformanceOpti
                                 userAccountMap.put(assigneeUserId, accountMap);
                             }else{//如果已经有了这个userId,则需要判断是否有此账户
                                 if( userAccountMap.get(assigneeUserId).get(account)==null ){
-                                    Map<String,List<Map<String,String>>> accountMap = new HashMap<>();
+                                    Map<String,List<Map<String,String>>> accountMap = userAccountMap.get(transferorUserId);
                                     List<Map<String,String>> dateList = new ArrayList<>();
                                     dateList.add(dateMap2);
                                     accountMap.put(account, dateList);
-                                    userAccountMap.put(assigneeUserId, accountMap);
                                 }else{
                                     List<Map<String,String>> dateList = userAccountMap.get(assigneeUserId).get(account);
                                     dateList.add(dateMap2);
                                 }
                             }
                         }
-
                     }else{
                         Map<String,String> dateMap = new HashMap<>();
                         dateMap.put("startDate", transferorAccountDTOList.get(j).getAssigneeDate());
@@ -634,11 +382,10 @@ public class PerformanceOptimizerServiceImpl extends ServiceImpl<PerformanceOpti
                         }else{//如果已经有了这个userId,则需要判断是否有此账户
 
                             if( userAccountMap.get(assigneeUserId).get(account)==null ){
-                                Map<String,List<Map<String,String>>> accountMap = new HashMap<>();
+                                Map<String,List<Map<String,String>>> accountMap = userAccountMap.get(assigneeUserId);
                                 List<Map<String,String>> dateList = new ArrayList<>();
                                 dateList.add(dateMap);
                                 accountMap.put(account, dateList);
-                                userAccountMap.put(assigneeUserId, accountMap);
                             }else{
                                 List<Map<String,String>> dateList = userAccountMap.get(assigneeUserId).get(account);
                                 dateList.add(dateMap);
@@ -653,6 +400,7 @@ public class PerformanceOptimizerServiceImpl extends ServiceImpl<PerformanceOpti
 
         }//账户循环结束
 
+
         for(Map.Entry<String,Map<String,List<Map<String,String>>>> entry : userAccountMap.entrySet()){
             String userAccountKey = entry.getKey();
             Map<String,List<Map<String,String>>> userAccountValue =  entry.getValue();

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

@@ -3,6 +3,7 @@ package cn.com.ctop.userefficientvideomap.entity;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 
 
 @Data
@@ -14,4 +15,11 @@ public class AccountDTO implements Serializable {
     private String userName;  //优化师
     private String advertiserName;  //广告主名称
     private String authName;  //授权名称
+    private BigDecimal cost;
+    private String userId;
+    private Integer mediaId;
+    private Integer quarter;
+    private Integer year;
+    private String startDate;
+    private String endDate;
 }

+ 4 - 0
performance-appraisal/src/main/java/cn/com/ctop/userefficientvideomap/entity/ProjectDTO.java

@@ -10,4 +10,8 @@ import java.math.BigDecimal;
 public class ProjectDTO implements Serializable {
     private Long projectId;
     private String projectName;
+    private String advertiserName;
+    private String responsibleName;
+    private String designResponsibleName;
+    private BigDecimal totalCost;
 }

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

@@ -223,6 +223,10 @@ public interface UserEfficientVideoMapMapper extends BaseMapper<UserEfficientVid
 
     List<PerformanceAccount> getYunyingQuarterDetailByUserId(@Param("year")Integer year, @Param("quarter")Integer quarter, @Param("userId")String userId, @Param("appType")Integer appType);
 
+    //按平台获取其下所有项目信息以及消耗
+    List<ProjectDTO> getProjcetListByMediaType(@Param("year")Integer year, @Param("quarter")Integer quarter, @Param("appType")Integer appType);
+    //根据projectId获取其下账户季度消耗信息
+    List<AccountDTO> getQuarterAccountDetail(@Param("year")Integer year, @Param("quarter")Integer quarter, @Param("appType")Integer appType);
 
 }
 

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

@@ -1501,5 +1501,51 @@
         and a.quarter = #{quarter}
     </select>
 
+    <!-- 按平台获取其下所有项目信息以及消耗 -->
+    <select id="getProjcetListByMediaType" resultType="cn.com.ctop.userefficientvideomap.entity.ProjectDTO">
+        select
+        id as projectId,
+        project_name as projectName,
+        advertiser_name as advertiserName,  <!-- 广告主 -->
+        responsible_name as responsibleName,  <!-- 负责人名称 -->
+        design_responsible_name as designResponsibleName, <!-- 设计负责人名称 -->
+        (select sum(cost) from ctop_performance_account where account_id in (
+                        select
+                        account_id
+                        from
+                        ctop_user_allocation where project_id = projectId) and year = #{year} and quarter = #{quarter}
+        ) as totalCost  <!-- 每个项目在季度内的消耗 -->
+        from
+        ctop_project
+        where
+        media_id  = #{appType}
+    </select>
+
+    <!-- 根据projectId获取其下账户季度消耗信息 -->
+    <select id="getQuarterAccountDetail" resultType="cn.com.ctop.userefficientvideomap.entity.AccountDTO">
+            select
+            a.account_id as accountId,
+            b.auth_name as authName,
+            a.cost as cost,
+            a.user_id as userId,
+            c.user_name as userName,
+            b.media_id as mediaId,
+            b.advertiser_name as advertiserName,
+            b.project_id as projectId,
+            b.project_name as projectName,
+            a.year as year,
+            a.quarter as quarter,
+            a.start_date as startDate,
+            a.end_date as endDate
+        from ctop_performance_account a
+        left join (select * from ctop_user_allocation where project_id = #{projectId}) b on a.account_id = b.account_id
+        left join sys_user c on a.user_id = c.id
+        where a.account_id in (
+                        select
+                        account_id
+                        from
+                        ctop_user_allocation where project_id = #{projectId}) and year = #{year} and quarter = #{quarter}
+    </select>
+
 
 </mapper>