Files
EmailBill/Web/src/api/statistics.js
SunCheng d052ae5197 fix
2026-02-10 17:49:19 +08:00

210 lines
6.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import request from './request'
/**
* 统计相关 API
* 注:统计接口定义在 TransactionStatisticsController 中
*/
// ===== 新统一接口(推荐使用) =====
/**
* 按日期范围获取每日统计(新统一接口)
* @param {Object} params - 查询参数
* @param {string} params.startDate - 开始日期(包含)格式: YYYY-MM-DD
* @param {string} params.endDate - 结束日期(不包含)格式: YYYY-MM-DD
* @param {string} [params.savingClassify] - 储蓄分类(可选,不传则使用系统配置)
* @returns {Promise<{success: boolean, data: Array}>}
* @returns {Array} data - 每日统计列表
* @returns {number} data[].day - 日期(天)
* @returns {number} data[].count - 交易笔数
* @returns {number} data[].expense - 支出金额
* @returns {number} data[].income - 收入金额
* @returns {number} data[].saving - 储蓄金额
*/
export const getDailyStatisticsByRange = (params) => {
return request({
url: '/TransactionStatistics/GetDailyStatisticsByRange',
method: 'get',
params
})
}
/**
* 按日期范围获取汇总统计(新统一接口)
* @param {Object} params - 查询参数
* @param {string} params.startDate - 开始日期(包含)格式: YYYY-MM-DD
* @param {string} params.endDate - 结束日期(不包含)格式: YYYY-MM-DD
* @returns {Promise<{success: boolean, data: Object}>}
* @returns {Object} data.totalExpense - 总支出
* @returns {Object} data.totalIncome - 总收入
* @returns {Object} data.balance - 结余
* @returns {Object} data.expenseCount - 支出笔数
* @returns {Object} data.incomeCount - 收入笔数
* @returns {Object} data.totalCount - 总笔数
*/
export const getSummaryByRange = (params) => {
return request({
url: '/TransactionStatistics/GetSummaryByRange',
method: 'get',
params
})
}
/**
* 按日期范围获取分类统计(新统一接口)
* @param {Object} params - 查询参数
* @param {string} params.startDate - 开始日期(包含)格式: YYYY-MM-DD
* @param {string} params.endDate - 结束日期(不包含)格式: YYYY-MM-DD
* @param {number} params.type - 交易类型 (0:支出, 1:收入, 2:不计入收支)
* @returns {Promise<{success: boolean, data: Array}>}
* @returns {Array} data - 分类统计列表
* @returns {string} data[].classify - 分类名称
* @returns {number} data[].amount - 金额
* @returns {number} data[].percent - 百分比
* @returns {number} data[].count - 交易笔数
*/
export const getCategoryStatisticsByRange = (params) => {
return request({
url: '/TransactionStatistics/GetCategoryStatisticsByRange',
method: 'get',
params
})
}
/**
* 获取趋势统计数据
* @param {Object} params - 查询参数
* @param {number} params.startYear - 开始年份
* @param {number} params.startMonth - 开始月份
* @param {number} [params.monthCount=6] - 月份数量默认6个月
* @returns {Promise<{success: boolean, data: Array}>}
* @returns {Array} data - 趋势统计列表
* @returns {number} data[].year - 年份
* @returns {number} data[].month - 月份
* @returns {number} data[].expense - 支出金额
* @returns {number} data[].income - 收入金额
*/
export const getTrendStatistics = (params) => {
return request({
url: '/TransactionStatistics/GetTrendStatistics',
method: 'get',
params
})
}
// ===== 旧接口(保留用于向后兼容,建议迁移到新接口) =====
/**
* 获取月度统计数据
* @deprecated 请使用 getSummaryByRange
* @param {Object} params - 查询参数
* @param {number} params.year - 年份
* @param {number} params.month - 月份
* @returns {Promise<{success: boolean, data: Object}>}
*/
export const getMonthlyStatistics = (params) => {
return request({
url: '/TransactionStatistics/GetMonthlyStatistics',
method: 'get',
params
})
}
/**
* 获取分类统计数据
* @deprecated 请使用 getCategoryStatisticsByRange
* @param {Object} params - 查询参数
* @param {number} params.year - 年份
* @param {number} params.month - 月份
* @param {number} params.type - 交易类型 (0:支出, 1:收入, 2:不计入收支)
* @returns {Promise<{success: boolean, data: Array}>}
*/
export const getCategoryStatistics = (params) => {
return request({
url: '/TransactionStatistics/GetCategoryStatistics',
method: 'get',
params
})
}
/**
* 按日期范围获取分类统计数据
* @deprecated 请使用 getCategoryStatisticsByRangeDateTime 参数版本)
* @param {Object} params - 查询参数
* @param {string} params.startDate - 开始日期 (格式: YYYY-MM-DD)
* @param {string} params.endDate - 结束日期 (格式: YYYY-MM-DD)
* @param {number} params.type - 交易类型 (0:支出, 1:收入, 2:不计入收支)
* @returns {Promise<{success: boolean, data: Array}>}
*/
export const getCategoryStatisticsByDateRange = (params) => {
return request({
url: '/TransactionStatistics/GetCategoryStatisticsByDateRange',
method: 'get',
params
})
}
/**
* 获取指定月份每天的消费统计
* @deprecated 请使用 getDailyStatisticsByRange
* @param {Object} params - 查询参数
* @param {number} params.year - 年份
* @param {number} params.month - 月份
* @returns {Promise<{success: boolean, data: Array}>}
*/
export const getDailyStatistics = (params) => {
return request({
url: '/TransactionStatistics/GetDailyStatistics',
method: 'get',
params
})
}
/**
* 获取累积余额统计数据(用于余额卡片)
* @deprecated 请使用 getDailyStatisticsByRange 并在前端计算累积余额
* @param {Object} params - 查询参数
* @param {number} params.year - 年份
* @param {number} params.month - 月份
* @returns {Promise<{success: boolean, data: Array}>}
*/
export const getBalanceStatistics = (params) => {
return request({
url: '/TransactionStatistics/GetBalanceStatistics',
method: 'get',
params
})
}
/**
* 获取指定周范围的每天的消费统计
* @deprecated 请使用 getDailyStatisticsByRange
* @param {Object} params - 查询参数
* @param {string} params.startDate - 开始日期 (yyyy-MM-dd)
* @param {string} params.endDate - 结束日期 (yyyy-MM-dd)
* @returns {Promise<{success: boolean, data: Array}>}
*/
export const getWeeklyStatistics = (params) => {
return request({
url: '/TransactionStatistics/GetWeeklyStatistics',
method: 'get',
params
})
}
/**
* 获取指定日期范围的统计汇总数据
* @deprecated 请使用 getSummaryByRange
* @param {Object} params - 查询参数
* @param {string} params.startDate - 开始日期 (yyyy-MM-dd)
* @param {string} params.endDate - 结束日期 (yyyy-MM-dd)
* @returns {Promise<{success: boolean, data: Object}>}
*/
export const getRangeStatistics = (params) => {
return request({
url: '/TransactionStatistics/GetRangeStatistics',
method: 'get',
params
})
}