处理分享

This commit is contained in:
2024-09-29 11:42:18 +08:00
parent ba6dbcc2c7
commit c209dafac5
7 changed files with 196 additions and 70 deletions
+48 -31
View File
@@ -8,7 +8,6 @@ import (
"knowledge/api/responses"
"knowledge/global"
"knowledge/utils"
"sort"
"time"
)
@@ -32,7 +31,6 @@ func (r *Share) GetShare(c *gin.Context) {
// 业务处理
questionQaDao := dao.QuestionQaDao{}
questionQaItemDao := dao.QuestionQaItemDao{}
questionDao := dao.QuestionDao{}
// 获取题库数据
maps := make(map[string]interface{})
@@ -70,27 +68,18 @@ func (r *Share) GetShare(c *gin.Context) {
maps = make(map[string]interface{})
maps["qa_id"] = questionQa.QaId
maps["is_must_select"] = 1
questionQaItems, err := questionQaItemDao.GetQuestionQaItemList(maps)
questionQaItems, err := questionQaItemDao.GetQuestionQaItemrPreloadList(maps)
if err == nil && len(questionQaItems) > 0 {
shareQuestionDtos := make([]*dto.ShareQuestionDto, len(questionQaItems))
for i, item := range questionQaItems {
// 获取题目数据
question, err := questionDao.GetQuestionById(item.QuestionId)
if err != nil {
responses.FailWithMessage("题目错误", c)
return
}
// 处理返回值
questionDto := dto.GetShareQuestionDto(item.Question)
shareQuestionDto := dto.GetShareQuestionDto(question)
shareQuestionDto.IsMustSelect = item.IsMustSelect
// 加载选项
questionDto.LoadQuestionOption(item.Question.QuestionOption)
// 将转换后的结构体添加到新切片中
shareQuestionDtos[i] = shareQuestionDto
g.Question[i] = questionDto
}
g.Question = shareQuestionDtos
}
// 题目数据-剩余随机数量
@@ -100,30 +89,58 @@ func (r *Share) GetShare(c *gin.Context) {
maps = make(map[string]interface{})
maps["qa_id"] = questionQa.QaId
maps["is_must_select"] = 0
questionQaItems, err = questionQaItemDao.GetQuestionQaItemListRand(maps, remainingQuantity)
questionQaItems, err = questionQaItemDao.GetQuestionQaItemWhereListRand(maps, remainingQuantity)
if err == nil && len(questionQaItems) > 0 {
for _, item := range questionQaItems {
// 获取题目数据
question, err := questionDao.GetQuestionById(item.QuestionId)
if err != nil {
responses.FailWithMessage("题目错误", c)
return
}
// 处理返回值
questionDto := dto.GetShareQuestionDto(item.Question)
shareQuestionDto := dto.GetShareQuestionDto(question)
shareQuestionDto.IsMustSelect = item.IsMustSelect
// 加载选项
questionDto.LoadQuestionOption(item.Question.QuestionOption)
// 将转换后的结构体添加到新切片中
g.Question = append(g.Question, shareQuestionDto)
g.Question = append(g.Question, questionDto)
}
}
}
// 按照难度重新排序题目顺序
sort.SliceStable(g.Question, func(i, j int) bool {
return g.Question[i].Difficulty < g.Question[j].Difficulty
})
//sort.SliceStable(g.Question, func(i, j int) bool {
// return g.Question[i].Difficulty < g.Question[j].Difficulty
//})
// 加载飞花令
if questionQa.QaDisplayType == 2 {
questionQaTokenDao := dao.QuestionQaTokenDao{}
maps = make(map[string]interface{})
maps["qa_id"] = questionQa.QaId
questionQaToken, err := questionQaTokenDao.GetQuestionQaTokenList(maps)
if err != nil {
responses.FailWithMessage("内部错误", c)
return
}
baseTokenItemDao := dao.BaseTokenItemDao{}
for _, v := range questionQaToken {
// 加载详细飞花令
baseTokenItem, err := baseTokenItemDao.GetBaseTokenItemPreloadOrderByTokenId(v.TokenId)
if err != nil {
responses.FailWithMessage("内部错误", c)
return
}
// 处理返回值
for _, item := range baseTokenItem {
if len(g.BaseTokenItem) < questionQa.QaQuantity {
// 处理返回值
baseTokenItemDto := dto.GetBaseTokenItemDto(item)
// 将转换后的结构体添加到新切片中
g.BaseTokenItem = append(g.BaseTokenItem, baseTokenItemDto)
}
}
}
}
responses.OkWithData(g, c)
}