package dto import ( "case-admin-api/api/model" "fmt" ) // CaseDto 病历表 type CaseDto struct { CaseId string `json:"case_id"` // 主键id ProjectId string `json:"project_id"` // 所属项目id CaseStatus int `json:"case_status"` // 病例状态(1:正常 2:禁用) CaseName string `json:"case_name"` // 病例名称 CaseAuthor string `json:"case_author"` // 病例作者 SingleCaseScore int `json:"single_case_score"` // 单个病例总积分 IssuedScore int `json:"issued_score"` // 已发放积分 RemainingScore int `json:"remaining_score"` // 剩余积分 JoinNum int `json:"join_num"` // 多平台参加总人数 JoinWhiteNum int `json:"join_white_num"` // 多平台白名单参加总人数 PlatformJoinNum int `json:"platform_join_num"` // 肝胆相照平台参加总人数 PlatformJoinWhiteNum int `json:"platform_join_white_num"` // 肝胆相照白名单参加总人数 MessageNum int `json:"message_num"` // 多平台留言人数 CreatedAt model.LocalTime `json:"created_at"` // 创建时间 UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间 CaseItem []*CaseItemDto `json:"case_item"` // 病例明细 } // GetCaseListDto 列表 func GetCaseListDto(m []*model.Case) []*CaseDto { // 处理返回值 responses := make([]*CaseDto, len(m)) if len(m) > 0 { for i, v := range m { response := &CaseDto{ CaseId: fmt.Sprintf("%d", v.CaseId), ProjectId: fmt.Sprintf("%d", v.ProjectId), CaseStatus: v.CaseStatus, CaseName: v.CaseName, CaseAuthor: v.CaseAuthor, IssuedScore: v.IssuedScore, JoinNum: v.JoinNum, JoinWhiteNum: v.JoinWhiteNum, MessageNum: v.MessageNum, CreatedAt: v.CreatedAt, UpdatedAt: v.UpdatedAt, } // 将转换后的结构体添加到新切片中 responses[i] = response } } return responses } // GetCaseDto 详情 func GetCaseDto(m *model.Case) *CaseDto { return &CaseDto{ CaseId: fmt.Sprintf("%d", m.CaseId), ProjectId: fmt.Sprintf("%d", m.ProjectId), CaseStatus: m.CaseStatus, CaseName: m.CaseName, CaseAuthor: m.CaseAuthor, IssuedScore: m.IssuedScore, JoinNum: m.JoinNum, JoinWhiteNum: m.JoinWhiteNum, MessageNum: m.MessageNum, CreatedAt: m.CreatedAt, UpdatedAt: m.UpdatedAt, } } // LoadCaseItem 加载数据-病例明细 func (r *CaseDto) LoadCaseItem(m []*model.CaseItem) *CaseDto { if len(m) > 0 { r.CaseItem = GetCaseItemListDto(m) } return r } // LoadSingleCaseScore 加载数据-单个病例总积分 func (r *CaseDto) LoadSingleCaseScore(m *model.ProjectPlatform) *CaseDto { if m != nil { r.SingleCaseScore = m.SingleCaseScore } return r } // LoadIssuedScore 加载数据-已发放积分 func (r *CaseDto) LoadIssuedScore(m *model.CasePlatform) *CaseDto { if m != nil { r.IssuedScore = m.IssuedScore } return r } // LoadRemainingScore 加载数据-剩余积分 func (r *CaseDto) LoadRemainingScore(m int) *CaseDto { r.RemainingScore = m return r } // LoadPlatformJoinNum 加载数据-参与人数-肝胆相照平台 func (r *CaseDto) LoadPlatformJoinNum(m *model.CasePlatform) *CaseDto { if m != nil { r.PlatformJoinNum = m.JoinNum } return r } // LoadPlatformJoinWhiteNum 加载数据-白名单参与人数-肝胆相照平台 func (r *CaseDto) LoadPlatformJoinWhiteNum(m *model.CasePlatform) *CaseDto { if m != nil { r.PlatformJoinWhiteNum = m.JoinWhiteNum } return r } // LoadJoinNum 加载数据-参与人数-全平台 func (r *CaseDto) LoadJoinNum(m *model.Case) *CaseDto { if m != nil { r.JoinNum = m.JoinNum } return r } // LoadJoinWhiteNum 加载数据-白名单参与人数-全平台 func (r *CaseDto) LoadJoinWhiteNum(m *model.Case) *CaseDto { if m != nil { r.JoinWhiteNum = m.JoinWhiteNum } return r }