登录:显示防沉迷类型

This commit is contained in:
luying
2021-03-13 15:07:41 +08:00
parent fef762747f
commit 482d4fa628
4 changed files with 29 additions and 17 deletions

View File

@@ -294,19 +294,8 @@ export async function reportOneOnline(roleId: string, userCode: string, sid: str
user = await UserModel.updatePlayTime(userCode, guestTimeInc, result.total); // 记录时间
guestTime = user.guestTime;
}
if(result.code != ADDICTION_PREVENTION_CODE.SUCCESS && result.age != -1) { // 未成年人防沉迷
pinus.app.channelService.pushMessageByUids('onPlayTime', resResult(STATUS.SUCCESS, {
isGuest,
guestTime, // 游客已体验时间
hasAuthenticated, // 是否进行过实名认证
isAdult, // 是否已成年
todayPlayTime: result.total, // 今天已游戏时长
type: result.code
} ), [{uid: roleId, sid: sid}]);
} else {
if ((isGuest || !hasAuthenticated) && guestTime > GUEST_MAX_TIME) {
if ( guestTime > GUEST_MAX_TIME ) {
pinus.app.channelService.pushMessageByUids('onPlayTime', resResult(STATUS.SUCCESS, {
isGuest,
guestTime, // 游客已体验时间
@@ -316,5 +305,18 @@ export async function reportOneOnline(roleId: string, userCode: string, sid: str
type: ADDICTION_PREVENTION_CODE.GUEST,
} ), [{uid: roleId, sid: sid}]);
}
} else {
if(result.code != ADDICTION_PREVENTION_CODE.SUCCESS && result.age != -1) { // 未成年人防沉迷
user = await UserModel.updatePlayTime(userCode, 0, result.total, result.code); // 记录时间
pinus.app.channelService.pushMessageByUids('onPlayTime', resResult(STATUS.SUCCESS, {
isGuest,
guestTime, // 游客已体验时间
hasAuthenticated, // 是否进行过实名认证
isAdult, // 是否已成年
todayPlayTime: result.total, // 今天已游戏时长
type: result.code
} ), [{uid: roleId, sid: sid}]);
}
}
}

View File

@@ -57,6 +57,8 @@ export default class User extends BaseModel {
pi: string; // 已通过实名认证用户唯一标识
@prop({ required: false, default: 0 })
todayPlayTime: number; // 今日游戏时间
@prop({ required: false, default: 0 })
todayPlayType: number; // 未成年防沉迷类型
@prop({ required: false })
reportTime: Date; // 汇报时间
@@ -215,8 +217,10 @@ export default class User extends BaseModel {
}
public static async updatePlayTime(userCode: string, guestTimeInc: number, todayPlayTime: number, lean = true) {
const user: UserType = await UserModel.findOneAndUpdate({ userCode }, { $inc: { guestTime: guestTimeInc }, $set: { todayPlayTime, reportTime: new Date() }}, { new: true }).lean(lean);
public static async updatePlayTime(userCode: string, guestTimeInc: number, todayPlayTime: number, todayPlayType?: number) {
let update = { todayPlayTime, todayPlayType, reportTime: new Date() };
if(todayPlayType) update.todayPlayType;
const user: UserType = await UserModel.findOneAndUpdate({ userCode }, { $inc: { guestTime: guestTimeInc }, $set: update}, { new: true }).lean();
return user;
}
}

View File

@@ -4,7 +4,7 @@ import { DEFAULT_HEROES } from '@consts';
import { HeroModel } from '@db/Hero';
import { RoleModel } from '@db/Role';
import { UserModel, UserType } from '@db/User';
import { STATUS, GET_SMS_TYPE } from '@consts';
import { STATUS, GET_SMS_TYPE, ADDICTION_PREVENTION_CODE } from '@consts';
import { smsModel } from '@db/Sms';
import { Service } from 'egg';
import Counter from '@db/Counter';
@@ -95,9 +95,15 @@ export default class Auth extends Service {
let age = getAge(user.birthday);
let isAdult = age >= ADULT_AGE;
let todayPlayTime = user.todayPlayTime;
let type = user.todayPlayType;
if(shouldRefresh(user.reportTime, new Date(), 0)) {
todayPlayTime = 0;
type = 0;
}
if((user.isGuest || !user.hasAuthenticated) && user.guestTime > GUEST_MAX_TIME) {
type = ADDICTION_PREVENTION_CODE.GUEST;
}
return {
tel: user.tel,
isGuest: !!user.isGuest,
@@ -105,7 +111,7 @@ export default class Auth extends Service {
hasAuthenticated: !!user.hasAuthenticated, // 是否进行过实名认证
isAdult, // 是否已成年
todayPlayTime, // 今天已游戏时长
type, // 防沉迷类型
hasSetPw: user.hasSetPw, // 是否设置了密码
token: user.token, // 用户token
userCode: user.userCode // 用户标识

View File

@@ -40,7 +40,7 @@ export default (appInfo: EggAppInfo) => {
},
};
config.decodeParm = false;
config.decodeParm = true;
config.static = {
prefix: '/',