package dto import ( "case-api/api/model" "fmt" ) // CaseItemQuestionDto 病历表-明细-题目 type CaseItemQuestionDto struct { QuestionId string `json:"question_id"` // 主键id CaseItemId string `json:"case_item_id"` // 病例明细id QuestionName string `json:"question_name"` // 题目名称 QuestionType int `json:"question_type"` // 题目类型(1:单选 2:多选 3:问答 4:判断) QuestionAnswer string `json:"question_answer"` // 答案 IsRightNext int `json:"is_right_next"` // 是否答对后允许下一步(0:否 1:是) ErrorTips string `json:"error_tips"` // 答错提示 CreatedAt model.LocalTime `json:"created_at"` // 创建时间 UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间 CaseItemQuestionOption []*CaseItemQuestionOptionDto `json:"case_item_question_option"` // 题目选项列表 } // GetCaseItemQuestionListDto 列表 func GetCaseItemQuestionListDto(m []*model.CaseItemQuestion) []*CaseItemQuestionDto { // 处理返回值 responses := make([]*CaseItemQuestionDto, len(m)) if len(m) > 0 { for i, v := range m { response := &CaseItemQuestionDto{ QuestionId: fmt.Sprintf("%d", v.QuestionId), CaseItemId: fmt.Sprintf("%d", v.CaseItemId), QuestionName: v.QuestionName, QuestionType: v.QuestionType, QuestionAnswer: v.QuestionAnswer, IsRightNext: v.IsRightNext, ErrorTips: v.ErrorTips, CreatedAt: v.CreatedAt, UpdatedAt: v.UpdatedAt, } // 加载数据-病例明细-题目-选项 if len(v.CaseItemQuestionOption) > 0 { response = response.LoadCaseItemQuestionOption(v.CaseItemQuestionOption) } // 将转换后的结构体添加到新切片中 responses[i] = response } } return responses } // GetCaseItemQuestionDto 详情 func GetCaseItemQuestionDto(m *model.CaseItemQuestion) *CaseItemQuestionDto { return &CaseItemQuestionDto{ QuestionId: fmt.Sprintf("%d", m.QuestionId), CaseItemId: fmt.Sprintf("%d", m.CaseItemId), QuestionName: m.QuestionName, QuestionType: m.QuestionType, QuestionAnswer: m.QuestionAnswer, IsRightNext: m.IsRightNext, ErrorTips: m.ErrorTips, CreatedAt: m.CreatedAt, UpdatedAt: m.UpdatedAt, } } // LoadCaseItemQuestionOption 加载数据-病例明细-题目-选项 func (r *CaseItemQuestionDto) LoadCaseItemQuestionOption(m []*model.CaseItemQuestionOption) *CaseItemQuestionDto { if len(m) > 0 { r.CaseItemQuestionOption = GetCaseItemQuestionOptionListDto(m) } return r }