init
This commit is contained in:
@@ -1,23 +1,23 @@
|
||||
|
||||
import { COUNTER, DEFAULT_LV, ADULT_AGE, GUEST_MAX_TIME, BLOCK_TYPE, DEBUG_MAGIC_WORD } from '@consts';
|
||||
import { RoleModel, WarStar } from '@db/Role';
|
||||
import { UserModel, UserType } from '@db/User';
|
||||
import { STATUS, GET_SMS_TYPE, ADDICTION_PREVENTION_CODE } from '@consts';
|
||||
import { smsModel } from '@db/Sms';
|
||||
import { COUNTER, DEFAULT_LV, ADULT_AGE, GUEST_MAX_TIME, BLOCK_TYPE, DEBUG_MAGIC_WORD } from '../../../shared/consts';
|
||||
import { RoleModel, WarStar } from '../../../shared/db/Role';
|
||||
import { UserModel, UserType } from '../../../shared/db/User';
|
||||
import { STATUS, GET_SMS_TYPE, ADDICTION_PREVENTION_CODE } from '../../../shared/consts';
|
||||
import { smsModel } from '../../../shared/db/Sms';
|
||||
import { Service } from 'egg';
|
||||
import Counter from '@db/Counter';
|
||||
import { gameData, getExpByLv } from '../pubUtils/data';
|
||||
import Counter from '../../../shared/db/Counter';
|
||||
import { gameData, getExpByLv } from '../../../shared/pubUtils/data';
|
||||
import { isString } from 'underscore';
|
||||
import { getAge, nowSeconds } from '../pubUtils/timeUtil';
|
||||
import { isDevelopEnv, resResult } from '../pubUtils/util';
|
||||
import { checkTeeanAgerTime } from '../pubUtils/authenticateUtil';
|
||||
// import { authenticate } from '../pubUtils/httpUtil';
|
||||
import { getChannelId, loginValidata } from '../pubUtils/sdkUtil';
|
||||
import { LoginValidateData37 } from 'app/domain/sdk';
|
||||
import { ServerlistModel } from '@db/Serverlist';
|
||||
import { DicWar } from '../pubUtils/dictionary/DicWar';
|
||||
import { RScriptRecordModel } from '@db/RScriptRecord';
|
||||
import { deletRole } from '../pubUtils/roleUtil';
|
||||
import { getAge, nowSeconds } from '../../../shared/pubUtils/timeUtil';
|
||||
import { isDevelopEnv, resResult } from '../../../shared/pubUtils/util';
|
||||
import { checkTeeanAgerTime } from '../../../shared/pubUtils/authenticateUtil';
|
||||
// import { authenticate } from '../../../shared/pubUtils/httpUtil';
|
||||
import { getChannelId, loginValidata } from '../../../shared/pubUtils/sdkUtil';
|
||||
import { LoginValidateData37 } from '../../../shared/domain/sdk';
|
||||
import { ServerlistModel } from '../../../shared/db/Serverlist';
|
||||
import { DicWar } from '../../../shared/pubUtils/dictionary/DicWar';
|
||||
import { RScriptRecordModel } from '../../../shared/db/RScriptRecord';
|
||||
import { deletRole } from '../../../shared/pubUtils/roleUtil';
|
||||
|
||||
/**
|
||||
* Test Service
|
||||
@@ -51,7 +51,7 @@ export default class Auth extends Service {
|
||||
if (getuiCID) {//更新个推cid
|
||||
await UserModel.updateGetuiCID(tel, getuiCID);
|
||||
}
|
||||
if(user && user.userCode) {
|
||||
if (user && user.userCode) {
|
||||
ctx.service.utils.checkOnlineUser(user.userCode);
|
||||
}
|
||||
let param = this.getReturnParam(user, null);
|
||||
@@ -74,7 +74,7 @@ export default class Auth extends Service {
|
||||
if (getuiCID) {//更新个推cid
|
||||
await UserModel.updateGetuiCID(user.tel, getuiCID);
|
||||
}
|
||||
if(user && user.userCode) {
|
||||
if (user && user.userCode) {
|
||||
ctx.service.utils.checkOnlineUser(user.userCode);
|
||||
}
|
||||
let param = this.getReturnParam(user, oldUser.deviceId);
|
||||
@@ -113,7 +113,7 @@ export default class Auth extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
public checkTelNo(telNo) {
|
||||
public checkTelNo(telNo: string) {
|
||||
if (!isString(telNo)) {
|
||||
return { status: 1, resResult: resResult(STATUS.WRONG_PARMS) };
|
||||
}
|
||||
@@ -123,7 +123,9 @@ export default class Auth extends Service {
|
||||
return { status: 0 };
|
||||
}
|
||||
|
||||
async sendSmsCodeByGuodu(tel, code) {
|
||||
async sendSmsCodeByGuodu(tel: string, code: string) {
|
||||
console.log("准备发送短信...");
|
||||
|
||||
const ctx = this.ctx;
|
||||
const url = `http://221.179.172.68:8000/QxtSms/QxtFirewall?OperID=bantu3&OperPass=c8XcTffG&DesMobile=${tel}&Content=${encodeURIComponent(`【同人游戏】验证码${code},您正在登录赵云传,若非本人操作,请勿泄露`)}&Content_Code=1`;
|
||||
const result = await ctx.curl(url, {
|
||||
@@ -132,7 +134,7 @@ export default class Auth extends Service {
|
||||
return result.data;
|
||||
}
|
||||
|
||||
testLimit(sms, interval) {
|
||||
testLimit(sms: any, interval: number) {
|
||||
if (sms.updateTime.getTime() > Date.now() - interval) {
|
||||
return true;
|
||||
}
|
||||
@@ -146,6 +148,7 @@ export default class Auth extends Service {
|
||||
|
||||
public async getSms(type: number, tel: string) {
|
||||
const ctx = this.ctx;
|
||||
console.log("准备发送短信...");
|
||||
|
||||
const telVerify = this.checkTelNo(tel);
|
||||
if (telVerify.status !== 0) {
|
||||
@@ -158,8 +161,16 @@ export default class Auth extends Service {
|
||||
return ctx.service.utils.resResult(STATUS.TEL_HAS_USED);
|
||||
}
|
||||
}
|
||||
console.log(2, tel);
|
||||
|
||||
let sms: any;
|
||||
try {
|
||||
sms = await smsModel.findByTel(tel, false);
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
console.log(3, sms);
|
||||
|
||||
const sms = await smsModel.findByTel(tel, false);
|
||||
if (sms) {
|
||||
if (await sms.timeLimit(10000)) {
|
||||
return this.ctx.service.utils.resResult(STATUS.SMS_IN_60S);
|
||||
@@ -168,7 +179,7 @@ export default class Auth extends Service {
|
||||
return this.ctx.service.utils.resResult(STATUS.SMS_CNT_LIMIT);
|
||||
}
|
||||
}
|
||||
|
||||
console.log(sms);
|
||||
let code = '';
|
||||
if (sms && (!sms.used || sms.isFixed)) {
|
||||
code = sms.code;
|
||||
@@ -176,6 +187,7 @@ export default class Auth extends Service {
|
||||
code = this.ctx.service.utils.generateNum(6);
|
||||
}
|
||||
|
||||
|
||||
const smsResult = await this.sendSmsCodeByGuodu(tel, code);
|
||||
console.log(smsResult);
|
||||
await smsModel.updateByTel(tel, code, false, new Date(), sms?.hasSendToday() ? sms.countToday + 1 : 1);
|
||||
@@ -225,11 +237,11 @@ export default class Auth extends Service {
|
||||
|
||||
// 用户注册登录
|
||||
const token = ctx.service.utils.generateStr(256);
|
||||
const {user, deviceId: oldDeviceId} = await UserModel.createOrUpdate(false, tel, token, platform, pkgName, serverType, deviceId, ctx.clientIp);
|
||||
const { user, deviceId: oldDeviceId } = await UserModel.createOrUpdate(false, tel, token, platform, pkgName, serverType, deviceId, ctx.clientIp);
|
||||
if (getuiCID) {//更新个推cid
|
||||
await UserModel.updateGetuiCID(tel, getuiCID);
|
||||
}
|
||||
if(user && user.userCode) {
|
||||
if (user && user.userCode) {
|
||||
ctx.service.utils.checkOnlineUser(user.userCode);
|
||||
}
|
||||
let param = this.getReturnParam(user, oldDeviceId);
|
||||
@@ -289,12 +301,12 @@ export default class Auth extends Service {
|
||||
|
||||
// 用户注册登录
|
||||
const token = ctx.service.utils.generateStr(256);
|
||||
const {user, deviceId: oldDeviceId} = await UserModel.checkPass(tel, pw, token, deviceId);
|
||||
const { user, deviceId: oldDeviceId } = await UserModel.checkPass(tel, pw, token, deviceId);
|
||||
if (!user) return ctx.service.utils.resResult(STATUS.PASSWORD_ERR);
|
||||
if (getuiCID) {//更新个推cid
|
||||
await UserModel.updateGetuiCID(tel, getuiCID);
|
||||
}
|
||||
if(user && user.userCode) {
|
||||
if (user && user.userCode) {
|
||||
ctx.service.utils.checkOnlineUser(user.userCode);
|
||||
}
|
||||
let param = this.getReturnParam(user, oldDeviceId);
|
||||
@@ -305,14 +317,14 @@ export default class Auth extends Service {
|
||||
const ctx = this.ctx;
|
||||
const { uid } = ctx;
|
||||
let canLogin = await this.ctx.service.utils.validateCanLogin();
|
||||
if(!canLogin) return this.ctx.service.utils.resResult(STATUS.ONLINE_USER_MAX);
|
||||
if (!canLogin) return this.ctx.service.utils.resResult(STATUS.ONLINE_USER_MAX);
|
||||
|
||||
const role = await RoleModel.findByUid(uid, serverId, 'roleId blockType +closeTime');
|
||||
if (role) {
|
||||
if(role.blockType == BLOCK_TYPE.BLOCK) {
|
||||
if (role.blockType == BLOCK_TYPE.BLOCK) {
|
||||
return ctx.service.utils.resResult(STATUS.BLOCKED);
|
||||
}
|
||||
if(role.closeTime > 0 && role.closeTime < nowSeconds()) {
|
||||
if (role.closeTime > 0 && role.closeTime < nowSeconds()) {
|
||||
return ctx.service.utils.resResult(STATUS.ROLE_CLOSED);
|
||||
}
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS, { roleId: role.roleId });
|
||||
@@ -325,12 +337,12 @@ export default class Auth extends Service {
|
||||
const ctx = this.ctx;
|
||||
const { uid } = ctx;
|
||||
const exist = await RoleModel.exists({ 'userInfo.uid': uid, serverId });
|
||||
if (exist === true) {
|
||||
if (exist) {
|
||||
return ctx.service.utils.resResult(STATUS.ROLE_EXIST);
|
||||
}
|
||||
const server = await ServerlistModel.findByServerId(serverId);
|
||||
if(!server) return ctx.service.utils.resResult(STATUS.SERVER_NOT_FOUND);
|
||||
if(nowSeconds() > server.stopRegisterTime) return ctx.service.utils.resResult(STATUS.SERVER_STOP_REGISTER);
|
||||
if (!server) return ctx.service.utils.resResult(STATUS.SERVER_NOT_FOUND);
|
||||
if (nowSeconds() > server.stopRegisterTime) return ctx.service.utils.resResult(STATUS.SERVER_STOP_REGISTER);
|
||||
|
||||
const roleId = ctx.service.utils.genCode(10);
|
||||
const code = ctx.service.utils.genCode(6);
|
||||
@@ -338,7 +350,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 }, distinctId);
|
||||
if (role) {
|
||||
if(server.isReview) { // 审核服跳关卡
|
||||
if (server.isReview) { // 审核服跳关卡
|
||||
await this.skipPrologueWhenReview(roleId);
|
||||
}
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS, { roleId: role.roleId });
|
||||
@@ -348,12 +360,12 @@ export default class Auth extends Service {
|
||||
|
||||
private async skipPrologueWhenReview(roleId: string) {
|
||||
const fromWarId = 101, toWarId = 103;
|
||||
let warStars: WarStar[] = [];
|
||||
let warStars: WarStar[] = [];
|
||||
let insertParams: DicWar[] = [];
|
||||
for(let i = fromWarId; i <= toWarId; i++) {
|
||||
for (let i = fromWarId; i <= toWarId; i++) {
|
||||
let dicWar = gameData.war.get(i);
|
||||
insertParams.push(dicWar);
|
||||
if(i < toWarId) warStars.push({ id: dicWar.war_id, warType: dicWar.warType, star: 0, stars: [] });
|
||||
if (i < toWarId) warStars.push({ id: dicWar.war_id, warType: dicWar.warType, star: 0, stars: [] });
|
||||
}
|
||||
await RScriptRecordModel.insertScripts(roleId, insertParams, [toWarId]);
|
||||
await RoleModel.updateRoleInfo(roleId, { warStar: warStars, mainWarId: toWarId - 1 })
|
||||
@@ -432,22 +444,22 @@ export default class Auth extends Service {
|
||||
channelType: string, pst: string, clientId: string, deviceId: string, platform: string, platformAppid: string, childGameId: number, pkgName: string, serverType: string, getuiCID: string, distinctId: string
|
||||
}) {
|
||||
const { channelType, pst, clientId, deviceId, platform, platformAppid, childGameId, pkgName, serverType, getuiCID } = params;
|
||||
|
||||
|
||||
const ctx = this.ctx;
|
||||
|
||||
let requestResult = await loginValidata(channelType, { clientId, pst, platform, platformAppid, childGameId });
|
||||
if(!requestResult) return this.ctx.service.utils.resResult(STATUS.CHANNEL_ERR);
|
||||
if (!requestResult) return this.ctx.service.utils.resResult(STATUS.CHANNEL_ERR);
|
||||
|
||||
if(requestResult.code != 1) {
|
||||
if (requestResult.code != 1) {
|
||||
return this.ctx.service.utils.resResult(STATUS.VALIDATE_ERR, requestResult);
|
||||
}
|
||||
|
||||
let channelId = getChannelId(channelType, requestResult.data.uid);
|
||||
const token = ctx.service.utils.generateStr(256);
|
||||
let { user, deviceId: oldDeviceId } = await UserModel.createOrUpdateChannelUser(channelId, channelType, {
|
||||
...requestResult.data, childGameId:`${childGameId}`, platformAppid
|
||||
...requestResult.data, childGameId: `${childGameId}`, platformAppid
|
||||
}, token, platform, pkgName, serverType, deviceId, ctx.clientIp);
|
||||
if(user && user.userCode) {
|
||||
if (user && user.userCode) {
|
||||
ctx.service.utils.checkOnlineUser(user.userCode);
|
||||
}
|
||||
|
||||
@@ -455,7 +467,7 @@ export default class Auth extends Service {
|
||||
await UserModel.updateGetuiCIDByChannel(channelId, getuiCID);
|
||||
}
|
||||
let channelInfo: any = {};
|
||||
if(channelType == '37') {
|
||||
if (channelType == '37') {
|
||||
channelInfo.uid = (<LoginValidateData37>user.channelInfo).uid;
|
||||
}
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS, {
|
||||
@@ -468,36 +480,36 @@ export default class Auth extends Service {
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
public async deleteRole(roleId: string, magicWord: string) {
|
||||
console.log('enter Auth deleteRole');
|
||||
const ctx = this.ctx;
|
||||
if(magicWord != DEBUG_MAGIC_WORD) {
|
||||
if (magicWord != DEBUG_MAGIC_WORD) {
|
||||
return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
}
|
||||
if(!isDevelopEnv(ctx.app.config.realEnv)) {
|
||||
if (!isDevelopEnv(ctx.app.config.realEnv)) {
|
||||
return ctx.service.utils.resResult(STATUS.DEVELOP_ONLY);
|
||||
}
|
||||
let result = await deletRole(roleId);
|
||||
if(!result) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
if (!result) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
|
||||
public async closeAccount(roleId: string) {
|
||||
const ctx = this.ctx;
|
||||
let role = await RoleModel.findByRoleId(roleId, '+closeTime +cancelCloseTime userInfo');
|
||||
if(!role || role.userInfo.uid != ctx.uid ) return ctx.service.utils.resResult(STATUS.ROLE_NOT_FOUND);
|
||||
if(role.cancelCloseTime > 0 && role.cancelCloseTime + 24 * 60 * 60 > nowSeconds() )
|
||||
if (!role || role.userInfo.uid != ctx.uid) return ctx.service.utils.resResult(STATUS.ROLE_NOT_FOUND);
|
||||
if (role.cancelCloseTime > 0 && role.cancelCloseTime + 24 * 60 * 60 > nowSeconds())
|
||||
return ctx.service.utils.resResult(STATUS.ROLE_CLOSE_COOL_DOWN, `注销冷却中,请${this.getCdTimeStr(role.cancelCloseTime)}后再试`);
|
||||
if(role.closeTime > 0) return ctx.service.utils.resResult(STATUS.ROLE_CLOSED);
|
||||
if (role.closeTime > 0) return ctx.service.utils.resResult(STATUS.ROLE_CLOSED);
|
||||
role = await RoleModel.closeAccount(roleId, nowSeconds() + 15 * 24 * 60 * 60);
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS, { closeTime: role.closeTime });
|
||||
}
|
||||
|
||||
private getCdTimeStr(cancelCloseTime: number) {
|
||||
let gap = cancelCloseTime + 24 * 60 * 60 - nowSeconds();
|
||||
let h = Math.floor(gap/60/60);
|
||||
let m = Math.floor((gap - h * 60 * 60 )/60);
|
||||
let h = Math.floor(gap / 60 / 60);
|
||||
let m = Math.floor((gap - h * 60 * 60) / 60);
|
||||
let s = gap - h * 60 * 60 - m * 60;
|
||||
return `${h}小时${m}分${s}秒`
|
||||
}
|
||||
@@ -505,10 +517,10 @@ export default class Auth extends Service {
|
||||
public async cancelCloseAccount(roleId: string) {
|
||||
const ctx = this.ctx;
|
||||
let role = await RoleModel.findByRoleId(roleId, '+cancelCloseTime userInfo');
|
||||
if(!role || role.userInfo.uid != ctx.uid ) return ctx.service.utils.resResult(STATUS.ROLE_NOT_FOUND);
|
||||
if (!role || role.userInfo.uid != ctx.uid) return ctx.service.utils.resResult(STATUS.ROLE_NOT_FOUND);
|
||||
|
||||
role = await RoleModel.cancelCloseAccount(roleId, nowSeconds());
|
||||
if(!role) return ctx.service.utils.resResult(STATUS.ROLE_CLOSE_TIME_OVER);
|
||||
if (!role) return ctx.service.utils.resResult(STATUS.ROLE_CLOSE_TIME_OVER);
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS, { closeTime: role.closeTime });
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user