防沉迷:定时任务

This commit is contained in:
luying
2021-03-04 20:36:59 +08:00
parent 32bb6cb2e3
commit 8a122b6a4d
11 changed files with 141 additions and 32 deletions

View File

@@ -1,5 +1,6 @@
export enum BANTU_VID_ADDR {
HOST = 'https://sdks.trgame.cn',
IDCARD = '/vid/idcard' // 实名认证
IDCARD = '/vid/idcard', // 实名认证
REPORT_ONLINE = '/addiction_prevention/report_online'
}
export const BANTU_VID_APP_KEY = '05c1c495369769e3c5d98426e9c8c2c0';

View File

@@ -58,7 +58,7 @@ export default class User extends BaseModel {
@prop({ required: false, default: 0 })
todayPlayTime: number; // 今日游戏时间
@prop({ required: false })
refDaily: Date; // 刷新todayPlayTime时间
reportTime: Date; // 汇报时间
@prop({ required: false, default: false })
hasSetPw: boolean; // 是否设置过密码
@@ -149,9 +149,8 @@ export default class User extends BaseModel {
return user;
}
public static async bindTel(uid: number, tel: string, password: string, lean = true) {
let r = await this.encryptPass(password);
const user: UserType = await UserModel.findOneAndUpdate({ uid, isGuest: true }, { $set: { password: r.npassword, salt: r.salt, hasSetPw: true, tel, isGuest: false }}, {new: true}).lean(lean);
public static async bindTel(uid: number, tel: string, lean = true) {
const user: UserType = await UserModel.findOneAndUpdate({ uid, isGuest: true }, { $set: { tel, isGuest: false }}, {new: true}).lean(lean);
return user;
}
@@ -188,6 +187,11 @@ export default class User extends BaseModel {
return user;
}
public static async findUserByUserCode(userCode: string, lean = true) {
const user: UserType = await UserModel.findOne({ userCode }).lean(lean);
return user;
}
public static async addAuth(uid: number, auth: number, lean = true) {
const user: UserType = await UserModel.findOneAndUpdate({ uid }, { auth }).select('uid tel').lean(lean);
return user;
@@ -208,6 +212,12 @@ export default class User extends BaseModel {
const user: UserType[] = await UserModel.find(searchObj).select('uid tel username serverType auth').lean(lean);
return user;
}
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);
return user;
}
}

View File

@@ -2,20 +2,41 @@ import * as request from "request-promise";
import * as crypto from 'crypto'
import { BANTU_VID_ADDR, BANTU_VID_APP_KEY } from '../consts';
/**
* 在线报告
* @param userCode 账号
* @param packageName 包名
*/
export async function reportOnline ( userCode: string, packageName: string) {
if(!packageName || packageName==''){
packageName = 'com.bantu.nfsg'
}
let result = await vidHttpRequest(BANTU_VID_ADDR.REPORT_ONLINE, {
account: userCode,
package: packageName
});
if(result && result.code !== 1) {
console.error(result.msg);
}
return result;
}
/**
* 实名认证
* @param name 真实姓名
* @param idNum 身份证号
* @param roleId 账号
* @param userCode 账号
* @param packageName 包名
*/
export async function authenticate (name: string, idNum: string, roleId: string, packageName: string) {
export async function authenticate (name: string, idNum: string, userCode: string, packageName: string) {
if(!packageName || packageName==''){
packageName = 'com.bantu.nfsg'
}
let result = await vidHttpRequest(BANTU_VID_ADDR.IDCARD, {
account: roleId,
account: userCode,
cardno: idNum,
name,
appkey: BANTU_VID_APP_KEY,