人事管理系统开发之二,员工资料上传

文章目录

    需求

    人事管理系统里设置了一堆员工需要上传的资料清单。当然,包含必须上传的和非必须上传的。

    • 必须上传的,包括毕业证,学位证等
    • 非必须上传的,包括各种资格证书,离职证明等

    在编辑员工信息时,会拉取这个清单,显示在界面上。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 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式