通过excel控制白名单
我有一个接口现在需要实现以下的需求,我有一个产品列表,需要通过excel文件实现指定客户可以查看还是所有客户可以查看,现在默认是所有客户都可以查看。允许用户上传文件,在用户上传完文件之后就对excel的文件的格式进行校验,文件第一列手机号码,第二列账户id。如果有问题需要报错提示文件格式错误供前端使用,如果没问题就把文件数据拿出来存到数据库里面去,供文件列表接口使用判断某个用户能看到哪些产品列表;还需要把文件存到oss里面去,方便客户下载文件重新上传。项目语言为go语言。我希望使用关联表方案
我来帮你设计这个功能的实现方案。我们可以按以下步骤来实现:
- 首先定义必要的数据结构:
1 |
|
- 实现文件上传和处理的 handler:
1 |
|
- 实现 Excel 文件读取和验证:
1 |
|
- 实现产品列表接口:
1 |
|
- 实现文件下载接口:
1 |
|
这个方案的主要特点:
- 使用关联表 ProductUserMapping 存储产品访问权限
- 支持通过手机号或账户 ID 进行权限控制
- 保存上传的文件到 OSS,并记录文件信息
- 使用事务确保数据一致性
- 提供完整的文件格式验证
- 支持文件下载功能
你需要注意以下几点:
需要安装必要的依赖:
1
2
3go get github.com/xuri/excelize/v2
go get gorm.io/gorm
go get github.com/gin-gonic/gin需要配置 OSS 客户端
需要配置数据库连接
可能需要添加更多的错误处理和日志记录
可以添加更多的文件格式验证规则
可以添加并发处理来提高性能
你觉得这个方案怎么样?如果有任何需要调整或补充的地方,请告诉我。
通过excel控制白名单