项目思路源于跨境交易场景中的国际收支申报,无论是直接申报还是间接申报都需要客户提供证明交易真实性的文件。以跨境电商场景为例,收款平台会让客户上传对应的电商平台订单信息,以证明交易的真实性,并将订单数据保存作为后续用户提现申报时使用。
收款平台需要提供平台订单上传入口来实现这个功能,需要对接多平台,例如:GooglePlay、GoogleAdmob、Lazada、Shopee、Gmarket、11街等平台的订单文件,为了方便用户会支持客户从平台导出后台订单文件,直接上传到收款平台进行数据解析和校验。这里就需要支持多平台、多模版、多语言的Excel文件解析和校验功能。
为了减少硬编码、重复代码,并且支持快速接入,将核心功能进行抽象封装,通过配置化、插件化、批量化解决复杂业务场景下Excel上传解析问题。
其他使用场景欢迎来探索和补充
auto-excel
├── auto-excel-springboot-starter # springboot自动配置模块
├── core # 核心模块
├── plugins # 插件模块
├── inputs # 输入模块
├── outputs # 输出模块
领域模块 | 职责 | 边界约束 |
---|---|---|
输入适配层 | 对接 Excel/流等输入源,转换为统一数据模型(如 InputContext ) |
不感知业务逻辑,仅负责数据读取和初步格式校验 |
核心处理层 | 解析 Excel、字段映射、数据校验、类型转换、异常捕获、上下文传递 | 无状态设计,依赖配置模块,通过事件通知错误处理层 |
输出适配层 | 将处理后的数据写入 MySQL/JSON/Map/Excel 等目标 | 实现统一输出接口,支持动态注册,不耦合具体存储技术 |
配置管理模块 | 管理字段映射规则、校验规则、类型转换器、模板配置 | 对接配置中心,支持热更新 |
错误处理层 | 收集错误数据、生成错误报告(含错误行快照)、异常分类处理 | 异步处理错误,提供多种报告格式(Excel/Log/DB),与核心层通过事件通信 |
插件模块 | 定义 SPI 接口(InputSourceProvider , OutputTarget , Validator 等) |
严格接口契约,提供 Base 抽象类降低实现成本 |