diff --git a/src/admin/controllers/shop.controller.ts b/src/admin/controllers/shop.controller.ts index c7ef5bc..dda7aa9 100644 --- a/src/admin/controllers/shop.controller.ts +++ b/src/admin/controllers/shop.controller.ts @@ -1,5 +1,5 @@ import BaseController from '../../common/base.controller' -import { permission, role, router } from '../../decorators/router' +import { permission, router } from '../../decorators/router' import { Shop } from '../../models/shop/Shop' import { ZError } from '../../common/ZError' import { Game } from '../../models/content/Game' @@ -8,7 +8,7 @@ class ShopController extends BaseController { @permission(['shop:read', 'shopman:read']) @router('post /shops') - async shopList(req, res) { + async shopList(req) { let { start, limit, page } = req.params limit = +limit || 10 start = +start || (+page - 1) * limit|| 0 @@ -151,7 +151,7 @@ class ShopController extends BaseController { } @permission('shop:edit') @router('post /shop/save_qtype') - async updateQTypes(req, res) { + async updateQTypes(req) { let { shopid, qtypes } = req.params if (!shopid) { throw new ZError(11, 'params mismatch') diff --git a/src/api/controllers/shop.controller.ts b/src/api/controllers/shop.controller.ts index 2326c74..59ff848 100644 --- a/src/api/controllers/shop.controller.ts +++ b/src/api/controllers/shop.controller.ts @@ -13,40 +13,37 @@ class ShopController extends BaseController { * lng: 经度 * lat: 纬度 * distance: 多少半径范围内, 单位: 米 - * @param res - * @return {Promise} */ @role('anon') @router('post /weapp/nearme') - async shopNearby(req, res) { + async shopNearby(req) { let { lng, lat, distance } = req.params let queryParam = { location: { $nearSphere: { $geometry: { - type: "Point", + type: 'Point', coordinates: [lng, lat] }, $maxDistance: distance - }, + } }, deleted: false } let records = await Shop.find(queryParam) - let result = records.map(o => { + return records.map(o => { return { id: o.id, name: o.showName, address: o.address } }) - - return result } + @role('anon') @router('post /weapp/shopList') - async shopList(req, res) { + async shopList(req) { let { start, limit } = req.params limit = +limit || 10 start = +start || 0 @@ -75,13 +72,10 @@ class ShopController extends BaseController { /** * TODO:: 获取某店铺实时的活动信息 - * @param req - * @param res - * @return {Promise} */ @role('anon') @router('get /weapp/act/:sid') - async shopActivity(req, res) { + async shopActivity(req) { let { sid } = req.params return {} @@ -89,7 +83,7 @@ class ShopController extends BaseController { @role('anon') @router('post /api/:accountid/shop') - async shopInfo(req, res) { + async shopInfo(req) { let { sid } = req.params if (!sid || !validShopId(sid)) { throw new ZError(10, '没有店铺id或者店铺id格式不正确, 测试使用: 607ff59d4a4e16687a3b7079') @@ -104,7 +98,13 @@ class ShopController extends BaseController { rspData.area = shop.areaStr rspData.logo = shop.logo const now = Date.now() - let exams = await ShopExam.find({shop: shop.id, beginTime: {$lte: now}, endTime: {$gte: now}, active: true, deleted: false}) + let exams = await ShopExam.find({ + shop: shop.id, + beginTime: { $lte: now }, + endTime: { $gte: now }, + active: true, + deleted: false + }) if (exams && exams.length > 0) { let datas: any = [] for (let exam of exams) { @@ -112,8 +112,7 @@ class ShopController extends BaseController { } rspData.exams = datas } - let activity = await ShopActivity.getActivityOne(shop.id) - rspData.activity = activity + rspData.activity = await ShopActivity.getActivityOne(shop.id) return rspData } } diff --git a/src/decorators/nojson.ts b/src/decorators/nojson.ts index 65d1d86..00b9135 100644 --- a/src/decorators/nojson.ts +++ b/src/decorators/nojson.ts @@ -1,8 +1,6 @@ import 'reflect-metadata' import { singleton } from './singleton' -const noJsonMetadataKey = ('noJsonSet') - @singleton export class NoJsonClass { private noJsonPropSet: Set = new Set() diff --git a/src/models/Base.ts b/src/models/Base.ts index 3c7629f..92b791b 100644 --- a/src/models/Base.ts +++ b/src/models/Base.ts @@ -15,8 +15,6 @@ const saveExcludeKeys = ['createdAt', 'updatedAt', '__v', '_id'] @plugin(findOrCreate) export abstract class BaseModule extends FindOrCreate { static db: Connection - static noJsonSet: Set = new Set() - public updateFromReq(data: any) { for (let key in data) { diff --git a/src/models/admin/AdminPermission.ts b/src/models/admin/AdminPermission.ts index 0fff937..0b683e7 100644 --- a/src/models/admin/AdminPermission.ts +++ b/src/models/admin/AdminPermission.ts @@ -1,9 +1,4 @@ -import { - getModelForClass, - index, - modelOptions, - prop -} from '@typegoose/typegoose' +import { getModelForClass, modelOptions, prop } from '@typegoose/typegoose' import { dbconn } from 'decorators/dbconn' import { BaseModule } from '../Base' @@ -22,7 +17,7 @@ export class AdminPermissionClass extends BaseModule { @prop() public name: string - @prop() + @prop({ type: () => [String] }) public actions: string[] diff --git a/src/models/shop/Shop.ts b/src/models/shop/Shop.ts index 2cb03fc..eb72fab 100644 --- a/src/models/shop/Shop.ts +++ b/src/models/shop/Shop.ts @@ -143,18 +143,12 @@ class ShopClass extends BaseModule { public static parseQueryParam(params) { - let {key, timeBegin, timeEnd, publish} = params - let opt: any = {deleted: false, show: true, publish: true} - if (key) { - opt.name = {$regex: key, $options: 'i'} - } - if (timeBegin && !timeEnd) { - opt.createdAt = {$gte: timeBegin}; - } else if (timeBegin && timeEnd) { - opt['$and'] = [{createdAt: {$gte: timeBegin}}, {createdAt: {$lte: timeEnd}}]; - } else if (!timeBegin && timeEnd) { - opt.createdAt = {$lte: timeEnd}; + let options: any = { + opt: {deleted: false, show: true, publish: true}, + matchKey: 'name' } + let { opt, sort } = super.parseQueryParam(params, options) + let { publish } = params if (publish !== undefined) { if (typeof publish === 'boolean') { opt.publish = publish @@ -169,7 +163,6 @@ class ShopClass extends BaseModule { } } - let sort = {_id: -1} return { opt, sort } }