Browse Source

销售盯盘权限查询公司

zhaoxian 3 years ago
parent
commit
5b8a4bcac0

+ 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 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(projectId, startTime, endTime,sortCode,order, pageSize, pageNo);
             } else {
-                return kuaishouReportService.getProjectReport(projectId, startTime, endTime, pageSize, pageNo);
+                return kuaishouReportService.getProjectReport(projectId, startTime, endTime,sortCode,order, pageSize, pageNo);
             }
         } catch (Exception e) {
             e.printStackTrace();

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

@@ -24,4 +24,11 @@ public interface BytedanceAccountReportDailyDwMapper {
 
     List<JSONObject> getProjectMoreDaysReport(@Param("projectId") Long projectId, @Param("startTime") Integer startTime, @Param("endTime") Integer endTime, @Param("hour") Integer hour);
 
+    List<JSONObject> getProjectNoByDays(@Param("startTime") Integer startTimeInt, @Param("endTimeInt") Integer endTimeInt);
+
+    List<JSONObject> getAdvertiserNoByDays(@Param("startTime") Integer startTimeInt, @Param("endTimeInt") Integer endTimeInt);
+
+    List<JSONObject> getUnitNoByHours(@Param("startTime") Integer startTimeInt);
+
+    List<JSONObject> getUnitNoByDays(@Param("startTime") Integer startTimeInt, @Param("endTimeInt") 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("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("endTimeInt") Integer endTimeInt);
+
+    List<JSONObject> getAdvertiserNoByDays(@Param("startTime") Integer startTimeInt, @Param("endTimeInt") Integer endTimeInt);
+
+    List<JSONObject> getUnitNoByHours(@Param("startTime") Integer startTimeInt);
+
+    List<JSONObject> getUnitNoByDays(@Param("startTime") Integer startTimeInt, @Param("endTimeInt") Integer endTimeInt);
 
 }

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

@@ -113,7 +113,9 @@
         '-' AS 'lmAd',
         '-' AS 'xxlAd',
         '-' AS 'jlAd',
-        '-' AS 'kpAd'
+        '-' AS 'kpAd',
+        IFNULL(t9.accountNum,0) as 'accountNum',
+        IFNULL(t10.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
@@ -149,6 +151,20 @@
         AND company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b' , 'd57fecdcf7a94d009736d9c850731582')
         GROUP BY project_id
         ) t8 ON t1.project_id = t8.project_id
+        LEFT JOIN(
+        SELECT project_id,count(1) as 'accountNum' FROM `jeecg-boot`.ctop_user_allocation WHERE account_status=0
+        AND media_id = 1
+        GROUP BY project_id
+        ) t9 ON t1.project_id = t9.project_id
+        LEFT JOIN(
+        SELECT project_id,count(1) as 'operaterNum' FROM
+        (
+        SELECT project_id,user_id FROM `jeecg-boot`.ctop_user_allocation WHERE account_status=0
+        AND media_id =1
+        GROUP BY project_id,user_id
+        )tt
+        GROUP BY project_id
+        ) t10 ON t1.project_id = t10.project_id
         WHERE stat_datetime = #{startTime}
         AND t1.company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b' , 'd57fecdcf7a94d009736d9c850731582')
         <if test="projectId != null and projectId != ''">
@@ -196,7 +212,9 @@
         '-' AS 'lmAd',
         '-' AS 'xxlAd',
         '-' AS 'jlAd',
-        '-' AS 'kpAd'
+        '-' AS 'kpAd',
+        IFNULL(t9.accountNum,0) as 'accountNum',
+        IFNULL(t10.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
@@ -221,6 +239,20 @@
         AND company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b' , 'd57fecdcf7a94d009736d9c850731582')
         GROUP BY project_id
         ) t8 ON t1.project_id = t8.project_id
+        LEFT JOIN(
+        SELECT project_id,count(1) as 'accountNum' FROM `jeecg-boot`.ctop_user_allocation WHERE account_status=0
+        AND media_id = 1
+        GROUP BY project_id
+        ) t9 ON t1.project_id = t9.project_id
+        LEFT JOIN(
+        SELECT project_id,count(1) as 'operaterNum' FROM
+        (
+        SELECT project_id,user_id FROM `jeecg-boot`.ctop_user_allocation WHERE account_status=0
+        AND media_id =1
+        GROUP BY project_id,user_id
+        )tt
+        GROUP BY project_id
+        ) t10 ON t1.project_id = t10.project_id
         WHERE stat_datetime >= #{startTime}
         AND stat_datetime &lt;= #{endTime}
         AND t1.company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b' , 'd57fecdcf7a94d009736d9c850731582')
@@ -235,4 +267,54 @@
     </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>

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

@@ -110,13 +110,19 @@
         SUM(bclick) as 'bclick',
         IFNULL(t6.num,0) as 'num',
         IFNULL(concat(round((sum(charge) - t7.charges) / t7.charges * 100, 2), '%'), '-') as 'rio',
-        IFNULL(t8.unitNum,0) as 'unitNum',
         '-' AS 'ssAd',
         '-' AS 'sxhAd',
         '-' AS 'lmAd',
         '-' AS 'xxlAd',
         '-' AS 'jlAd',
-        '-' AS 'kpAd'
+        '-' AS 'kpAd',
+        IFNULL(t9.accountNum,0) as 'accountNum',
+        IFNULL(t10.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
@@ -146,23 +152,43 @@
             GROUP BY project_id
         </if>
         ) t7 ON t1.project_id = t7.project_id
-        LEFT JOIN (
-        SELECT project_id , SUM(new_unit_num) as 'unitNum' FROM application.app_kuaishou_account_base_info_d
-        WHERE stat_date =DATE_FORMAT(DATE_SUB(#{startTime}, INTERVAL 1 DAY ), '%Y%m%d')
-        AND company_id in ('5e46b5dea3d740eeb8ff1a2895015a4b' , 'd57fecdcf7a94d009736d9c850731582')
+        LEFT JOIN(
+        SELECT project_id,count(1) as 'accountNum' FROM `jeecg-boot`.ctop_user_allocation WHERE account_status=0
+        AND media_id =2
+        GROUP BY project_id
+        ) t9 ON t1.project_id = t9.project_id
+        LEFT JOIN(
+        SELECT project_id,count(1) as 'operaterNum' FROM
+        (
+        SELECT project_id,user_id FROM `jeecg-boot`.ctop_user_allocation WHERE account_status=0
+        AND media_id =2
+        GROUP BY project_id,user_id
+        )tt
         GROUP BY project_id
-        ) t8 ON t1.project_id = t8.project_id
+        ) t10 ON t1.project_id = t10.project_id
+        LEFT JOIN (
+        SELECT project_id,new_unit_num,new_trush_unit_num FROM application.app_kuaishou_account_today_base_info_d WHERE
+        stat_date = #{startTime}
+        )t11 ON t1.project_id = t11.project_id
+        LEFT JOIN (
+        SELECT project_id,new_unit_num,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')
+        )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
-            HAVING sum(charge) > 0
-            ORDER BY sum(charge) desc
-        </if>
-
+        GROUP BY t1.project_id
+        HAVING sum(charge) > 0
+        ORDER BY ${sortCode} ${order}
     </select>
 
 
@@ -203,7 +229,11 @@
         SUM(bclick) as 'bclick',
         IFNULL(t6.num,0) as 'num',
         '-' as 'rio',
-        IFNULL(t8.unitNum,0) as 'unitNum'
+        IFNULL(t9.accountNum,0) as 'accountNum',
+        IFNULL(t10.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
@@ -221,27 +251,45 @@
             GROUP BY project_id
         </if>
         ) t6 ON t1.project_id = t6.project_id
+        LEFT JOIN(
+        SELECT project_id,count(1) as 'accountNum' FROM `jeecg-boot`.ctop_user_allocation WHERE account_status=0
+        AND media_id =2
+        GROUP BY project_id
+        ) t9 ON t1.project_id = t9.project_id
+        LEFT JOIN(
+        SELECT project_id,count(1) as 'operaterNum' FROM
+        (
+        SELECT project_id,user_id FROM `jeecg-boot`.ctop_user_allocation WHERE account_status=0
+        AND media_id =2
+        GROUP BY project_id,user_id
+        )tt
+        GROUP BY project_id
+        ) t10 ON t1.project_id = t10.project_id
         LEFT JOIN (
-        SELECT project_id , SUM(new_unit_num) as 'unitNum' FROM application.app_kuaishou_account_base_info_d
+        SELECT project_id,new_unit_num,new_trush_unit_num FROM application.app_kuaishou_account_today_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
+        )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
-            HAVING sum(charge) > 0
-            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
+        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')
@@ -249,6 +297,57 @@
         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(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(Long projectId, String startTime, String endTime, String sortCode, String order, Integer pageSize, Integer pageNo) throws Exception;
 }

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

@@ -28,23 +28,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);
@@ -72,7 +84,7 @@ 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(Long projectId, String startTime, String endTime, String sortCode, String order, Integer pageSize, Integer pageNo) throws Exception {
         Integer startTimeInt = DateUtils.getDateInteger(startTime);
         Integer endTimeInt = DateUtils.getDateInteger(endTime);
         //当前小时

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

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 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;
@@ -27,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);
@@ -71,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(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);
         //当前小时
@@ -83,11 +103,11 @@ public class KuaishouAccountReportDailyDwServiceImpl implements IKuaishouAccount
         if (startTime.equals(endTime) && today.equals(startTime)) {
 //            total = kuaishouAccountReportDailyDwMapper.getProjectToDayReportTotal(projectId, startTimeInt, nowHour);
 //            PageHelper.startPage(pageNo, pageSize, false);
-            data = kuaishouAccountReportDailyDwMapper.getProjectToDayReport(projectId, startTimeInt, nowHour);
+            data = kuaishouAccountReportDailyDwMapper.getProjectToDayReport(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);
+            data = kuaishouAccountReportDailyDwMapper.getProjectMoreDaysReport(projectId, startTimeInt, endTimeInt, nowHour, sortCode, order);
         }
         PageInfo<JSONObject> page = new PageInfo<>();
         page.setList(data);