From fefd2dfdd585626cd160e8b80cb20dee8709af75 Mon Sep 17 00:00:00 2001 From: liangtongchuan Date: Fri, 16 Oct 2020 16:02:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=8A=B6=E6=80=81=E7=A0=81?= =?UTF-8?q?=E6=9C=BA=E5=88=B6=EF=BC=8C=E5=88=9D=E6=AD=A5=E6=94=B9=E9=80=A0?= =?UTF-8?q?web-server=E4=B8=AD=E6=8E=A5=E5=8F=A3=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shared/consts/statusCode.ts | 29 +++++++++++++++--------- shared/pubUtils/util.ts | 6 +++++ web-server/app/controller/game.ts | 7 +++--- web-server/app/middleware/parmsDecode.ts | 2 +- web-server/app/middleware/tokenParser.ts | 8 +++---- web-server/app/service/Auth.ts | 22 +++++++++--------- web-server/app/service/Utils.ts | 6 ++--- 7 files changed, 46 insertions(+), 34 deletions(-) diff --git a/shared/consts/statusCode.ts b/shared/consts/statusCode.ts index b08190e8d..0b2ec4177 100644 --- a/shared/consts/statusCode.ts +++ b/shared/consts/statusCode.ts @@ -1,11 +1,18 @@ -export const STATUS_SUC = {code: 0, simStr: '成功'}; -export const STATUS_WRONG_PARMS = {code: 1, simStr: '参数错误'}; -export const STATUS_TOKEN_ERR = {code: 2, simStr: 'token失效'}; -export const STATUS_INTERNAL_ERR = {code: 3, simStr: '内部错误'}; - -export const SMS_IN_60S = {code: 100001, simStr: '60秒内只能发送一次'}; -export const SMS_CNT_LIMIT = {code: 100002, simStr: '今日短信条数已达上限'}; -export const SMS_INVALID = {code: 100003, simStr: '验证码无效'}; - -export const SERVER_NOT_FOUND = {code: 200001, simStr: '未找到服务器列表'}; -export const ROLE_NOT_FOUND = {code: 200002, simStr: '未找到角色'}; \ No newline at end of file +export const STATUS = { + // 接口或系统状态 0 - 9999 + SUCCESS: { code: 0, simStr: '成功' }, + WRONG_PARMS: { code: 1, simStr: '参数错误' }, + TOKEN_ERR: { code: 2, simStr: 'token失效' }, + INTERNAL_ERR: { code: 3, simStr: '内部错误' }, + // 账号相关状态 10001 - 19999 + SMS_IN_60S: { code: 10001, simStr: '60秒内只能发送一次' }, + SMS_CNT_LIMIT: { code: 10002, simStr: '今日短信条数已达上限' }, + SMS_INVALID: { code: 10003, simStr: '验证码无效' }, + SERVER_NOT_FOUND: { code: 10004, simStr: '未找到服务器列表' }, + ROLE_NOT_FOUND: { code: 10005, simStr: '未找到角色' }, + // 战斗相关状态 20001 - 29999 + TOWER_RESET_ERR: { code: 20001, simStr: '只能重置当前层' } + // 养成相关状态 30001 - 39999 + // 社交相关状态 40001 - 49999 + // 运营模块相关状态 50001 - 59999 +} diff --git a/shared/pubUtils/util.ts b/shared/pubUtils/util.ts index d1297f15c..ae04a7bcf 100644 --- a/shared/pubUtils/util.ts +++ b/shared/pubUtils/util.ts @@ -1,3 +1,4 @@ +import { STATUS } from './../consts/statusCode'; import { getGamedata } from './gamedata'; import { HeroModel } from '../db/Hero'; @@ -179,4 +180,9 @@ export function getRandEelm(source: Array = [], cnt = 1): Array { } } return source.filter((_item, idx) => idxs.has(idx)); +} + +export function resResult(status: {code: number, simStr: string}, data = null) { + const { code, simStr } = status; + return {code, msg: simStr, data}; } \ No newline at end of file diff --git a/web-server/app/controller/game.ts b/web-server/app/controller/game.ts index 42a3beab5..3f706264d 100644 --- a/web-server/app/controller/game.ts +++ b/web-server/app/controller/game.ts @@ -1,5 +1,4 @@ -import { SERVER_NOT_FOUND } from '@consts/statusCode'; -import { STATUS_SUC } from '@consts/statusCode'; +import { STATUS } from '@consts/statusCode'; import { GameModel } from '@db/Game'; import { Controller } from 'egg'; @@ -9,9 +8,9 @@ export default class GameController extends Controller { const { serverType } = ctx.request.body; const serverList: Array = await GameModel.getServerListByType(serverType); if (serverList && serverList.length > 0) { - ctx.body = { status: STATUS_SUC.code, data: { serverList } }; + ctx.body = ctx.service.utils.resResult(STATUS.SUCCESS, { serverList }); } else { - ctx.body = ctx.service.utils.exceptionResult(SERVER_NOT_FOUND); + ctx.body = ctx.service.utils.resResult(STATUS.SERVER_NOT_FOUND); } } } diff --git a/web-server/app/middleware/parmsDecode.ts b/web-server/app/middleware/parmsDecode.ts index 7113fa49d..0ce2328bd 100644 --- a/web-server/app/middleware/parmsDecode.ts +++ b/web-server/app/middleware/parmsDecode.ts @@ -1,4 +1,4 @@ -import { ENCRYPT_KEY, ENCRYPT_IV } from './../../../shared/consts/consts'; +import { ENCRYPT_KEY, ENCRYPT_IV } from '@consts/consts'; import { Context } from 'egg'; const crypto = require('crypto'); const isJSON = require('koa-is-json'); diff --git a/web-server/app/middleware/tokenParser.ts b/web-server/app/middleware/tokenParser.ts index 72af59fed..b70f2658c 100644 --- a/web-server/app/middleware/tokenParser.ts +++ b/web-server/app/middleware/tokenParser.ts @@ -1,17 +1,17 @@ -import { STATUS_TOKEN_ERR, STATUS_WRONG_PARMS } from '@consts/statusCode'; -import { UserModel } from './../db/User'; +import { STATUS } from '@consts/statusCode'; +import { UserModel } from '@db/User'; module.exports = () => { return async function tokenParser(ctx, next) { if (!ctx.request.body || !ctx.request.body.token) { console.error('token not found'); - ctx.body = ctx.service.utils.exceptionResult(STATUS_WRONG_PARMS); + ctx.body = ctx.service.utils.resResult(STATUS.WRONG_PARMS); return; } const user = await UserModel.findUserByToken(ctx.request.body.token); if (!user) { console.error('token invalid'); - ctx.body = ctx.service.utils.exceptionResult(STATUS_TOKEN_ERR); + ctx.body = ctx.service.utils.resResult(STATUS.TOKEN_ERR); return; } ctx.uid = user.uid; diff --git a/web-server/app/service/Auth.ts b/web-server/app/service/Auth.ts index 6a0aba237..c3e6b82b2 100644 --- a/web-server/app/service/Auth.ts +++ b/web-server/app/service/Auth.ts @@ -1,6 +1,6 @@ import { RoleModel } from '@db/Role'; import { UserModel } from '@db/User'; -import { SMS_IN_60S, SMS_CNT_LIMIT, STATUS_SUC, STATUS_WRONG_PARMS, SMS_INVALID, ROLE_NOT_FOUND } from '@consts/statusCode'; +import { STATUS } from '@consts/statusCode'; import { smsModel } from '@db/Sms'; import { Service } from 'egg'; import Counter from '@db/Counter'; @@ -51,10 +51,10 @@ export default class Auth extends Service { const sms = await smsModel.findByTel(tel, false); if (sms) { if (await sms.timeLimit(10000)) { - return this.ctx.service.utils.exceptionResult(SMS_IN_60S); + return this.ctx.service.utils.resResult(STATUS.SMS_IN_60S); } if (await sms.cntLimit(8)) { - return this.ctx.service.utils.exceptionResult(SMS_CNT_LIMIT); + return this.ctx.service.utils.resResult(STATUS.SMS_CNT_LIMIT); } } @@ -68,7 +68,7 @@ export default class Auth extends Service { const smsResult = await this.sendSmsCodeByGuodu(tel, code); console.log(smsResult); await smsModel.updateByTel(tel, code, false, new Date(), sms?.hasSendToday() ? sms.countToday + 1 : 1); - return this.ctx.service.utils.exceptionResult(STATUS_SUC); + return this.ctx.service.utils.resResult(STATUS.SUCCESS); } /** @@ -87,19 +87,19 @@ export default class Auth extends Service { return telVerify; } if (!_.isString(code) || code.length !== 6) { - return ctx.service.utils.exceptionResult(STATUS_WRONG_PARMS); + return ctx.service.utils.resResult(STATUS.WRONG_PARMS); } // 手机验证码核验 const smsValid: boolean = await smsModel.validateSms(tel, code); if (!smsValid) { - return ctx.service.utils.exceptionResult(SMS_INVALID); + return ctx.service.utils.resResult(STATUS.SMS_INVALID); } // 用户注册登录 const token = ctx.service.utils.generateStr(256); const user = await UserModel.updateToken(tel, token, platform, pkgName, serverType); - return { status: STATUS_SUC.code, data: { token, uid: user?.uid } }; + return ctx.service.utils.resResult(STATUS.SUCCESS, { token, uid: user?.uid }); } public async checkRole(serverId: number) { @@ -107,9 +107,9 @@ export default class Auth extends Service { const { uid } = ctx; const role = await RoleModel.findByUid(uid, serverId); if (role) { - return { status: STATUS_SUC.code, data: { roleId: role.roleId } }; + return ctx.service.utils.resResult(STATUS.SUCCESS, { roleId: role.roleId }); } - return ctx.service.utils.exceptionResult(ROLE_NOT_FOUND); + return ctx.service.utils.resResult(STATUS.ROLE_NOT_FOUND); } public async createRole(serverId: number, roleName: string) { @@ -121,8 +121,8 @@ export default class Auth extends Service { const seqId = await Counter.getNewCounter('role') || -1; const role = await RoleModel.createRole(uid, serverId, { roleId, code, roleName, seqId }); if (role) { - return { status: STATUS_SUC.code, data: { roleId: role.roleId } }; + return ctx.service.utils.resResult(STATUS.SUCCESS, { roleId: role.roleId }); } - return ctx.service.utils.exceptionResult(ROLE_NOT_FOUND); + return ctx.service.utils.resResult(STATUS.ROLE_NOT_FOUND); } } diff --git a/web-server/app/service/Utils.ts b/web-server/app/service/Utils.ts index 074877c01..9f30e7f3c 100644 --- a/web-server/app/service/Utils.ts +++ b/web-server/app/service/Utils.ts @@ -1,4 +1,5 @@ import { Service } from 'egg'; +import { resResult as pubResult } from '../pubUtils/util'; const csprng = require('csprng'); /** * Utils Service @@ -35,8 +36,7 @@ export default class Utils extends Service { return code; } - public exceptionResult(status) { - const { code, simStr } = status; - return { status: code, data: simStr }; + public resResult(status: {code: number, simStr: string}, data?) { + return pubResult(status, data); } }