فهرست منبع

盯盘运营经理-头条运营组数据

yangzian 3 سال پیش
والد
کامیت
5a17fedc0f

+ 3 - 2
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/controller/KuaiShouMaterialStareController.java

@@ -109,7 +109,7 @@ public class KuaiShouMaterialStareController {
     @GetMapping("/getKuaiShouOperateInfo")
     public Result<JSONObject> getKuaiShouOperateInfo(@RequestParam(name="pageNum",defaultValue = "1") Integer pageNum,
                                                        @RequestParam(name="pageSize",defaultValue = "5") int pageSize,
-                                                       @RequestParam(name="mediaType",defaultValue = "5") String mediaType,
+                                                       @RequestParam(name="mediaType") String mediaType,
                                               @RequestParam(name="startTime") String startTime,
                                               @RequestParam(name="endTime") String endTime,
                                               @RequestParam(name="userId") String userId) {
@@ -120,8 +120,9 @@ public class KuaiShouMaterialStareController {
     public Result<JSONObject> exportKuaiShouOperateInfo(@RequestParam(name="startTime") String startTime,
                                               @RequestParam(name="endTime") String endTime,
                                               @RequestParam(name="userId") String userId,
+                                               @RequestParam(name="mediaType") String mediaType,
                                                         HttpServletResponse response) {
-        return materialStareService.exportKuaiShouOperateInfo(startTime, endTime, userId,response);
+        return materialStareService.exportKuaiShouOperateInfo(startTime, endTime, mediaType,userId,response);
     }
 
 

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

@@ -26,7 +26,7 @@ public interface MaterialStareService {
     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 userId, HttpServletResponse response);
+    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);

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

@@ -456,10 +456,6 @@ public class MaterialStareServiceImpl implements MaterialStareService {
         Set<String> operatorUserIds = new HashSet<>();
 
         try {
-
-
-
-
             if ("admin".equals(roleCode)) {
                 //所有运营
                 List<KuaiShouOperateGroupVo> allOperationManagerList = materialStareMapper.getOperationManagerUser("perat");
@@ -480,13 +476,20 @@ public class MaterialStareServiceImpl implements MaterialStareService {
 
         long now = Long.valueOf(DateUtils.getDateInteger(DateUtils.getDate("yyyy-MM-dd")));
 
-
         //查询运营数据 -- 区分媒体
         //List<KuaiShouOperateVo> listOperate = materialStareMapper.getKuaiShouOrBytedanceOperateInfo(startDate,entDate,operatorUserIds);
             List<KuaiShouOperateVo> listOperate = new ArrayList<>();
             if (mediaType.equals("1")){
-                PageHelper.startPage(pageNum,pageSize);
-                listOperate = materialStareMapper.getBytedanceOperateInfo(startDate,entDate,operatorUserIds);
+
+                if (startDate == now){
+                    PageHelper.startPage(pageNum,pageSize);
+                    //查询 当天有效 上新计划 上新组
+                    listOperate = materialStareMapper.getBytedanceOperateInfoHourly(now,now,operatorUserIds);
+                }else {
+                    PageHelper.startPage(pageNum,pageSize);
+                    listOperate = materialStareMapper.getBytedanceOperateInfo(startDate,entDate,operatorUserIds);
+                }
+
                 for (KuaiShouOperateVo operate : listOperate) {
                     Set<String> ids = new HashSet<String>(){{
                         add(operate.getUserId());
@@ -559,7 +562,7 @@ public class MaterialStareServiceImpl implements MaterialStareService {
     }
 
     @Override
-    public Result exportKuaiShouOperateInfo(String startTime, String endTime, String userId, HttpServletResponse response) {
+    public Result exportKuaiShouOperateInfo(String startTime, String endTime, String mediaType,String userId, HttpServletResponse response) {
         DecimalFormat decimalFormat = new DecimalFormat("0.00%");
         String roleCode = materialStareMapper.getRoleCodeByUserId(userId);
         Set<String> operatorUserIds = new HashSet<>();
@@ -587,45 +590,80 @@ public class MaterialStareServiceImpl implements MaterialStareService {
 
         long now = Long.valueOf(DateUtils.getDateInteger(DateUtils.getDate("yyyy-MM-dd")));
 
-            //查询运营数据
-        //List<KuaiShouOperateVo> listOperate = materialStareMapper.getKuaiShouOperateInfo(startDate,entDate,operatorUserIds);
-        List<KuaiShouOperateVo> listOperate = materialStareMapper.getKuaiShouOrBytedanceOperateInfo(startDate,entDate,operatorUserIds);
+            //查询运营数据 -- 区分媒体
+            //List<KuaiShouOperateVo> listOperate = materialStareMapper.getKuaiShouOrBytedanceOperateInfo(startDate,entDate,operatorUserIds);
+            List<KuaiShouOperateVo> listOperate = new ArrayList<>();
+            if (mediaType.equals("1")){
 
-            for (KuaiShouOperateVo operate : listOperate) {
+                if (startDate == now){
+                    //查询 当天有效 上新计划 上新组
+                    listOperate = materialStareMapper.getBytedanceOperateInfoHourly(now,now,operatorUserIds);
+                }else {
+                    listOperate = materialStareMapper.getBytedanceOperateInfo(startDate,entDate,operatorUserIds);
+                }
 
-            Set<String> ids = new HashSet<String>(){{
-                add(operate.getUserId());
-            }};
+                for (KuaiShouOperateVo operate : listOperate) {
+                    Set<String> ids = new HashSet<String>(){{
+                        add(operate.getUserId());
+                    }};
+                    // 头条 没有当天数据
+                    int newUnitNumNow = 0;
+//                    if (startDate == now || entDate == now){
+//                        //查询 当天有效 上新计划 上新组
+//                        JSONObject newEffect = materialStareMapper.getBytedanceAccountNowBaseByUserId(ids,null,null,now,now);
+//                        newUnitNumNow = Check.isNull(newEffect) ? 0 : newEffect.getInteger("newUnitNum");//组
+//                    }
+                    //查询 有效 上新计划 上新组
+                    JSONObject newEffect = materialStareMapper.getBytedanceAccountBaseByUserId(ids,null,null,startDate,entDate);
+                    //operate.setNewEffectNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newEffectNum"));//有效
+                    operate.setNewCampaignNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newCampaignNum"));//计划
+                    operate.setNewUnitNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newUnitNum")+newUnitNumNow);//组
 
-            //当天
-            int effect = 0;
-            if (startDate == now || entDate == now){
-                //查询 当天有效 上新计划 上新组
-                JSONObject newEffect = materialStareMapper.getKuaiShouAccountNowBaseByUserId(ids,null,null,startDate,entDate);
-                effect = Check.isNull(newEffect) ? 0 : newEffect.getInteger("newUnitNum");//组
-            }
-                //查询 有效 上新计划 上新组
-                JSONObject newEffect = materialStareMapper.getKuaiShouAccountBaseByUserId(ids,null,null,startDate,entDate);
-                //operate.setNewEffectNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newEffectNum"));//有效
-                operate.setNewCampaignNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newCampaignNum"));//计划
-                operate.setNewUnitNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newUnitNum")+effect);//组
+                    //List<KuaiShouOperateVo> userOperate = materialStareMapper.getKuaiShouOperateInfo(lastTimeStart,lastTimeEnd,userSet);
+                    List<KuaiShouOperateVo> userOperate = materialStareMapper.getBytedanceOperateInfo(lastTimeStart,lastTimeEnd,ids);
+                    String rate = "0";
+                    if (!Check.isNull(userOperate)){
+                        //环比
+                        Double rateDoulbe = (operate.getTotalCost() - userOperate.get(0).getTotalCost()) / userOperate.get(0).getTotalCost();
+                        rate = decimalFormat.format(rateDoulbe);
+                    }
+                    operate.setRate(rate);
+                }
+            }else {
+                listOperate = materialStareMapper.getKuaiShouOperateInfo(startDate,entDate,operatorUserIds);
+                for (KuaiShouOperateVo operate : listOperate) {
 
+                    Set<String> ids = new HashSet<String>(){{
+                        add(operate.getUserId());
+                    }};
 
+                    //当天
+                    int newUnitNumNow = 0;
+                    if (startDate == now || entDate == now){
+                        //查询 当天有效 上新计划 上新组
+                        JSONObject newEffect = materialStareMapper.getKuaiShouAccountNowBaseByUserId(ids,null,null,now,now);
+                        newUnitNumNow = Check.isNull(newEffect) ? 0 : newEffect.getInteger("newUnitNum");//组
+                    }
 
-            Set<String> userSet = new HashSet<String>(){{
-                add(operate.getUserId());
-            }};
-            //List<KuaiShouOperateVo> userOperate = materialStareMapper.getKuaiShouOperateInfo(lastTimeStart,lastTimeEnd,userSet);
-            List<KuaiShouOperateVo> userOperate = materialStareMapper.getKuaiShouOrBytedanceOperateInfo(lastTimeStart,lastTimeEnd,ids);
-            String rate = "0";
-            if (!Check.isNull(userOperate)){
-                //环比 = (当前 - 上阶段 ) / 上阶段
-                Double rateDouble = (operate.getTotalCost() - userOperate.get(0).getTotalCost() ) / userOperate.get(0).getTotalCost();
-                rate = decimalFormat.format(rateDouble);
+                    //查询 有效 上新计划 上新组
+                    JSONObject newEffect = materialStareMapper.getKuaiShouAccountBaseByUserId(ids,null,null,startDate,entDate);
+                    //operate.setNewEffectNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newEffectNum"));//有效
+                    operate.setNewCampaignNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newCampaignNum"));//计划
+                    operate.setNewUnitNum(Check.isNull(newEffect) ? 0 : newEffect.getInteger("newUnitNum")+newUnitNumNow);//组
+
+
+                    //List<KuaiShouOperateVo> userOperate = materialStareMapper.getKuaiShouOperateInfo(lastTimeStart,lastTimeEnd,userSet);
+                    List<KuaiShouOperateVo> userOperate = materialStareMapper.getKuaiShouOperateInfo(lastTimeStart,lastTimeEnd,ids);
+                    String rate = "0";
+                    if (!Check.isNull(userOperate)){
+                        //环比
+                        Double rateDoulbe = (operate.getTotalCost() - userOperate.get(0).getTotalCost()) / userOperate.get(0).getTotalCost();
+                        rate = decimalFormat.format(rateDoulbe);
+                    }
+                    operate.setRate(rate);
+                }
             }
-            operate.setRate(rate);
-        }
-       Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("运营数据详情", "运营数据"), KuaiShouOperateVo.class, listOperate);
+            Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("运营数据详情", "运营数据"), KuaiShouOperateVo.class, listOperate);
        response.setCharacterEncoding("UTF-8");
        response.setHeader("content-Type", "application/vnd.ms-excel");
        response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("运营数据详情.xlsx", "UTF-8"));