From ba8830573c46acc56fe69537eea1134ff033edb9 Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Thu, 31 Oct 2024 11:24:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=BA=86=E9=A2=98=E5=BA=93?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A3=9E=E8=8A=B1=E4=BB=A4=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=9A=84=E8=BF=94=E5=9B=9E=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/controller/questionQa.go | 20 ++++++++++---- api/dto/QuestionQa.go | 42 +++++++++++++++++++---------- api/dto/QuestionQaToken.go | 52 ++++++++++++++++++++++++++++++++++++ api/model/QuestionQaToken.go | 1 + 4 files changed, 96 insertions(+), 19 deletions(-) create mode 100644 api/dto/QuestionQaToken.go diff --git a/api/controller/questionQa.go b/api/controller/questionQa.go index d08eaa1..992d3fc 100644 --- a/api/controller/questionQa.go +++ b/api/controller/questionQa.go @@ -298,16 +298,26 @@ func (r *QuestionQa) GetQuestionQa(c *gin.Context) { return } - //if questionQa.QaStatus == 2 { - // responses.FailWithMessage("题库已失效", c) - // return - //} - // 处理返回值 g := dto.GetQuestionQaDto(questionQa) // 加载明细选题规则 g = g.LoadItemContent(questionQa.ItemContent) + // 获取题库飞花令数据 + if questionQa.QaDisplayType == 2 { + questionQaTokenDao := dao.QuestionQaTokenDao{} + maps := make(map[string]interface{}) + maps["qa_id"] = questionQa.QaId + questionQaTokens, err := questionQaTokenDao.GetQuestionQaTokenPreloadList(maps) + if err != nil { + responses.FailWithMessage("题库不存在", c) + return + } + + // 加载飞花令数据 + g = g.LoadQuestionQaToken(questionQaTokens) + } + responses.OkWithData(g, c) } diff --git a/api/dto/QuestionQa.go b/api/dto/QuestionQa.go index dfc37f3..379264e 100644 --- a/api/dto/QuestionQa.go +++ b/api/dto/QuestionQa.go @@ -9,20 +9,26 @@ import ( // QuestionQaDto 问答题库 type QuestionQaDto struct { - QaId string `json:"qa_id"` // 主键id - QaName string `json:"qa_name"` // 名称 - QaQuantity int `json:"qa_quantity"` // 题目数量 - QaStatus int `json:"qa_status"` // 状态(1:正常 2:无效) - QaRuleContent string `json:"qa_rule_content"` // 规则解释 - QaDisplayType int `json:"qa_display_type"` // 展示类型(1:常规 2:飞花令) - QaExpireTime *model.LocalTime `json:"qa_expire_time"` // 过期时间 - QaShareId string `json:"qa_share_id"` // 分享标识 - QaPassword string `json:"qa_password"` // 分享密码 - OpenNumber int `json:"open_number"` // 打开的次数 - Image string `json:"image"` // 背景图 - ItemContent []ItemContentDto `json:"item_content"` // 明细选题规则(json) - CreatedAt model.LocalTime `json:"created_at"` // 创建时间 - UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间 + QaId string `json:"qa_id"` // 主键id + QaName string `json:"qa_name"` // 名称 + QaQuantity int `json:"qa_quantity"` // 题目数量 + QaStatus int `json:"qa_status"` // 状态(1:正常 2:无效) + QaRuleContent string `json:"qa_rule_content"` // 规则解释 + QaDisplayType int `json:"qa_display_type"` // 展示类型(1:常规 2:飞花令) + QaExpireTime *model.LocalTime `json:"qa_expire_time"` // 过期时间 + QaShareId string `json:"qa_share_id"` // 分享标识 + QaPassword string `json:"qa_password"` // 分享密码 + OpenNumber int `json:"open_number"` // 打开的次数 + Image string `json:"image"` // 背景图 + ItemContent []ItemContentDto `json:"item_content"` // 明细选题规则(json) + QuestionQaToken []*QuestionQaTokenDto `json:"question_qa_token"` // 飞花令明细 展示类型为飞花令时存在 + CreatedAt model.LocalTime `json:"created_at"` // 创建时间 + UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间 +} + +// QuestionQaBaseTokenItem 问答题库-飞花令明细 +type QuestionQaBaseTokenItem struct { + TokenId string `json:"token_id" form:"token_id" label:"飞花令明细id" validate:"required"` } // ItemContentDto 问答题库-明细选题规则 @@ -96,3 +102,11 @@ func (r *QuestionQaDto) LoadItemContent(s string) *QuestionQaDto { } return r } + +// LoadQuestionQaToken 加载飞花令数据 +func (r *QuestionQaDto) LoadQuestionQaToken(m []*model.QuestionQaToken) *QuestionQaDto { + if len(m) > 0 { + r.QuestionQaToken = GetQuestionQaTokenListDto(m) + } + return r +} diff --git a/api/dto/QuestionQaToken.go b/api/dto/QuestionQaToken.go new file mode 100644 index 0000000..353959b --- /dev/null +++ b/api/dto/QuestionQaToken.go @@ -0,0 +1,52 @@ +package dto + +import ( + "fmt" + "knowledge/api/model" +) + +// QuestionQaTokenDto 知识问答-飞花令 +type QuestionQaTokenDto struct { + QaTokenId string `json:"qa_token_id"` // 主键id + QaId string `json:"qa_id"` // 知识问答id + TokenId string `json:"token_id"` // 飞花令id + Sort int `json:"sort"` // 排序(越大越靠前) + CreatedAt model.LocalTime `json:"created_at"` // 创建时间 + UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间 +} + +// GetQuestionQaTokenDto 详情 +func GetQuestionQaTokenDto(m *model.QuestionQaToken) *QuestionQaTokenDto { + return &QuestionQaTokenDto{ + QaTokenId: fmt.Sprintf("%d", m.QaTokenId), + QaId: fmt.Sprintf("%d", m.QaId), + TokenId: fmt.Sprintf("%d", m.TokenId), + Sort: m.Sort, + CreatedAt: m.CreatedAt, + UpdatedAt: m.UpdatedAt, + } +} + +// GetQuestionQaTokenListDto 列表 +func GetQuestionQaTokenListDto(m []*model.QuestionQaToken) []*QuestionQaTokenDto { + // 处理返回值 + responses := make([]*QuestionQaTokenDto, len(m)) + + if len(m) > 0 { + for i, v := range m { + response := &QuestionQaTokenDto{ + QaTokenId: fmt.Sprintf("%d", v.QaTokenId), + QaId: fmt.Sprintf("%d", v.QaId), + TokenId: fmt.Sprintf("%d", v.TokenId), + Sort: v.Sort, + CreatedAt: v.CreatedAt, + UpdatedAt: v.UpdatedAt, + } + + // 将转换后的结构体添加到新切片中 + responses[i] = response + } + } + + return responses +} diff --git a/api/model/QuestionQaToken.go b/api/model/QuestionQaToken.go index 61c58f9..565316c 100644 --- a/api/model/QuestionQaToken.go +++ b/api/model/QuestionQaToken.go @@ -12,6 +12,7 @@ type QuestionQaToken struct { TokenId int64 `gorm:"column:token_id;type:bigint(19);comment:飞花令id" json:"token_id"` Sort int `gorm:"column:sort;type:tinyint(1);comment:排序(越大越靠前)" json:"sort"` Model + BaseToken []*BaseToken `gorm:"foreignKey:TokenId;references:token_id" json:"base_token"` BaseTokenItem []*BaseTokenItem `gorm:"foreignKey:TokenId;references:token_id" json:"base_token_item"` }