Bladeren bron

Merge branch 'V2.0.1' into test

zhaoxian 2 jaren geleden
bovenliggende
commit
40762bed10
18 gewijzigde bestanden met toevoegingen van 465 en 157 verwijderingen
  1. 6 6
      jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/controller/ReportController.java
  2. 9 2
      jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/mapper/BytedanceAccountReportDailyDwMapper.java
  3. 10 2
      jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/mapper/KuaishouAccountReportDailyDwMapper.java
  4. 126 28
      jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/mapper/xml/BytedanceAccountReportDailyDwMapper.xml
  5. 164 27
      jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/mapper/xml/KuaishouAccountReportDailyDwMapper.xml
  6. 2 2
      jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/service/IBytedanceAccountReportDailyDwService.java
  7. 2 2
      jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/service/IKuaishouAccountReportDailyDwService.java
  8. 38 20
      jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/service/impl/BytedanceAccountReportDailyDwServiceImpl.java
  9. 39 20
      jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/service/impl/KuaishouAccountReportDailyDwServiceImpl.java
  10. 20 4
      jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/service/impl/ManagerSaleValueServiceImpl.java
  11. 1 1
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/ai/entity/AiKuaishouAccountAutoStrategy.java
  12. 5 4
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/impl/AiKuaishouAccountAutoDoServiceImpl.java
  13. 8 8
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/impl/AiKuaishouCreateCreativeServiceImpl.java
  14. 4 5
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/impl/KuaiShouCreateServiceImpl.java
  15. 13 13
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/BatchServiceImpl.java
  16. 4 4
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouCampaignCopyDataServiceImpl.java
  17. 9 5
      jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouStrategyServiceImpl.java
  18. 5 4
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialInfoController.java

+ 6 - 6
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/controller/ReportController.java

@@ -77,13 +77,13 @@ public class ReportController {
      * @param mediaId
      */
     @GetMapping("/getTrendCharge")
-    public Result<Object> getTrendCharge(String mediaId, Long projectId, String startTime, String endTime) {
+    public Result<Object> getTrendCharge(String type, String mediaId, Long projectId, String startTime, String endTime) {
         try {
             JSONObject data = null;
             if ("1".equals(mediaId)) {
-                data = bytedanceReportService.getTrendCharge(projectId, startTime, endTime);
+                data = bytedanceReportService.getTrendCharge(type, projectId, startTime, endTime);
             } else {
-                data = kuaishouReportService.getTrendCharge(projectId, startTime, endTime);
+                data = kuaishouReportService.getTrendCharge(type, projectId, startTime, endTime);
             }
             return Result.OK(data);
         } catch (Exception e) {
@@ -100,12 +100,12 @@ public class ReportController {
      * @param mediaId
      */
     @GetMapping("/getProjectReport")
-    public Result<Object> getProjectReport(String mediaId, Long projectId, String startTime, String endTime, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
+    public Result<Object> getProjectReport(String mediaId,String category, String sortCode, String order, Long projectId, String startTime, String endTime, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
         try {
             if ("1".equals(mediaId)) {
-                return bytedanceReportService.getProjectReport(projectId, startTime, endTime, pageSize, pageNo);
+                return bytedanceReportService.getProjectReport(category,projectId, startTime, endTime, sortCode, order, pageSize, pageNo);
             } else {
-                return kuaishouReportService.getProjectReport(projectId, startTime, endTime, pageSize, pageNo);
+                return kuaishouReportService.getProjectReport(category,projectId, startTime, endTime, sortCode, order, pageSize, pageNo);
             }
         } catch (Exception e) {
             e.printStackTrace();

+ 9 - 2
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/mapper/BytedanceAccountReportDailyDwMapper.java

@@ -18,10 +18,17 @@ public interface BytedanceAccountReportDailyDwMapper {
 
     Long getProjectToDayReportTotal(@Param("projectId") Long projectId, @Param("startTime") Integer startTime, @Param("hour") Integer hour);
 
-    List<JSONObject> getProjectToDayReport(@Param("projectId") Long projectId, @Param("startTime") Integer startTime, @Param("hour") Integer hour);
+    List<JSONObject> getProjectToDayReport(@Param("category") String category, @Param("projectId") Long projectId, @Param("startTime") Integer startTime, @Param("hour") Integer hour, @Param("sortCode") String sortCode, @Param("order") String order);
 
     Long getProjectMoreDaysReportTotal(@Param("projectId") Long projectId, @Param("startTime") Integer startTime, @Param("endTime") Integer endTime, @Param("hour") Integer hour);
 
-    List<JSONObject> getProjectMoreDaysReport(@Param("projectId") Long projectId, @Param("startTime") Integer startTime, @Param("endTime") Integer endTime, @Param("hour") Integer hour);
+    List<JSONObject> getProjectMoreDaysReport(@Param("projectId") Long projectId, @Param("startTime") Integer startTime, @Param("endTime") Integer endTime, @Param("hour") Integer hour, @Param("sortCode") String sortCode, @Param("order") String order);
 
+    List<JSONObject> getProjectNoByDays(@Param("startTime") Integer startTimeInt, @Param("endTime") Integer endTimeInt);
+
+    List<JSONObject> getAdvertiserNoByDays(@Param("startTime") Integer startTimeInt, @Param("endTime") Integer endTimeInt);
+
+    List<JSONObject> getUnitNoByHours(@Param("startTime") Integer startTimeInt);
+
+    List<JSONObject> getUnitNoByDays(@Param("startTime") Integer startTimeInt, @Param("endTime") Integer endTimeInt);
 }

+ 10 - 2
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/mapper/KuaishouAccountReportDailyDwMapper.java

@@ -18,10 +18,18 @@ public interface KuaishouAccountReportDailyDwMapper {
 
     Long getProjectToDayReportTotal(@Param("projectId") Long projectId, @Param("startTime") Integer startTime, @Param("hour") Integer hour);
 
-    List<JSONObject> getProjectToDayReport(@Param("projectId") Long projectId, @Param("startTime") Integer startTime, @Param("hour") Integer hour);
+    List<JSONObject> getProjectToDayReport(@Param("category") String category, @Param("projectId") Long projectId, @Param("startTime") Integer startTime, @Param("hour") Integer hour, @Param("sortCode") String sortCode, @Param("order") String order);
 
     Long getProjectMoreDaysReportTotal(@Param("projectId") Long projectId, @Param("startTime") Integer startTime, @Param("endTime") Integer endTime, @Param("hour") Integer hour);
 
-    List<JSONObject> getProjectMoreDaysReport(@Param("projectId") Long projectId, @Param("startTime") Integer startTime, @Param("endTime") Integer endTime, @Param("hour") Integer hour);
+    List<JSONObject> getProjectMoreDaysReport(@Param("projectId") Long projectId, @Param("startTime") Integer startTime, @Param("endTime") Integer endTime, @Param("hour") Integer hour, @Param("sortCode") String sortCode, @Param("order") String order);
+
+    List<JSONObject> getProjectNoByDays(@Param("startTime") Integer startTimeInt, @Param("endTime") Integer endTimeInt);
+
+    List<JSONObject> getAdvertiserNoByDays(@Param("startTime") Integer startTimeInt, @Param("endTime") Integer endTimeInt);
+
+    List<JSONObject> getUnitNoByHours(@Param("startTime") Integer startTimeInt);
+
+    List<JSONObject> getUnitNoByDays(@Param("startTime") Integer startTimeInt, @Param("endTime") Integer endTimeInt);
 
 }

+ 126 - 28
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/mapper/xml/BytedanceAccountReportDailyDwMapper.xml

@@ -3,10 +3,11 @@
 <mapper namespace="org.jeecg.ctop.material.mapper.BytedanceAccountReportDailyDwMapper">
 
     <select id="getYesterdayUploadNewMaterialCount" resultType="Long">
-        SELECT IFNULL(sum(1), 0)
-        FROM application.`app_bytedance_material_info`
-        WHERE media_time = #{yesterday}
-          AND company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b', 'd57fecdcf7a94d009736d9c850731582')
+        SELECT IFNULL(sum(material_num), 0)
+        FROM application.`new_material_num_in_project`
+        WHERE stat_date = #{yesterday}
+          AND media_id = 1
+          and project_id in (select id from `jeecg-boot`.ctop_project where agent_code in (1, 2))
     </select>
 
 
@@ -84,6 +85,7 @@
         SELECT 1
         FROM application.bytedance_advertiser_report_hourly_dw
         WHERE stat_datetime = #{startTime}
+        AND company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b' , 'd57fecdcf7a94d009736d9c850731582')
         <if test="projectId != null and projectId != ''">
             AND project_id = #{projectId}
         </if>
@@ -93,6 +95,7 @@
 
 
     <select id="getProjectToDayReport" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT * FROM (
         SELECT
         t1.project_id as 'projectId',
         t3.project_name AS 'projectName',
@@ -104,20 +107,25 @@
         SUM( `show` ) AS 'aclick',
         SUM( click ) AS 'bclick',
         IFNULL( t6.num, 0 ) AS 'num',
-        IFNULL(concat(round((sum(cost) - t7.costs) / t7.costs * 100, 2), '%'), '-') as 'rio'
+        IFNULL(concat(round((sum(cost) - t7.costs) / t7.costs * 100, 2), '%'), '-') as 'rio',
+        IFNULL(t8.unitNum,0) as 'unitNum',
+        '-' AS 'ssAd',
+        '-' AS 'sxhAd',
+        '-' AS 'lmAd',
+        '-' AS 'xxlAd',
+        '-' AS 'jlAd',
+        '-' AS 'kpAd',
+        IFNULL(t9.accountNum,0) as 'accountNum',
+        IFNULL(t9.operaterNum,0) as 'operaterNum'
         FROM application.bytedance_advertiser_report_hourly_dw t1
         LEFT JOIN `jeecg-boot`.ctop_product t2 ON t2.id = t1.product_id
         LEFT JOIN `jeecg-boot`.ctop_project t3 ON t1.project_id = t3.id
         LEFT JOIN `jeecg-boot`.sys_user t4 ON t3.responsible_id = t4.id
         LEFT JOIN `jeecg-boot`.sys_user t5 ON t3.sale_id = t5.id
         LEFT JOIN (
-        SELECT
-               tt2.project_id, count(1) as 'num'
-        FROM application.app_bytedance_material_info tt1
-        LEFT JOIN
-            application.bytedance_project_material_relation tt2 ON tt1.material_id = tt2.signature
-        WHERE media_time = DATE_FORMAT(DATE_SUB(#{startTime}, INTERVAL 1 DAY ), '%Y%m%d')
-        AND tt1.company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b' , 'd57fecdcf7a94d009736d9c850731582')
+        SELECT project_id,sum(material_num) as 'num' FROM application.new_material_num_in_project
+        WHERE stat_date = DATE_FORMAT(DATE_SUB(#{startTime}, INTERVAL 1 DAY ), '%Y%m%d')
+        AND media_id = 1
         <if test="projectId != null and projectId != ''">
             AND project_id = #{projectId}
         </if>
@@ -128,7 +136,7 @@
         LEFT JOIN (
         SELECT project_id, SUM(cost) as 'costs'
         FROM application.bytedance_advertiser_report_hourly_dw
-        WHERE stat_datetime = DATE_FORMAT(DATE_SUB(20220804, INTERVAL 1 DAY ), '%Y%m%d')
+        WHERE stat_datetime = DATE_FORMAT(DATE_SUB(#{startTime}, INTERVAL 1 DAY ), '%Y%m%d')
         AND hour &lt;= #{hour}
         AND company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b' , 'd57fecdcf7a94d009736d9c850731582')
         <if test="projectId != null and projectId != ''">
@@ -138,14 +146,32 @@
             GROUP BY project_id
         </if>
         ) t7 ON t1.project_id = t7.project_id
+        LEFT JOIN (
+        SELECT project_id , SUM(new_ad_num) as 'unitNum' FROM application.app_bytedance_account_base_info_d
+        WHERE stat_date =DATE_FORMAT(DATE_SUB(#{startTime}, INTERVAL 1 DAY ), '%Y%m%d')
+        AND company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b' , 'd57fecdcf7a94d009736d9c850731582')
+        GROUP BY project_id
+        ) t8 ON t1.project_id = t8.project_id
+        LEFT JOIN(
+        SELECT project_id,count(account_id)as 'accountNum',count(DISTINCT user_id)as 'operaterNum' FROM (
+        SELECT project_id,account_id,user_id FROM application.bytedance_advertiser_report_daily_dw
+        WHERE stat_datetime =DATE_FORMAT(DATE_SUB(#{startTime}, INTERVAL 1 DAY ), '%Y%m%d')
+        GROUP BY project_id,account_id
+        HAVING sum(cost) > 0
+        )t
+        GROUP BY project_id
+        ) t9 ON t1.project_id = t9.project_id
         WHERE stat_datetime = #{startTime}
         AND t1.company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b' , 'd57fecdcf7a94d009736d9c850731582')
         <if test="projectId != null and projectId != ''">
             AND t1.project_id = #{projectId}
         </if>
-        <if test="projectId == null">
             GROUP BY t1.project_id
-            ORDER BY sum(cost) desc
+            HAVING sum(cost) > 0
+            ORDER BY ${sortCode} ${order}
+        ) t
+        <if test="category == 1">
+            WHERE rio &lt;= -0.1 AND rio !='-'
         </if>
     </select>
 
@@ -157,6 +183,7 @@
         FROM application.bytedance_advertiser_report_daily_dw
         WHERE stat_datetime >= #{startTime}
         AND stat_datetime &lt;= #{endTime}
+        AND company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b' , 'd57fecdcf7a94d009736d9c850731582')
         <if test="projectId != null and projectId != ''">
             AND project_id = #{projectId}
         </if>
@@ -175,22 +202,27 @@
         sum( cost ) AS 'cost',
         SUM( `show` ) AS 'aclick',
         SUM( click ) AS 'bclick',
-        IFNULL( t6.num, 0 ) AS 'num',
-        '-' as 'rio'
+        IFNULL(t6.num, 0 ) AS 'num',
+        '-' as 'rio',
+        IFNULL(t8.unitNum,0) as 'unitNum',
+        '-' AS 'ssAd',
+        '-' AS 'sxhAd',
+        '-' AS 'lmAd',
+        '-' AS 'xxlAd',
+        '-' AS 'jlAd',
+        '-' AS 'kpAd',
+        IFNULL(t9.accountNum,0) as 'accountNum',
+        IFNULL(t9.operaterNum,0) as 'operaterNum'
         FROM application.bytedance_advertiser_report_daily_dw t1
         LEFT JOIN `jeecg-boot`.ctop_product t2 ON t2.id = t1.product_id
         LEFT JOIN `jeecg-boot`.ctop_project t3 ON t1.project_id = t3.id
         LEFT JOIN `jeecg-boot`.sys_user t4 ON t3.responsible_id = t4.id
         LEFT JOIN `jeecg-boot`.sys_user t5 ON t3.sale_id = t5.id
         LEFT JOIN (
-        SELECT
-               tt2.project_id, count(1) as 'num'
-        FROM application.app_bytedance_material_info tt1
-        LEFT JOIN
-            application.bytedance_project_material_relation tt2 ON tt1.material_id = tt2.signature
-        WHERE media_time >= #{startTime}
-        AND media_time &lt;= #{endTime}
-        AND tt1.company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b' , 'd57fecdcf7a94d009736d9c850731582')
+        SELECT project_id,sum(material_num) as 'num' FROM application.new_material_num_in_project
+        WHERE stat_date >= #{startTime}
+        AND stat_date &lt;= #{endTime}
+        AND media_id = 1
         <if test="projectId != null and projectId != ''">
             AND project_id = #{projectId}
         </if>
@@ -198,17 +230,83 @@
             GROUP BY project_id
         </if>
         ) t6 ON t1.project_id = t6.project_id
+        LEFT JOIN (
+        SELECT project_id , SUM(new_ad_num) as 'unitNum' FROM application.app_bytedance_account_base_info_d
+        WHERE stat_date >= #{startTime}
+        AND stat_date &lt;= #{endTime}
+        AND company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b' , 'd57fecdcf7a94d009736d9c850731582')
+        GROUP BY project_id
+        ) t8 ON t1.project_id = t8.project_id
+        LEFT JOIN(
+            SELECT project_id,count(account_id)as 'accountNum',count(DISTINCT user_id)as 'operaterNum' FROM (
+        SELECT project_id,account_id,user_id FROM application.bytedance_advertiser_report_daily_dw
+        WHERE stat_datetime >= #{startTime}
+        AND stat_datetime &lt;= #{endTime}
+        GROUP BY project_id,account_id
+        HAVING sum(cost) > 0
+        )t
+        GROUP BY project_id
+        ) t9 ON t1.project_id = t9.project_id
         WHERE stat_datetime >= #{startTime}
         AND stat_datetime &lt;= #{endTime}
         AND t1.company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b' , 'd57fecdcf7a94d009736d9c850731582')
         <if test="projectId != null and projectId != ''">
             AND t1.project_id = #{projectId}
         </if>
-        <if test="projectId == null">
             GROUP BY t1.project_id
-            ORDER BY sum(cost) desc
-        </if>
+            HAVING sum(cost) > 0
+            ORDER BY ${sortCode} ${order}
     </select>
 
 
+    <select id="getProjectNoByDays" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT stat_datetime as 'time',COUNT(1) as 'count'
+        FROM (SELECT stat_datetime, project_id
+              FROM application.bytedance_advertiser_report_daily_dw
+              WHERE stat_datetime >= #{startTime}
+                AND stat_datetime &lt;= #{endTime}
+              GROUP BY stat_datetime, project_id
+              HAVING sum(cost) >= 10
+             ) t
+        GROUP BY stat_datetime
+        ORDER BY stat_datetime
+    </select>
+
+    <select id="getAdvertiserNoByDays" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT stat_datetime as 'time',COUNT(1) as 'count'
+        FROM (SELECT stat_datetime, advertiser_id
+              FROM application.bytedance_advertiser_report_daily_dw
+              WHERE stat_datetime >= #{startTime}
+                AND stat_datetime &lt;= #{endTime}
+              GROUP BY stat_datetime, advertiser_id
+              HAVING sum(cost) >= 10
+             ) t
+        GROUP BY stat_datetime
+        ORDER BY stat_datetime
+    </select>
+
+    <select id="getUnitNoByHours" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT `hour`as 'time'  , SUM(material_upload_media_num) as 'count'
+        FROM application.today_material_upload_num
+        WHERE type_id = 1
+          and stat_date = #{startTime}
+          AND dimension in (
+            SELECT id
+            FROM `jeecg-boot`.ctop_project
+            WHERE media_id = 1
+        )
+        GROUP BY hour
+        ORDER BY hour
+    </select>
+
+    <select id="getUnitNoByDays" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT stat_date as 'time',sum(material_num) as 'count'
+        FROM application.new_material_num_in_project
+        WHERE stat_date >= #{startTime}
+          AND stat_date &lt;= #{endTime}
+          AND media_id = 1
+        GROUP BY stat_date
+        ORDER BY stat_date
+    </select>
+
 </mapper>

+ 164 - 27
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/mapper/xml/KuaishouAccountReportDailyDwMapper.xml

@@ -50,10 +50,11 @@
     </select>
 
     <select id="getYesterdayUploadNewMaterialCount" resultType="Long">
-        SELECT IFNULL(sum(1), 0)
-        FROM application.`app_kuaishou_material_info`
-        WHERE media_time = #{yesterday}
-          AND company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b', 'd57fecdcf7a94d009736d9c850731582')
+        SELECT IFNULL(sum(material_num), 0)
+        FROM application.`new_material_num_in_project`
+        WHERE stat_date = #{yesterday}
+          AND media_id = 2
+          and project_id in (select id from `jeecg-boot`.ctop_project where agent_code in (1, 2))
     </select>
 
     <select id="getHourcharge" resultType="com.alibaba.fastjson.JSONObject">
@@ -97,6 +98,7 @@
     </select>
 
     <select id="getProjectToDayReport" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT * FROM (
         SELECT
         t1.project_id as 'projectId',
         t3.project_name AS 'projectName',
@@ -108,20 +110,29 @@
         SUM(aclick) as 'aclick',
         SUM(bclick) as 'bclick',
         IFNULL(t6.num,0) as 'num',
-        IFNULL(concat(round((sum(charge) - t7.charges) / t7.charges * 100, 2), '%'), '-') as 'rio'
+        IFNULL(concat(round((sum(charge) - t7.charges) / t7.charges * 100, 2), '%'), '-') as 'rio',
+        '-' AS 'ssAd',
+        '-' AS 'sxhAd',
+        '-' AS 'lmAd',
+        '-' AS 'xxlAd',
+        '-' AS 'jlAd',
+        '-' AS 'kpAd',
+        IFNULL(t9.accountNum,0) as 'accountNum',
+        IFNULL(t9.operaterNum,0) as 'operaterNum',
+        IFNULL(t11.new_unit_num,0) as 'newUnitNum',
+        IFNULL(t11.new_trush_unit_num,0) as 'newTrushUnitNum',
+        IFNULL(t12.new_unit_num,0) as 'yesterdayUnitNum',
+        IFNULL(t12.new_trush_unit_num,0) as 'yesterdayTrushUnitNum',
+        IFNULL(t13.material_upload_media_num,0) as 'materialUploadMediaNum'
         FROM application.kuaishou_account_report_hourly_dw t1
         LEFT JOIN `jeecg-boot`.ctop_product t2 ON t2.id = t1.product_id
         LEFT JOIN `jeecg-boot`.ctop_project t3 ON t1.project_id = t3.id
         LEFT JOIN `jeecg-boot`.sys_user t4 ON t3.responsible_id = t4.id
         LEFT JOIN `jeecg-boot`.sys_user t5 ON t3.sale_id = t5.id
         LEFT JOIN (
-        SELECT
-               tt2.project_id, count(1) as 'num'
-        FROM application.app_kuaishou_material_info tt1
-        LEFT JOIN
-            application.kuaishou_project_material_relation tt2 ON tt1.material_id = tt2.signature
-        WHERE media_time = DATE_FORMAT(DATE_SUB(#{startTime}, INTERVAL 1 DAY ), '%Y%m%d')
-        AND tt1.company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b' , 'd57fecdcf7a94d009736d9c850731582')
+        SELECT project_id,sum(material_num) as 'num' FROM application.new_material_num_in_project
+        WHERE stat_date = DATE_FORMAT(DATE_SUB(#{startTime}, INTERVAL 1 DAY ), '%Y%m%d')
+        AND media_id =2
         <if test="projectId != null and projectId != ''">
             AND project_id = #{projectId}
         </if>
@@ -142,14 +153,45 @@
             GROUP BY project_id
         </if>
         ) t7 ON t1.project_id = t7.project_id
+        LEFT JOIN(
+        SELECT project_id,count(account_id)as 'accountNum',count(DISTINCT user_id)as 'operaterNum' FROM (
+        SELECT project_id,account_id,user_id FROM application.kuaishou_account_report_daily_dw
+        WHERE stat_date = #{startTime}
+        GROUP BY project_id,account_id
+        HAVING sum(charge) > 0
+        )t
+        GROUP BY project_id
+        ) t9 ON t1.project_id = t9.project_id
+        LEFT JOIN (
+        SELECT project_id, SUM(new_unit_num) as 'new_unit_num',SUM(new_trush_unit_num) as 'new_trush_unit_num'
+        FROM application.app_kuaishou_account_today_base_info_d
+        WHERE stat_date = #{startTime}
+        GROUP BY project_id
+        )t11 ON t1.project_id = t11.project_id
+        LEFT JOIN (
+        SELECT project_id,SUM(new_unit_num) as 'new_unit_num', SUM(new_trush_unit_num) as 'new_trush_unit_num'
+        FROM application.app_kuaishou_account_today_base_info_d WHERE
+        stat_date = DATE_FORMAT(DATE_SUB(#{startTime}, INTERVAL 1 DAY ), '%Y%m%d')
+        GROUP BY project_id
+        )t12 ON t1.project_id = t12.project_id
+        LEFT JOIN
+        (SELECT dimension , SUM(material_upload_media_num) as 'material_upload_media_num' FROM
+        application.today_material_upload_num
+        WHERE type_id =1
+        and stat_date = #{startTime}
+        GROUP BY dimension
+        ) t13 ON t1.project_id = t13.dimension
         WHERE stat_date = #{startTime}
         AND t1.company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b' , 'd57fecdcf7a94d009736d9c850731582')
         <if test="projectId != null and projectId != ''">
             AND t1.project_id = #{projectId}
         </if>
-        <if test="projectId == null">
-            GROUP BY t1.project_id
-            ORDER BY sum(charge) desc
+        GROUP BY t1.project_id
+        HAVING sum(charge) > 0
+        ORDER BY ${sortCode} ${order}
+        ) t
+        <if test="category == 1">
+            WHERE rio &lt;= -0.1 AND rio !='-'
         </if>
     </select>
 
@@ -171,6 +213,14 @@
 
 
     <select id="getProjectMoreDaysReport" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT tt.*,
+        IFNULL(GROUP_CONCAT(DISTINCT CASE WHEN t9.ad_scene ='搜索广告' THEN t9.sceneCharge END),'-') AS 'ssAd',
+        IFNULL(GROUP_CONCAT(DISTINCT CASE WHEN t9.ad_scene ='上下滑大屏广告' THEN t9.sceneCharge END),'-') AS 'sxhAd',
+        IFNULL(GROUP_CONCAT(DISTINCT CASE WHEN t9.ad_scene ='联盟' THEN t9.sceneCharge END),'-') AS 'lmAd',
+        IFNULL(GROUP_CONCAT(DISTINCT CASE WHEN t9.ad_scene ='信息流广告' THEN t9.sceneCharge END),'-') AS 'xxlAd',
+        IFNULL(GROUP_CONCAT(DISTINCT CASE WHEN t9.ad_scene ='激励视频广告' THEN t9.sceneCharge END),'-') AS 'jlAd',
+        IFNULL(GROUP_CONCAT(DISTINCT CASE WHEN t9.ad_scene ='开屏广告' THEN t9.sceneCharge END),'-') AS 'kpAd' FROM
+        (
         SELECT
         t1.project_id as 'projectId',
         t3.project_name AS 'projectName',
@@ -182,20 +232,22 @@
         SUM(aclick) as 'aclick',
         SUM(bclick) as 'bclick',
         IFNULL(t6.num,0) as 'num',
-        '-' as 'rio'
+        '-' as 'rio',
+        IFNULL(t9.accountNum,0) as 'accountNum',
+        IFNULL(t9.operaterNum,0) as 'operaterNum',
+        IFNULL(t11.new_unit_num,0) as 'unitNum',
+        IFNULL(t11.new_trush_unit_num,0) as 'trushUnitNum',
+        IFNULL(t13.material_upload_media_num,0) as 'materialUploadMediaNum'
         FROM application.kuaishou_account_report_daily_dw t1
         LEFT JOIN `jeecg-boot`.ctop_product t2 ON t2.id = t1.product_id
         LEFT JOIN `jeecg-boot`.ctop_project t3 ON t1.project_id = t3.id
         LEFT JOIN `jeecg-boot`.sys_user t4 ON t3.responsible_id = t4.id
         LEFT JOIN `jeecg-boot`.sys_user t5 ON t3.sale_id = t5.id
         LEFT JOIN (
-        SELECT
-               tt2.project_id,count(1) as 'num' FROM application.app_kuaishou_material_info tt1
-        LEFT JOIN
-            application.kuaishou_project_material_relation tt2 ON tt1.material_id = tt2.signature
-        WHERE media_time >= #{startTime}
-        AND media_time &lt;= #{endTime}
-        AND company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b' , 'd57fecdcf7a94d009736d9c850731582')
+        SELECT project_id,sum(material_num) as 'num' FROM application.new_material_num_in_project
+        WHERE stat_date >= #{startTime}
+        AND stat_date &lt;= #{endTime}
+        AND media_id =2
         <if test="projectId != null and projectId != ''">
             AND project_id = #{projectId}
         </if>
@@ -203,16 +255,101 @@
             GROUP BY project_id
         </if>
         ) t6 ON t1.project_id = t6.project_id
+        LEFT JOIN(
+        SELECT project_id,count(account_id)as 'accountNum',count(DISTINCT user_id)as 'operaterNum' FROM (
+        SELECT project_id,account_id,user_id FROM application.kuaishou_account_report_daily_dw
+        WHERE stat_date >= #{startTime}
+        AND stat_date &lt;= #{endTime}
+        GROUP BY project_id,account_id
+        HAVING sum(charge) > 0
+        )t
+        GROUP BY project_id
+        ) t9 ON t1.project_id = t9.project_id
+        LEFT JOIN (
+        SELECT project_id, SUM(new_unit_num) as 'new_unit_num',SUM(new_trush_unit_num) as 'new_trush_unit_num'
+        FROM application.app_kuaishou_account_today_base_info_d
+        WHERE stat_date >= #{startTime}
+        AND stat_date &lt;= #{endTime}
+        GROUP BY project_id
+        )t11 ON t1.project_id = t11.project_id
+        LEFT JOIN
+        (SELECT dimension , SUM(material_upload_media_num) as 'material_upload_media_num' FROM
+        application.today_material_upload_num
+        WHERE type_id =1
+        AND stat_date >= #{startTime}
+        AND stat_date &lt;= #{endTime}
+        GROUP BY dimension
+        ) t13 ON t1.project_id = t13.dimension
         WHERE stat_date >= #{startTime}
         AND stat_date &lt;= #{endTime}
         AND t1.company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b' , 'd57fecdcf7a94d009736d9c850731582')
         <if test="projectId != null and projectId != ''">
             AND t1.project_id = #{projectId}
         </if>
-        <if test="projectId == null">
-            GROUP BY t1.project_id
-            ORDER BY sum(charge) desc
-        </if>
+        GROUP BY t1.project_id
+        HAVING SUM(charge) > 0
+        ) tt
+        LEFT JOIN (
+        SELECT project_id ,ad_scene, SUM(charge) as 'sceneCharge' FROM
+        application.app_kuaishou_account_ad_scene_report_d
+        WHERE stat_date >= #{startTime}
+        AND stat_date &lt;= #{endTime}
+        AND company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b' , 'd57fecdcf7a94d009736d9c850731582')
+        GROUP BY project_id,ad_scene
+        ORDER BY project_id
+        ) t9 ON tt.projectId = t9.project_id
+        GROUP BY tt.projectId
+        ORDER BY ${sortCode} ${order}
+    </select>
+
+    <select id="getProjectNoByDays" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT stat_date as 'time',COUNT(1) as 'count'
+        FROM (SELECT stat_date, project_id
+              FROM application.kuaishou_account_report_hourly_dw
+              WHERE stat_date >= #{startTime}
+                AND stat_date &lt;= #{endTime}
+              GROUP BY stat_date, project_id
+              HAVING sum(charge) >= 10
+             ) t
+        GROUP BY stat_date
+        ORDER BY stat_date
+    </select>
+
+    <select id="getAdvertiserNoByDays" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT stat_date as 'time',COUNT(1) as 'count'
+        FROM (SELECT stat_date, advertiser_id
+              FROM application.kuaishou_account_report_hourly_dw
+              WHERE stat_date >= #{startTime}
+                AND stat_date &lt;= #{endTime}
+              GROUP BY stat_date, advertiser_id
+              HAVING sum(charge) >= 10
+             ) t
+        GROUP BY stat_date
+        ORDER BY stat_date
+    </select>
+
+    <select id="getUnitNoByHours" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT `hour`as 'time'  , SUM(material_upload_media_num) as 'count'
+        FROM application.today_material_upload_num
+        WHERE type_id = 1
+          and stat_date = #{startTime}
+          AND dimension in (
+            SELECT id
+            FROM `jeecg-boot`.ctop_project
+            WHERE media_id = 2
+        )
+        GROUP BY hour
+        ORDER BY hour
+    </select>
+
+    <select id="getUnitNoByDays" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT stat_date as 'time',sum(material_num) as 'count'
+        FROM application.new_material_num_in_project
+        WHERE stat_date >= #{startTime}
+          AND stat_date &lt;= #{endTime}
+          AND media_id = 2
+        GROUP BY stat_date
+        ORDER BY stat_date
     </select>
 
 </mapper>

+ 2 - 2
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/service/IBytedanceAccountReportDailyDwService.java

@@ -9,7 +9,7 @@ public interface IBytedanceAccountReportDailyDwService {
 
     JSONObject getTotalCharge(Map<String, Object> paramsMap);
 
-    JSONObject getTrendCharge(Long projectId, String startTime, String endTime);
+    JSONObject getTrendCharge(String type, Long projectId, String startTime, String endTime);
 
-    Result<Object> getProjectReport(Long projectId, String startTime, String endTime, Integer pageSize, Integer pageNo) throws Exception;
+    Result<Object> getProjectReport(String category,Long projectId, String startTime, String endTime, String sortCode, String order, Integer pageSize, Integer pageNo) throws Exception;
 }

+ 2 - 2
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/service/IKuaishouAccountReportDailyDwService.java

@@ -9,7 +9,7 @@ public interface IKuaishouAccountReportDailyDwService {
 
     JSONObject getTotalCharge(Map<String, Object> paramsMap);
 
-    JSONObject getTrendCharge(Long projectId, String startTime, String endTime);
+    JSONObject getTrendCharge(String type,Long projectId, String startTime, String endTime);
 
-    Result<Object> getProjectReport(Long projectId, String startTime, String endTime, Integer pageSize, Integer pageNo) throws Exception;
+    Result<Object> getProjectReport(String category,Long projectId, String startTime, String endTime, String sortCode, String order, Integer pageSize, Integer pageNo) throws Exception;
 }

+ 38 - 20
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/service/impl/BytedanceAccountReportDailyDwServiceImpl.java

@@ -1,10 +1,10 @@
 package org.jeecg.ctop.material.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
-import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.util.DateUtils;
+import org.jeecg.ctop.material.constants.Check;
 import org.jeecg.ctop.material.mapper.BytedanceAccountReportDailyDwMapper;
 import org.jeecg.ctop.material.service.IBytedanceAccountReportDailyDwService;
 import org.springframework.stereotype.Service;
@@ -29,23 +29,35 @@ public class BytedanceAccountReportDailyDwServiceImpl implements IBytedanceAccou
     }
 
     @Override
-    public JSONObject getTrendCharge(Long projectId, String startTime, String endTime) {
+    public JSONObject getTrendCharge(String type, Long projectId, String startTime, String endTime) {
         Integer startTimeInt = DateUtils.getDateInteger(startTime);
         Integer endTimeInt = DateUtils.getDateInteger(endTime);
 
         List<JSONObject> today = null;
         List<JSONObject> yesterday = null;
-        if (startTime.equals(endTime)) {
-            today = bytedanceAccountReportDailyDwMapper.getHourCost(projectId, startTimeInt);
-            yesterday = bytedanceAccountReportDailyDwMapper.getHourCost(projectId, DateUtils.getDateInteger(DateUtils.getLastDay(startTime, 1)));
+        if ("1".equals(type)) {
+            today = bytedanceAccountReportDailyDwMapper.getProjectNoByDays(startTimeInt, endTimeInt);
+        } else if ("2".equals(type)) {
+            today = bytedanceAccountReportDailyDwMapper.getAdvertiserNoByDays(startTimeInt, endTimeInt);
+        } else if ("3".equals(type)) {
+            if (startTime.equals(endTime)) {
+                today = bytedanceAccountReportDailyDwMapper.getUnitNoByHours(startTimeInt);
+            } else {
+                today = bytedanceAccountReportDailyDwMapper.getUnitNoByDays(startTimeInt, endTimeInt);
+            }
         } else {
-            today = bytedanceAccountReportDailyDwMapper.getDataCost(projectId, startTimeInt, endTimeInt);
-            fillingDates(startTime, endTime, today);
-            int days = DateUtils.dateDiff(startTime, endTime);
-            String endTime2 = DateUtils.getLastDay(startTime, 1);
-            String startTime2 = DateUtils.getLastDay(endTime2, days);
-            yesterday = bytedanceAccountReportDailyDwMapper.getDataCost(projectId, DateUtils.getDateInteger(startTime2), DateUtils.getDateInteger(endTime2));
-            fillingDates(startTime2, endTime2, yesterday);
+            if (startTime.equals(endTime)) {
+                today = bytedanceAccountReportDailyDwMapper.getHourCost(projectId, startTimeInt);
+                yesterday = bytedanceAccountReportDailyDwMapper.getHourCost(projectId, DateUtils.getDateInteger(DateUtils.getLastDay(startTime, 1)));
+            } else {
+                today = bytedanceAccountReportDailyDwMapper.getDataCost(projectId, startTimeInt, endTimeInt);
+                fillingDates(startTime, endTime, today);
+                int days = DateUtils.dateDiff(startTime, endTime);
+                String endTime2 = DateUtils.getLastDay(startTime, 1);
+                String startTime2 = DateUtils.getLastDay(endTime2, days);
+                yesterday = bytedanceAccountReportDailyDwMapper.getDataCost(projectId, DateUtils.getDateInteger(startTime2), DateUtils.getDateInteger(endTime2));
+                fillingDates(startTime2, endTime2, yesterday);
+            }
         }
         JSONObject data = new JSONObject();
         data.put("today", today);
@@ -73,7 +85,13 @@ public class BytedanceAccountReportDailyDwServiceImpl implements IBytedanceAccou
     }
 
     @Override
-    public Result<Object> getProjectReport(Long projectId, String startTime, String endTime, Integer pageSize, Integer pageNo) throws Exception {
+    public Result<Object> getProjectReport(String category, Long projectId, String startTime, String endTime, String sortCode, String order, Integer pageSize, Integer pageNo) throws Exception {
+        if (Check.isNull(order)) {
+            order = "DESC";
+        }
+        if (Check.isNull(sortCode)) {
+            sortCode = "SUM(cost)";
+        }
         Integer startTimeInt = DateUtils.getDateInteger(startTime);
         Integer endTimeInt = DateUtils.getDateInteger(endTime);
         //当前小时
@@ -83,17 +101,17 @@ public class BytedanceAccountReportDailyDwServiceImpl implements IBytedanceAccou
         List<JSONObject> data = null;
         Long total = null;
         if (startTime.equals(endTime) && today.equals(startTime)) {
-            total = bytedanceAccountReportDailyDwMapper.getProjectToDayReportTotal(projectId, startTimeInt, nowHour);
-            PageHelper.startPage(pageNo, pageSize, false);
-            data = bytedanceAccountReportDailyDwMapper.getProjectToDayReport(projectId, startTimeInt, nowHour);
+//            total = bytedanceAccountReportDailyDwMapper.getProjectToDayReportTotal(projectId, startTimeInt, nowHour);
+//            PageHelper.startPage(pageNo, pageSize, false);
+            data = bytedanceAccountReportDailyDwMapper.getProjectToDayReport(category, projectId, startTimeInt, nowHour,sortCode, order);
         } else {
-            total = bytedanceAccountReportDailyDwMapper.getProjectMoreDaysReportTotal(projectId, startTimeInt, endTimeInt, nowHour);
-            PageHelper.startPage(pageNo, pageSize, false);
-            data = bytedanceAccountReportDailyDwMapper.getProjectMoreDaysReport(projectId, startTimeInt, endTimeInt, nowHour);
+//            total = bytedanceAccountReportDailyDwMapper.getProjectMoreDaysReportTotal(projectId, startTimeInt, endTimeInt, nowHour);
+//            PageHelper.startPage(pageNo, pageSize, false);
+            data = bytedanceAccountReportDailyDwMapper.getProjectMoreDaysReport(projectId, startTimeInt, endTimeInt, nowHour,sortCode, order);
         }
         PageInfo<JSONObject> page = new PageInfo<>();
         page.setList(data);
-        page.setTotal(total);
+//        page.setTotal(total);
         return Result.OK(page);
     }
 

+ 39 - 20
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/service/impl/KuaishouAccountReportDailyDwServiceImpl.java

@@ -1,10 +1,10 @@
 package org.jeecg.ctop.material.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
-import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.util.DateUtils;
+import org.jeecg.ctop.material.constants.Check;
 import org.jeecg.ctop.material.mapper.KuaishouAccountReportDailyDwMapper;
 import org.jeecg.ctop.material.service.IKuaishouAccountReportDailyDwService;
 import org.springframework.stereotype.Service;
@@ -28,23 +28,35 @@ public class KuaishouAccountReportDailyDwServiceImpl implements IKuaishouAccount
     }
 
     @Override
-    public JSONObject getTrendCharge(Long projectId, String startTime, String endTime) {
+    public JSONObject getTrendCharge(String type, Long projectId, String startTime, String endTime) {
         Integer startTimeInt = DateUtils.getDateInteger(startTime);
         Integer endTimeInt = DateUtils.getDateInteger(endTime);
 
         List<JSONObject> today = null;
         List<JSONObject> yesterday = null;
-        if (startTime.equals(endTime)) {
-            today = kuaishouAccountReportDailyDwMapper.getHourcharge(projectId, startTimeInt);
-            yesterday = kuaishouAccountReportDailyDwMapper.getHourcharge(projectId, DateUtils.getDateInteger(DateUtils.getLastDay(startTime, 1)));
+        if ("1".equals(type)) {
+            today = kuaishouAccountReportDailyDwMapper.getProjectNoByDays(startTimeInt, endTimeInt);
+        } else if ("2".equals(type)) {
+            today = kuaishouAccountReportDailyDwMapper.getAdvertiserNoByDays(startTimeInt, endTimeInt);
+        } else if ("3".equals(type)) {
+            if (startTime.equals(endTime)) {
+                today = kuaishouAccountReportDailyDwMapper.getUnitNoByHours(startTimeInt);
+            } else {
+                today = kuaishouAccountReportDailyDwMapper.getUnitNoByDays(startTimeInt, endTimeInt);
+            }
         } else {
-            today = kuaishouAccountReportDailyDwMapper.getDatacharge(projectId, startTimeInt, endTimeInt);
-            fillingDates(startTime, endTime, today);
-            int days = DateUtils.dateDiff(startTime, endTime);
-            String endTime2 = DateUtils.getLastDay(startTime, 1);
-            String startTime2 = DateUtils.getLastDay(endTime2, days);
-            yesterday = kuaishouAccountReportDailyDwMapper.getDatacharge(projectId, DateUtils.getDateInteger(startTime2), DateUtils.getDateInteger(endTime2));
-            fillingDates(startTime2, endTime2, yesterday);
+            if (startTime.equals(endTime)) {
+                today = kuaishouAccountReportDailyDwMapper.getHourcharge(projectId, startTimeInt);
+                yesterday = kuaishouAccountReportDailyDwMapper.getHourcharge(projectId, DateUtils.getDateInteger(DateUtils.getLastDay(startTime, 1)));
+            } else {
+                today = kuaishouAccountReportDailyDwMapper.getDatacharge(projectId, startTimeInt, endTimeInt);
+                fillingDates(startTime, endTime, today);
+                int days = DateUtils.dateDiff(startTime, endTime);
+                String endTime2 = DateUtils.getLastDay(startTime, 1);
+                String startTime2 = DateUtils.getLastDay(endTime2, days);
+                yesterday = kuaishouAccountReportDailyDwMapper.getDatacharge(projectId, DateUtils.getDateInteger(startTime2), DateUtils.getDateInteger(endTime2));
+                fillingDates(startTime2, endTime2, yesterday);
+            }
         }
         JSONObject data = new JSONObject();
         data.put("today", today);
@@ -72,7 +84,14 @@ public class KuaishouAccountReportDailyDwServiceImpl implements IKuaishouAccount
     }
 
     @Override
-    public Result<Object> getProjectReport(Long projectId, String startTime, String endTime, Integer pageSize, Integer pageNo) throws Exception {
+    public Result<Object> getProjectReport(String category,Long projectId, String startTime, String endTime, String sortCode, String order, Integer pageSize, Integer pageNo) throws Exception {
+        if (Check.isNull(order)) {
+            order = "DESC";
+        }
+        if (Check.isNull(sortCode)) {
+            sortCode = "SUM(charge)";
+        }
+
         Integer startTimeInt = DateUtils.getDateInteger(startTime);
         Integer endTimeInt = DateUtils.getDateInteger(endTime);
         //当前小时
@@ -82,17 +101,17 @@ public class KuaishouAccountReportDailyDwServiceImpl implements IKuaishouAccount
         List<JSONObject> data = null;
         Long total = null;
         if (startTime.equals(endTime) && today.equals(startTime)) {
-            total = kuaishouAccountReportDailyDwMapper.getProjectToDayReportTotal(projectId, startTimeInt, nowHour);
-            PageHelper.startPage(pageNo, pageSize, false);
-            data = kuaishouAccountReportDailyDwMapper.getProjectToDayReport(projectId, startTimeInt, nowHour);
+//            total = kuaishouAccountReportDailyDwMapper.getProjectToDayReportTotal(projectId, startTimeInt, nowHour);
+//            PageHelper.startPage(pageNo, pageSize, false);
+            data = kuaishouAccountReportDailyDwMapper.getProjectToDayReport(category,projectId, startTimeInt, nowHour, sortCode, order);
         } else {
-            total = kuaishouAccountReportDailyDwMapper.getProjectMoreDaysReportTotal(projectId, startTimeInt, endTimeInt, nowHour);
-            PageHelper.startPage(pageNo, pageSize, false);
-            data = kuaishouAccountReportDailyDwMapper.getProjectMoreDaysReport(projectId, startTimeInt, endTimeInt, nowHour);
+//            total = kuaishouAccountReportDailyDwMapper.getProjectMoreDaysReportTotal(projectId, startTimeInt, endTimeInt, nowHour);
+//            PageHelper.startPage(pageNo, pageSize, false);
+            data = kuaishouAccountReportDailyDwMapper.getProjectMoreDaysReport(projectId, startTimeInt, endTimeInt, nowHour, sortCode, order);
         }
         PageInfo<JSONObject> page = new PageInfo<>();
         page.setList(data);
-        page.setTotal(total);
+//        page.setTotal(total);
         return Result.OK(page);
     }
 }

+ 20 - 4
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/service/impl/ManagerSaleValueServiceImpl.java

@@ -16,6 +16,7 @@ import org.springframework.stereotype.Service;
 import java.math.BigDecimal;
 import java.text.ParseException;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
@@ -37,7 +38,7 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
         List<JSONObject> companies = new ArrayList<>();
         if ("admin".equals(roleCode)) {
             return Result.ok(baseMapper.queryList());
-        } else if ("saleDirector".equals(roleCode) || "CompanyManager".equals(roleCode) || "saleAm".equals(roleCode)) {
+        } else if ("saleDirector".equals(roleCode) || "CompanyManager".equals(roleCode)) {
             String name = baseMapper.getUserNameById(userId);
             if ("丁兆明".equals(name)) {
                 companies = baseMapper.queryList();
@@ -52,6 +53,13 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
                 return Result.ok(companie);
             }
             return Result.ok(baseMapper.queryUserCompany(userId));
+        } else if ("saleAm".equals(roleCode)) {
+            List<JSONObject> list = baseMapper.queryUserCompany(userId);
+            JSONObject c = new JSONObject();
+            c.put("companyId", "5e46b5dea3d740eeb8ff1a2895015a4b");
+            c.put("companyName", "北京骄阳数字科技有限公司");
+            list.add(c);
+            return Result.ok(list);
         } else {
             return Result.error("角色权限不足");
         }
@@ -315,6 +323,8 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
     @Override
     public PageInfo getProjectChargeTop(String userId, String mediaId, String companyId, String startTime, String endTime, Integer pageNo, Integer pageSize) throws Exception {
         String roleCode = baseMapper.getRoleCodeByUserId(userId);
+        //当天日期
+        String today = DateUtils.formatDate(new Date());
         JSONObject data = null;
         //销售总监
         if ("saleDirector".equals(roleCode) || "saleAm".equals(roleCode)) {
@@ -325,8 +335,10 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
                 if (Check.isNull(accountIds)) {
                     throw new Exception("未查询到账户!");
                 }
-                if (startTime.equals(endTime)) {
+                if (startTime.equals(endTime) && today.equals(startTime)) {
                     return getProjectDailyCharges(accountIds, companyId, mediaId, startTime, null, pageNo, pageSize);
+                } else if (startTime.equals(endTime)) {
+                    return getProjectDailyCharges(accountIds, companyId, mediaId, startTime, startTime, pageNo, pageSize);
                 } else {
                     return getProjectDailyCharges(accountIds, companyId, mediaId, startTime, endTime, pageNo, pageSize);
                 }
@@ -340,8 +352,10 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
             if (Check.isNull(accountIds)) {
                 throw new Exception("未查询到账户!");
             }
-            if (startTime.equals(endTime)) {
+            if (startTime.equals(endTime) && today.equals(startTime)) {
                 return getProjectDailyCharges(accountIds, companyId, mediaId, startTime, null, pageNo, pageSize);
+            } else if (startTime.equals(endTime)) {
+                return getProjectDailyCharges(accountIds, companyId, mediaId, startTime, startTime, pageNo, pageSize);
             } else {
                 return getProjectDailyCharges(accountIds, companyId, mediaId, startTime, endTime, pageNo, pageSize);
             }
@@ -352,8 +366,10 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
             if (Check.isNull(accountIds)) {
                 throw new Exception("未查询到账户!");
             }
-            if (startTime.equals(endTime)) {
+            if (startTime.equals(endTime) && today.equals(startTime)) {
                 return getProjectDailyCharges(accountIds, companyId, mediaId, startTime, null, pageNo, pageSize);
+            } else if (startTime.equals(endTime)) {
+                return getProjectDailyCharges(accountIds, companyId, mediaId, startTime, startTime, pageNo, pageSize);
             } else {
                 return getProjectDailyCharges(accountIds, companyId, mediaId, startTime, endTime, pageNo, pageSize);
             }

+ 1 - 1
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/ai/entity/AiKuaishouAccountAutoStrategy.java

@@ -496,7 +496,7 @@ public class AiKuaishouAccountAutoStrategy {
      */
     @Excel(name = "1:立即试玩;2:试玩一下;3:立即体验;4:免装试玩;5:免装体验。启用试玩时:默认“立即试玩”", width = 15)
     @ApiModelProperty(value = "1:立即试玩;2:试玩一下;3:立即体验;4:免装试玩;5:免装体验。启用试玩时:默认“立即试玩”")
-    private Integer playButton;
+    private String playButton;
 
     /**
      * 素材来源 1-上新素材,2-高质量素材,3-遗漏素材,4-历史打捞

+ 5 - 4
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/impl/AiKuaishouAccountAutoDoServiceImpl.java

@@ -2218,6 +2218,11 @@ public class AiKuaishouAccountAutoDoServiceImpl implements IAiKuaishouAccountAut
                 target.put("paid_audience", paidAudience);
             }
 
+            // 过滤已转化人群
+            if (!Check.isNull(templateTarget.getFilterConvertedLevel())) {
+                target.put("filter_converted_level", templateTarget.getFilterConvertedLevel());
+            }
+
             if (sceneId != 5) {
                 // 商业兴趣类型
                 if (null != templateTarget.getBusinessInterestType()) {
@@ -2238,10 +2243,6 @@ public class AiKuaishouAccountAutoDoServiceImpl implements IAiKuaishouAccountAut
                 if (!Check.isNull(interestVideoString) && !interestVideoString.isEmpty()) {
                     target.put("interest_video", interestVideoString);
                 }
-                // 过滤已转化人群
-                if (!Check.isNull(templateTarget.getFilterConvertedLevel())) {
-                    target.put("filter_converted_level", templateTarget.getFilterConvertedLevel());
-                }
 
                 // 开启智能扩量
                 Integer isOpen = templateTarget.getIsOpen();

+ 8 - 8
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/impl/AiKuaishouCreateCreativeServiceImpl.java

@@ -1417,10 +1417,8 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
         if (null != strategy.getDevicePrice() && !"".equals(strategy.getDevicePrice()) && !"[]".equals(strategy.getDevicePrice())) {
             targetJsonObject.put("device_price", JSON.parseArray(strategy.getDevicePrice()));
         }
-        if (sceneId != 5) {
-            if (null != strategy.getFilterConvertedLevel() && strategy.getFilterConvertedLevel() != 0) {
-                targetJsonObject.put("filter_converted_level", strategy.getFilterConvertedLevel());
-            }
+        if (null != strategy.getFilterConvertedLevel() && strategy.getFilterConvertedLevel() != 0) {
+            targetJsonObject.put("filter_converted_level", strategy.getFilterConvertedLevel());
         }
 
         // APP行为-按APP名称
@@ -1560,6 +1558,12 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
         if (null != devicePriceString && !"".equals(devicePriceString.trim())) {
             target.put("device_price", JSON.parseArray(devicePriceString));
         }
+
+        // 过滤已转化人群
+        if (null != strategy.getFilterConvertedLevel()) {
+            target.put("filter_converted_level", strategy.getFilterConvertedLevel());
+        }
+
         if (sceneId != 5) {
             // 商业兴趣类型
             if (null != strategy.getBusinessInterestType()) {
@@ -1580,10 +1584,6 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
             if (null != interestVideoString && !"".equals(interestVideoString.trim())) {
                 target.put("interest_video", JSON.parseArray(interestVideoString));
             }
-            // 过滤已转化人群
-            if (null != strategy.getFilterConvertedLevel()) {
-                target.put("filter_converted_level", strategy.getFilterConvertedLevel());
-            }
 
             // 开启智能扩量
             if (null != strategy.getIsOpen() && strategy.getIsOpen() == 1) {

+ 4 - 5
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/impl/KuaiShouCreateServiceImpl.java

@@ -579,6 +579,9 @@ public class KuaiShouCreateServiceImpl implements IKuaiShouCreateService {
         if (!Check.isNull(unitJson.getJSONArray("device_price"))) {
             target.put("device_price", unitJson.getJSONArray("device_price")); // 设备价格
         }
+        if (!Check.isNull(unitJson.getInteger("filter_converted_level"))) {
+            target.put("filter_converted_level", unitJson.getInteger("filter_converted_level")); // APP行为-按APP名称
+        }
         if (sceneId != 5) {
             if (!Check.isNull(unitJson.getInteger("business_interest_type"))) {
                 target.put("business_interest_type", unitJson.getInteger("business_interest_type")); // 商业兴趣类型
@@ -599,11 +602,7 @@ public class KuaiShouCreateServiceImpl implements IKuaiShouCreateService {
         if (!Check.isNull(unitJson.getJSONArray("app_ids"))) {
             target.put("app_ids", unitJson.getJSONArray("app_ids")); // APP行为-按APP名称
         }
-        if (sceneId != 5) {
-            if (!Check.isNull(unitJson.getInteger("filter_converted_level"))) {
-                target.put("filter_converted_level", unitJson.getInteger("filter_converted_level")); // APP行为-按APP名称
-            }
-        }
+
         if (!Check.isNull(unitJson.getJSONArray("population"))) {
             target.put("population", unitJson.getJSONArray("population")); // 人群包定向
         }

+ 13 - 13
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/BatchServiceImpl.java

@@ -296,11 +296,11 @@ public class BatchServiceImpl implements IBatchService {
             targetJson.put("device_price", requestJson.getJSONArray("devicePrice"));
         }
 
+        //过滤已转化人群纬度
+        if (!Check.isNull(requestJson.getInteger("filterConvertedLevel"))) {
+            targetJson.put("filter_converted_level", requestJson.getInteger("filterConvertedLevel"));
+        }
         if (sceneId != 5) {
-            //过滤已转化人群纬度
-            if (!Check.isNull(requestJson.getInteger("filterConvertedLevel"))) {
-                targetJson.put("filter_converted_level", requestJson.getInteger("filterConvertedLevel"));
-            }
             //商业兴趣类型
             if (!Check.isNull(requestJson.getInteger("businessInterestType"))) {
                 targetJson.put("business_interest_type", requestJson.getInteger("businessInterestType"));
@@ -637,10 +637,10 @@ public class BatchServiceImpl implements IBatchService {
             if (!Check.isNull(requestJson.getJSONArray("devicePrice"))) {
                 targetJson.put("device_price", requestJson.getJSONArray("devicePrice"));
             }
+            if (!Check.isNull(requestJson.getInteger("filterConvertedLevel"))) {
+                targetJson.put("filter_converted_level", requestJson.getInteger("filterConvertedLevel"));
+            }
             if (sceneId != 5) {
-                if (!Check.isNull(requestJson.getInteger("filterConvertedLevel"))) {
-                    targetJson.put("filter_converted_level", requestJson.getInteger("filterConvertedLevel"));
-                }
                 //商业兴趣类型
                 if (!Check.isNull(requestJson.getInteger("businessInterestType"))) {
                     targetJson.put("business_interest_type", requestJson.getInteger("businessInterestType"));
@@ -962,10 +962,10 @@ public class BatchServiceImpl implements IBatchService {
                     if (!Check.isNull(groupTarget.getDevicePrice())) {
                         targetJson.put("device_price", JSONArray.parseArray(groupTarget.getDevicePrice()));
                     }
+                    if (!Check.isNull(groupTarget.getFilterConvertedLevel())) {
+                        targetJson.put("filter_converted_level", groupTarget.getFilterConvertedLevel());
+                    }
                     if (sceneId != 5) {
-                        if (!Check.isNull(groupTarget.getFilterConvertedLevel())) {
-                            targetJson.put("filter_converted_level", groupTarget.getFilterConvertedLevel());
-                        }
 
                         //商业兴趣类型
                         if (!Check.isNull(groupTarget.getBusinessInterestType())) {
@@ -1886,10 +1886,10 @@ public class BatchServiceImpl implements IBatchService {
                 targetJson.put("third_platform_code", requestJson.getJSONArray("thirdPlatformCode"));
             }
 
+            if (!Check.isNull(requestJson.getInteger("filterConvertedLevel"))) {
+                targetJson.put("filter_converted_level", requestJson.getInteger("filterConvertedLevel"));
+            }
             if (scene != 5) {
-                if (!Check.isNull(requestJson.getInteger("filterConvertedLevel"))) {
-                    targetJson.put("filter_converted_level", requestJson.getInteger("filterConvertedLevel"));
-                }
 
                 //商业兴趣类型
                 if (!Check.isNull(requestJson.getInteger("businessInterestType"))) {

+ 4 - 4
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouCampaignCopyDataServiceImpl.java

@@ -327,11 +327,11 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
                         targetJson.put("third_platform_code", target.getJSONArray("thirdPlatformCode"));
                     }
 
+                    //过滤已转化人群纬度
+                    if (!Check.isNull(target.getInteger("filterConvertedLevel"))) {
+                        targetJson.put("filter_converted_level", target.getInteger("filterConvertedLevel"));
+                    }
                     if (sceneId != 5) {
-                        //过滤已转化人群纬度
-                        if (!Check.isNull(target.getInteger("filterConvertedLevel"))) {
-                            targetJson.put("filter_converted_level", target.getInteger("filterConvertedLevel"));
-                        }
                         //商业兴趣类型
                         if (!Check.isNull(target.getInteger("businessInterestType"))) {
                             targetJson.put("business_interest_type", target.getInteger("businessInterestType"));

+ 9 - 5
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouStrategyServiceImpl.java

@@ -7,7 +7,11 @@ import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouImageGet;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouStrategy;
 import cn.com.ctop.kuaishou.modules.batch.entity.kuaishoustrategycampaignRel;
 import cn.com.ctop.kuaishou.modules.batch.mapper.KuaishouStrategyMapper;
-import cn.com.ctop.kuaishou.modules.batch.service.*;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouImageGetService;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouMaterialUploadService;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouUpdateService;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouInterfaceService;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouStrategyService;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -401,11 +405,11 @@ public class KuaishouStrategyServiceImpl extends ServiceImpl<KuaishouStrategyMap
             targetJson.put("device_price", groupJson.getJSONArray("devicePrice"));
         }
 
+        //过滤已转化人群纬度
+        if (!Check.isNull(groupJson.getInteger("filterConvertedLevel"))) {
+            targetJson.put("filter_converted_level", groupJson.getInteger("filterConvertedLevel"));
+        }
         if (sceneId != 5) {
-            //过滤已转化人群纬度
-            if (!Check.isNull(groupJson.getInteger("filterConvertedLevel"))) {
-                targetJson.put("filter_converted_level", groupJson.getInteger("filterConvertedLevel"));
-            }
             //商业兴趣类型
             if (!Check.isNull(groupJson.getInteger("businessInterestType"))) {
                 targetJson.put("business_interest_type", groupJson.getInteger("businessInterestType"));

+ 5 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialInfoController.java

@@ -83,6 +83,8 @@ public class MaterialInfoController {
     IUserCompanyService userCompanyService;
     @Autowired
     private IByteDanceCreativeWordPackageService byteDanceGeneralCopywriterService;
+    @Autowired
+    private ISysUserService userService;
 
 
     /**
@@ -106,7 +108,7 @@ public class MaterialInfoController {
             if (Check.isNull(toProjectIds)) {
                 throw new Exception("请传入需同步的项目ID");
             }
-             materialInfoService.materialSync(projectId, toProjectIds);
+            materialInfoService.materialSync(projectId, toProjectIds);
             result.setSuccess(true);
 
 
@@ -220,10 +222,9 @@ public class MaterialInfoController {
     }
 
     @PostMapping("watermark")
-    public Result<Object> watermarkVideo(@RequestParam(name = "id") String id, @RequestParam(name = "watermarkTemplateId") Long watermarkTemplateId) {
+    public Result<Object> watermarkVideo(@RequestParam(name = "id") String id, @RequestParam(name = "watermarkTemplateId") Long watermarkTemplateId, @RequestParam(name = "userId") String userId) {
         Result<Object> result = new Result<>();
-        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        Thread thread = new Thread(() -> materialInfoService.watermarkVideo(id, watermarkTemplateId, sysUser.getId()));
+        Thread thread = new Thread(() -> materialInfoService.watermarkVideo(id, watermarkTemplateId, userId));
         thread.start();
         result.setCode(200);
         result.setSuccess(true);