case-api/api/dto/CaseItemQuestion.go
2025-03-07 16:57:28 +08:00

77 lines
2.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}