package controller import ( "github.com/gin-gonic/gin" "lims-extend/common" "lims-extend/model" "lims-extend/response" ) // TakeTask 领取任务 // 传入参数 taskId func TakeTask(c *gin.Context) { db := common.GetDB() // 获取taskId taskId := c.Params.ByName("taskId") // 查看task是否存在 var task model.Task if err := db.Model(&model.Task{}).Where("id = ?", taskId).First(&task).Error; err != nil { response.Fail(c, nil, "Task不存在,请检查") return } // 查看task是否被重复领取 if task.State != 3 { response.Fail(c, nil, "任务已被领取,请勿重新领取") return } // 更新task的修改时间以及状态从 未领取 -> 未执行 task.UpdatedAt = model.Time{} task.State = 0 // 提交修改至数据库 if err := db.Model(&model.Task{}).Select("UpdateAt", "State"). Where("id = ?", taskId).Updates(task).Error; err != nil { response.Fail(c, nil, "任务领取失败") return } response.Success(c, gin.H{"task": task}, "任务领取成功") }