Compare commits
3 Commits
db436c4faa
...
b80593dc78
| Author | SHA1 | Date | |
|---|---|---|---|
| b80593dc78 | |||
| 7d04de732b | |||
| 7ee06243fa |
@ -7,6 +7,7 @@ import (
|
|||||||
"case-admin-api/api/responses"
|
"case-admin-api/api/responses"
|
||||||
"case-admin-api/global"
|
"case-admin-api/global"
|
||||||
"case-admin-api/utils"
|
"case-admin-api/utils"
|
||||||
|
"fmt"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"strconv"
|
"strconv"
|
||||||
)
|
)
|
||||||
@ -288,52 +289,83 @@ func (b *CaseItem) PutCaseItem(c *gin.Context) {
|
|||||||
return
|
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{}
|
statCaseQuestionDao := dao.StatCaseQuestionDao{}
|
||||||
caseUserAnswerDao := dao.CaseUserAnswerDao{}
|
caseUserAnswerDao := dao.CaseUserAnswerDao{}
|
||||||
for _, question := range caseItemQuestions {
|
if len(deleteCaseItemQuestions) > 0 {
|
||||||
if question.QuestionType == 1 || question.QuestionType == 2 || question.QuestionType == 4 {
|
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 = make(map[string]interface{})
|
||||||
maps["question_id"] = question.QuestionId
|
maps["question_id"] = question.QuestionId
|
||||||
err := statCaseQuestionDao.DeleteStatCaseQuestion(tx, maps)
|
err := caseUserAnswerDao.DeleteCaseUserAnswer(tx, maps)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
tx.Rollback()
|
tx.Rollback()
|
||||||
responses.FailWithMessage("操作失败", c)
|
responses.FailWithMessage("操作失败", c)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除问题选项
|
// 删除问题
|
||||||
maps = make(map[string]interface{})
|
err = caseItemQuestionDao.DeleteCaseItemQuestionById(tx, question.QuestionId)
|
||||||
maps["question_id"] = question.QuestionId
|
|
||||||
err = caseItemQuestionOptionDao.DeleteCaseItemQuestionOption(tx, maps)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
tx.Rollback()
|
tx.Rollback()
|
||||||
responses.FailWithMessage("操作失败", c)
|
responses.FailWithMessage("操作失败", c)
|
||||||
return
|
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 {
|
for _, question := range req.CaseItemQuestion {
|
||||||
caseItemQuestion := &model.CaseItemQuestion{
|
caseItemQuestion := &model.CaseItemQuestion{
|
||||||
CaseId: caseItem.CaseId,
|
CaseId: caseItem.CaseId,
|
||||||
|
|||||||
@ -16,6 +16,7 @@ type AddCaseItem struct {
|
|||||||
|
|
||||||
// CaseItemQuestion 病历表-明细-题目
|
// CaseItemQuestion 病历表-明细-题目
|
||||||
type CaseItemQuestion struct {
|
type CaseItemQuestion struct {
|
||||||
|
QuestionId string `json:"question_id" form:"question_id" label:"题目标识"`
|
||||||
QuestionName string `json:"question_name" form:"question_name" label:"题目名称" validate:"required"`
|
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"`
|
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:"答案"`
|
QuestionAnswer string `json:"question_answer" form:"question_answer" label:"答案"`
|
||||||
|
|||||||
@ -111,21 +111,6 @@ func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId
|
|||||||
nodeName = "优质留言"
|
nodeName = "优质留言"
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检测白名单-无需检测白名单
|
|
||||||
var isWhite bool
|
|
||||||
if projectPlatform.IsWhite == 1 {
|
|
||||||
projectPlatformWhiteService := ProjectPlatformWhiteService{}
|
|
||||||
isWhite, err = projectPlatformWhiteService.CheckProjectPlatformWhiteByUser(user, projectId, platformId)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 当用户为非白名单时,重置积分数
|
|
||||||
if isWhite == false {
|
|
||||||
score = 0
|
|
||||||
}
|
|
||||||
|
|
||||||
recordScoreDao := dao.RecordScoreDao{}
|
recordScoreDao := dao.RecordScoreDao{}
|
||||||
|
|
||||||
// 检测是否有相同手机号用户
|
// 检测是否有相同手机号用户
|
||||||
@ -166,6 +151,22 @@ func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 默认为白名单用户
|
||||||
|
isWhite := true
|
||||||
|
if projectPlatform.IsWhite == 1 {
|
||||||
|
projectPlatformWhiteService := ProjectPlatformWhiteService{}
|
||||||
|
isWhite, err = projectPlatformWhiteService.CheckProjectPlatformWhiteByUser(user, projectId, platformId)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 佳动力需求:非白名单用户也需要请求积分记录
|
||||||
|
// 当用户为非白名单时,重置积分数
|
||||||
|
if isWhite == false {
|
||||||
|
score = 0
|
||||||
|
}
|
||||||
|
|
||||||
// 获取病例关联平台数据
|
// 获取病例关联平台数据
|
||||||
casePlatformDao := dao.CasePlatformDao{}
|
casePlatformDao := dao.CasePlatformDao{}
|
||||||
maps = make(map[string]interface{})
|
maps = make(map[string]interface{})
|
||||||
@ -208,7 +209,7 @@ func (r *UserService) ReportUserScore(tx *gorm.DB, projectId, caseId, platformId
|
|||||||
maps["user_id"] = user.UserId
|
maps["user_id"] = user.UserId
|
||||||
caseUser, _ := caseUserDao.GetCaseUserUseTx(tx, maps)
|
caseUser, _ := caseUserDao.GetCaseUserUseTx(tx, maps)
|
||||||
if caseUser == nil {
|
if caseUser == nil {
|
||||||
return errors.New("积分发放失败")
|
return errors.New("用户还未完成该病例阅读,请稍后再试")
|
||||||
}
|
}
|
||||||
|
|
||||||
// 累计用户领取积分数据
|
// 累计用户领取积分数据
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user