登录:游客登录逻辑变更为设备唯一

This commit is contained in:
luying
2021-03-11 15:45:29 +08:00
parent 777b657650
commit adff3228d3
2 changed files with 27 additions and 21 deletions

View File

@@ -1,4 +1,4 @@
import { COUNTER, HERO_SYSTEM_TYPE, DEFAULT_LV, DEFAULT_ITEMS, ITID, DEFAULT_GOLD, DEFAULT_HERO_LV, DEFAULT_EQUIPS, DEFAULT_COIN, ADULT_AGE, GUEST_MAX_TIME, GUEST_DAY } from '@consts';
import { COUNTER, HERO_SYSTEM_TYPE, DEFAULT_LV, DEFAULT_ITEMS, ITID, DEFAULT_GOLD, DEFAULT_HERO_LV, DEFAULT_EQUIPS, DEFAULT_COIN, ADULT_AGE, GUEST_MAX_TIME, GUEST_DAY, FIGURE_UNLOCK_CONDITION } from '@consts';
import { DEFAULT_HEROES } from '@consts';
import { HeroModel } from '@db/Hero';
import { RoleModel } from '@db/Role';
@@ -35,28 +35,27 @@ export default class Auth extends Service {
if(isGuest) {
const tel = ctx.service.utils.genCode(10);
const token = ctx.service.utils.generateStr(256);
let lastGuest = null;
let guestTime = 0;
if(deviceId != DEFAULT_DEVICE_ID.PC) {
lastGuest = await UserModel.getLastDeviceGuest(deviceId);
if(lastGuest) {
guestTime = lastGuest.guestTime;
let lastGuest = await UserModel.getLastDeviceGuest(deviceId, token);
if(lastGuest) {
let guestTime = lastGuest.guestTime;
if(guestTime > GUEST_MAX_TIME) {
loginType = 3;
return this.ctx.service.utils.resResult(STATUS.SUCCESS, {
canLogin: true,
loginType
});
} else {
let { createdAt } = lastGuest;
if(shouldRefresh(createdAt, new Date(), 0, GUEST_DAY)) {
guestTime = 0;
}
let param = this.getReturnParam(user);
return this.ctx.service.utils.resResult(STATUS.SUCCESS, {
canLogin: true, // 未设置密码等于未创建账号
loginType,
...param
});
}
}
if(guestTime > GUEST_MAX_TIME) {
loginType = 3;
return this.ctx.service.utils.resResult(STATUS.SUCCESS, {
canLogin: true,
loginType
});
} else {
user = await UserModel.createUser(isGuest, tel, token, platform, pkgName, serverType, deviceId, guestTime);
user = await UserModel.createUser(isGuest, tel, token, platform, pkgName, serverType, deviceId);
let param = this.getReturnParam(user);
return this.ctx.service.utils.resResult(STATUS.SUCCESS, {
@@ -309,6 +308,7 @@ export default class Auth extends Service {
const role = await RoleModel.createRole(uid, serverId, { roleId, code, roleName, seqId, lv: DEFAULT_LV, exp: (getExpByLv(DEFAULT_LV - 1) || { sum: 0 }).sum || 0 });
if (role) {
let skinIds = new Array<number>();
let conditions = new Array<{type: number, num: number}>()
for (let hid of DEFAULT_HEROES) {
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (hero) {
@@ -326,9 +326,14 @@ export default class Auth extends Service {
skins: [{ id: initialSkin, enable: true }], lv: DEFAULT_HERO_LV, exp: getHeroExpByLv(DEFAULT_HERO_LV - 1) || 0
});
skinIds.push(initialSkin);
conditions.push({type: FIGURE_UNLOCK_CONDITION.GET_HERO, num: hid});
conditions.push({type: FIGURE_UNLOCK_CONDITION.GET_SKIN, num: initialSkin});
await calPlayerCeAndSave(HERO_SYSTEM_TYPE.INIT, roleId, hero, {});
}
// 解锁形象
await ctx.service.utils.unlockFigure(roleId, conditions, role);
await reCalAllHeroCe(HERO_SYSTEM_TYPE.ADD_SKIN, roleId, {}, skinIds)
for (let { id, count } of DEFAULT_ITEMS) {