yumeng 9 mēneši atpakaļ
vecāks
revīzija
e7051b37b5

+ 69 - 70
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java

@@ -956,6 +956,10 @@ public class DateUtils extends PropertyEditorSupport {
 
     }
 
+    public static Long dateToLong(String startDate) {
+        return Long.valueOf(startDate.replace("-", ""));
+    }
+
 
     /**
      * String类型 转换为Date, 如果参数长度为10 转换格式”yyyy-MM-dd“ 如果参数长度为19 转换格式”yyyy-MM-dd
@@ -1262,7 +1266,7 @@ public class DateUtils extends PropertyEditorSupport {
         Date parse = null;
         try {
             parse = df.parse(date);
-        }catch (ParseException e) {
+        } catch (ParseException e) {
             e.printStackTrace();
         }
         return String.format("%tY", parse);
@@ -1295,12 +1299,12 @@ public class DateUtils extends PropertyEditorSupport {
      * @return
      * @throws ParseException
      */
-    public static String getDay(String format, String date){
+    public static String getDay(String format, String date) {
         SimpleDateFormat df = new SimpleDateFormat(format);
         Date parse = null;
         try {
             parse = df.parse(date);
-        }catch (ParseException e) {
+        } catch (ParseException e) {
             e.printStackTrace();
         }
         return String.format("%td", parse);
@@ -1863,7 +1867,7 @@ public class DateUtils extends PropertyEditorSupport {
         return null;
     }
 
-/**
+    /**
      * int 日期转 string
      * 20220118 ====>>>> 2022-01-18
      *
@@ -1878,7 +1882,7 @@ public class DateUtils extends PropertyEditorSupport {
         String dateTarget = "";
         try {
             dateTarget = sdfTarget.format(sdfSource.parse(dateSource));
-        }catch (Exception e) {
+        } catch (Exception e) {
             e.printStackTrace();
         }
         return dateTarget;
@@ -1886,8 +1890,6 @@ public class DateUtils extends PropertyEditorSupport {
     }
 
 
-
-
     /**
      * 获取当前月份第一天
      *
@@ -2262,15 +2264,13 @@ public class DateUtils extends PropertyEditorSupport {
 
 
         System.out.println(subMonthMiddleDay("2022-12-01"));
-        if (subMonthMiddleDay("2022-12-01") == 20221215){
+        if (subMonthMiddleDay("2022-12-01") == 20221215) {
             System.out.println("111");
-        }else {
+        } else {
             System.out.println("222");
         }
 
 
-
-
     }
 
     /****
@@ -2285,7 +2285,7 @@ public class DateUtils extends PropertyEditorSupport {
         Date dt = null;
         try {
             dt = sdf.parse(date);
-        }catch (Exception e) {
+        } catch (Exception e) {
             e.printStackTrace();
         }
 
@@ -2298,21 +2298,20 @@ public class DateUtils extends PropertyEditorSupport {
     }
 
 
-
-
     /**
      * 获取季度所在的3个月份的 开始和结束时间
+     *
      * @param quarterTime
      * @return
      */
-    public static List<Map<String,Integer>> getQuarStartAndEndTime(int quarterTime){
-        List<Map<String,Integer>> list = new ArrayList();
-        Map<String,Object> timeMap = DateUtils.getCurrentQuarterMonths(quarterTime);
-        String[] quarterStr = (String[])timeMap.get("quarter");
-        for (String month : quarterStr ){
-            Map<String,Integer> map = new HashMap<>();
-            map.put("startTime",getFirstDayOfMonth(Integer.valueOf(month)));
-            map.put("endTime",getLastDayOfMonth(Integer.valueOf(month)));
+    public static List<Map<String, Integer>> getQuarStartAndEndTime(int quarterTime) {
+        List<Map<String, Integer>> list = new ArrayList();
+        Map<String, Object> timeMap = DateUtils.getCurrentQuarterMonths(quarterTime);
+        String[] quarterStr = (String[]) timeMap.get("quarter");
+        for (String month : quarterStr) {
+            Map<String, Integer> map = new HashMap<>();
+            map.put("startTime", getFirstDayOfMonth(Integer.valueOf(month)));
+            map.put("endTime", getLastDayOfMonth(Integer.valueOf(month)));
             list.add(map);
         }
         return list;
@@ -2321,33 +2320,35 @@ public class DateUtils extends PropertyEditorSupport {
 
     /**
      * 获取当前时间的季度的月份
+     *
      * @return
      */
-    public static Map<String,Object> getCurrentQuarterMonths(int quarterTime){
+    public static Map<String, Object> getCurrentQuarterMonths(int quarterTime) {
 
-        Map<String,Object> map = new HashMap<>();
+        Map<String, Object> map = new HashMap<>();
         String quarter[] = new String[]{};
 
-        if (quarterTime == 1){
-             quarter = new String[]{"01","02","03"};
+        if (quarterTime == 1) {
+            quarter = new String[]{"01", "02", "03"};
         }
-        if (quarterTime == 2){
-             quarter = new String[]{"04","05","06"};
+        if (quarterTime == 2) {
+            quarter = new String[]{"04", "05", "06"};
         }
-        if (quarterTime == 3){
-             quarter = new String[]{"07","08","09"};
+        if (quarterTime == 3) {
+            quarter = new String[]{"07", "08", "09"};
         }
-        if (quarterTime == 4){
-             quarter = new String[]{"10","11","12"};
+        if (quarterTime == 4) {
+            quarter = new String[]{"10", "11", "12"};
         }
-        map.put("quarterTime",quarterTime);
-        map.put("quarter",quarter);
+        map.put("quarterTime", quarterTime);
+        map.put("quarter", quarter);
         return map;
     }
 
 
     /**
      * 获得季度开始时间
+     *
      * @return
      */
     public static Date getCurrentQuarterStartTime() {
@@ -2375,6 +2376,7 @@ public class DateUtils extends PropertyEditorSupport {
 
     /**
      * 当前季度的结束时间
+     *
      * @return
      */
     public static Date getCurrentQuarterEndTime() {
@@ -2395,6 +2397,7 @@ public class DateUtils extends PropertyEditorSupport {
 
     /**
      * 离职时间所在季度的最后一天
+     *
      * @param time
      * @return
      */
@@ -2417,9 +2420,9 @@ public class DateUtils extends PropertyEditorSupport {
     }
 
 
-
     /**
      * 获取当前月第一天
+     *
      * @param month
      * @return
      */
@@ -2439,6 +2442,7 @@ public class DateUtils extends PropertyEditorSupport {
 
     /**
      * 获取当前月最后一天
+     *
      * @param month
      * @return
      */
@@ -2447,12 +2451,12 @@ public class DateUtils extends PropertyEditorSupport {
         // 设置月份
         calendar.set(Calendar.MONTH, month - 1);
         // 获取某月最大天数
-        int lastDay=0;
+        int lastDay = 0;
         //2月的平年瑞年天数
-        if(month==2) {
+        if (month == 2) {
             // 这个api在计算2020年2月的过程中有问题
             lastDay = calendar.getLeastMaximum(Calendar.DAY_OF_MONTH);
-        }else {
+        } else {
             lastDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
         }
         // 设置日历中月份的最大天数
@@ -2464,12 +2468,7 @@ public class DateUtils extends PropertyEditorSupport {
     }
 
 
-
-
-
-
-
-    public static Double getMaterialCost(String frozenTime, String createTime,int monthTime){
+    public static Double getMaterialCost(String frozenTime, String createTime, int monthTime) {
 
         //String frozenTime = "";
         //String createTime = "2022-11-02 12:23:23";
@@ -2481,72 +2480,72 @@ public class DateUtils extends PropertyEditorSupport {
         /**
          * 人员离职
          */
-        if (frozenTime != null){
+        if (frozenTime != null) {
 
-            Date  date = DateUtils.str2Date(frozenTime,new SimpleDateFormat("yyyy-MM-dd"));
+            Date date = DateUtils.str2Date(frozenTime, new SimpleDateFormat("yyyy-MM-dd"));
             // 判断时间所在的季度
             int quarterTime = DateUtils.getQuarter(date);
 
             //季度查询时间 超过 离职时间 则比例为0 绩效 无
-            if (quarterTime < monthTime){
+            if (quarterTime < monthTime) {
                 i = 0;
-                log.info("离职-----离职时间是:{},查询季度{} 绩效按照0计算。当前时间是:{},",frozenTime,monthTime,new Date());
+                log.info("离职-----离职时间是:{},查询季度{} 绩效按照0计算。当前时间是:{},", frozenTime, monthTime, new Date());
 
             }
 
-            if (quarterTime > monthTime){
-                log.info("离职-----离职时间是:{},查询季度{},绩效按照240计算。当前时间是:{},",frozenTime,monthTime,new Date());
+            if (quarterTime > monthTime) {
+                log.info("离职-----离职时间是:{},查询季度{},绩效按照240计算。当前时间是:{},", frozenTime, monthTime, new Date());
 
             }
 
             //离职时间 是否是当前季度
-            if (quarterTime == monthTime){
-                Map<String,Object> map = DateUtils.getCurrentQuarterMonths(monthTime);
+            if (quarterTime == monthTime) {
+                Map<String, Object> map = DateUtils.getCurrentQuarterMonths(monthTime);
                 //离职时间所在 月份
-                String month = DateUtils.getMonth("yyyy-MM-dd",frozenTime);
+                String month = DateUtils.getMonth("yyyy-MM-dd", frozenTime);
                 //离职时间所在的季度 的全部 月份
-                String[]  quarter =(String[]) map.get("quarter");
+                String[] quarter = (String[]) map.get("quarter");
                 //判断当前离职所在的月份 与当前季度中的月份集合 并获取下标  下标+1 则是 在职月份i
-                int j = Collections.indexOfSubList(Arrays.asList(quarter),Arrays.asList(month));
+                int j = Collections.indexOfSubList(Arrays.asList(quarter), Arrays.asList(month));
                 i = j + 1;
-                log.info("离职-----离职时间是:{}在查询季度{}范围内!系数为{}个月的绩效数据--->{}",frozenTime,monthTime,i,i*cost);
+                log.info("离职-----离职时间是:{}在查询季度{}范围内!系数为{}个月的绩效数据--->{}", frozenTime, monthTime, i, i * cost);
 
             }
             //return i * cost;
 
-        }else {
-            Date  date = DateUtils.str2Date(createTime,new SimpleDateFormat("yyyy-MM-dd"));
+        } else {
+            Date date = DateUtils.str2Date(createTime, new SimpleDateFormat("yyyy-MM-dd"));
             // 判断时间所在的季度
             int quarterTime = DateUtils.getQuarter(date);
             //查询入职前的 比例
             //季度查询时间 超过 入职时间  绩效0
-            if (quarterTime < monthTime){
-                log.info("在职-----入职时间是:{},查询季度{} 绩效按照240计算。当前时间是:{},",createTime,monthTime,new Date());
+            if (quarterTime < monthTime) {
+                log.info("在职-----入职时间是:{},查询季度{} 绩效按照240计算。当前时间是:{},", createTime, monthTime, new Date());
             }
             //查询入职后的 比例
-            if (quarterTime > monthTime){
+            if (quarterTime > monthTime) {
                 i = 0;
-                log.info("在职-----入职时间是:{},查询季度{},绩效按照0计算。当前时间是:{},",createTime,monthTime,new Date());
+                log.info("在职-----入职时间是:{},查询季度{},绩效按照0计算。当前时间是:{},", createTime, monthTime, new Date());
             }
 
             //入职时间 在当前季度
-            if (quarterTime == monthTime){
-                Map<String,Object> map = DateUtils.getCurrentQuarterMonths(monthTime);
+            if (quarterTime == monthTime) {
+                Map<String, Object> map = DateUtils.getCurrentQuarterMonths(monthTime);
                 //月份
                 //入职时间所在 月份
-                String month = DateUtils.getMonth("yyyy-MM-dd",createTime);
+                String month = DateUtils.getMonth("yyyy-MM-dd", createTime);
                 //季度
-                String[]  quarter =(String[]) map.get("quarter");
+                String[] quarter = (String[]) map.get("quarter");
                 //判断当前离职所在的月份 与当前季度中的月份集合 并获取下标  下标+1 则是 在职月份i
-                int j = Collections.indexOfSubList(Arrays.asList(quarter),Arrays.asList(month));
+                int j = Collections.indexOfSubList(Arrays.asList(quarter), Arrays.asList(month));
                 i = j + 1;
-                log.info("在职-----入职时间是:{}在查询季度{}内!系数为{}个月的绩效数据--->{}",createTime,monthTime,i,i*cost);
+                log.info("在职-----入职时间是:{}在查询季度{}内!系数为{}个月的绩效数据--->{}", createTime, monthTime, i, i * cost);
                 return i * cost;
-            };
+            }
+            ;
         }
         return i * cost;
     }
 
 
-
 }

+ 91 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/report/controller/DuanJUReportController.java

@@ -0,0 +1,91 @@
+package cn.com.ctop.kuaishou.modules.report.controller;
+
+import cn.com.ctop.kuaishou.modules.report.service.IDuanJUReportService;
+import com.alibaba.fastjson.JSONObject;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.util.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@RestController
+@RequestMapping("/duanju/report")
+public class DuanJUReportController {
+    @Autowired
+    private IDuanJUReportService duanJUReportService;
+
+    @GetMapping("/getTotalCharge")
+    public Result<Object> getTotalCharge(String startDate, String endDate) {
+        try {
+            Long start = DateUtils.dateToLong(startDate);
+            Long end = DateUtils.dateToLong(endDate);
+            Map<String, Object> requestMap = new HashMap<>();
+            requestMap.put("start", start);
+            requestMap.put("end", end);
+            JSONObject data = duanJUReportService.getTotalCharge(requestMap);
+            return Result.OK(data);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return Result.error("查询失败");
+    }
+
+
+    @GetMapping("/getAccountList")
+    public Result<Object> getAccountList(String startDate, String endDate) {
+        try {
+            Long start = DateUtils.dateToLong(startDate);
+            Long end = DateUtils.dateToLong(endDate);
+            Map<String, Object> requestMap = new HashMap<>();
+            requestMap.put("start", start);
+            requestMap.put("end", end);
+            List<JSONObject> data = duanJUReportService.getAccountList(requestMap);
+            return Result.OK(data);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return Result.error("查询失败");
+    }
+
+    @GetMapping("/getDuanJuList")
+    public Result<Object> getDuanJuList(String startDate, String endDate) {
+        try {
+            Long start = DateUtils.dateToLong(startDate);
+            Long end = DateUtils.dateToLong(endDate);
+            Map<String, Object> requestMap = new HashMap<>();
+            requestMap.put("start", start);
+            requestMap.put("end", end);
+            List<JSONObject> data = duanJUReportService.getDuanJuList(requestMap);
+            return Result.OK(data);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return Result.error("查询失败");
+    }
+
+    @GetMapping("/getViodeoList")
+    public Result<Object> getViodeoList(String startDate, String endDate) {
+        try {
+            Long start = DateUtils.dateToLong(startDate);
+            Long end = DateUtils.dateToLong(endDate);
+            Map<String, Object> requestMap = new HashMap<>();
+            requestMap.put("start", start);
+            requestMap.put("end", end);
+            List<JSONObject> data = duanJUReportService.getViodeoList(requestMap);
+            return Result.OK(data);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return Result.error("查询失败");
+    }
+
+
+}

+ 16 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/DuanJUReportMapper.java

@@ -0,0 +1,16 @@
+package cn.com.ctop.kuaishou.modules.report.mapper;
+
+import com.alibaba.fastjson.JSONObject;
+
+import java.util.List;
+import java.util.Map;
+
+public interface DuanJUReportMapper {
+    JSONObject getTotalCharge(Map<String, Object> requestMap);
+
+    List<JSONObject> getAccountList(Map<String, Object> requestMap);
+
+    List<JSONObject> getDuanJuList(Map<String, Object> requestMap);
+
+    List<JSONObject> getViodeoList(Map<String, Object> requestMap);
+}

+ 85 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/DuanJUReportMapper.xml

@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.com.ctop.kuaishou.modules.report.mapper.DuanJUReportMapper">
+
+
+    <select id="getTotalCharge" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT SUM(charge) AS 'charge', COUNT(DISTINCT advertiser_id) AS 'accountNum', round(
+                ifnull(SUM(event_pay_purchase_amount) / SUM(charge) * 100, 0), 2) AS roi,
+               COUNT(DISTINCT substring_index(substring_index(campaign_name, '-', 2), '-', -1)) AS playCount
+        FROM media_api.compass_bind_kuaishou_campaign_report_daily
+        WHERE stat_date &gt;= #{start}
+          AND stat_date &lt;= #{end}
+    </select>
+    <select id="getAccountList" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT *
+        FROM (SELECT t1.advertiser_id                                                              AS accountId,
+                     t2.advertiser_name AS 'accountName', SUM(t1.charge) AS charge,
+                     round(ifnull(SUM(t1.event_pay_purchase_amount) / SUM(t1.charge) * 100, 0), 2) AS roi,
+                     SUM(t1.event_pay_purchase_amount)                                             AS event_pay_purchase_amount,
+                     SUM(t1.aclick)                                                                AS aclick,
+                     SUM(t1.bclick)                                                                AS bclick,
+                     concat(round(ifnull(SUM(t1.bclick) / SUM(t1.aclick) * 100, 0), 2), '%')       AS ctr,
+                     round(SUM(t1.charge) / SUM(t1.bclick), 2)                                     AS cpc,
+                     round(SUM(t1.charge) / SUM(t1.aclick) * 1000, 2)                              AS cpm,
+                     SUM(t1.activation)                                                            AS activation,
+                     round(SUM(t1.charge) / SUM(t1.activation), 2)                                 AS active_cost,
+                     SUM(t1.event_pay)                                                             AS event_pay,
+                     round(SUM(t1.charge) / SUM(t1.event_pay), 2)                                  AS pay_cost,
+                     SUM(round(t1.event_new_user_pay))                                             AS event_new_user_pay,
+                     round(SUM(t1.charge) / SUM(t1.event_new_user_pay), 2)                         AS new_pay_cost
+              FROM media_api.compass_bind_kuaishou_campaign_report_daily t1
+                       LEFT JOIN media_api.compass_bind_advertisers t2 ON t1.advertiser_id = t2.advertiser_id
+              WHERE t1.stat_date &gt;= #{start}
+                AND t1.stat_date &lt;= #{end}
+              GROUP BY t1.advertiser_id) t
+        ORDER BY t.charge DESC
+    </select>
+    <select id="getDuanJuList" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT *
+        FROM (SELECT substring_index(campaign_name, '-', 1)                                               AS agent,
+                     substring_index(substring_index(campaign_name, '-', 2), '-', -1)                     AS play_name,
+                     SUM(charge)                                                                          AS charge,
+                     SUM(event_pay_purchase_amount)                                                       AS event_pay_purchase_amount,
+                     concat(round(ifnull(SUM(event_pay_purchase_amount) / SUM(charge) * 100, 0), 2), '%') AS roi,
+                     SUM(aclick)                                                                          AS aclick,
+                     SUM(bclick)                                                                          AS bclick,
+                     concat(round(ifnull(SUM(bclick) / SUM(aclick) * 100, 0), 2), '%')                    AS ctr,
+                     round(SUM(charge) / SUM(bclick), 2)                                                  AS cpc,
+                     round(SUM(charge) / SUM(aclick) * 1000, 2)                                           AS cpm,
+                     SUM(activation)                                                                      AS activation,
+                     round(SUM(charge) / SUM(activation), 2)                                              AS active_cost,
+                     SUM(event_pay)                                                                       AS event_pay,
+                     round(SUM(charge) / SUM(event_pay), 2)                                               AS pay_cost,
+                     SUM(round(event_new_user_pay))                                                       AS event_new_user_pay,
+                     round(SUM(charge) / SUM(event_new_user_pay), 2)                                      AS new_pay_cost
+              FROM media_api.compass_bind_kuaishou_campaign_report_daily
+              WHERE stat_date &gt;= #{start}
+                AND stat_date &lt;= #{end}
+              GROUP BY agent, play_name) t
+        ORDER BY t.charge DESC
+    </select>
+    <select id="getViodeoList" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT *
+        FROM (SELECT CAST(photo_id AS char)                                                  AS photo_id,
+                     cover_url AS 'cover_url', photo_url AS 'photo_url', SUM(charge) AS charge,
+                     SUM(event_pay_purchase_amount)                                          AS event_pay_purchase_amount,
+                     round(ifnull(SUM(event_pay_purchase_amount) / SUM(charge) * 100, 0), 2) AS roi,
+                     SUM(aclick)                                                             AS aclick,
+                     SUM(bclick)                                                             AS bclick,
+                     concat(round(ifnull(SUM(bclick) / SUM(aclick) * 100, 0), 2), '%')       AS ctr,
+                     round(SUM(charge) / SUM(bclick), 2)                                     AS cpc,
+                     round(SUM(charge) / SUM(aclick) * 1000, 2)                              AS cpm,
+                     SUM(activation)                                                         AS activation,
+                     round(SUM(charge) / SUM(activation), 2)                                 AS active_cost,
+                     SUM(event_pay)                                                          AS event_pay,
+                     round(SUM(charge) / SUM(event_pay), 2)                                  AS pay_cost,
+                     SUM(round(event_new_user_pay))                                          AS event_new_user_pay,
+                     round(SUM(charge) / SUM(event_new_user_pay), 2)                         AS new_pay_cost
+              FROM media_api.compass_bind_kuaishou_material_video_report_daily
+              WHERE stat_date &gt;= #{start}
+                AND stat_date &lt;= #{end}
+              GROUP BY photo_id) t
+        ORDER BY t.charge DESC
+    </select>
+</mapper>

+ 16 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/report/service/IDuanJUReportService.java

@@ -0,0 +1,16 @@
+package cn.com.ctop.kuaishou.modules.report.service;
+
+import com.alibaba.fastjson.JSONObject;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IDuanJUReportService {
+    JSONObject getTotalCharge(Map<String, Object> requestMap);
+
+    List<JSONObject> getAccountList(Map<String, Object> requestMap);
+
+    List<JSONObject> getDuanJuList(Map<String, Object> requestMap);
+
+    List<JSONObject> getViodeoList(Map<String, Object> requestMap);
+}

+ 36 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/kuaishou/modules/report/service/impl/DuanJUReportServiceImpl.java

@@ -0,0 +1,36 @@
+package cn.com.ctop.kuaishou.modules.report.service.impl;
+
+import cn.com.ctop.kuaishou.modules.report.mapper.DuanJUReportMapper;
+import cn.com.ctop.kuaishou.modules.report.service.IDuanJUReportService;
+import com.alibaba.fastjson.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class DuanJUReportServiceImpl implements IDuanJUReportService {
+    @Autowired
+    private DuanJUReportMapper duanJUReportMapper;
+
+    @Override
+    public JSONObject getTotalCharge(Map<String, Object> requestMap) {
+        return duanJUReportMapper.getTotalCharge(requestMap);
+    }
+
+    @Override
+    public List<JSONObject> getAccountList(Map<String, Object> requestMap) {
+        return duanJUReportMapper.getAccountList(requestMap);
+    }
+
+    @Override
+    public List<JSONObject> getDuanJuList(Map<String, Object> requestMap) {
+        return duanJUReportMapper.getDuanJuList(requestMap);
+    }
+
+    @Override
+    public List<JSONObject> getViodeoList(Map<String, Object> requestMap) {
+        return duanJUReportMapper.getViodeoList(requestMap);
+    }
+}