Files
ledgerly/src/main/java/com/example/finance/service/BillImportService.java
T
rosercode 1df6e23510 feat: 账单导入、统计维度扩展与收支记录增强
- 账单导入:新增支付宝账单解析/导入接口,按 external_no 去重;前端拖拽上传 + 预览确认弹窗
- 分类可选:category_id 允许为空,支持「未分类」筛选,新增按类型一键批量设置分类
- 备注隐藏:新增 remark_hidden 与切换接口,列表默认显示 ****** 并可单格查看/取消隐藏,导出同步隐藏
- 统计扩展:新增 /statistics/summary、/statistics/group,支持日/周/月/季/年/支付方式/分类/类型维度与时间范围过滤
- 收支记录:金额区间过滤、金额/交易时间列排序、分页快速跳转、本页收支结余汇总、交易时间列前置并合并创建时间提示
- 用户偏好:统计面板与列表的筛选条件持久化到 localStorage,进入自动还原
- 其他:新增默认分类种子脚本(含美容美发)、commons-csv 依赖、上传大小限制 10MB、Vite 监听 0.0.0.0
2026-09-17 13:19:59 +08:00

37 lines
1.1 KiB
Java

package com.example.finance.service;
import com.example.finance.dto.BillImportRequest;
import com.example.finance.enums.BillType;
import com.example.finance.vo.BillImportResultVO;
import com.example.finance.vo.BillParseResultVO;
import java.io.IOException;
/**
* 账单导入服务,负责「先解析、后导入」两阶段的业务逻辑。
*
* @date 2026-09-17 09:50:10
*/
public interface BillImportService {
/**
* 解析账单文件,返回预览数据(不落库),并标记与系统已有记录重复的行。
*
* @param userId 当前用户ID
* @param billType 账单类型
* @param content 账单文件字节内容
* @return 解析结果
* @throws IOException 文件解析失败
*/
BillParseResultVO parse(Long userId, BillType billType, byte[] content) throws IOException;
/**
* 导入用户勾选的账单行,按外部交易号去重并写入交易记录。
*
* @param userId 当前用户ID
* @param request 导入请求
* @return 导入结果统计
*/
BillImportResultVO confirm(Long userId, BillImportRequest request);
}