添加查询和创建角色功能;建立长连接后返回部分初始数据

This commit is contained in:
liangtongchuan
2020-09-01 22:15:31 +08:00
parent 2617efa6ad
commit dbdb11692c
23 changed files with 466 additions and 145 deletions
+28 -2
View File
@@ -1,7 +1,9 @@
import { RoleModel } from './../db/Role';
import { UserModel } from './../db/User';
import { SMS_IN_60S, SMS_CNT_LIMIT, STATUS_SUC, STATUS_WRONG_PARMS, SMS_INVALID } from './../../../shared/statusCode';
import { SMS_IN_60S, SMS_CNT_LIMIT, STATUS_SUC, STATUS_WRONG_PARMS, SMS_INVALID, ROLE_NOT_FOUND } from './../../../shared/statusCode';
import { smsModel } from './../db/Sms';
import { Service } from 'egg';
import Counter from '../db/Counter';
const _ = require('underscore');
/**
@@ -98,6 +100,30 @@ export default class Auth extends Service {
// 用户注册登录
const token = ctx.service.utils.generateStr(256);
const user = await UserModel.updateToken(tel, token, platform, pkgName, serverType);
return { status: STATUS_SUC, data: { token, uid: user?.uid } };
return { status: STATUS_SUC.code, data: { token, uid: user?.uid } };
}
public async checkRole(serverId: number) {
const ctx = this.ctx;
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.exceptionResult(ROLE_NOT_FOUND);
}
public async createRole(serverId: number, roleName: string) {
console.log('enter Auth createRole');
const ctx = this.ctx;
const { uid } = ctx;
const roleId = ctx.service.utils.genCode(10);
const code = ctx.service.utils.genCode(6);
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.exceptionResult(ROLE_NOT_FOUND);
}
}
+11 -1
View File
@@ -10,7 +10,17 @@ export default class Utils extends Service {
* @param radix 基数
*/
public generateStr(len: number, radix = 36) {
return csprng(len, radix);
return `${csprng(len, radix)}`;
}
public genCode(len) {
const chars = '123456789ABCDEFGHJKLMNPQRSTWXYZabcdefghijklmnopqrstuvwxyz';
const charArr = chars.split('');
let code = '';
for (let i = 0; i < len; i++) {
code += charArr[Math.floor(Math.random() * charArr.length)];
}
return code;
}
/**