yumeng 4 éve
szülő
commit
d3f92ae611

+ 3 - 0
jeecg-boot-base-common/src/main/java/org/jeecg/common/constant/AccountReportConstants.java

@@ -42,6 +42,7 @@ public class AccountReportConstants {
     //头条视频报表字段映射
     public static Map<String, Map<String, Object>> dicMapByVideo = new HashMap<>();
     public static Map<String, Map<String, Object>> kuaishouVideoReportMap = new HashMap<>();
+    public static Map<String, Map<String, Object>> kuaishouVideoReportDict = new HashMap<>();
 
     /**
      * 初始化字典
@@ -51,11 +52,13 @@ public class AccountReportConstants {
         Object jsonBy = JsonResourceUtil.getJsonObjFromResource("/json_template/bytedance_filed_mapping.json");
         Object jsonKs = JsonResourceUtil.getJsonObjFromResource("/json_template/kuaishou_filed_mapping.json");
         Object KuaiShouVideoJson = JsonResourceUtil.getJsonObjFromResource("/json_template/kuaishou_video_report_filed_mapping.json");
+        Object KuaiShouVideoDictJson = JsonResourceUtil.getJsonObjFromResource("/json_template/kuaishou_video_report_filed_dict.json");
         Object jsonByVideo = JsonResourceUtil.getJsonObjFromResource("/json_template/bytedance_video_report_mapping.json");
         //json 转为map存为静态常量
         dicMapBy = JsonResourceUtil.jsonToMap(jsonBy);
         dicMapKs = JsonResourceUtil.jsonToMap(jsonKs);
         dicMapByVideo = JsonResourceUtil.jsonToMap(jsonByVideo);
         kuaishouVideoReportMap = JsonResourceUtil.jsonToMap(KuaiShouVideoJson);
+        kuaishouVideoReportDict = JsonResourceUtil.jsonToMap(KuaiShouVideoDictJson);
     }
 }

+ 20 - 25
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/controller/KsVideoReportCtrl.java

@@ -290,45 +290,38 @@ public class KsVideoReportCtrl {
             if (!Check.isNull(requestBody.getString("order"))) {
                 requestMap.put("order", requestBody.getString("order"));
             }
+
+            JSONArray columns2 = new JSONArray();
+            columns2.add(0, "materialName");
+            columns2.add(1, "channel");
+            columns2.add(2, "designLeader");
+            columns2.add(3, "clip");
+            columns2.add(4, "plan");
+            columns2.add(5, "shot");
+            columns2.add(6, "createTime");
+            for (int i = 0; i < columns.size(); i++) {
+                columns2.add(columns2.size(), columns.getString(i));
+            }
+
+            columns2.add(columns2.size(), "url");
+            List<String> titles = getfileIds(AccountReportConstants.kuaishouVideoReportDict, columns2);
             List<JSONObject> listData = ksVideoReportService.getKuaiShouVideoReportByMap(requestMap);
             if (Check.isNull(listData)) {
                 throw new Exception("暂无素材相关信息,请检查账户");
             }
-            columns.add(0, "materialName");
-            columns.add(1, "channel");
-            columns.add(2, "designLeader");
-            columns.add(4, "clip");
-            columns.add(4, "plan");
-            columns.add(5, "shot");
-            columns.add(columns.size(), "url");
-
-            List<String> titles = new ArrayList<>();
-            titles.add(0, "素材名称");
-            titles.add(1, "渠道");
-            titles.add(2, "设计负责人");
-            titles.add(3, "剪辑");
-            titles.add(4, "编导");
-            titles.add(5, "拍摄");
-
-
-            //  ArrayList<String> fileIds = JsonResourceUtil.joinTitle(AccountReportConstants.kuaishouVideoReportMap, columns);
-            titles = getfileIds(AccountReportConstants.kuaishouVideoReportMap, columns, titles);
-            titles.add(columns.size(), "素材链接");
             List<List<Object>> excelList = new ArrayList<>();
             for (int i = 0; i < listData.size(); i++) {
                 List<Object> temp = new ArrayList<>();
                 JSONObject jsonObject = listData.get(i);
-                for (int j = 0; j < columns.size(); j++) {
-                    String key = columns.getString(j);
+                for (int j = 0; j < columns2.size(); j++) {
+                    String key = columns2.getString(j);
                     String value = jsonObject.getString(key);
                     temp.add(value);
                 }
                 excelList.add(temp);
             }
 
-
             try {
-                //  String[] headers = {"视频", "视频md5", "花费", "安卓下载完成数", "封面曝光数", "封面点击数", "素材曝光数", "行为数", "封面点击率", "行为率", "均千次封面曝光花费(元)", "平均封面点击单价(元)", "平均行为单价(元)", "转化数", "转化单价(元)"};
                 String[] strings = titles.toArray(new String[]{});
                 OutputStream os = response.getOutputStream();
                 ExportExcelUtils eeu = new ExportExcelUtils();
@@ -355,11 +348,13 @@ public class KsVideoReportCtrl {
 
     }
 
-    private List<String> getfileIds(Map<String, Map<String, Object>> kuaishouVideoReportMap, JSONArray columns, List<String> titles) {
+    private List<String> getfileIds(Map<String, Map<String, Object>> kuaishouVideoReportMap, JSONArray columns) {
+        List<String> titles = new ArrayList<>();
         for (int i = 0; i < columns.size(); i++) {
             String string = columns.getString(i);
             Map<String, Object> stringObjectMap = kuaishouVideoReportMap.get(string);
             if (Check.isNull(stringObjectMap)) {
+                titles.add("-");
                 continue;
             }
             Object comment = stringObjectMap.get("comment");

+ 190 - 0
module-kuaishou/src/main/resources/json_template/kuaishou_video_report_filed_dict.json

@@ -0,0 +1,190 @@
+{
+  "clip": {
+    "comment": "剪辑"
+  },
+  "channel": {
+    "comment": "来源"
+  },
+
+  "plan": {
+    "comment": "编导"
+  },
+  "shot": {
+    "comment": "拍摄"
+  },
+  "designLeader": {
+    "comment": "设计负责人"
+  },
+  "materialName": {
+    "comment": "素材名称"
+  },
+  "createTime": {
+    "comment": "上线时间"
+  },
+
+  "coverUrl": {
+    "comment": "封面链接"
+  },
+  "url": {
+    "comment": "素材链接"
+  },
+  "signature": {
+    "comment": "素材标识"
+  },
+  "projectName": {
+    "comment": "项目名称"
+  },
+  "cost": {
+    "comment": "消耗"
+  },
+  "photoShow": {
+    "comment": "封面曝光数"
+  },
+  "photoClick": {
+    "comment": "封面点击数"
+  },
+  "aClick": {
+    "comment": "素材曝光数"
+  },
+  "bClick": {
+    "comment": "行为数"
+  },
+  "clickRate": {
+    "comment": "封面点击率"
+  },
+  "bClickRate": {
+    "comment": "行为率"
+  },
+  "cpm": {
+    "comment": "平均千次封面曝光花费"
+  },
+  "cpc": {
+    "comment": "平均封面点击单价"
+  },
+  "cpb": {
+    "comment": "平均行为单价"
+  },
+  "downloadStart": {
+    "comment": "安卓开始下载数"
+  },
+  "downloadStartCost": {
+    "comment": "安卓开始下载单价"
+  },
+  "downloadStartRate": {
+    "comment": "安卓开始下载率"
+  },
+  "downloadFinish": {
+    "comment": "安卓下载完成数"
+  },
+  "downloadFinishCost": {
+    "comment": "安卓下载完成单价"
+  },
+  "downloadFinishRate": {
+    "comment": "安卓下载完成率"
+  },
+  "active": {
+    "comment": "激活数"
+  },
+  "activeCost": {
+    "comment": "激活单价"
+  },
+  "firstDayPay": {
+    "comment": "首日付费次数"
+  },
+  "firstDayPayAmount": {
+    "comment": "首日付费金额"
+  },
+  "firstDayPayCost": {
+    "comment": "首日付费成本"
+  },
+  "firstDayPayROI": {
+    "comment": "首日ROI"
+  },
+  "eventPay": {
+    "comment": "付费次数"
+  },
+  "eventPayPurchaseAmount": {
+    "comment": "付费金额"
+  },
+  "eventPayCost": {
+    "comment": "付费次数成本"
+  },
+  "ROI": {
+    "comment": "ROI"
+  },
+  "register": {
+    "comment": "注册数"
+  },
+  "activeRegisterCost": {
+    "comment": "注册成本"
+  },
+  "activeRegisterRate": {
+    "comment": "注册率"
+  },
+  "eventJinJianApp": {
+    "comment": "完件数"
+  },
+  "eventJinJianAppCost": {
+    "comment": "完件成本"
+  },
+  "eventCreditGrantApp": {
+    "comment": "授信数"
+  },
+  "eventCreditGrantAppCost": {
+    "comment": "授信成本"
+  },
+  "eventCreditGrantAppRate": {
+    "comment": "授信率"
+  },
+  "formCount": {
+    "comment": "表单提交数"
+  },
+  "formCountRate": {
+    "comment": "表单提交率"
+  },
+  "formCountCost": {
+    "comment": "表单提交成本"
+  },
+  "nextDayOpen": {
+    "comment": "次留数"
+  },
+  "nextDayOpenCost": {
+    "comment": "次留成本"
+  },
+  "nextDayOpenRate": {
+    "comment": "次留率"
+  },
+  "eventJinJianLandingPage": {
+    "comment": "落地页完件数"
+  },
+  "eventJinJianLandingPageCost": {
+    "comment": "落地页完件成本"
+  },
+  "eventCreditGrantLandingPage": {
+    "comment": "落地页授信数"
+  },
+  "eventCreditGrantLandingPageCost": {
+    "comment": "落地页授信成本"
+  },
+  "eventCreditGrantLandingPageRate": {
+    "comment": "落地页授信率"
+  },
+  "submit": {
+    "comment": "按钮点击数"
+  },
+  "submitCost": {
+    "comment": "按钮点击成本"
+  },
+  "submitRate": {
+    "comment": "按钮点击率"
+  },
+  "activeRate": {
+    "comment": "下载完成激活率"
+  },
+  "play3sCount": {
+    "comment": "3s播放数"
+  },
+  "play3sRate": {
+    "comment": "3s播放率"
+  }
+}

+ 0 - 7
module-kuaishou/src/main/resources/json_template/kuaishou_video_report_filed_mapping.json

@@ -1,6 +1,4 @@
 {
-
-
   "signature": {
     "filed": "t1.signature as signature ",
     "comment": "素材标识"
@@ -9,7 +7,6 @@
     "filed": "t1.project_name as projectName ",
     "comment": "项目名称"
   },
-
   "cost": {
     "filed": "IFNULL(sum(t1.charge),0) as cost ",
     "comment": "消耗"
@@ -202,10 +199,6 @@
     "filed": "CASE WHEN  sum(t1.bclick) != 0 THEN concat(CAST(round(sum(t1.submit) / sum(t1.bclick)*100,2) AS CHAR) ,'%') else '0%' end as submitRate ",
     "comment": "按钮点击率"
   },
-  "play3sRate": {
-    "filed": "CASE WHEN sum(CEIL(t1.play_3s_ratio * t1.photo_show)) / sum(t1.photo_show) IS NULL THEN 0 ELSE round(sum(CEIL(t1.play_3s_ratio * t1.photo_show)) / sum(t1.photo_show)*100,2)end as play3sRate ",
-    "comment": "3s播放率"
-  },
   "activeRate": {
     "filed": "CASE WHEN  sum(t1.download_completed) != 0 THEN concat(CAST(round(sum(t1.activation) / sum(t1.download_completed)*100,2) AS CHAR) ,'%') else '0%' end as activeRate ",
     "comment": "下载完成激活率"