62 lines
2.4 KiB
Go
62 lines
2.4 KiB
Go
package dto
|
||
|
||
import (
|
||
"case-admin-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 v.CaseItemQuestionOption != nil {
|
||
response = response.LoadCaseItemQuestionOption(v.CaseItemQuestionOption)
|
||
}
|
||
|
||
// 将转换后的结构体添加到新切片中
|
||
responses[i] = response
|
||
}
|
||
}
|
||
|
||
return responses
|
||
}
|
||
|
||
// LoadCaseItemQuestionOption 加载数据-病例明细-题目-选项
|
||
func (r *CaseItemQuestionDto) LoadCaseItemQuestionOption(m []*model.CaseItemQuestionOption) *CaseItemQuestionDto {
|
||
if len(m) > 0 {
|
||
r.CaseItemQuestionOption = GetCaseItemQuestionOptionListDto(m)
|
||
}
|
||
|
||
return r
|
||
}
|