需求
人事管理系统里设置了一堆员工需要上传的资料清单。当然,包含必须上传的和非必须上传的。
- 必须上传的,包括毕业证,学位证等
- 非必须上传的,包括各种资格证书,离职证明等
在编辑员工信息时,会拉取这个清单,显示在界面上。HR 或者员工可以选择上传对应的文件。
接口设计
原有的资料清单接口不做变化,保留,用于资料清单的后台增删改查编辑之用。
需要新增一个资料清单列表接口,可以提交员工 ID,在拉取资料清单的同时,返回:
- 该员工已经上传了哪些资料
- 上传时间
- 上传人 (有可能不是员工自己上传的,而是 HR 或其他管理员上传的)
再就是需要:
- 上传资料接口。即上传指定员工的某个类型的资料。传递员工 id 和资料类型 ID
- 删除资料接口。
其实本质上就是一个复杂一点点的 CRUD 接口集。
Model 设计
type StaffDocument struct {
ID uint
CreatedAt time.Time
UpdatedAt time.Time
StaffId uint // 员工 ID。上传文档关联的员工
DocumentId uint // 资料 ID。关联的资料配置表
CreatorId uint // 创建者 ID
Files string // 上传的文件 key, 多个逗号分隔。使用七牛云私有空间存储
}
其他
各种嵌套的 api 返回数据结构,不必纠结于现有的 Model 结构,可以根据需要,设计新的返回数据结构。 也方便进行联表操作。否则嵌套过多,会导致返回数据内容过长,影响性能。
TODO
- ✅ 梳理需求
- ✅ 模块英文名: StaffDocument
- ✅ CRUD
- ✅ 设计字段
- ✅ 完善 swagger 文档
- ✅ swagger 测试
- ✅ 线上建表
继续阅读
关于作者 🌱
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式