Pārlūkot izejas kodu

项目消耗top10基建数修改

yangzian 3 gadi atpakaļ
vecāks
revīzija
c466a91768

+ 18 - 0
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/mapper/BossDataExhibitionMapper.java

@@ -142,10 +142,28 @@ public interface BossDataExhibitionMapper {
     List<Map<String,Object>> getMediaTypeProjectCostBytedance(@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);
 
     /**
+     * 项目消耗排行 top10 头条 基建数
+     * @param projectId
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    Map<String,Object> getMediaTypeProjectCostBytedanceBase(@Param("projectId") String projectId,@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);
+
+    /**
      * 项目消耗排行 top10 快手
      * @param startTime
      * @param endTime
      * @return
      */
     List<Map<String,Object>> getMediaTypeProjectCostKuaishou(@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);
+
+    /**
+     * 项目消耗排行 top10 快手 基建数
+     * @param projectId
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    Map<String,Object> getMediaTypeProjectCostKuaishouBase(@Param("projectId") String projectId,@Param("startTime") Integer startTime,@Param("endTime") Integer endTime);
 }

+ 41 - 12
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/mapper/xml/BossDataExhibitionMapper.xml

@@ -561,51 +561,80 @@
         SELECT
         a.project_id as projectId,
         a.project_name as projectName,
-        SUM(a.cost) as totalCost,
-        IFNULL(SUM(b.new_ad_num),0) as baseNum
+        SUM(a.cost) as totalCost
         FROM
         application.bytedance_advertiser_report_daily_dw a
-        LEFT JOIN application.app_bytedance_account_base_info_d b
-        on a.project_id = b.project_id
         <where>
             <if test="startTime !=null and startTime != ''">
                 AND a.stat_datetime &gt;= #{startTime}
-                AND b.stat_date &gt;= #{startTime}
             </if>
             <if test="endTime !=null and endTime != ''">
                 AND a.stat_datetime &lt;= #{endTime}
-                AND b.stat_date &lt;= #{endTime}
             </if>
         </where>
         GROUP BY a.project_id
         ORDER BY totalCost DESC
         limit 10
     </select>
+    <!--  项目消耗排行 top10 头条-基建数-->
+    <select id="getMediaTypeProjectCostBytedanceBase" resultType="java.util.LinkedHashMap">
+        SELECT
+        b.project_id as projectId,
+        IFNULL(SUM(b.new_ad_num),0) as baseNum
+        FROM
+        application.app_bytedance_account_base_info_d b
+        <where>
+            <if test="projectId !=null and projectId != ''">
+                AND b.project_id &gt;= #{projectId}
+            </if>
+            <if test="startTime !=null and startTime != ''">
+                AND b.stat_date &gt;= #{startTime}
+            </if>
+            <if test="endTime !=null and endTime != ''">
+                AND b.stat_date &lt;= #{endTime}
+            </if>
+        </where>
+
+    </select>
 
     <!--  项目消耗排行 top10 快手-->
     <select id="getMediaTypeProjectCostKuaishou" resultType="java.util.LinkedHashMap">
         SELECT
         a.project_id as projectId,
         a.project_name as projectName,
-        SUM(a.charge) as totalCost,
-        IFNULL(SUM(b.new_unit_num),0) as baseNum
+        SUM(a.charge) as totalCost
         FROM
         application.kuaishou_account_report_daily_dw a
-        LEFT JOIN application.app_kuaishou_account_base_info_d b
-        on a.project_id = b.project_id
         <where>
             <if test="startTime !=null and startTime != ''">
                 AND a.stat_date &gt;= #{startTime}
-                AND b.stat_date &gt;= #{startTime}
             </if>
             <if test="endTime !=null and endTime != ''">
                 AND a.stat_date &lt;= #{endTime}
-                AND b.stat_date &lt;= #{endTime}
             </if>
         </where>
         GROUP BY a.project_id
         ORDER BY totalCost DESC
         limit 10
+    </select>
+    <!--  项目消耗排行 top10 快手 基建数-->
+    <select id="getMediaTypeProjectCostKuaishouBase" resultType="java.util.LinkedHashMap">
+        SELECT
+        b.project_id projectId,
+        IFNULL(SUM(b.new_unit_num),0) as baseNum
+        FROM
+        application.app_kuaishou_account_base_info_d b
+        <where>
+            <if test="projectId !=null and projectId != ''">
+                AND b.project_id = #{projectId}
+            </if>
+            <if test="startTime !=null and startTime != ''">
+                AND b.stat_date &gt;= #{startTime}
+            </if>
+            <if test="endTime !=null and endTime != ''">
+                AND b.stat_date &lt;= #{endTime}
+            </if>
+        </where>
 
     </select>
 

+ 14 - 0
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/service/impl/BossDataExhibitionServiceImpl.java

@@ -315,8 +315,22 @@ public class BossDataExhibitionServiceImpl implements IBossDataExhibitionService
         // 1-头条 2-快手
         if (StringUtils.equals("1",mediaType)){
             resultList = bossDataExhibitionMapper.getMediaTypeProjectCostBytedance(stat_tim,end_tim);
+            //基建数
+            if (!Check.isNull(resultList)){
+                for (Map<String, Object> dateMap : resultList) {
+                    Map<String, Object> baseMap = bossDataExhibitionMapper.getMediaTypeProjectCostBytedanceBase(dateMap.get("projectId").toString(),stat_tim,end_tim);
+                    dateMap.put("baseNum", Check.isNull(baseMap) ? "0" : baseMap.get("baseNum"));
+                }
+            }
         }else if (StringUtils.equals("2",mediaType)){
             resultList = bossDataExhibitionMapper.getMediaTypeProjectCostKuaishou(stat_tim,end_tim);
+            //基建数
+            if (!Check.isNull(resultList)){
+                for (Map<String, Object> dateMap : resultList) {
+                    Map<String, Object> baseMap = bossDataExhibitionMapper.getMediaTypeProjectCostKuaishouBase(dateMap.get("projectId").toString(),stat_tim,end_tim);
+                    dateMap.put("baseNum", Check.isNull(baseMap) ? "0" : baseMap.get("baseNum"));
+                }
+            }
         }
         return Result.successMsg(("1".equals(mediaType) ? "【头条】" : "【快手】")+"===项目消耗排行top10查询成功。",resultList);
     }