修改分页没有正确返回的bug
This commit is contained in:
parent
0634527146
commit
95ba758bc0
@ -36,6 +36,7 @@
|
||||
"mongoose": "5.10.3",
|
||||
"mongoose-findorcreate": "^3.0.0",
|
||||
"qrcode": "^1.4.4",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"svg-captcha": "^1.4.0",
|
||||
"tracer": "^1.0.3",
|
||||
"urlencode": "^1.1.0",
|
||||
|
@ -8,8 +8,8 @@ export class ArticleController extends BaseController {
|
||||
@permission('article:read')
|
||||
@router('post /articles')
|
||||
async query(req: any) {
|
||||
let { start, limit } = req.params
|
||||
start = +start || 0
|
||||
let { start, limit, page} = req.params
|
||||
start = +start || +page || 0
|
||||
limit = +limit || 10
|
||||
let { opt, sort } = Article.parseQueryParam(req.params)
|
||||
let articles = await Article.find(opt)
|
||||
|
@ -7,8 +7,8 @@ class CouponController extends BaseController{
|
||||
@permission('coupon:read')
|
||||
@router('post /coupons')
|
||||
async list(req, res) {
|
||||
let { start, limit } = req.params
|
||||
start = +start || 0
|
||||
let { start, limit, page } = req.params
|
||||
start = +start || +page || 0
|
||||
limit = +limit || 10
|
||||
let { opt, sort } = Coupon.parseQueryParam(req.params)
|
||||
let articles = await Coupon.find(opt)
|
||||
|
@ -7,8 +7,8 @@ class GameController extends BaseController{
|
||||
@permission('game:read')
|
||||
@router('post /games')
|
||||
async list(req, res) {
|
||||
let { start, limit } = req.params
|
||||
start = +start || 0
|
||||
let { start, limit, page } = req.params
|
||||
start = +start || +page || 0
|
||||
limit = +limit || 10
|
||||
let { opt, sort } = Game.parseQueryParam(req.params)
|
||||
let articles = await Game.find(opt)
|
||||
|
@ -3,13 +3,14 @@ import BaseController from '../../common/base.controller'
|
||||
import { permission, router } from '../../decorators/router'
|
||||
import { ZError } from '../../common/ZError'
|
||||
import { Puzzle } from '../../models/content/Puzzle'
|
||||
import { PuzzleCategory } from '../../models/content/PuzzleCategory'
|
||||
|
||||
class PuzzleController extends BaseController{
|
||||
@permission('puzzle:read')
|
||||
@router('post /puzzles')
|
||||
async list(req, res) {
|
||||
let { start, limit } = req.params
|
||||
start = +start || 0
|
||||
let { start, limit, page } = req.params
|
||||
start = +start || +page || 0
|
||||
limit = +limit || 10
|
||||
let { opt, sort } = Puzzle.parseQueryParam(req.params)
|
||||
let articles = await Puzzle.find(opt)
|
||||
@ -18,8 +19,19 @@ class PuzzleController extends BaseController{
|
||||
.limit(limit)
|
||||
let count = await Puzzle.count(opt)
|
||||
let records = []
|
||||
let cateMap = await PuzzleCategory.allCateMap()
|
||||
for (let record of articles) {
|
||||
records.push(record.toJson())
|
||||
let data = record.toJson()
|
||||
let category = ''
|
||||
if (record.tag && cateMap.has(record.tag)) {
|
||||
category += cateMap.get(record.tag)
|
||||
}
|
||||
if (record.sub_tag && cateMap.has(record.sub_tag)) {
|
||||
category += ' - '
|
||||
category += cateMap.get(record.sub_tag)
|
||||
}
|
||||
data.category = category
|
||||
records.push(data)
|
||||
}
|
||||
return {
|
||||
total: count,
|
||||
|
@ -9,8 +9,8 @@ class ShopController extends BaseController {
|
||||
@role('admin')
|
||||
@router('post /shops')
|
||||
async shopList(req, res) {
|
||||
let { start, limit } = req.params
|
||||
start = +start || 0
|
||||
let { start, limit, page } = req.params
|
||||
start = +start || +page || 0
|
||||
limit = +limit || 10
|
||||
let { opt, sort } = Shop.parseQueryParam(req.params)
|
||||
let articles = await Shop.find(opt)
|
||||
|
@ -1,8 +1,9 @@
|
||||
import 'reflect-metadata'
|
||||
|
||||
const noJsonMetadataKey = Symbol('nojson')
|
||||
const noJsonMetadataKey = ('noJsonSet')
|
||||
|
||||
/**
|
||||
* 这方法无效
|
||||
* 在不需要toJson方法输出的字段上加上 @noJson
|
||||
* @return {{(target: Function): void, (target: Object, propertyKey: (string | symbol)): void}}
|
||||
*/
|
||||
@ -12,5 +13,6 @@ export function noJson() {
|
||||
|
||||
export function checkJson(target: any, propertyKey: string) {
|
||||
let val = Reflect.getMetadata(noJsonMetadataKey, target, propertyKey)
|
||||
let s = Reflect.getMetadata('typegoose:properties', target, propertyKey)
|
||||
return !val
|
||||
}
|
||||
|
@ -13,6 +13,8 @@ const saveExcludeKeys = ['createdAt', 'updatedAt', '__v', '_id']
|
||||
@plugin(findOrCreate)
|
||||
export abstract class BaseModule extends FindOrCreate {
|
||||
static db: Connection
|
||||
static noJsonSet: Set<string> = new Set()
|
||||
|
||||
|
||||
public updateFromReq(data: any) {
|
||||
for (let key in data) {
|
||||
@ -24,8 +26,9 @@ export abstract class BaseModule extends FindOrCreate {
|
||||
|
||||
public toJson() {
|
||||
let result: any = {}
|
||||
for (let key in this) {
|
||||
if (checkJson(this, key+'' ) && jsonExcludeKeys.indexOf(key) == -1) {
|
||||
// @ts-ignore
|
||||
for (let key in this._doc) {
|
||||
if (jsonExcludeKeys.indexOf(key) == -1) {
|
||||
result[key] = this[key]
|
||||
}
|
||||
}
|
||||
|
@ -49,14 +49,25 @@ class PuzzleClass extends BaseModule {
|
||||
public tag: string
|
||||
|
||||
@prop()
|
||||
public subtag: string
|
||||
public sub_tag: string
|
||||
@prop()
|
||||
public createtime: Date
|
||||
|
||||
public static parseQueryParam(params) {
|
||||
let {key, timeBegin, timeEnd } = params
|
||||
let {key, timeBegin, timeEnd, tag, sub_tag, groups } = params
|
||||
let opt: any = {deleted: 0, is_hide: 0}
|
||||
if (key) {
|
||||
opt.question = {$regex: key, $options: 'i'}
|
||||
}
|
||||
if (tag) {
|
||||
opt.tag = tag
|
||||
}
|
||||
if (sub_tag) {
|
||||
opt.sub_tag = sub_tag
|
||||
}
|
||||
if (groups) {
|
||||
Object.assign(opt, {groups})
|
||||
}
|
||||
if (timeBegin && !timeEnd) {
|
||||
opt.createtime = {$gte: timeBegin};
|
||||
} else if (timeBegin && timeEnd) {
|
||||
|
@ -1,5 +1,10 @@
|
||||
import { dbconn } from '../../decorators/dbconn'
|
||||
import { getModelForClass, modelOptions, prop } from '@typegoose/typegoose'
|
||||
import {
|
||||
getModelForClass,
|
||||
modelOptions,
|
||||
prop,
|
||||
ReturnModelType
|
||||
} from '@typegoose/typegoose'
|
||||
import { BaseModule } from '../Base'
|
||||
|
||||
class SubType {
|
||||
@ -21,6 +26,18 @@ class PuzzleCategoryClass extends BaseModule {
|
||||
|
||||
@prop({type: () => [SubType]})
|
||||
public children: SubType[]
|
||||
|
||||
public static async allCateMap(this: ReturnModelType<typeof PuzzleCategoryClass>) {
|
||||
let result: Map<string, string> = new Map()
|
||||
let records = await this.find({}).exec()
|
||||
for (let record of records) {
|
||||
result.set(record._id, record.name)
|
||||
for (let sub of record.children) {
|
||||
result.set(sub._id, sub.name)
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
export const PuzzleCategory = getModelForClass(PuzzleCategoryClass, { existingConnection: PuzzleCategoryClass.db })
|
||||
|
Loading…
x
Reference in New Issue
Block a user