s_organization.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package schema
  2. import "time"
  3. // Organization Organization对象
  4. type Organization struct {
  5. RecordID string `json:"record_id"` //记录id
  6. Name string `json:"name" binding:"required"` // 组织名称
  7. ChartNum int `json:"chart_num" binding:"required"` // 对话轮次/日
  8. Used int `json:"used"` // 已使用轮次
  9. Unused int `json:"unused"` // 剩余轮次
  10. Sequence int `json:"sequence"` // 排序
  11. CreatedAt time.Time `json:"created_at"` // 创建时间
  12. CreatorId string `json:"creator_id"` // 创建者Id
  13. CreatorName string `json:"creator_name"` // 创建者
  14. Dataset Datasets `json:"dataset"` // 知识库列表
  15. }
  16. // OrganizationQueryParam 查询条件
  17. type OrganizationQueryParam struct {
  18. RecordIds []string
  19. LikeName string
  20. }
  21. // OrganizationQueryOptions Organization对象查询可选参数项
  22. type OrganizationQueryOptions struct {
  23. PageParam *PaginationParam // 分页参数
  24. }
  25. type Organizations []*Organization
  26. // OrganizationQueryResult Organization对象查询结果
  27. type OrganizationQueryResult struct {
  28. Data Organizations
  29. PageResult *PaginationResult
  30. }
  31. func (a Organizations) ToUserIds() []string {
  32. uniqueMap := make(map[string]struct{})
  33. for _, v := range a {
  34. uniqueMap[v.CreatorId] = struct{}{}
  35. }
  36. // 将去重后的map转换为切片返回
  37. userIds := make([]string, 0, len(uniqueMap))
  38. for id := range uniqueMap {
  39. userIds = append(userIds, id)
  40. }
  41. return userIds
  42. }
  43. // FillCreator 填充创建者信息
  44. func (a Organizations) FillCreator(users Users) {
  45. for _, o := range a {
  46. for _, u := range users {
  47. if o.CreatorId == u.RecordID {
  48. o.CreatorName = u.RealName
  49. continue
  50. }
  51. }
  52. }
  53. }