修正了题库详情飞花令数据的返回问题

This commit is contained in:
wucongxing8150 2024-10-31 11:24:36 +08:00
parent cffc27faf9
commit ba8830573c
4 changed files with 96 additions and 19 deletions

View File

@ -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)
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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"`
}