刘帅
2026-09-21 620a310bdcfb1d8f1b49bf163413afeb522e1b2f
bug:收入类型统计数据问题解决
2个文件已修改
60 ■■■■■ 已修改文件
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/dataStatistics/platformIncome.html 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java
@@ -587,6 +587,13 @@
        // 门票饼图需要日/月/季/年卡拆分;此前该数据只在 type1 内部返回,
        // 现随统一营收接口返回,供平台页直接使用。
        monthlyData.put("ticketIncome", getTicketIncome(time, operatorId, storeId));
        // 平台收入类型饼图还需要课程、订场分类明细。此前页面只能读取 type1
        // 的模板数据,筛选后 getIncomeData 缺少该字段,导致课程图显示为空。
        if (operatorId == null && storeId == null) {
            Map<String, Object> platformTypeData = (Map<String, Object>) type1(time);
            monthlyData.put("courseData", platformTypeData.get("courseData"));
            monthlyData.put("siteData", platformTypeData.get("siteData"));
        }
        return monthlyData;
    }
cloud-server-management/src/main/webapp/WEB-INF/view/system/dataStatistics/platformIncome.html
@@ -368,7 +368,6 @@
    });
    function search1() {
        var time =  $("#beginTime").val();
        loadIncomeTypePieCharts(time);
        // 营收卡片与收入类型卡片使用同一接口、同一时间范围,避免筛选后口径不一致。
        var incomeAjax = new $ax(Feng.ctxPath + "/data/getIncomeData", function(resp){
            $("#totalIncome").text(formatStatisticNumber(resp.incomeStatistics.totalIncomeAmount));
@@ -383,6 +382,8 @@
            $("#fee5").text(formatStatisticNumber(incomeTypeNet[5]));
            $("#fee7").text(formatStatisticNumber(incomeTypeNet[6]));
            renderTicketIncomeChart(resp.ticketIncome || {});
            renderIncomeTypePieChart('cookieCourse', '课程收入', resp.courseData);
            renderIncomeTypePieChart('cookieBooking', '订场收入', resp.siteData);
        });
        incomeAjax.set("time", time);
        incomeAjax.start();
@@ -422,19 +423,6 @@
        }, true);
    }
    // 使用接口返回的 JSON 分类数据,避免服务端模板字符串解析遗漏最后一个分类。
    function loadIncomeTypePieCharts(time) {
        var ajax = new $ax(Feng.ctxPath + "/data/type1", function (data) {
            renderIncomeTypePieChart('cookieCourse', '课程收入', data.courseData);
            renderIncomeTypePieChart('cookieBooking', '订场收入', data.siteData);
        });
        ajax.set('time', time);
        ajax.start();
    }
    $(function () {
        loadIncomeTypePieCharts('');
    });
    // 创建一个日期对象
    var currentDate = new Date();
    // 获取当前日期的号数
@@ -592,6 +580,9 @@
            $("#back3").text(formatStatisticNumber(resp.weekIncomeStatistics[resp.weekIncomeStatistics.length - 1].refundAmount));
            $("#back4").text(formatStatisticNumber(resp.dayIncomeStatistics[resp.dayIncomeStatistics.length - 1].refundAmount));
            renderRefundChart(myChart1, resp);
            renderTicketIncomeChart(resp.ticketIncome || {});
            renderIncomeTypePieChart('cookieCourse', '课程收入', resp.courseData);
            renderIncomeTypePieChart('cookieBooking', '订场收入', resp.siteData);
        });
        ajax.set("type",1);
        ajax.start();
@@ -1512,15 +1503,16 @@
        courseData = courseData.split('},')
        var a=[];
        for (let j = 0; j <courseData.length; j++) {
            if(j<courseData.length-1){
                var d = courseData[j].replace("{","").replace("}","").split(",")
                    let obj ={
                        name:d[0].split("=")[1],
                        value:d[1].split("=")[1]
                    }
                    a.push(obj)
        for (let j = 0; j < courseData.length; j++) {
            var d = courseData[j].replace("{", "").replace("}", "").split(",");
            if (d.length < 2) {
                continue;
            }
            let obj = {
                name: d[0].split("=")[1],
                value: d[1].split("=")[1]
            };
            a.push(obj);
        }
        var chartDom = document.getElementById('cookieCourse');
        var myChart = echarts.init(chartDom)
@@ -1561,15 +1553,16 @@
        courseData = courseData.split('},')
        var a=[];
        for (let j = 0; j <courseData.length; j++) {
            if(j<courseData.length-1){
                var d = courseData[j].replace("{","").replace("}","").split(",")
                let obj ={
                    name:d[0].split("=")[1],
                    value:d[1].split("=")[1]
                }
                a.push(obj)
        for (let j = 0; j < courseData.length; j++) {
            var d = courseData[j].replace("{", "").replace("}", "").split(",");
            if (d.length < 2) {
                continue;
            }
            let obj = {
                name: d[0].split("=")[1],
                value: d[1].split("=")[1]
            };
            a.push(obj);
        }
        var chartDom = document.getElementById('cookieBooking');
        var myChart = echarts.init(chartDom);