bilibili-backup/app/service/openplatform/anti-fraud/server/http/question.go
2019-04-22 02:59:20 +00:00

246 lines
5.3 KiB
Go

package http
import (
"go-common/app/service/openplatform/anti-fraud/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/binding"
)
// qusBankInfo 题库信息
func qusBankInfo(c *bm.Context) {
params := new(model.ArgGetQusBank)
if err := c.Bind(params); err != nil {
return
}
c.JSON(svc.GetQusBankInfo(c, params.QsBId))
}
// qusBankList 题库列表
func qusBankList(c *bm.Context) {
params := new(model.ArgBankList)
if err := c.Bind(params); err != nil {
return
}
result := model.RespList{}
list, err := svc.GetQusBanklist(c, params.PageNo, params.PageSize, params.Name)
if err != nil {
c.JSON(nil, err)
return
}
total, err := svc.GetQusBankTotal(c, params.Name)
if err != nil {
c.JSON(nil, err)
return
}
result.Items = list
result.PageSize = params.PageSize
result.PageNo = params.PageNo
result.Total = total
c.JSON(result, nil)
}
// qusBankAdd 添加题库
func qusBankAdd(c *bm.Context) {
params := new(model.ArgAddQusBank)
if err := c.BindWith(params, binding.JSON); err != nil {
return
}
c.JSON(svc.AddQusBank(c, params))
}
// qusBankEdit 更新题库
func qusBankEdit(c *bm.Context) {
params := new(model.ArgUpdateQusBank)
if err := c.BindWith(params, binding.JSON); err != nil {
return
}
c.JSON(svc.UpdataQusBank(c, params.QsBId, params.QBName, params.MaxRetryTime, params.CdTime))
}
// qusBankDel 删除题库
func qusBankDel(c *bm.Context) {
params := new(model.ArgBaseBank)
if err := c.BindWith(params, binding.JSON); err != nil {
return
}
c.JSON(svc.DelQusBank(c, params.QsBId, model.DeledStatus))
}
// qusInfo 题目详情
func qusInfo(c *bm.Context) {
params := new(model.ArgGetQus)
if err := c.Bind(params); err != nil {
return
}
data := &model.QuestionAll{}
answers, err := svc.GetAnswerList(c, params.QsID)
if err != nil {
c.JSON(nil, ecode.QusIDInvalid)
return
}
info, err := svc.GetQusInfo(c, params.QsID)
if err != nil || info == nil {
c.JSON(nil, ecode.QusIDInvalid)
return
}
data.Question = *info
data.AnswersList = answers
c.JSON(data, err)
}
// qusList 题目列表
func qusList(c *bm.Context) {
params := new(model.ArgQusList)
if err := c.Bind(params); err != nil {
return
}
result := model.RespList{}
list, err := svc.GetQuslist(c, params.PageNo, params.PageSize, params.QsBId)
if err != nil {
c.JSON(nil, err)
return
}
total, err := svc.GetQusTotal(c, params.QsBId)
if err != nil {
c.JSON(nil, err)
return
}
result.Items = list
result.PageSize = params.PageSize
result.PageNo = params.PageNo
result.Total = total
c.JSON(result, nil)
}
// qusAdd 题目添加
func qusAdd(c *bm.Context) {
params := new(model.ArgAddQus)
if err := c.BindWith(params, binding.JSON); err != nil {
return
}
anlist := params.Answer
msg, err := svc.CheckAnswer(c, 0, params.Type, anlist)
if err != nil {
c.JSON(msg, err)
return
}
addQus := &model.AddQus{
BId: params.BId,
Type: params.Type,
Name: params.Name,
Dif: params.Dif,
AnType: params.AnType,
Answers: anlist,
QsID: 0,
}
c.JSON(svc.AddQus(c, addQus, anlist))
}
// qusUpdate 题目更新
func qusUpdate(c *bm.Context) {
params := new(model.ArgUpdateQus)
if err := c.BindWith(params, binding.JSON); err != nil {
return
}
answers := params.Answer
msg, err := svc.CheckAnswer(c, params.QsID, params.Type, answers)
if err != nil {
c.JSON(msg, err)
return
}
c.JSON(svc.UpdateQus(c, params, answers))
}
// questionBankBind 项目关联题库
func questionBankBind(c *bm.Context) {
params := &model.ArgQuestionBankBinds{}
if err := c.BindWith(params, binding.JSON); err != nil {
return
}
err := svc.QuestionBankBind(c, params)
if err != nil {
log.Error("questionBankBind(%v) error(%v)", params, err)
}
c.JSON(nil, err)
}
// questionBankUnbind 解绑
func questionBankUnbind(c *bm.Context) {
params := &model.ArgQuestionBankUnbind{}
if err := c.BindWith(params, binding.JSON); err != nil {
return
}
c.JSON(nil, svc.QuestionBankUnbind(c, params))
}
// qusDel 删除题目
func qusDel(c *bm.Context) {
params := new(model.ArgGetQus)
if err := c.BindWith(params, binding.JSON); err != nil {
return
}
c.JSON(svc.DelQus(c, params.QsID))
}
// getBankBind 绑定关系
func getBankBind(c *bm.Context) {
params := &model.ArgGetBankBind{}
if err := c.BindWith(params, binding.JSON); err != nil {
return
}
c.JSON(svc.GetQuestionBankBind(c, params))
}
// getBindItems 查询绑定到题库的
func getBindItems(c *bm.Context) {
params := &model.ArgGetBindItems{}
if err := c.Bind(params); err != nil {
return
}
c.JSON(svc.GetBindItem(c, params))
}
// getQuestion 随机获取一个问题
func getQuestion(c *bm.Context) {
params := &model.ArgGetQuestion{}
if err := c.Bind(params); err != nil {
return
}
c.JSON(svc.GetQuestion(c, params))
}
// answerQuestion 答题
func answerQuestion(c *bm.Context) {
// 判断是否可答 返回冷却时间
params := &model.ArgCheckAnswer{}
if err := c.BindWith(params, binding.JSON); err != nil {
return
}
c.JSON(svc.UserAnswer(c, params))
}
// qusBankCheck 题库检查
func qusBankCheck(c *bm.Context) {
// 判断是否可答 返回冷却时间
params := &model.ArgCheckQus{}
if err := c.BindWith(params, binding.JSON); err != nil {
return
}
c.JSON(svc.QusBankCheck(c, params))
}