package dto import ( "case-admin-api/api/model" "case-admin-api/utils" "fmt" ) // CaseCommentDto 病历表-评论 type CaseCommentDto struct { CommentId string `json:"comment_id"` // 主键id CaseId string `json:"case_id"` // 所属病例id PlatformId string `json:"platform_id"` // 来源平台id ParentId string `json:"parent_id,omitempty"` // 父级id,一级评论为null RootId string `json:"root_id,omitempty"` // 根评论id,一级评论时为null。其余为一级评论id Level int `json:"level"` // 级别(1:留言 2:回复 3:评论) UserId string `json:"user_id"` // 用户id Status int `json:"status"` // 评论状态(0:禁用 1:正常) IsSensitive int `json:"is_sensitive"` // 是否存在敏感词(0:否 1:是) IsHighQuality int `json:"is_high_quality"` // 是否优质留言(0:否 1:是) IsGrantHighQuality int `json:"is_grant_high_quality"` // 优质留言积分是否已发放(0:否 1:是) LikeNum int `json:"like_num"` // 点赞数量 Content string `json:"content"` // 评论内容 ContentWord string `json:"content_word"` // 评论内容(原版) CreatedAt model.LocalTime `json:"created_at"` // 创建时间 UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间 Area string `json:"area"` // 省份 HospitalName string `json:"hospital_name"` // 医院 DepartmentName string `json:"department_name"` // 科室 Title string `json:"title"` // 职称 UserName string `json:"user_name"` // 用户名称 } // GetCaseCommentListDto 列表 func GetCaseCommentListDto(m []*model.CaseComment) []*CaseCommentDto { // 处理返回值 responses := make([]*CaseCommentDto, len(m)) if len(m) > 0 { for i, v := range m { response := &CaseCommentDto{ CommentId: fmt.Sprintf("%d", v.CommentId), CaseId: fmt.Sprintf("%d", v.CaseId), PlatformId: fmt.Sprintf("%d", v.PlatformId), Level: v.Level, UserId: fmt.Sprintf("%d", v.UserId), Status: v.Status, IsSensitive: v.IsSensitive, IsHighQuality: v.IsHighQuality, IsGrantHighQuality: v.IsGrantHighQuality, LikeNum: v.LikeNum, Content: v.Content, ContentWord: v.ContentWord, CreatedAt: v.CreatedAt, UpdatedAt: v.UpdatedAt, } if v.ParentId != 0 { response.ParentId = fmt.Sprintf("%d", v.ParentId) } if v.RootId != 0 { response.RootId = fmt.Sprintf("%d", v.RootId) } // 加载数据-用户名称 if v.User != nil { // 加载数据-科室 response = response.LoadDepartmentName(v.User) // 加载数据-职称 response = response.LoadTitle(v.User) // 加载数据-用户名称 response = response.LoadUserName(v.User) // 加载数据-省份 if v.User.Hospital != nil { response = response.LoadArea(v.User.Hospital) response = response.LoadHospitalName(v.User.Hospital) } } // 将转换后的结构体添加到新切片中 responses[i] = response } } return responses } // LoadArea 加载数据-省份 func (r *CaseCommentDto) LoadArea(m *model.BasicHospital) *CaseCommentDto { if m != nil { r.Area = m.Province } return r } // LoadDepartmentName 加载数据-科室 func (r *CaseCommentDto) LoadDepartmentName(m *model.User) *CaseCommentDto { if m != nil { r.DepartmentName = m.DepartmentName } return r } // LoadTitle 加载数据-职称 func (r *CaseCommentDto) LoadTitle(m *model.User) *CaseCommentDto { if m != nil { r.Title = utils.DoctorTitleToString(m.Title) } return r } // LoadUserName 加载数据-用户名称 func (r *CaseCommentDto) LoadUserName(m *model.User) *CaseCommentDto { if m != nil { r.UserName = m.UserName } return r } // LoadHospitalName 加载数据-医院名称 func (r *CaseCommentDto) LoadHospitalName(m *model.BasicHospital) *CaseCommentDto { if m != nil { r.HospitalName = m.HospitalName } return r }