Jelajahi Sumber

盯盘数据页面-头条运营组数据查询 优化

zhaoxian 1 tahun lalu
induk
melakukan
c6d5ba60ef

+ 10 - 12
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/controller/KuaiShouMaterialStareController.java

@@ -134,25 +134,23 @@ public class KuaiShouMaterialStareController {
      */
     @GetMapping("/getKuaiShouOperateProjectInfo")
     public Result<Object> getKuaiShouOperateProjectInfo(@RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
-                                                            @RequestParam(name = "pageSize", defaultValue = "10") int pageSize,
-                                                            @RequestParam(name = "mediaType", defaultValue = "2") String mediaType,
-                                                            @RequestParam(name = "startTime") String startTime,
-                                                            @RequestParam(name = "endTime") String endTime,
-                                                            @RequestParam(name = "userId") String userId) {
+                                                        @RequestParam(name = "pageSize", defaultValue = "10") int pageSize,
+                                                        @RequestParam(name = "mediaType", defaultValue = "2") String mediaType,
+                                                        @RequestParam(name = "startTime") String startTime,
+                                                        @RequestParam(name = "endTime") String endTime,
+                                                        @RequestParam(name = "userId") String userId) {
 
         return materialStareService.getKuaiShouOperateProjectInfo(pageNum, pageSize, mediaType, startTime, endTime, userId);
     }
 
 
-
-
     @GetMapping("/getKuaiShouOperateProjectInfo2")
     public Result<Object> getKuaiShouOperateProjectInfo2(@RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
-                                                            @RequestParam(name = "pageSize", defaultValue = "10") int pageSize,
-                                                            @RequestParam(name = "mediaType", defaultValue = "2") String mediaType,
-                                                            @RequestParam(name = "startTime") String startTime,
-                                                            @RequestParam(name = "endTime") String endTime,
-                                                            @RequestParam(name = "userId") String userId) {
+                                                         @RequestParam(name = "pageSize", defaultValue = "10") int pageSize,
+                                                         @RequestParam(name = "mediaType", defaultValue = "2") String mediaType,
+                                                         @RequestParam(name = "startTime") String startTime,
+                                                         @RequestParam(name = "endTime") String endTime,
+                                                         @RequestParam(name = "userId") String userId) {
 
         try {
             List<KuaiShouOperateProjectVo> list = materialStareService.getOperateProjectInfo(pageNum, pageSize, mediaType, startTime, endTime, userId);

+ 2 - 0
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/mapper/MaterialStareMapper.java

@@ -166,4 +166,6 @@ public interface MaterialStareMapper {
     List<Long> getKuaishouProjectList(Map<String, Object> parameterMap);
 
     List<KuaiShouOperateProjectVo> getKuaiShouOperateProjectInfoNew(Map<String, Object> parameterMap);
+
+    Set<String> getSaleDirctorItsTeamMember(@Param("userId") String userId);
 }

+ 7 - 0
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/mapper/xml/MaterialStareMapper.xml

@@ -2251,4 +2251,11 @@
         GROUP BY t1.project_id
         ORDER BY SUM(t1.charge) DESC
     </select>
+
+    <select id="getSaleDirctorItsTeamMember" resultType="String">
+        select DISTINCT user_id as 'userId'
+        from `application`.app_user_manage
+        where manage_id = #{userId}
+    </select>
+
 </mapper>

+ 19 - 17
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/service/MaterialStareService.java

@@ -1,11 +1,9 @@
 package org.jeecg.ctop.material.service;
 
 import com.alibaba.fastjson.JSONObject;
-import com.github.pagehelper.PageInfo;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.ctop.material.entity.vo.KuaiShouOperateAccountVo;
 import org.jeecg.ctop.material.entity.vo.KuaiShouOperateProjectVo;
-import org.springframework.web.bind.annotation.RequestParam;
 
 import javax.servlet.http.HttpServletResponse;
 import java.text.ParseException;
@@ -22,42 +20,46 @@ public interface MaterialStareService {
 
     Result kuaiShousumDataPersonal(String mediaType, String startTime, String endTime, String userId);
 
-    Result kuaiShouOperateDateTotal(String mediaType,String startTime, String endTime, String userId);
+    Result kuaiShouOperateDateTotal(String mediaType, String startTime, String endTime, String userId);
 
-    Result kuaiShouOperateDateTotalPersonal(String mediaType,String startTime, String endTime, String userId);
+    Result kuaiShouOperateDateTotalPersonal(String mediaType, String startTime, String endTime, String userId);
 
-    Result getKuaiShouOperateInfo(Integer pageNum,int pageSize,String mediaType,String startTime, String endTime, String userId);
-    Result exportKuaiShouOperateInfo(String startTime, String endTime,String mediaType, String userId, HttpServletResponse response);
+    Result getKuaiShouOperateInfo(Integer pageNum, int pageSize, String mediaType, String startTime, String endTime, String userId);
 
-    Result getKuaiShouOperateProjectInfo(Integer pageNum,int pageSize,String mediaType,String startTime, String endTime, String userId);
-    List<KuaiShouOperateProjectVo> exportKuaiShouOperateProjectInfo(String mediaType,String startTime, String endTime, String userId);
+    Result exportKuaiShouOperateInfo(String startTime, String endTime, String mediaType, String userId, HttpServletResponse response);
+
+    Result getKuaiShouOperateProjectInfo(Integer pageNum, int pageSize, String mediaType, String startTime, String endTime, String userId);
+
+    List<KuaiShouOperateProjectVo> exportKuaiShouOperateProjectInfo(String mediaType, String startTime, String endTime, String userId);
+
+    Result getKuaiShouOperateAccountInfo(Integer pageNum, int pageSize, String startTime, String endTime, String projectId, String userId);
 
-    Result getKuaiShouOperateAccountInfo(Integer pageNum,int pageSize,String startTime, String endTime, String projectId,String userId);
     List<KuaiShouOperateAccountVo> exportKuaiShouOperateAccountInfo(String startTime, String endTime, String projectId, String userId);
 
     Result getKuaiShouAccountInfo(long accountId);
 
-    Result getKuaiShouAccountInfoBrokenLine(long accountId,String startTime, String endTime,String type);
+    Result getKuaiShouAccountInfoBrokenLine(long accountId, String startTime, String endTime, String type);
 
-    Result getKuaiShouAccountMaterialNewAndEffectAndFaddish(long accountId,String searchType,String startTime, String endTime,Integer pageNum,Integer pageSize);
+    Result getKuaiShouAccountMaterialNewAndEffectAndFaddish(long accountId, String searchType, String startTime, String endTime, Integer pageNum, Integer pageSize);
 
-    Result getKuaiShouAccountPieChar(long accountId,String startTime, String endTime,String type);
+    Result getKuaiShouAccountPieChar(long accountId, String startTime, String endTime, String type);
 
 
-    Result kuaiShouRealTimeUnitDateInfo(long accountId,Integer pageNum,Integer pageSize);
+    Result kuaiShouRealTimeUnitDateInfo(long accountId, Integer pageNum, Integer pageSize);
 
 
     Result getCompanyAllSubordinateByUserId(String userId);
 
 
-
     Result<List<JSONObject>> participateListByMediaIdAllSubordinate(JSONObject requestJson);
 
     List<JSONObject> getProjectByUserIdAndMediaIdsSubordinate(Set<String> userIds, List<Integer> mediaIds);
-    Map<Long, List<JSONObject>> getAccountListByProjectListSubordinate(Set<String> userIds,List<JSONObject> projectList);
 
-    Result getOperationGroupData(String userId,String mediaType,String startTime, String endTime, Integer pageNum, Integer pageSize);
-    Result exportOperationGroupData(String userId,String mediaType,String startTime, String endTime,HttpServletResponse response);
+    Map<Long, List<JSONObject>> getAccountListByProjectListSubordinate(Set<String> userIds, List<JSONObject> projectList);
+
+    Result getOperationGroupData(String userId, String mediaType, String startTime, String endTime, Integer pageNum, Integer pageSize);
+
+    Result exportOperationGroupData(String userId, String mediaType, String startTime, String endTime, HttpServletResponse response);
 
     List<KuaiShouOperateProjectVo> getOperateProjectInfo(Integer pageNum, int pageSize, String mediaType, String startTime, String endTime, String userId) throws ParseException;
 

+ 63 - 73
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/service/impl/MaterialStareServiceImpl.java

@@ -1460,7 +1460,9 @@ public class MaterialStareServiceImpl implements MaterialStareService {
             long nowDate = Long.valueOf(DateUtils.getDateInteger(DateUtils.getDate("yyyy-MM-dd")));
 
             long startDate = Long.valueOf(DateUtils.getDateInteger(startTime));
+
             long entDate = Long.valueOf(DateUtils.getDateInteger(endTime));
+
             //计算环比 时间值 上阶段时间 以及 两个日期之间的 间隔天数
             Map<String, String> lastTime = DateUtils.getStartEndTime(startTime, endTime);
             long lastTimeStart = Long.valueOf(DateUtils.getDateInteger(lastTime.get("lastTimeStart")));
@@ -1787,76 +1789,76 @@ public class MaterialStareServiceImpl implements MaterialStareService {
         DecimalFormat decimalFormat = new DecimalFormat("0.00%");
         long now = Long.valueOf(DateUtils.getDateInteger(DateUtils.getDate("yyyy-MM-dd")));
         List<KuaiShouOperateProjectVo> listOperate = new ArrayList<>();
-            //查询当前人员所有下级
-            Set<String> operatorUserIds = getAffiliateId(userId);
-            //2022-02-15 ==>> 20220215
-            long startDate = Long.valueOf(DateUtils.getDateInteger(startTime));
-            long entDate = Long.valueOf(DateUtils.getDateInteger(endTime));
-
-            //计算环比 时间值 上阶段时间 以及 两个日期之间的 间隔天数
-            Map<String, String> lastTime = DateUtils.getStartEndTime(startTime, endTime);
-            long lastTimeStart = Long.valueOf(DateUtils.getDateInteger(lastTime.get("lastTimeStart")));
-            long lastTimeEnd = Long.valueOf(DateUtils.getDateInteger(lastTime.get("lastTimeEnd")));
-            Integer daysBetween = Integer.valueOf(lastTime.get("daysBetween")) + 1;
+        //查询当前人员所有下级
+        Set<String> operatorUserIds = getAffiliateId(userId);
+        //2022-02-15 ==>> 20220215
+        long startDate = Long.valueOf(DateUtils.getDateInteger(startTime));
+        long entDate = Long.valueOf(DateUtils.getDateInteger(endTime));
 
-            Map<String, Object> parameterMap = new HashMap<>();
-            parameterMap.put("startDate", startDate);
-            parameterMap.put("endDate", entDate);
-            parameterMap.put("lastTimeStart", lastTimeStart);
-            parameterMap.put("lastTimeEnd", lastTimeEnd);
-            parameterMap.put("userIds", operatorUserIds);
-            parameterMap.put("startEqually", DateUtils.getDateInteger(DateUtils.addDayParse(String.valueOf(DateUtils.getDateInteger(startTime)), -7)));
-            parameterMap.put("endEqually", DateUtils.getDateInteger(DateUtils.addDayParse(String.valueOf(DateUtils.getDateInteger(endTime)), -7)));
+        //计算环比 时间值 上阶段时间 以及 两个日期之间的 间隔天数
+        Map<String, String> lastTime = DateUtils.getStartEndTime(startTime, endTime);
+        long lastTimeStart = Long.valueOf(DateUtils.getDateInteger(lastTime.get("lastTimeStart")));
+        long lastTimeEnd = Long.valueOf(DateUtils.getDateInteger(lastTime.get("lastTimeEnd")));
+        Integer daysBetween = Integer.valueOf(lastTime.get("daysBetween")) + 1;
+
+        Map<String, Object> parameterMap = new HashMap<>();
+        parameterMap.put("startDate", startDate);
+        parameterMap.put("endDate", entDate);
+        parameterMap.put("lastTimeStart", lastTimeStart);
+        parameterMap.put("lastTimeEnd", lastTimeEnd);
+        parameterMap.put("userIds", operatorUserIds);
+        parameterMap.put("startEqually", DateUtils.getDateInteger(DateUtils.addDayParse(String.valueOf(DateUtils.getDateInteger(startTime)), -7)));
+        parameterMap.put("endEqually", DateUtils.getDateInteger(DateUtils.addDayParse(String.valueOf(DateUtils.getDateInteger(endTime)), -7)));
 
-            //头条
-            if (mediaType.equals("1")) {
-                List<Long> projectIds = materialStareMapper.getBytedanceProjectList(parameterMap);
-                if(Check.isNull(projectIds)){
-                    return listOperate;
-                }
-                parameterMap.put("projectIds", projectIds);
-                PageHelper.startPage(pageNum, pageSize);
-                if (startDate == now || entDate == now) {
-                    parameterMap.put("tableName", "application.bytedance_advertiser_report_hourly_dw");
-                    parameterMap.put("hour", DateUtils.getNowHour());
-                } else {
-                    parameterMap.put("tableName", "application.bytedance_advertiser_report_daily_dw");
-                }
-                listOperate = materialStareMapper.getBytedanceOperateProjectInfoNew(parameterMap);
+        //头条
+        if (mediaType.equals("1")) {
+            List<Long> projectIds = materialStareMapper.getBytedanceProjectList(parameterMap);
+            if (Check.isNull(projectIds)) {
+                return listOperate;
             }
-            //快手
-            if (mediaType.equals("2")) {
-                List<Long> projectIds = materialStareMapper.getKuaishouProjectList(parameterMap);
-               if(Check.isNull(projectIds)){
-                   return listOperate;
-               }
-                parameterMap.put("projectIds", projectIds);
-                if (startDate == now || entDate == now) {
-                    parameterMap.put("tableName", "application.kuaishou_account_report_hourly_dw");
-                    parameterMap.put("hour", DateUtils.getNowHour());
+            parameterMap.put("projectIds", projectIds);
+            PageHelper.startPage(pageNum, pageSize);
+            if (startDate == now || entDate == now) {
+                parameterMap.put("tableName", "application.bytedance_advertiser_report_hourly_dw");
+                parameterMap.put("hour", DateUtils.getNowHour());
+            } else {
+                parameterMap.put("tableName", "application.bytedance_advertiser_report_daily_dw");
+            }
+            listOperate = materialStareMapper.getBytedanceOperateProjectInfoNew(parameterMap);
+        }
+        //快手
+        if (mediaType.equals("2")) {
+            List<Long> projectIds = materialStareMapper.getKuaishouProjectList(parameterMap);
+            if (Check.isNull(projectIds)) {
+                return listOperate;
+            }
+            parameterMap.put("projectIds", projectIds);
+            if (startDate == now || entDate == now) {
+                parameterMap.put("tableName", "application.kuaishou_account_report_hourly_dw");
+                parameterMap.put("hour", DateUtils.getNowHour());
                    /* //查询 当天有效 上新计划 上新组
                     JSONObject newEffect = materialStareMapper.getKuaiShouAccountNowBaseByUserId(null, projectIds.get(0)+"", null, now, now);
                     int newUnitNumNow = 0;
                     int trustUnitNum = 0;
                     newUnitNumNow = Check.isNull(newEffect) ? 0 : newEffect.getInteger("newUnitNum");//组
                     trustUnitNum = Check.isNull(newEffect) ? 0 : newEffect.getInteger("trustUnitNum");//智能托管*/
-                } else {
-                    parameterMap.put("tableName", "application.kuaishou_account_report_daily_dw");
-                }
-                PageHelper.startPage(pageNum, pageSize);
-                listOperate = materialStareMapper.getKuaiShouOperateProjectInfoNew(parameterMap);
-                for (KuaiShouOperateProjectVo vo : listOperate) {
-                    List<JSONObject> adSceneDate = JSONObject.parseArray( vo.getAdSceneDateStr(), JSONObject.class);
-                    vo.setAdSceneDate(adSceneDate);
-                }
+            } else {
+                parameterMap.put("tableName", "application.kuaishou_account_report_daily_dw");
             }
-            //计算同比 时间值 只支持7天
-            if (daysBetween > 7) {
-                for (KuaiShouOperateProjectVo projectVo : listOperate) {
-                    projectVo.setEquallyRate("-");
-                }
+            PageHelper.startPage(pageNum, pageSize);
+            listOperate = materialStareMapper.getKuaiShouOperateProjectInfoNew(parameterMap);
+            for (KuaiShouOperateProjectVo vo : listOperate) {
+                List<JSONObject> adSceneDate = JSONObject.parseArray(vo.getAdSceneDateStr(), JSONObject.class);
+                vo.setAdSceneDate(adSceneDate);
             }
-         return listOperate;
+        }
+        //计算同比 时间值 只支持7天
+        if (daysBetween > 7) {
+            for (KuaiShouOperateProjectVo projectVo : listOperate) {
+                projectVo.setEquallyRate("-");
+            }
+        }
+        return listOperate;
     }
 
 //===========================================查询下级员工========================
@@ -1891,25 +1893,13 @@ public class MaterialStareServiceImpl implements MaterialStareService {
             subordinate.add(userId);
             return subordinate;
         } else {
-            result = querySubordinate(subordinate, subordinate, null);
+            //获取其下组员
+            result = materialStareMapper.getSaleDirctorItsTeamMember(userId);
             result.add(userId);
         }
         return result;
     }
 
-    //递归查询
-    private Set<String> querySubordinate(Set<String> leaderIds, Set<String> result, String companyId) {
-        if (leaderIds.isEmpty()) {
-            return result;
-        }
-        Set<String> temp = materialStareMapper.querySubordinateRecursive(companyId, leaderIds);
-        result.addAll(temp);
-        querySubordinate(temp, result, companyId);
-        return result;
-    }
-//===========================================查询下级员工========================
-
-
     //=========================查询下级的项目以及账户===============================================
     @Override
     public Result<List<JSONObject>> participateListByMediaIdAllSubordinate(JSONObject requestJson) {