增加获取题目和上报的接口
This commit is contained in:
parent
cba94a9cea
commit
e73920b917
@ -137,7 +137,7 @@ export class ApiServer {
|
||||
self.registerRouter();
|
||||
self.setErrHandler();
|
||||
// self.setFormatSend();
|
||||
this.server.listen({port: config.api.port, host: config.api.host}, (err: any, address: any) => {
|
||||
this.server.listen({port: config.api.port}, (err: any, address: any) => {
|
||||
if (err) {
|
||||
logger.log(err)
|
||||
process.exit(0)
|
||||
|
48
src/api/controllers/puzzle.controller.ts
Normal file
48
src/api/controllers/puzzle.controller.ts
Normal file
@ -0,0 +1,48 @@
|
||||
import BaseController from '../../common/base.controller'
|
||||
import { role, router } from '../../decorators/router'
|
||||
import { Puzzle } from '../../models/content/Puzzle'
|
||||
import { ZError } from '../../common/ZError'
|
||||
|
||||
class PuzzleController extends BaseController {
|
||||
@role('anon')
|
||||
@router('post /puzzle/list')
|
||||
async list(req, res) {
|
||||
let { shop, level } = req.params
|
||||
let count = 10
|
||||
let records = await Puzzle.aggregate([
|
||||
{ $match: { status: 1, is_hide: 0, deleted: 0 } },
|
||||
{ $sample: { size: count } }
|
||||
]).exec()
|
||||
return records.map(o => {
|
||||
let answers = []
|
||||
for (let i = 1; i <=4; i++) {
|
||||
if (o[`a${i}`]) {
|
||||
answers.push(o[`a${i}`])
|
||||
}
|
||||
}
|
||||
answers.randomSort()
|
||||
return {
|
||||
id: o._id,
|
||||
title: o.question,
|
||||
answers,
|
||||
type: 1
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@role('anon')
|
||||
@router('post /puzzle/answer')
|
||||
async report(req, res) {
|
||||
let { id, answer } = req.params
|
||||
if (!id || !answer) {
|
||||
throw new ZError(11, 'param mismatch')
|
||||
}
|
||||
let record = await Puzzle.findById(id)
|
||||
if (!record) {
|
||||
throw new ZError(12, 'question not found')
|
||||
}
|
||||
let result = record.a1 == answer ? 1 : 0
|
||||
|
||||
return {result}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user