mysqlmodel.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. // 数据操作底层模型
  2. // 秒寻科技
  3. // zt 2024-01-04
  4. package mysqlmodel
  5. import (
  6. "time"
  7. )
  8. // BaseModel 数据库模型的基础结构体(用于返回响应数据时的简单模型)
  9. type BaseModel struct {
  10. ID int `json:"id"` //记录ID
  11. OwnerID int `json:"owner_id,omitempty"`
  12. }
  13. // BaseModelDB 数据库模型的基础结构体
  14. type BaseModelDB struct {
  15. CompanyID int `json:"company_id" gorm:"size:32;index"` //公司ID
  16. ProjectID int `json:"project_id" gorm:"default:0"` //项目ID(项目编号由由后台维护,前端可读不可写)
  17. ID int `json:"id" gorm:"primary_key"` //记录的ID
  18. CreatedAt time.Time `json:"created_at,omitempty"` //记录的创建时间
  19. UpdatedAt time.Time `json:"updated_at"` //记录的更新时间
  20. Status uint8 `json:"status" gorm:"default:1"` //记录的状态
  21. IsActive uint8 `json:"is_active" gorm:"default:1"` //是否是有效记录,0:无效数据(已删除的数据标记为无效数据) 1:有效数据
  22. OwnerID int `json:"owner_id"` //记录的所属者
  23. SourceID int8 `json:"source_id" gorm:"-"` //数据来源,1:管理端,2:移动端,3:GUI网管
  24. }
  25. // query参数
  26. type QueryParam struct {
  27. Key string `json:"key"`
  28. Opt string `json:"opt"`
  29. Data interface{} `json:"data"`
  30. }
  31. // 查询参数
  32. type ListParam struct {
  33. CompanyID int `json:"company_id"` //公司ID
  34. ProjectID int `json:"project_id"` //项目ID(项目编号由由后台维护,前端可读不可写)
  35. OwnerID int `json:"user_id"` //用户ID
  36. Search map[string]interface{} `json:"search"`
  37. Query []QueryParam `json:"query"`
  38. OrderBy string `json:"order_by"` //排序
  39. }
  40. // 查询分页参数
  41. type PageListParam struct {
  42. CompanyID int `json:"company_id" form:"company_id"` //公司ID
  43. //ProjectID string `json:"project_id"` //项目ID(项目编号由由后台维护,前端可读不可写)
  44. ProjectID int `json:"project_id"` //项目ID(项目编号由由后台维护,前端可读不可写)
  45. OwnerID int `json:"user_id" form:"user_id"` //用户ID
  46. PageNum int `json:"page_num" form:"page_num"` //页码
  47. PageSize int `json:"page_size" form:"page_size"` //每页记录数
  48. Search map[string]interface{} `json:"search" form:"search"`
  49. Query []QueryParam `json:"query" form:"query"`
  50. OrderBy string `json:"order_by" form:"order_by"` //获得分页数据时的SQL排序字段,默认为id
  51. }
  52. // PageListData 分页列表数据结构
  53. type PageListData struct {
  54. PageNum int `json:"page_num"` //分页数据的页码
  55. PageSize int `json:"page_size"` //每页的记录条数
  56. TotalCount int `json:"total_count"` //数据总条数
  57. Items interface{} `json:"items"` //当前页的列表数据
  58. }