From 7655e632c5d541fe7e9321c2f2ecc035f32225e5 Mon Sep 17 00:00:00 2001 From: zhl Date: Wed, 12 May 2021 17:31:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=94=A8=E4=BA=8E=E5=B0=8F?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E7=99=BB=E9=99=86=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/controllers/game_user.controller.ts | 17 +++++++++ src/models/GameUser.ts | 38 +++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 src/api/controllers/game_user.controller.ts create mode 100644 src/models/GameUser.ts diff --git a/src/api/controllers/game_user.controller.ts b/src/api/controllers/game_user.controller.ts new file mode 100644 index 0000000..975a714 --- /dev/null +++ b/src/api/controllers/game_user.controller.ts @@ -0,0 +1,17 @@ +import BaseController from '../../common/base.controller' +import { role, router } from '../../decorators/router' +import { GameUser } from '../../models/GameUser' + +class GameUserController extends BaseController { + @role('anon') + @router('post /weapp/login') + async gameUserLogin(req, res) { + const {accountId} = req.params + let user = (await GameUser.findOrCreate({accountId})).doc + user.updateFromReq(req.params) + await user.save() + const token = await res.jwtSign({ id: user.id, accountId: accountId }); + return {token} + } + +} diff --git a/src/models/GameUser.ts b/src/models/GameUser.ts new file mode 100644 index 0000000..964528d --- /dev/null +++ b/src/models/GameUser.ts @@ -0,0 +1,38 @@ +import { dbconn } from '../decorators/dbconn' +import { + getModelForClass, + index, + modelOptions, + prop +} from '@typegoose/typegoose' +import { BaseModule } from './Base' + +@dbconn() +@index({ accoundId: 1}, { unique: true }) +@modelOptions({ schemaOptions: { collection: 'game_user', timestamps: true } }) +class GameUserClass extends BaseModule { + @prop() + public accountId: string + @prop() + public nickname: string + @prop() + public avatar: string + + @prop({default: 0}) + public sex?: string; + @prop({default: 'CN'}) + public country?: string; + @prop() + public province?: string; + @prop() + public city?: string; + @prop({default: false}) + public locked: boolean; + @prop() + public lockedTime?: Date; + + + +} + +export const GameUser = getModelForClass(GameUserClass, {existingConnection: GameUserClass.db});