// Package adapter 定义与外部系统交互的抽象接口 // 这样可以方便后续更换通信方式(如从子进程调用改为 HTTP/gRPC/消息队列等) package adapter // CleanOptions 清洗选项 type CleanOptions struct { Year string // 年份筛选 Month string // 月份筛选 Start string // 起始日期 End string // 结束日期 Format string // 输出格式: csv/json } // CleanResult 清洗结果 type CleanResult struct { BillType string // 检测到的账单类型: alipay/wechat/jd Output string // 脚本输出信息 } // ConvertResult 格式转换结果 type ConvertResult struct { OutputPath string // 转换后的文件路径 BillType string // 检测到的账单类型: alipay/wechat/jd } // Cleaner 账单清洗器接口 // 负责将原始账单数据清洗为标准格式 type Cleaner interface { // Clean 执行账单清洗 // inputPath: 输入文件路径 // outputPath: 输出文件路径 // opts: 清洗选项 Clean(inputPath, outputPath string, opts *CleanOptions) (*CleanResult, error) // Convert 转换账单文件格式(xlsx -> csv,处理 GBK 编码等) // inputPath: 输入文件路径 // 返回: 转换后的文件路径, 检测到的账单类型, 错误 Convert(inputPath string) (outputPath string, billType string, err error) }