table_file.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. package models
  2. import (
  3. "passport/client/mysql"
  4. "passport/pkg/ierr"
  5. )
  6. type File struct {
  7. Url string `json:"url" gorm:"url;type:varchar(512);NOT NULL"` // URL地址
  8. Name string `json:"name" gorm:"name;type:varchar(128);NOT NULL"` // 文件名
  9. Path string `json:"path" gorm:"path;type:varchar(128);NOT NULL"` // 存储的路径
  10. Size int64 `json:"size" gorm:"size;NOT NULL"` // 文件大小
  11. Ext string `json:"ext" gorm:"ext;type:varchar(16);NOT NULL"` // 文件后缀
  12. UserId string `json:"user_id" gorm:"user_id;type:varchar(20);NOT NULL;index:idx_user_id"` // 上传的用户id
  13. CommonField
  14. }
  15. func (f *File) TableName() string {
  16. return "file"
  17. }
  18. func (f *File) Save() error {
  19. if f.Name == "" {
  20. return ierr.NewIError(ierr.InvalidFilename, "invalid file name")
  21. }
  22. if f.UserId == "" {
  23. return ierr.NewIError(ierr.InvalidUserId, "invalid user id")
  24. }
  25. var err = mysql.Client.Master().Save(f).Error
  26. if err != nil {
  27. return ierr.NewIError(ierr.CreateDataFail, err.Error())
  28. }
  29. return nil
  30. }