防沉迷:定时任务
This commit is contained in:
@@ -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';
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user