s_chat_session.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package schema
  2. import "time"
  3. // ChatSession ChatSession对象
  4. type ChatSession struct {
  5. RecordID string `json:"record_id"` // 记录id
  6. Name string `json:"name"` // 名称
  7. AssistantId string `json:"assistant_id"` // 助手id
  8. RagChatId string `json:"rag_chat_id"` // rag_chat_id
  9. RagSessionId string `json:"rag_session_id"` // rag_session_id
  10. Source int `json:"source"` // 来源 1 h5 2 钉钉机器人
  11. CreatedAt time.Time `json:"created_at"` // 创建时间
  12. CreatorId string `json:"creator_id"` // 创建人id
  13. CreatorName string `json:"creator_name"` // 创建人名称
  14. Messages ChatMessages `json:"messages"` // 聊天记录
  15. }
  16. // ChatSessionQueryParam 查询条件
  17. type ChatSessionQueryParam struct {
  18. AssistantId string
  19. RecordIDs []string
  20. UserId string
  21. Source int
  22. }
  23. // ChatSessionQueryOptions ChatSession对象查询可选参数项
  24. type ChatSessionQueryOptions struct {
  25. PageParam *PaginationParam // 分页参数
  26. }
  27. type ChatSessions []*ChatSession
  28. // ChatSessionQueryResult ChatSession对象查询结果
  29. type ChatSessionQueryResult struct {
  30. Data ChatSessions
  31. PageResult *PaginationResult
  32. }
  33. // FillCreator 填充创建者信息
  34. func (a ChatSessions) FillCreator(users Users) {
  35. for _, v := range a {
  36. for _, u := range users {
  37. if v.CreatorId == u.RecordID {
  38. v.CreatorName = u.RealName
  39. continue
  40. }
  41. }
  42. }
  43. }
  44. // FillMessages 填充聊天记录
  45. func (a ChatSessions) FillMessages(Messages ChatMessages) {
  46. for _, v := range a {
  47. for _, m := range Messages {
  48. if v.RecordID == m.SessionId {
  49. v.Messages = append(v.Messages, m)
  50. continue
  51. }
  52. }
  53. }
  54. }