最近做了一个海外打单系统,很多页面都涉及到导入导出功能。因为导入导出操作对于后端系统来说,算作一个非常通用的功能。所以做完就想总结一下,后续可以直接拿来套用。
导入流程简单来说涵盖以下四个步骤:
根据业务场景,需先定义一份导入模板。导入模板类型包括单sheet形式导入和多sheet形式导入。
1.单sheet形式导入:单sheet形式是最常见的导入模板,一般需要对导入的字段进行说明。一般包括:
①必填项:是否必填。
②字段格式:文本框或者下拉框选项。
③字段规范:例如仅允许输入阿拉伯数字、最多允许多少个字符、输入多项时用英文分号“;”分开。
④字段间的业务逻辑关系或者导入字段对业务影响:例如子订单号隶属在主订单下、开始时间不能大于结束时间、最低收费不能大于最高收费。之前做过一个批量核销虚拟商品的需求,针对子订单是赠品的时候,赠品不能先优于主订单核销。
下图截取了某竞品的商品导入模板,除了对各字段的详细解释,还进行了示例和规则说明。
2.多sheet形式导入:多sheet导入的场景一般较少,除了要满足单sheet导入时的字段规范外,还需考虑各sheet栏之间的逻辑关系。例如这次打单系统需针对不同承运商偏远邮编地址进行维护,偏远邮编类型包括偏远邮编、超偏远邮编、极偏远邮编、Alaska邮编、Hawaii邮编。导入时不同偏远类型下存在了同一条邮编,这时就需要考虑怎么处理。
根据模板规范填写好数据后,就可以上传文件了。
上传文件后,需要的对文件进行解析。不满足文件格式要求需报错提示。
①文件格式解析,例如仅支持上传格式为.xls和.xlsx的excel文件。
②文件大小解析,例如限制大小为20M的文件。
③文件数据量解析,例如限制数据上限为 50000行、500 列。
④文件模板表头/sheet栏解析,文件的表头和sheet名被修改,系统解析错误。
⑤文件无法解析,例如有些文件加密或者文件损坏,系统无法解析。
文件格式解析无误后,接着需对各字段信息判断是否满足模板定义的字段规范和业务逻辑。此时就需要考虑“全部成功”或者“部分成功”的逻辑。例如导入100条数据中,有1条数据导入错误怎么处理?是整个文件导入失败还是部分成功呢。站在用户角度,“部分成功”体验会好很多,同时支持下载查看导入失败的数据。
满足上述要求后,整个文件数据可以入库了。
针对业务需要溯源的场景,每一次导入都需要存储一份导入日志。包括操作人、操作时间以及导入内容,这样在后续需要追溯的时候就能快速追根溯源。
另外除了上述导入流程细节外,还要考虑是否是全量导入、同步导入或者异步导入、导入模板表头是按照表头名称还是表头坐标来匹配。
本文由 @装甜妹好难 原创发布于人人都是产品经理。未经作者许可,禁止转载
题图来自Unsplash,基于CC0协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务