40 lines
1.3 KiB
Go
40 lines
1.3 KiB
Go
// 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
|
||
Output string // 脚本输出信息
|
||
}
|
||
|
||
// ConvertResult 格式转换结果
|
||
type ConvertResult struct {
|
||
OutputPath string // 转换后的文件路径
|
||
BillType string // 检测到的账单类型: alipay/wechat
|
||
}
|
||
|
||
// 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)
|
||
}
|