修改病例明细,修改了删除和新增问题的处理
This commit is contained in:
parent
7d04de732b
commit
b80593dc78
@ -7,6 +7,7 @@ import (
|
||||
"case-admin-api/api/responses"
|
||||
"case-admin-api/global"
|
||||
"case-admin-api/utils"
|
||||
"fmt"
|
||||
"github.com/gin-gonic/gin"
|
||||
"strconv"
|
||||
)
|
||||
@ -288,52 +289,83 @@ func (b *CaseItem) PutCaseItem(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
// 检测问题情况
|
||||
var deleteCaseItemQuestions []*model.CaseItemQuestion
|
||||
var addCaseItemQuestions []*requests.CaseItemQuestion
|
||||
|
||||
for _, itemQuestion := range req.CaseItemQuestion {
|
||||
if itemQuestion.QuestionId == "" {
|
||||
addCaseItemQuestions = append(addCaseItemQuestions, itemQuestion)
|
||||
}
|
||||
}
|
||||
|
||||
for _, question := range caseItemQuestions {
|
||||
isExist := false
|
||||
for _, itemQuestion := range req.CaseItemQuestion {
|
||||
if itemQuestion.QuestionId == "" {
|
||||
continue
|
||||
}
|
||||
|
||||
if itemQuestion.QuestionId == fmt.Sprintf("%d", question.QuestionId) {
|
||||
isExist = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// 如果没有找到匹配项,则需要删除
|
||||
if !isExist {
|
||||
deleteCaseItemQuestions = append(deleteCaseItemQuestions, question)
|
||||
}
|
||||
}
|
||||
|
||||
statCaseQuestionDao := dao.StatCaseQuestionDao{}
|
||||
caseUserAnswerDao := dao.CaseUserAnswerDao{}
|
||||
for _, question := range caseItemQuestions {
|
||||
if question.QuestionType == 1 || question.QuestionType == 2 || question.QuestionType == 4 {
|
||||
// 删除对应答题记录
|
||||
if len(deleteCaseItemQuestions) > 0 {
|
||||
for _, question := range deleteCaseItemQuestions {
|
||||
if question.QuestionType == 1 || question.QuestionType == 2 || question.QuestionType == 4 {
|
||||
// 删除对应答题记录
|
||||
maps = make(map[string]interface{})
|
||||
maps["question_id"] = question.QuestionId
|
||||
err := statCaseQuestionDao.DeleteStatCaseQuestion(tx, maps)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
responses.FailWithMessage("操作失败", c)
|
||||
return
|
||||
}
|
||||
|
||||
// 删除问题选项
|
||||
maps = make(map[string]interface{})
|
||||
maps["question_id"] = question.QuestionId
|
||||
err = caseItemQuestionOptionDao.DeleteCaseItemQuestionOption(tx, maps)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
responses.FailWithMessage("操作失败", c)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 删除用户答题记录
|
||||
maps = make(map[string]interface{})
|
||||
maps["question_id"] = question.QuestionId
|
||||
err := statCaseQuestionDao.DeleteStatCaseQuestion(tx, maps)
|
||||
err := caseUserAnswerDao.DeleteCaseUserAnswer(tx, maps)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
responses.FailWithMessage("操作失败", c)
|
||||
return
|
||||
}
|
||||
|
||||
// 删除问题选项
|
||||
maps = make(map[string]interface{})
|
||||
maps["question_id"] = question.QuestionId
|
||||
err = caseItemQuestionOptionDao.DeleteCaseItemQuestionOption(tx, maps)
|
||||
// 删除问题
|
||||
err = caseItemQuestionDao.DeleteCaseItemQuestionById(tx, question.QuestionId)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
responses.FailWithMessage("操作失败", c)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 删除用户答题记录
|
||||
maps = make(map[string]interface{})
|
||||
maps["question_id"] = question.QuestionId
|
||||
err := caseUserAnswerDao.DeleteCaseUserAnswer(tx, maps)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
responses.FailWithMessage("操作失败", c)
|
||||
return
|
||||
}
|
||||
|
||||
// 删除问题
|
||||
err = caseItemQuestionDao.DeleteCaseItemQuestionById(tx, question.QuestionId)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
responses.FailWithMessage("操作失败", c)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 新增病例题目
|
||||
if len(req.CaseItemQuestion) > 0 {
|
||||
if len(addCaseItemQuestions) > 0 {
|
||||
for _, question := range req.CaseItemQuestion {
|
||||
caseItemQuestion := &model.CaseItemQuestion{
|
||||
CaseId: caseItem.CaseId,
|
||||
|
||||
@ -16,6 +16,7 @@ type AddCaseItem struct {
|
||||
|
||||
// CaseItemQuestion 病历表-明细-题目
|
||||
type CaseItemQuestion struct {
|
||||
QuestionId string `json:"question_id" form:"question_id" label:"题目标识"`
|
||||
QuestionName string `json:"question_name" form:"question_name" label:"题目名称" validate:"required"`
|
||||
QuestionType int `json:"question_type" form:"question_type" label:"题目类型" validate:"required,oneof=1 2 3 4"`
|
||||
QuestionAnswer string `json:"question_answer" form:"question_answer" label:"答案"`
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user