2299 lines
92 KiB
TypeScript
2299 lines
92 KiB
TypeScript
import GameUtil from '../core/GameUtil';
|
||
import EquipMgr from "../object/EquipMgr";
|
||
import DBFrom from "./DBForm";
|
||
import SKDataUtil from "../gear/SKDataUtil";
|
||
import SKRedisUtil from "../gear/SKRedisUtil";
|
||
import SKLogger from '../gear/SKLogger';
|
||
import Pet from '../object/Pet';
|
||
import SKDBUtil from '../gear/SKDBUtil';
|
||
import SkillBase from "../skill/core/SkillBase";
|
||
import Horse from '../horse/Horse';
|
||
import { MsgCode } from '../role/EEnum';
|
||
import Scheme from '../object/Scheme';
|
||
import RobotMgr from '../core/RobotMgr';
|
||
import MailData from '../mail/MailData';
|
||
import MagicWeaponMgr from '../object/MagicWeaponMgr';
|
||
|
||
export default class DB {
|
||
|
||
static init() {
|
||
};
|
||
|
||
static query(sql: string, callback: (error: any, rows: any[]) => void) {
|
||
if (SKDataUtil.isEmptyString(sql)) {
|
||
let msg = `SQL错误:[SQL不能为空]!`
|
||
SKLogger.warn(msg);
|
||
callback(new Error(msg), null);
|
||
return;
|
||
}
|
||
DBFrom.shared.query(sql, callback);
|
||
};
|
||
// 设置
|
||
static set(key: any, value: any, callback: (success: boolean) => void) {
|
||
if (key == null) {
|
||
callback(false);
|
||
return;
|
||
}
|
||
let sql = `INSERT INTO t_tbl(t_key,t_value )VALUES('${key}','${value}') ON DUPLICATE KEY UPDATE t_value='${value}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(false);
|
||
return;
|
||
}
|
||
if (rows.length == 0) {
|
||
callback(false);
|
||
return;
|
||
}
|
||
callback(true);
|
||
});
|
||
};
|
||
// 获取
|
||
static get(key: any, callback: (result: any) => void) {
|
||
if (key == null) {
|
||
callback(null);
|
||
return;
|
||
}
|
||
var sql = `SELECT * FROM t_tbl WHERE t_key='${key}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(null);
|
||
return;
|
||
}
|
||
if (rows.length == 0) {
|
||
callback(null);
|
||
return;
|
||
}
|
||
callback(rows[0].t_value);
|
||
});
|
||
};
|
||
// 更新登录信息 TODO 加入 version
|
||
static updateLoginInfo(accountid: any, ip: any, mac: any) {
|
||
let sql = `UPDATE qy_account SET last_login_time=now(),login_ip='${ip}',mac='${mac}' WHERE accountid =${accountid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
})
|
||
}
|
||
// 帐号登录
|
||
static accountLogin(logininfo: any, callback: (code: number, msg: string, data: any) => void) {
|
||
let account = logininfo.account;
|
||
let password = logininfo.password;
|
||
let ip = logininfo.ip == null ? "" : logininfo.ip;
|
||
let mac = logininfo.mac;
|
||
if (account == null || password == null) {
|
||
SKLogger.warn(`$警告:[${account}:${password}]帐号或密码不能为空!`);
|
||
callback(MsgCode.FAILED, "帐号或密码不能为空", null);
|
||
return;
|
||
}
|
||
account.replace("\'", "\\\'");
|
||
password.replace("\"", "\\\"");
|
||
let sql = `SELECT * FROM qy_account WHERE account = "${account}";`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, "登录数据库错误!", null);
|
||
return;
|
||
}
|
||
if (rows.length > 0) {
|
||
let data = rows[0];
|
||
if (password == data.password) {
|
||
callback(MsgCode.SUCCESS, "登录成功", data);
|
||
SKLogger.debug(`用户[${account}:${password}]登录帐号成功!`);
|
||
data.login_ip = ip;
|
||
data.mac = mac;
|
||
DB.updateLoginInfo(data.accountid, ip, mac);
|
||
// SKRedisUtil.setValue(`${account}_login_data`, data);
|
||
} else {
|
||
SKLogger.warn(`$警告:[${account}:${password}]登录帐号密码错误!`);
|
||
callback(MsgCode.LOGIN_ACCOUNT_PWD_ERROR, "登录帐号密码错误", null);
|
||
}
|
||
} else {
|
||
SKLogger.warn(`$警告:[${account}:${password}]登录帐号不存在!`);
|
||
let msg = `登录帐号不存在`
|
||
callback(MsgCode.LOGIN_ACCOUNT_PWD_ERROR, msg, null);
|
||
}
|
||
})
|
||
}
|
||
// 帐号注册
|
||
static accountRegister(register_info: any, callback: (code: number, msg: string) => void) {
|
||
let account = register_info.account;
|
||
let password = register_info.password;
|
||
let invitecode = register_info.invitecode;
|
||
var sql = `SELECT * FROM qy_account WHERE account = "${account}";`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, `注册帐号:SQL错误,请稍候重试!`);
|
||
return;
|
||
}
|
||
if (rows.length > 0) {
|
||
callback(MsgCode.FAILED, `帐号[${account}]已注册,请更换!`);
|
||
return;
|
||
} else {
|
||
sql = `INSERT INTO qy_account(account, password,invite, register_time) VALUES('${account}', '${password}','${invitecode}', NOW() );`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, `注册帐号:插入失败,请稍候重试!`);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, `帐号${account}注册成功!`);
|
||
});
|
||
}
|
||
});
|
||
}
|
||
// 修改帐号密码
|
||
static async accountChangePassword(data: any, callback: (code: number, msg: string) => void) {
|
||
let account = data.account;
|
||
let safecode = data.safecode;
|
||
let password = data.password;
|
||
let loginData: any = await SKRedisUtil.getValue(`${account}_login_data`);
|
||
if (loginData) {
|
||
loginData.password = password;
|
||
}
|
||
let sql = `UPDATE qy_account SET password = '${password}' WHERE account = '${account}' and safecode like '_:${safecode}';`;
|
||
DB.query(sql, (error: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, `修改密码数据库错误,请稍候重试!`);
|
||
return;
|
||
} else {
|
||
callback(MsgCode.SUCCESS, `修改密码成功!`);
|
||
}
|
||
});
|
||
};
|
||
|
||
static getFrozenList(callback: (code: number, rows: any) => void) {
|
||
let sql = `SELECT frozen_ip FROM ip_frozen;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, []);
|
||
return;
|
||
}
|
||
if (rows.length == 0) {
|
||
callback(MsgCode.FAILED, []);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
}
|
||
|
||
static getFrozenIpRoleid(ip: any, callback: (code: number, rows: any) => void) {
|
||
var sql = `SELECT accountid FROM qy_account WHERE login_ip = '${ip}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, []);
|
||
return;
|
||
}
|
||
if (rows.length == 0) {
|
||
callback(MsgCode.FAILED, []);
|
||
return;
|
||
}
|
||
let accounts = '';
|
||
for (const id of rows) {
|
||
accounts = accounts + id.accountid + ',';
|
||
}
|
||
accounts = accounts.substr(0, accounts.length - 1);
|
||
sql = `SELECT roleid FROM qy_role WHERE accountid IN (${accounts});`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, []);
|
||
return;
|
||
}
|
||
if (rows.length == 0) {
|
||
callback(MsgCode.FAILED, []);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
});
|
||
}
|
||
|
||
static freezeIP = (accountid: any, callback: any) => {
|
||
var sql = `SELECT login_ip FROM qy_account WHERE accountid = '${accountid}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
if (rows.length == 0) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
let fip = rows[0].login_ip;
|
||
sql = `SELECT * FROM ip_frozen WHERE frozen_ip = '${fip}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
if (rows.length > 0) {
|
||
callback(MsgCode.SUCCESS, 0);
|
||
return;
|
||
}
|
||
sql = `INSERT INTO ip_frozen(account_id, frozen_ip, frozen_time) VALUES('${accountid}', '${fip}', NOW());`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, fip);
|
||
});
|
||
});
|
||
});
|
||
}
|
||
|
||
static getFrozenMacList = (callback: any) => {
|
||
let sql = `SELECT mac FROM mac_frozen;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, []);
|
||
return;
|
||
}
|
||
if (rows && rows.length == 0) {
|
||
callback(MsgCode.FAILED, []);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
}
|
||
|
||
static clearFrozenMacTabel(callback: (code: number, rows: any) => void) {
|
||
let sql = `TRUNCATE mac_frozen;`
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
};
|
||
|
||
static getFrozenMacRoleid(mac: string, callback: (code: number, rows: any) => void) {
|
||
var sql = `SELECT accountid FROM qy_account WHERE mac = '${mac}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, []);
|
||
return;
|
||
}
|
||
if (rows.length == 0) {
|
||
callback(MsgCode.FAILED, []);
|
||
return;
|
||
}
|
||
let accounts = '';
|
||
for (const id of rows) {
|
||
accounts = accounts + id.accountid + ',';
|
||
}
|
||
accounts = accounts.substr(0, accounts.length - 1); //.splice(-1);
|
||
sql = `SELECT roleid FROM qy_role WHERE accountid in (${accounts});`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, []);
|
||
return;
|
||
}
|
||
if (rows.length == 0) {
|
||
callback(MsgCode.FAILED, []);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
});
|
||
}
|
||
// 封设备
|
||
static freezeMAC = (info: any, callback: (code: number, msg: string, mac: string) => void) => {
|
||
let account_id = info.account_id;
|
||
let gm_role_id = info.gm_role_id;
|
||
let sql = `SELECT mac FROM qy_account WHERE accountid = '${account_id}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, `禁设备:帐号[${account_id}]查询SQL错误!`, "");
|
||
return;
|
||
}
|
||
if (rows.length < 1) {
|
||
callback(MsgCode.FAILED, `禁设备:帐号[${account_id}]已被封禁MAC!`, "");
|
||
return;
|
||
}
|
||
let mac = rows[0].mac;
|
||
sql = `SELECT * FROM mac_frozen WHERE mac = '${mac}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, `禁设备:帐号[${account_id}]封禁已存在!`, "");
|
||
return;
|
||
}
|
||
if (rows.length > 0) {
|
||
callback(MsgCode.FAILED, `禁设备:帐号[${account_id}]已封禁!`, mac);
|
||
return;
|
||
}
|
||
sql = `INSERT INTO mac_frozen(account_id,mac,gm_role_id) VALUES('${account_id}','${mac}','${gm_role_id}');`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, `禁设备:帐号[${account_id}]插入:SQL错误!`, mac);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, `禁设备:帐号[${account_id}]封禁成功!`, mac);
|
||
});
|
||
});
|
||
});
|
||
}
|
||
// 解封帐号
|
||
static unfreezeMAC = (info: any, callback: (code: number, msg: string, mac: string) => void) => {
|
||
let account_id = info.account_id;
|
||
let sql = `SELECT mac FROM qy_account WHERE accountid = '${account_id}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, `帐号${account_id}解封Mac,SQL错误!`, "");
|
||
return;
|
||
}
|
||
if (rows.length < 1) {
|
||
callback(MsgCode.FAILED, `帐号${account_id}已解封!`, "");
|
||
return;
|
||
}
|
||
let mac = rows[0].mac;
|
||
let sql = `DELETE FROM mac_frozen WHERE account_id = '${account_id}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, `帐号${account_id}解禁Mac:SQL错误!`, mac);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, `帐号${account_id}解禁Mac成功!`, mac);
|
||
});
|
||
});
|
||
}
|
||
|
||
static getServerListByAccountId(accountid: any, callback: (code: number, rows: any) => void) {
|
||
let sql = `SELECT * FROM qy_role WHERE accountid = ${accountid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
}
|
||
// 插入角色
|
||
static insertRole(roleInfo: any, callback: (code: number, roleId: number) => void) {
|
||
let sql = `SELECT * FROM qy_account WHERE accountid = '${roleInfo.accountid}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (rows.length <= 0) {
|
||
callback(MsgCode.FAILED, 0);
|
||
return;
|
||
}
|
||
})
|
||
let roleName = SKDataUtil.checkMYSQL(roleInfo.name);
|
||
sql = `SELECT * FROM qy_role WHERE (accountid = '${roleInfo.accountid}' OR hex(name) = hex('${roleName}')) AND serverid = '${roleInfo.serverid}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, 0);
|
||
return;
|
||
}
|
||
if (rows.length > 0) {
|
||
if (rows[0].name == roleInfo.name) {
|
||
SKLogger.info(`创建角色:[${roleInfo.accountid}:${roleInfo.name}]已存在`);
|
||
callback(MsgCode.ROLE_NAME_EXIST, rows[0].roleid);
|
||
return;
|
||
} else {
|
||
SKLogger.info(`创建角色:[${roleInfo.accountid}:${rows[0].name}]最多一个角色`);
|
||
callback(MsgCode.FAILED, rows[0].roleid);
|
||
return;
|
||
}
|
||
}
|
||
if (rows.length == 0) {
|
||
let titles = `{"onload":false,"titles":[{"type":"0","titleid":"112","value":"","onload":true}]}`;
|
||
sql = `INSERT INTO qy_role(roleid, name, race, sex, level, resid, mapid, x, y, create_time, accountid,serverid,money,taskstate,title,ai_flag) VALUES('${roleInfo.roleId}','${roleInfo.name}', '${roleInfo.race}','${roleInfo.sex}',1,'${roleInfo.resid}',1010,-1,-1, NOW(),'${roleInfo.accountid}','${roleInfo.serverid}',0,'[]','${titles}','${roleInfo.ai_flag}');`;
|
||
DB.query(sql, function (error: any, rows: any) {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, 0);
|
||
return;
|
||
}
|
||
if (rows.length < 1) {
|
||
SKLogger.info(`创建角色:[${roleInfo.accountId}:${roleInfo.name}]不能多于一个!`);
|
||
callback(MsgCode.FAILED, 0);
|
||
return;
|
||
}
|
||
// 添加签到数据
|
||
sql = `INSERT INTO dh_day_sign_in(role_id, daySignIn) VALUES('${rows.insertId}', '${roleInfo.daySignIn}');`;
|
||
DB.query(sql, function (error: any, rows: any) {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, 0);
|
||
return;
|
||
}
|
||
});
|
||
// 添加转盘数据
|
||
sql = `INSERT INTO dh_dial_role(role_id, dial_num,dial_count,dial_date) VALUES('${rows.insertId}', '${roleInfo.dial_num}', '${roleInfo.dial_count}', '${roleInfo.dial_date}');`;
|
||
DB.query(sql, function (error: any, rows: any) {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, 0);
|
||
return;
|
||
}
|
||
});
|
||
// 天策符数据
|
||
sql = `INSERT INTO role_has_ofuda(roleid, ofuda_data) VALUES(${rows.insertId}, '')`
|
||
DB.query(sql, function (error: any, rows: any) {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, 0);
|
||
return;
|
||
}
|
||
});
|
||
// 点券数据
|
||
sql = `INSERT INTO qy_currency_role(roleid) VALUES(${rows.insertId})`
|
||
DB.query(sql, function (error: any, rows: any) {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, 0);
|
||
return;
|
||
}
|
||
});
|
||
callback(MsgCode.SUCCESS, rows.insertId);
|
||
});
|
||
}else {
|
||
callback(MsgCode.FAILED, 0);
|
||
return;
|
||
}
|
||
})
|
||
}
|
||
// 获得坐骑列表
|
||
static getHorseList(roleId: number, callback: (rows: {}) => void) {
|
||
let sql = `SELECT FROM dhxy_horse WHERE roleid=${roleId}`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback([]);
|
||
return;
|
||
}
|
||
if (!rows || rows.length < 1) {
|
||
callback([]);
|
||
return;
|
||
}
|
||
let result: any = {};
|
||
for (let item of rows) {
|
||
result[item.mountid] = item;
|
||
}
|
||
callback(result);
|
||
});
|
||
}
|
||
// 改名
|
||
static changeName(info: any, callback: any) {
|
||
let sql = `SELECT * FROM qy_role WHERE hex(name) = hex('${info.name}');`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
if (rows.length > 0) {
|
||
callback(MsgCode.ROLE_NAME_EXIST);
|
||
}
|
||
if (rows.length == 0) {
|
||
sql = `UPDATE qy_role SET name = '${info.name}' WHERE roleid = ${info.roleid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS);
|
||
});
|
||
}
|
||
})
|
||
}
|
||
|
||
// 宠物改名
|
||
static changePetName(info: any, callback: any) {
|
||
let sql = `UPDATE qy_pet SET name = '${info.name}' WHERE petid = ${info.petId};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS);
|
||
});
|
||
}
|
||
|
||
// 查询装备ID信息
|
||
static equipKey(callback: any) {
|
||
let sql = `SELECT EquipID FROM qy_equip;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS,rows);
|
||
})
|
||
}
|
||
// 查询角色ID信息
|
||
static roleKey(callback: any) {
|
||
let sql = `SELECT roleid FROM qy_role;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS,rows);
|
||
})
|
||
}
|
||
|
||
// 根据装备ID查询装备信息
|
||
static equipInfo(data: any, callback: any) {
|
||
let sql = `SELECT qy_role.name,qy_role.roleid, EquipID, EquipType, BaseAttr, BaseScore, Grade, EIndex, Shuxingxuqiu, Type, GemCnt, LianhuaAttr,qy_equip.name AS EquipName FROM qy_equip LEFT JOIN qy_role ON qy_role.roleid = qy_equip.RoleID WHERE qy_equip.EquipID = '${data.id}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS,rows);
|
||
})
|
||
}
|
||
|
||
// 根据宠物ID查询宠物信息
|
||
static petInfo(data: any, callback: any) {
|
||
let sql = `SELECT qy_pet.roleid,qy_role.name,petid,qy_pet.name AS PetName,dataid,qy_pet.relive,qy_pet.level,qy_pet.resid,qy_pet.color,qy_pet.grade,fly,qinmi,shenskill,qy_pet.skill,ppoint,dpoint,rate,hp,mp,atk,spd,wuxing,qy_pet.exp,xexp,xlevel,longgu,qy_pet.control FROM qy_pet LEFT JOIN qy_role ON qy_role.roleid = qy_pet.roleid WHERE qy_pet.petid = ${data.id};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS,rows);
|
||
})
|
||
}
|
||
|
||
// 更新最新登录时间
|
||
static updateLastOnlineTime(roleid: any) {
|
||
let sql = `UPDATE qy_role SET lastonline = FROM_UNIXTIME(${Math.ceil(GameUtil.gameTime / 1000)}) WHERE roleid =${roleid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
})
|
||
}
|
||
|
||
// 登录角色
|
||
static loginByRoleid(roleid: any, callback: (code: number, data: any) => void) {
|
||
if (roleid != undefined){
|
||
let sql = `SELECT qy_account.safecode,qy_account.invite,qy_role.* FROM qy_account, qy_role WHERE qy_role.roleid = ${roleid} AND qy_account.accountid = qy_role.accountid;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
if (rows.length > 0) {
|
||
let data: any = rows[0];
|
||
if (data != null && data != undefined){
|
||
if (data.roleid != undefined){
|
||
sql = `SELECT * FROM qy_equip WHERE RoleID='${data.roleid}' AND state='1';`;
|
||
sql += `SELECT * FROM dhxy_horse WHERE role_id=${data.roleid};`;
|
||
sql += `SELECT * FROM dhxy_horse_skill WHERE role_id=${data.roleid};`;
|
||
sql += `SELECT * FROM qy_pet WHERE roleid = ${roleid} and state = 1 limit ${GameUtil.limitPetNum};`;
|
||
sql += `SELECT * FROM dh_mail WHERE role_id=${data.roleid} limit ${GameUtil.limitMail};`;
|
||
sql += `SELECT * FROM dh_day_sign_in WHERE role_id=${data.roleid};`;
|
||
sql += `SELECT * FROM qy_role WHERE roleid=${data.roleid};`;
|
||
sql += `SELECT * FROM dh_dial_role WHERE role_id=${data.roleid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
data.equipRows = rows[0];
|
||
data.horseRows = rows[1];
|
||
data.horseSkillRows = rows[2];
|
||
data.petRows = rows[3];
|
||
data.mailRows = rows[4];
|
||
data.signIn = rows[5];
|
||
data.role = rows[6];
|
||
data.dial = rows[7];
|
||
callback(MsgCode.SUCCESS, data);
|
||
});
|
||
}else {
|
||
callback(MsgCode.FAILED, null);
|
||
}
|
||
}else {
|
||
callback(MsgCode.FAILED, null);
|
||
}
|
||
|
||
} else {
|
||
callback(MsgCode.FAILED, null);
|
||
}
|
||
});
|
||
}else {
|
||
callback(MsgCode.FAILED, null);
|
||
}
|
||
|
||
};
|
||
|
||
//获取任务数据
|
||
static getTaskDataByRoleid(roleid: any, callback: any) {
|
||
let sql = `SELECT taskstate FROM qy_role WHERE roleid = ${roleid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
if (rows.length <= 0) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows[0]);
|
||
});
|
||
}
|
||
|
||
static getRoleByRoleId(roleid: any, callback: any) {
|
||
let sql = `SELECT * FROM qy_role WHERE roleid = ${roleid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
if (rows.length <= 0) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
let roleinfo = rows[0];
|
||
callback(MsgCode.SUCCESS, roleinfo);
|
||
});
|
||
}
|
||
// 存档
|
||
static savePlayerInfo(roleid: any, roleInfo: any, callback: (code: number, msg: string) => void) {
|
||
let obj: any = {};
|
||
obj.name = roleInfo.name;
|
||
obj.mapid = roleInfo.mapid;
|
||
obj.bangid = roleInfo.bangid;
|
||
obj.x = roleInfo.x;
|
||
obj.y = roleInfo.y;
|
||
obj.addpoint = SKDataUtil.toJson(roleInfo.addpoint, "{}");
|
||
obj.pet = roleInfo.pet;
|
||
obj.bagitem = SKDataUtil.toJson(roleInfo.bagitem, "{}");
|
||
obj.taskstate = SKDataUtil.toJson(roleInfo.taskstate, "{}");
|
||
obj.partnerlist = roleInfo.partnerlist;
|
||
obj.lockeritem = SKDataUtil.toJson(roleInfo.lockeritem, "{}");
|
||
obj.skill = SKDataUtil.toJson(roleInfo.skill, "{}");
|
||
obj.relivelist = SKDataUtil.toJson(roleInfo.relivelist, "[]");
|
||
obj.money = roleInfo.money;
|
||
obj.jade = roleInfo.jade;
|
||
obj.bind_jade = roleInfo.bind_jade;
|
||
obj.bang_score = roleInfo.bang_score;
|
||
obj.shi_score = roleInfo.shi_score;
|
||
obj.di_score = roleInfo.di_score;
|
||
obj.xiu_score = roleInfo.xiu_score;
|
||
obj.guo_score = roleInfo.guo_score;
|
||
obj.exp = roleInfo.exp;
|
||
obj.level = roleInfo.level;
|
||
obj.relive = roleInfo.relive;
|
||
obj.sex = roleInfo.sex;
|
||
obj.resid = roleInfo.resid;
|
||
obj.race = roleInfo.race;
|
||
obj.xiulevel = roleInfo.xiulevel;
|
||
obj.xiupoint = SKDataUtil.toJson(roleInfo.xiupoint, "{}");
|
||
obj.shane = roleInfo.shane;
|
||
obj.state = roleInfo.state;
|
||
obj.level_reward = roleInfo.level_reward;
|
||
obj.rewardrecord = roleInfo.rewardrecord;
|
||
obj.sprewardrecord = roleInfo.sprewardrecord;
|
||
obj.getgift = roleInfo.getgift;
|
||
obj.shuilu = SKDataUtil.toJson(roleInfo.shuilu, "{}");
|
||
obj.arena = SKDataUtil.toJson(roleInfo.arena, "{}");
|
||
obj.color = SKDataUtil.toJson(roleInfo.color, "{}");
|
||
obj.active_scheme_name = roleInfo.active_scheme_name;
|
||
obj.friendlist = SKDataUtil.toJson(roleInfo.friendlist, "{}");
|
||
obj.star = roleInfo.star;
|
||
obj.horse_index = roleInfo.horse_index;
|
||
obj.day_count = SKDataUtil.toJson(roleInfo.day_count, "{}");
|
||
obj.equiplist = null;
|
||
obj.lastonline = `FROM_UNIXTIME(${Math.ceil(GameUtil.gameTime / 1000)})`;
|
||
obj.bag_kind_num = roleInfo.bagKindNum;
|
||
obj.mend_date = roleInfo.mend_date;
|
||
obj.sat_integral = roleInfo.sat_integral;
|
||
obj.offlinetime = roleInfo.offlinetime;
|
||
obj.doublecnt = roleInfo.doublecnt;
|
||
obj.unget_doublecnt = roleInfo.unget_doublecnt;
|
||
obj.zhenfa = roleInfo.zhenfa
|
||
obj.xw = roleInfo.xw
|
||
obj.baby = roleInfo.baby
|
||
obj.star_info = roleInfo.star_info
|
||
obj.tianti_integral = Number(roleInfo.tianti_integral)
|
||
let sql = SKDBUtil.createInsertDuplicatet("qy_role", obj, {
|
||
roleId: roleid,
|
||
accountid: roleInfo.accountid,
|
||
serverid: GameUtil.serverId,
|
||
});
|
||
sql += roleInfo.equipinfo;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
let info = DB.errorInfo(error);
|
||
callback(MsgCode.FAILED, info);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, "");
|
||
});
|
||
};
|
||
|
||
|
||
// 存档
|
||
static savePlayerInfoRobot(roleid: any, roleInfo: any, callback: (code: number, msg: string) => void) {
|
||
let obj: any = {};
|
||
obj.name = roleInfo.name;
|
||
obj.mapid = roleInfo.mapid;
|
||
obj.bangid = roleInfo.bangid;
|
||
obj.x = roleInfo.x;
|
||
obj.y = roleInfo.y;
|
||
obj.addpoint = SKDataUtil.toJson(roleInfo.addpoint, "{}");
|
||
obj.pet = roleInfo.pet;
|
||
obj.bagitem = SKDataUtil.toJson(roleInfo.bagitem, "{}");
|
||
obj.taskstate = SKDataUtil.toJson(roleInfo.taskstate, "{}");
|
||
obj.lockeritem = SKDataUtil.toJson(roleInfo.lockeritem, "{}");
|
||
obj.skill = SKDataUtil.toJson(roleInfo.skill, "{}");
|
||
obj.relivelist = SKDataUtil.toJson(roleInfo.relivelist, "[]");
|
||
obj.money = roleInfo.money;
|
||
obj.jade = roleInfo.jade;
|
||
obj.bang_score = roleInfo.bang_score;
|
||
obj.shi_score = roleInfo.shi_score;
|
||
obj.di_score = roleInfo.di_score;
|
||
obj.xiu_score = roleInfo.xiu_score;
|
||
obj.guo_score = roleInfo.guo_score;
|
||
obj.exp = roleInfo.exp;
|
||
obj.level = roleInfo.level;
|
||
obj.relive = roleInfo.relive;
|
||
obj.sex = roleInfo.sex;
|
||
obj.resid = roleInfo.resid;
|
||
obj.race = roleInfo.race;
|
||
obj.xiulevel = roleInfo.xiulevel;
|
||
obj.xiupoint = SKDataUtil.toJson(roleInfo.xiupoint, "{}");
|
||
obj.shane = roleInfo.shane;
|
||
obj.state = roleInfo.state;
|
||
obj.level_reward = roleInfo.level_reward;
|
||
obj.rewardrecord = roleInfo.rewardrecord;
|
||
obj.sprewardrecord = roleInfo.sprewardrecord;
|
||
obj.getgift = roleInfo.getgift;
|
||
obj.shuilu = SKDataUtil.toJson(roleInfo.shuilu, "{}");
|
||
obj.arena = SKDataUtil.toJson(roleInfo.arena, "{}");
|
||
obj.active_scheme_name = roleInfo.active_scheme_name;
|
||
obj.star = roleInfo.star;
|
||
obj.horse_index = roleInfo.horse_index;
|
||
obj.day_count = SKDataUtil.toJson(roleInfo.day_count, "{}");
|
||
obj.equiplist = null;
|
||
obj.lastonline = `FROM_UNIXTIME(${Math.ceil(GameUtil.gameTime / 1000)})`;
|
||
obj.bag_kind_num = roleInfo.bagKindNum;
|
||
obj.mend_date = roleInfo.mend_date;
|
||
obj.sat_integral = roleInfo.sat_integral;
|
||
obj.offlinetime = roleInfo.offlinetime;
|
||
obj.doublecnt = roleInfo.doublecnt;
|
||
obj.unget_doublecnt = roleInfo.unget_doublecnt;
|
||
obj.ai_flag = roleInfo.ai_flag;
|
||
obj.tianti_integral = roleInfo.tianti_integral
|
||
let sql = SKDBUtil.createInsertDuplicatet("qy_role", obj, {
|
||
roleId: roleid,
|
||
accountid: roleInfo.accountid,
|
||
serverid: GameUtil.serverId,
|
||
});
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
let info = DB.errorInfo(error);
|
||
callback(MsgCode.FAILED, info);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, "");
|
||
});
|
||
};
|
||
|
||
static getFriends(roleid: any, callback: (code: number, friendsList: any) => void) { //state=1 已验证的好友 state=0未验证的好友
|
||
var sql = `SELECT * FROM qy_friends WHERE ((roleidA = '${roleid}' OR roleidB = '${roleid}') AND state = 1) OR (roleidB = '${roleid}' AND state = 0);`;
|
||
let friendsList: any = [];
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, friendsList);
|
||
return;
|
||
}
|
||
if (Array.isArray(rows) == false) {
|
||
callback(MsgCode.FAILED, friendsList);
|
||
}
|
||
if (rows.length <= 0) {
|
||
callback(MsgCode.FAILED, friendsList);
|
||
} else {
|
||
for (const info of rows) {
|
||
if (info.roleidA == roleid) {
|
||
friendsList.push({
|
||
friendid: info.id,
|
||
roleid: info.roleidB,
|
||
name: info.nameB,
|
||
resid: info.residB,
|
||
relive: info.reliveB,
|
||
level: info.levelB,
|
||
race: info.raceB,
|
||
sex: info.sexB,
|
||
accountid: info.accountidB,
|
||
state: info.state,
|
||
});
|
||
} else if (info.roleidB == roleid) {
|
||
friendsList.push({
|
||
friendid: info.id,
|
||
roleid: info.roleidA,
|
||
name: info.nameA,
|
||
resid: info.residA,
|
||
relive: info.reliveA,
|
||
level: info.levelA,
|
||
race: info.raceA,
|
||
sex: info.sexA,
|
||
accountid: info.accountidA,
|
||
state: info.state,
|
||
});
|
||
}
|
||
}
|
||
callback(MsgCode.SUCCESS, friendsList);
|
||
}
|
||
});
|
||
}
|
||
|
||
static updateFriends(friendid: any, roleid: any, operation: any, callback: any) { //operation 0:删除 1:同意 2:拒绝 3:全部同意 4:全部拒绝
|
||
var sql = `UPDATE qy_friends SET state = '1' WHERE id =${friendid};`;
|
||
if (operation == 0 || operation == 2) {
|
||
sql = `DELETE FROM qy_friends WHERE id =${friendid};`;
|
||
} else if (operation == 3) {
|
||
sql = `UPDATE qy_friends SET state = '1' WHERE roleidB =${roleid};`;
|
||
} else if (operation == 4) {
|
||
sql = `DELETE FROM qy_friends WHERE roleidB = ${roleid} AND state = 0;`;
|
||
}
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, []);
|
||
return;
|
||
}
|
||
DB.getFriends(roleid, callback);
|
||
});
|
||
}
|
||
|
||
static searchRoles(info: any, callback: any) {
|
||
let sql = `SELECT serverid, level FROM qy_role WHERE roleid = ${info.roleid}`;
|
||
let playerList: any = [];
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, playerList);
|
||
return;
|
||
}
|
||
if (rows.length <= 0) {
|
||
callback(MsgCode.FAILED, playerList);
|
||
} else {
|
||
let serverid = rows[0].serverid;
|
||
sql = `SELECT * FROM qy_role WHERE serverid = ${serverid} AND roleid != ${info.roleid} AND (name LIKE '%${info.data}%' OR roleid = '${info.data}') AND (SELECT COUNT(1) FROM qy_friends WHERE (qy_friends.roleidA = ${info.roleid} AND qy_friends.roleidB = qy_role.roleid) OR (qy_friends.roleidB = ${info.roleid} AND qy_friends.roleidA = qy_role.roleid)) = 0 ORDER BY RAND() LIMIT 10;`;
|
||
if (info.type == 0) {
|
||
let maxLevel = rows[0].level + 30;
|
||
let minLevel = rows[0].level - 30;
|
||
sql = `SELECT * FROM qy_role WHERE serverid = ${serverid} AND roleid != ${info.roleid} AND level > ${minLevel} AND level < ${maxLevel} AND (SELECT COUNT(1) FROM qy_friends WHERE (qy_friends.roleidA = ${info.roleid} AND qy_friends.roleidB = qy_role.roleid) OR (qy_friends.roleidB = ${info.roleid} AND qy_friends.roleidA = qy_role.roleid)) = 0 ORDER BY RAND() LIMIT 10;`;
|
||
}
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, playerList);
|
||
return;
|
||
}
|
||
|
||
if (rows.length <= 0) {
|
||
callback(MsgCode.FAILED, playerList);
|
||
} else {
|
||
for (const info of rows) {
|
||
playerList.push({
|
||
roleid: info.roleid,
|
||
name: info.name,
|
||
resid: info.resid,
|
||
level: info.level,
|
||
relive: info.relive,
|
||
race: info.race,
|
||
sex: info.sex,
|
||
});
|
||
}
|
||
callback(MsgCode.SUCCESS, playerList);
|
||
}
|
||
});
|
||
}
|
||
});
|
||
}
|
||
|
||
static addFriends(pinfo: any, callback: any) {
|
||
if (pinfo.roleidA == pinfo.roleidB) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
let sql = `SELECT * FROM qy_friends WHERE (roleidA = '${pinfo.roleidA}' AND roleidB = '${pinfo.roleidB}') OR (roleidA = '${pinfo.roleidB}' AND roleidB = '${pinfo.roleidA}');`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
if (Array.isArray(rows) == false) {
|
||
callback(MsgCode.FAILED);
|
||
}
|
||
if (rows.length > 0) {
|
||
callback(MsgCode.FAILED);
|
||
} else {
|
||
let roleinfoA: any = {};
|
||
let roleinfoB: any = {};
|
||
DB.getRoleByRoleId(pinfo.roleidA, (ret: any, dbdata: any) => {
|
||
if (ret == MsgCode.SUCCESS) {
|
||
roleinfoA = dbdata;
|
||
DB.getRoleByRoleId(pinfo.roleidB, (ret: any, dbdata: any) => {
|
||
if (ret == MsgCode.SUCCESS) {
|
||
roleinfoB = dbdata;
|
||
let sql = `INSERT INTO qy_friends(roleidA, nameA, residA, reliveA, levelA, raceA, sexA, accountidA, roleidB, nameB, residB, reliveB, levelB, raceB, sexB, accountidB, state, time) VALUES('${roleinfoA.roleid}', '${roleinfoA.name}', '${roleinfoA.resid}', '${roleinfoA.relive}', '${roleinfoA.level}', '${roleinfoA.race}', '${roleinfoA.sex}', '${roleinfoA.accountid}', '${roleinfoB.roleid}', '${roleinfoB.name}', '${roleinfoB.resid}', '${roleinfoB.relive}', '${roleinfoB.level}', '${roleinfoB.race}', '${roleinfoB.sex}', '${roleinfoB.accountid}', 0, NOW());`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS);
|
||
});
|
||
} else {
|
||
callback(ret);
|
||
}
|
||
});
|
||
} else {
|
||
callback(ret);
|
||
}
|
||
});
|
||
}
|
||
});
|
||
}
|
||
// 更新帮派数据
|
||
static updateBang(bangInfo: any, callback: (code: MsgCode) => void) {
|
||
let sql = `UPDATE qy_bang SET rolenum = ${bangInfo.rolenum} WHERE bangid =${bangInfo.bangid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS);
|
||
});
|
||
}
|
||
|
||
// 更新帮派数据
|
||
static bangUpdate(bangInfo: any) {
|
||
let sql = `UPDATE qy_bang SET banglevel = ${bangInfo.banglevel}, bangexp = ${bangInfo.bangexp} WHERE bangid =${bangInfo.bangid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
|
||
static updateBangBidding(bangid: any, bidding: any) {
|
||
let sql = `UPDATE qy_bang SET bidding = ${bidding} WHERE bangid =${bangid};`;
|
||
DB.query(sql, (error: any, rows: any) => { });
|
||
}
|
||
|
||
static deleteBang(bangid: any) {
|
||
let sql = `UPDATE qy_bang SET state = 0 WHERE bangid =${bangid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
|
||
static getBangList(callback: any) {
|
||
let sql = `SELECT * FROM qy_bang WHERE state = 1 and serverid = ${GameUtil.serverId};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
// if (rows.length == 0) {//没有帮派信息
|
||
// callback(MsgCode.FAILED);
|
||
// return;
|
||
// }
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
}
|
||
|
||
static getBangRoles(callback: any) {
|
||
let sql = `SELECT qy_role.roleid, qy_role.name, qy_role.resid, qy_role.relive, qy_role.level, qy_role.race, qy_role.sex, qy_role.bangid, qy_bang_member.bang_post, qy_bang_member.join_time, qy_bang_member.week_bang_btl, qy_bang_member.this_bang_btl, qy_bang_member.week_ectype, qy_bang_member.day_task, qy_bang_member.ofuda_level FROM qy_role LEFT JOIN qy_bang_member ON qy_role.roleid = qy_bang_member.roleid WHERE bangid <> 0 AND serverid = ${GameUtil.serverId};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
let tlist: any = {};
|
||
for (const info of rows) {
|
||
if (tlist[info.bangid] == null) {
|
||
tlist[info.bangid] = [];
|
||
}
|
||
tlist[info.bangid].push(info);
|
||
}
|
||
callback(MsgCode.SUCCESS, tlist);
|
||
});
|
||
}
|
||
|
||
static selectOfudaLevel(roleid: number, callback: any) {
|
||
let sql = `SELECT ofuda_level FROM qy_bang_member where roleid = ${roleid}`
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
return;
|
||
}
|
||
callback(rows)
|
||
});
|
||
}
|
||
|
||
static updateBangMember(member: any,callback: any) {
|
||
let sql = `select * from qy_bang_member where roleid = ${member.roleid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
if (rows.length > 0) {
|
||
sql = `UPDATE qy_bang_member SET bang_post = '${member.bangpost}',join_time = '${member.jointime}',week_bang_btl = '${member.weekbangbtl}',this_bang_btl = '${member.thisbangbtl}',week_ectype = '${member.weekectype}',day_task = '${member.daytask}' WHERE roleid = '${member.roleid}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
});
|
||
} else {
|
||
sql = `INSERT INTO qy_bang_member(roleid,bang_post,join_time,week_bang_btl,this_bang_btl,week_ectype,day_task,ofuda_level)VALUES(${member.roleid},${member.bangpost},NOW(),${member.weekbangbtl},${member.thisbangbtl},${member.weekectype},${member.daytask},${member.ofudalevel});`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
if (rows.length == 0) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
})
|
||
}
|
||
|
||
//升级天演策
|
||
static updateBangMemberOfuda(level: number, roleid: any) {
|
||
let sql = `UPDATE qy_bang_member SET ofuda_level = ${level} where roleid = ${roleid}`
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
|
||
static updateBangPost(memberInfo: any) {
|
||
let sql = `UPDATE qy_bang_member SET bang_post = '${memberInfo.bangpost}' WHERE roleid = '${memberInfo.roleid}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
|
||
static updatePlayerBangID = function (roleid: any, bangid: any, callback: any) {
|
||
let sql = `UPDATE qy_role SET bangid = ${bangid} WHERE roleid = ${roleid}`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
|
||
static createBang(bangInfo: any, callback: any) {
|
||
let sql = `INSERT INTO qy_bang(bangid,name, aim, masterid, mastername, createtime, state, serverid, banglevel, bangexp)
|
||
VALUES(${bangInfo.bangid},'${bangInfo.name}', '${bangInfo.aim}','${bangInfo.masterid}','${bangInfo.mastername}', NOW(), 1, ${GameUtil.serverId}, '${bangInfo.banglevel}', '${bangInfo.bangexp}');`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
if (rows.length == 0) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows.insertId);
|
||
});
|
||
}
|
||
|
||
static updateBangNotice(bangInfo: any, callback: any) {
|
||
let sql = `UPDATE qy_bang SET aim = '${bangInfo.aim}',notice = '${bangInfo.notice}' WHERE bangid = ${bangInfo.bangid}`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
|
||
static createPet(petInfo: any, callback: any) {
|
||
let sql = `INSERT INTO qy_pet(petid, name, resid, dataid, grade, roleid, rate, hp, mp, atk, spd, wuxing, create_time) VALUES(${petInfo.petid}, '${petInfo.name}', ${petInfo.resid}, ${petInfo.dataid}, ${petInfo.grade}, ${petInfo.ownid}, ${petInfo.rate}, ${petInfo.hp}, ${petInfo.mp}, ${petInfo.atk}, ${petInfo.spd}, '${petInfo.wuxing}', NOW());`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS)
|
||
});
|
||
}
|
||
// 获得召唤兽列表
|
||
static getPetList(roleid: any, callback: (code: number, rows: any[]) => void) {
|
||
let sql = `SELECT * FROM qy_pet WHERE roleid = ${roleid} and state = 1 limit ${GameUtil.limitPetNum}`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
}
|
||
|
||
// 彻底删除召唤兽
|
||
static removePet(petid: number, roleId: number) {
|
||
let sql = `DELETE FROM qy_pet WHERE petid =${petid} AND roleid=${roleId};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
// 临时删除召唤兽
|
||
static delPet(petid: number, roleId: number, callback: (code: number) => void) {
|
||
let sql = `UPDATE qy_pet SET state = 0, delete_time = NOW() WHERE petid =${petid} AND roleid=${roleId};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS);
|
||
});
|
||
}
|
||
// 保存召唤兽列表
|
||
static savePets(petList: Pet[], roleId: number, callback: (code: number, msg: string) => void) {
|
||
if (petList.length < 1) {
|
||
callback(MsgCode.SUCCESS, `存档:召唤兽列表为空无需保存!`);
|
||
return;
|
||
}
|
||
let sql = "";
|
||
for (let pet of petList) {
|
||
sql += SKDBUtil.createUpdate(`qy_pet`, pet.toSaveObj(), ["petid", "roleid"]);
|
||
}
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
let info = DB.errorInfo(error);
|
||
callback(MsgCode.FAILED, info);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, "存档:召唤兽保存成功!");
|
||
});
|
||
}
|
||
// 保存召唤兽列表1
|
||
static savePetsRedis(petList: Pet[], roleId: number, callback: (code: number, msg: string) => void) {
|
||
if (petList.length < 1) {
|
||
callback(MsgCode.SUCCESS, `存档:召唤兽列表为空无需保存!`);
|
||
return;
|
||
}
|
||
let sql = "";
|
||
for (let pet of petList) {
|
||
sql += SKDBUtil.createUpdate(`qy_pet`, pet, ["petid", "roleid"]);
|
||
}
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
let info = DB.errorInfo(error);
|
||
callback(MsgCode.FAILED, info);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, "存档:召唤兽保存成功!");
|
||
});
|
||
}
|
||
|
||
// 保存角色签到数据
|
||
static saveSignIn(signIn: any, roleId: number, mendDate: any, callback: (code: number, msg: string) => void) {
|
||
let sql = `UPDATE dh_day_sign_in SET daySignIn = '${signIn}', mendDate = '${mendDate}' WHERE role_id = ${roleId};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
let info = DB.errorInfo(error);
|
||
callback(MsgCode.FAILED, info);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, "存档:签到数据保存成功!");
|
||
});
|
||
}
|
||
|
||
// 保存角风雨转盘数据
|
||
static saveDial(roleId: number, dial_num: number,dial_count: number,dial_date: any, callback: (code: number, msg: string) => void) {
|
||
let sql = `UPDATE dh_dial_role SET dial_num = '${dial_num}', dial_count = '${dial_count}' , dial_date = '${dial_date}' WHERE role_id = ${roleId};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
let info = DB.errorInfo(error);
|
||
callback(MsgCode.FAILED, info);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, "存档:风雨转盘数据保存成功!");
|
||
});
|
||
}
|
||
|
||
// 增加法宝
|
||
static createMagicWeapon(roleid: any, equiparr: any, callback: (code: MsgCode) => void) {
|
||
// 添加法宝数据
|
||
let equipdata = MagicWeaponMgr.shared.getInsertData(equiparr, roleid);
|
||
let sql = `INSERT INTO qy_effective_weapon(${equipdata.fieldstr}) VALUES(${equipdata.valuestr});`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS);
|
||
});
|
||
}
|
||
|
||
// 增加装备
|
||
static createEquip(roleid: any, equiparr: any, callback: (code: MsgCode) => void) {
|
||
// 添加装备数据
|
||
let equipdata = EquipMgr.shared.getInsertData(equiparr, roleid);
|
||
let sql = `INSERT INTO qy_equip(${equipdata.fieldstr}) VALUES(${equipdata.valuestr});`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS);
|
||
});
|
||
}
|
||
|
||
// 删除装备
|
||
static delEquip(equipid: string, roleId: number, callback: any) {
|
||
let sql = `UPDATE qy_equip SET state = 0, delete_time = NOW() WHERE EquipID ='${equipid}' AND RoleID='${roleId}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS);
|
||
});
|
||
}
|
||
|
||
static saveEquipInfo = (equipid: any, roleId: number, savedata: any, callback: any) => {
|
||
let numlist = ['pos', 'Grade', 'Type', 'GemCnt', 'EIndex','BaseScore'];
|
||
let updatestr = '';
|
||
for (const key in savedata) {
|
||
if (numlist.indexOf(key) == -1) {
|
||
updatestr += `${key} = '${savedata[key]}', `
|
||
} else {
|
||
updatestr += `${key} = ${savedata[key]}, `
|
||
}
|
||
}
|
||
updatestr = updatestr.substr(0, updatestr.length - 2);
|
||
let sql = `UPDATE qy_equip SET ${updatestr} WHERE EquipID = '${equipid}' AND RoleID='${roleId}'`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS);
|
||
});
|
||
}
|
||
|
||
static getPet(roleid: any) {
|
||
let sql = `UPDATE qy_role SET getpet = 1 WHERE roleid =${roleid}`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
});
|
||
}
|
||
|
||
/*
|
||
* 创建订单
|
||
* @param orderid 订单id
|
||
* @param roleid 角色id
|
||
* @param money 人民币
|
||
* @param jade 仙玉
|
||
* @param count 物品个数
|
||
* @param goodsid 货物id
|
||
* @param activitystates 充值活动的开启状态
|
||
* @param callback 回调
|
||
*/
|
||
static createChargeOrder(orderid: any, roleid: any, money: any, jade: any, count: any, goodsid: any, activitystates: any, callback: any) {
|
||
DB.getRoleByRoleId(roleid, (errcode: any, role: any) => {
|
||
if (errcode == MsgCode.SUCCESS) {
|
||
let server_id = role.serverid;
|
||
if (activitystates[server_id] && activitystates[server_id].state == 1) { // 双倍活动
|
||
jade *= 2;
|
||
}
|
||
let sql = `insert into charge_record (orderid, roleid, money, jade, goodscount, goodsid, create_time, serverid) values ('${orderid}', ${roleid}, ${money}, ${jade}, ${count}, ${goodsid}, NOW(), ${server_id});`;
|
||
DB.query(sql, (error: any, packet: any) => {
|
||
if (error) {
|
||
callback(false);
|
||
return;
|
||
}
|
||
callback(true);
|
||
});
|
||
} else
|
||
callback(false);
|
||
});
|
||
};
|
||
|
||
/*
|
||
* 是否能完成订单
|
||
* @param orderid 订单号
|
||
*/
|
||
static canFinishOrder(sdorderno: string, sdpayno: string, money: string, callback: (code: MsgCode, money: number) => void) {
|
||
let sql = `SELECT * FROM charge_record WHERE orderid='${sdorderno}' AND status=0;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
if (rows.length == 0) {
|
||
SKLogger.warn(`支付:未查询到有效订单[${sdorderno}:${sdpayno}]!`);
|
||
callback(MsgCode.FAILED, null);
|
||
} else {
|
||
let row = rows[0];
|
||
if (SKDataUtil.numberBy(row.money) != SKDataUtil.numberBy(money)) {
|
||
SKLogger.warn(`支付:订单[${sdorderno}:${sdpayno}]金额不匹配:${row.money}!=${money}!`);
|
||
callback(MsgCode.FAILED, row);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, row);
|
||
}
|
||
});
|
||
};
|
||
|
||
static setOrderFinish(sdorderno: string, sdpayno: string, total_fee: string, callback: (success: boolean) => void) {
|
||
let sql = `UPDATE charge_record SET finish_time = NOW(),realmoney =${total_fee},status=1,sdpayno='${sdpayno}' WHERE orderid = '${sdorderno}';`;
|
||
DB.query(sql, (error: any, packet: any) => {
|
||
if (error) {
|
||
SKLogger.warn(`订单${sdorderno}设置完成状态时失败!`);
|
||
callback(false);
|
||
return;
|
||
}
|
||
if (packet.affectedRows == 0) {
|
||
SKLogger.warn(`订单${sdorderno}设置完成状态时失败!`);
|
||
callback(false);
|
||
} else {
|
||
SKLogger.info(`订单${sdorderno}成功设置完成状态!`);
|
||
callback(true);
|
||
}
|
||
});
|
||
};
|
||
|
||
static setNotice(text: any) {
|
||
let sql = `UPDATE qy_info SET comment = '${text}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
|
||
static setShuilu(sid: any, lid: any) {
|
||
let sql = `UPDATE qy_info SET shuilusid = ${sid}, shuilulid = ${lid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
|
||
// 游戏内通知
|
||
static getScrollNotice(serverid: number, limit: number, callback: any) {
|
||
let sql = `SELECT text, type FROM qy_notice WHERE serverid = ${serverid} OR serverid = 0 ORDER BY time DESC LIMIT ${limit};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(false);
|
||
return;
|
||
}
|
||
callback(true, rows);
|
||
});
|
||
};
|
||
|
||
static addScrollNotice(serverid: any, type: any, text: any, callback?: (success: boolean) => void) {
|
||
let sql = `insert into qy_notice (text, type, serverid, time) values ('${text}', ${type}, ${serverid}, NOW());`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
if (callback) {
|
||
callback(false);
|
||
}
|
||
return;
|
||
}
|
||
if (callback) {
|
||
callback(true);
|
||
}
|
||
});
|
||
};
|
||
/*
|
||
* 关系(结拜,夫妻等)
|
||
*/
|
||
|
||
static createRelation(sqlData: any, callback: any) {
|
||
let sql = `insert into qy_relation (relationId,members, relationType, relationName, createTime,status) values (${sqlData.relationId},'${sqlData.members}', ${sqlData.relationType},'${sqlData.relationName}', NOW(),${sqlData.status});`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
if (rows.length == 0) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows.insertId);
|
||
});
|
||
};
|
||
|
||
static queryAllRelations(callback: any) {
|
||
let sql = `SELECT * FROM qy_relation WHERE status = 0`;
|
||
DB.query(sql, function (error: any, rows: any) {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
}
|
||
|
||
static deleteRelationById(sqlData: any, callback: any) {// status 0 正常 -1 已删除
|
||
//var sql = `DELETE FROM qy_relation WHERE relationId =${relationId};`;
|
||
var sql = `select * from qy_relation where relationId = ${sqlData.relationId}`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
if (rows.length > 0) {
|
||
sql = `update qy_relation set status = -1,deleteTime = NOW() where relationId = ${sqlData.relationId};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, []);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, []);
|
||
});
|
||
|
||
} else {
|
||
sql = `insert into qy_relation (relationId, members, relationType, relationName, createTime,status,deleteTime) values (${sqlData.relationId},'${sqlData.members}', ${sqlData.relationType},'${sqlData.relationName}', NOW(),${sqlData.status}, NOW());`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
if (rows.length == 0) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows.insertId);
|
||
});
|
||
}
|
||
});
|
||
}
|
||
|
||
static updateRelationMembersById(info: any, callback: any) {
|
||
var sql = `select * from qy_relation where relationId = ${info.relationId};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
if (rows.length > 0) {
|
||
sql = `UPDATE qy_relation SET members = '${info.members}' WHERE relationId = ${info.relationId};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS);
|
||
});
|
||
} else {
|
||
sql = `INSERT INTO qy_relation (relationId, members, relationType, relationName, createTime,status) VALUES (${info.relationId},'${info.members}', ${info.relationType},'${info.relationName}', NOW(),${info.status});`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
if (rows.length == 0) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows.insertId);
|
||
});
|
||
}
|
||
})
|
||
}
|
||
|
||
static getRelationById(id: any, callback: any) {
|
||
let sql = `SELECT * FROM qy_relation WHERE relationId = ${id}`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(false);
|
||
return;
|
||
}
|
||
callback(true, rows);
|
||
});
|
||
}
|
||
|
||
static getRelationMaxId(callback?: any) {
|
||
let sql = `SELECT max(relationId) AS relationId FROM qy_relation;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
if (callback) {
|
||
callback(MsgCode.FAILED);
|
||
}
|
||
return;
|
||
}
|
||
if (callback) {
|
||
callback(MsgCode.SUCCESS, rows[0].relationId);
|
||
}
|
||
});
|
||
}
|
||
|
||
static getSchemesByRoleId(roleId: any, callback: (code: MsgCode, rows: any) => void) {
|
||
let sql = `SELECT * FROM qy_scheme WHERE roleId = ${roleId}`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
}
|
||
// 更新套装
|
||
static saveScheme(data: { [key: number]: Scheme }, callback: (code: number, msg: string) => void) {
|
||
let sql: string = "";
|
||
for (let key in data) {
|
||
let item: Scheme = data[key];
|
||
let obj: any = item.toObj();
|
||
if (obj.roleId && obj.schemeId &&obj.schemeName && obj.content && obj.status != undefined){
|
||
sql += `INSERT INTO qy_scheme(roleId,schemeId,schemeName,content,status) VALUES('${obj.roleId}','${obj.schemeId}','${obj.schemeName}','${obj.content}','${obj.status}') ON DUPLICATE KEY UPDATE schemeName='${obj.schemeName}',content='${obj.content}',status='${obj.status}';`
|
||
}
|
||
|
||
}
|
||
|
||
if (sql.length < 1) {
|
||
callback(MsgCode.SUCCESS, "存档:套装无需存档");
|
||
return;
|
||
}
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
let info = DB.errorInfo(error);
|
||
callback(MsgCode.FAILED, info);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, "存档:套装全部存档成功!");
|
||
});
|
||
}
|
||
// 更新套装2
|
||
static saveSchemeRedis(data: { [key: number]: Scheme }, callback: (code: number, msg: string) => void) {
|
||
let sql: string = "";
|
||
for (let key in data) {
|
||
let item: Scheme = data[key];
|
||
let obj: any = item;
|
||
sql += `INSERT INTO qy_scheme(roleId,schemeId,schemeName,content,status) VALUES('${obj.roleId}','${obj.schemeId}','${obj.schemeName}','${obj.content}','${obj.status}') ON DUPLICATE KEY UPDATE schemeName='${obj.schemeName}',content='${obj.content}',status='${obj.status}';`
|
||
}
|
||
if (sql.length < 1) {
|
||
callback(MsgCode.SUCCESS, "存档:套装无需存档");
|
||
return;
|
||
}
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
let info = DB.errorInfo(error);
|
||
callback(MsgCode.FAILED, info);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, "存档:套装全部存档成功!");
|
||
});
|
||
}
|
||
// 设置安全码
|
||
static setSafecode(accountid: any, safecode: any, callback: any) {
|
||
let sql = `update qy_account set safecode = '${safecode}' where accountid = ${accountid};`;
|
||
DB.query(sql, (error: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS);
|
||
});
|
||
}
|
||
// 获得角色所在服务器索引
|
||
static serverIdBy(roleId: number, callback: (serverId: number) => void) {
|
||
let sql = `SELECT serverid FROM qy_role WHERE roleid='${roleId}';`;
|
||
DB.query(sql, (error: Error, rows: any) => {
|
||
if (error) {
|
||
callback(-1);
|
||
return;
|
||
}
|
||
if (rows.length < 1) {
|
||
callback(-1);
|
||
}
|
||
let serverId = 1000;
|
||
let temp = rows[0].serverid;
|
||
if (temp) {
|
||
serverId = parseInt(temp);
|
||
}
|
||
callback(serverId);
|
||
});
|
||
}
|
||
// 获得公告
|
||
static getComment(serverId: number, callback: (code: number, data: any) => void) {
|
||
let sql = `SELECT * FROM dhxy_comment WHERE server_id=${serverId}`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
if (rows.length < 1) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows[0]);
|
||
})
|
||
}
|
||
// 设置公告
|
||
static setComment(serverId: number, text: string, callback: (code: number) => void) {
|
||
let data={
|
||
text:text,
|
||
};
|
||
let sql=SKDBUtil.createInsertDuplicatet("dhxy_comment",data,{
|
||
server_id:serverId
|
||
});
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS);
|
||
})
|
||
}
|
||
// 加仙玉
|
||
static addJade(roleId: number, jade: number, callback: Function) {
|
||
let sql = `UPDATE qy_role SET jade=jade+${jade} WHERE roleId=${roleId};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
} else {
|
||
callback(MsgCode.SUCCESS);
|
||
}
|
||
})
|
||
}
|
||
// 加经验
|
||
static addExp(roleId: number, exp: number, callback: (ret: any) => void) {
|
||
let sql = `UPDATE qy_role SET exp=exp+${exp} WHERE roleId=${roleId};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
} else {
|
||
callback(MsgCode.SUCCESS);
|
||
}
|
||
})
|
||
}
|
||
|
||
// 获得角色数据
|
||
static roleDataBy(roleId: any, callback: (code: number, data: any) => void) {
|
||
let sql = `SELECT qy_account.safecode,qy_role.* FROM qy_account,qy_role WHERE qy_role.roleid = ${roleId} and qy_account.accountid = qy_role.accountid;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
if (rows.length > 0) {
|
||
let role: any = rows[0];
|
||
role.equipdata = {};
|
||
sql = `SELECT * FROM qy_equip WHERE RoleID = ${role.roleid} AND state != 0;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, role);
|
||
return;
|
||
}
|
||
for (let info of rows) {
|
||
role.equipdata[info.EquipID] = info;
|
||
}
|
||
callback(MsgCode.SUCCESS, role);
|
||
});
|
||
} else {
|
||
callback(MsgCode.FAILED, null);
|
||
}
|
||
});
|
||
};
|
||
|
||
static agentCharge(orderid: any, roleid: any, money: any, jade: any, count: number, goodsid: number, activitystates: any, callback: (code: number, msg: string, serverId: any) => void) {
|
||
DB.getRoleByRoleId(roleid, (code: any, role: any, serverId: any) => {
|
||
if (code == MsgCode.SUCCESS) {
|
||
let server_id = role.serverid;
|
||
if (activitystates[server_id] && activitystates[server_id].state == 1) { // 双倍活动
|
||
jade *= 2;
|
||
}
|
||
let sql = `INSERT INTO charge_record (orderid,roleid,realmoney,jade,goodscount,goodsid,serverid,create_time,finish_time,status) VALUES ('${orderid}',${roleid}, ${money}, ${jade},${count},${goodsid},${server_id},NOW(),NOW(),1);`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, `代理充值失败,角色索引:${roleid},订单名:${orderid},钱数:${money},仙玉:${jade}`, server_id);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, `代理充值成功,角色索引:${roleid},订单名:${orderid},钱数:${money},仙玉:${jade}`, server_id);
|
||
});
|
||
}
|
||
});
|
||
};
|
||
// 加入称谓
|
||
static addTitle(role_id: number, type: number, title_id: number, callback: (code: number, msg: string) => void) {
|
||
let sql = `SELECT title FROM qy_role WHERE roleid='${role_id}'`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, `称谓保存失败,角色索引:${role_id},${type},${title_id}`);
|
||
return;
|
||
}
|
||
let temp = rows[0].title;
|
||
let data: any = SKDataUtil.jsonBy(temp);
|
||
if (data) {
|
||
for (let item of data.titles) {
|
||
if (item.type == type && item.title_id == title_id) {
|
||
callback(MsgCode.FAILED, `称谓已存在,角色索引:${role_id},${type},${title_id}`);
|
||
return;
|
||
}
|
||
}
|
||
let title = { "type": type, "titleid": title_id, "value": "", "onload": false };
|
||
data.titles.push(title);
|
||
let save = SKDataUtil.toJson(data, "{}");
|
||
this.saveTitle(role_id, save, callback);
|
||
}
|
||
});
|
||
}
|
||
// 保存称谓
|
||
static saveTitle(role_id: number, titles: string, callback: (code: number, msg: string) => void) {
|
||
let sql = `UPDATE qy_role SET title = '${titles}' WHERE roleid = ${role_id};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, `称谓保存失败,角色索引:${role_id},${titles}`);
|
||
return;
|
||
}
|
||
callback(MsgCode.FAILED, `称谓保存成功,角色索引:${role_id},${titles}`);
|
||
});
|
||
}
|
||
//获得已兑换的列表
|
||
static getExchange(roleId: number, callback: (list: string[]) => void) {
|
||
let sql = `SELECT * FROM qy_exchange WHERE roleid = ${roleId};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback([]);
|
||
return;
|
||
}
|
||
if (!rows || rows.length < 1) {
|
||
callback([]);
|
||
return;
|
||
}
|
||
let result = [];
|
||
for (let item of rows) {
|
||
result.push(item.code);
|
||
}
|
||
callback(result);
|
||
});
|
||
}
|
||
// 保存已兑换
|
||
static saveExchange(roleId: number, code: string, callback: (code: number, msg: string) => void) {
|
||
let sql = `INSERT INTO qy_exchange(roleid,code) VALUES('${roleId}','${code}');`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(1, `玩家${roleId}保存兑换码[${code}]失败:${error}!`);
|
||
return;
|
||
}
|
||
callback(0, `玩家${roleId}保存兑换码[${code}]成功!`);
|
||
});
|
||
}
|
||
// 获得坐骑技能
|
||
static getHorseSkill(roleId: number, callback: (code: number, rows: any) => void) {
|
||
let sql = `SELECT * FROM dhxy_horse_skill WHERE role_id='${roleId}' ORDER BY position;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
}
|
||
// 保存坐骑列表
|
||
static saveHorseList(roleId: number, dict: { [key: number]: Horse }, callback: (error: any, rows: any[]) => void) {
|
||
let sql = ``;
|
||
for (let position in dict) {
|
||
let horse = dict[position];
|
||
if (horse) {
|
||
let name = horse.name;
|
||
let level = horse.level;
|
||
let exp = horse.exp;
|
||
sql += `INSERT INTO dhxy_horse(role_id,position,name,level,exp) VALUES('${roleId}','${position}','${name}','${level}','${exp}') ON DUPLICATE KEY UPDATE name='${name}',level='${level}',exp='${exp}';`
|
||
}
|
||
}
|
||
if (sql.length < 1) {
|
||
return;
|
||
}
|
||
DB.query(sql, callback);
|
||
}
|
||
// 保存坐骑技能列表
|
||
static saveHorseSkillList(roleId: number, dict: { [key: number]: SkillBase }, callback: (error: any, rows: any[]) => void) {
|
||
let sql = ``;
|
||
for (let position in dict) {
|
||
let skill = dict[position];
|
||
if (skill) {
|
||
let skillId = skill.skill_id;
|
||
let exp = skill.exp;
|
||
sql += `INSERT INTO dhxy_horse_skill(role_id,position,skill_id,exp) VALUES(${roleId},${position},${skillId},${exp}) ON DUPLICATE KEY UPDATE skill_id=${skillId},exp=${exp};`
|
||
}
|
||
}
|
||
if (sql.length < 1) {
|
||
callback(null, null);
|
||
return;
|
||
}
|
||
DB.query(sql, callback);
|
||
}
|
||
// 读取系统邮件
|
||
static getSystemMail(serverId: number, callback: (error: any, rows: any[]) => void) {
|
||
let sql = `SELECT * FROM dh_system_mail WHERE server_id='${serverId}'`;
|
||
DB.query(sql, callback);
|
||
}
|
||
// 系统邮件存档
|
||
static saveSystemMail(mail: MailData, callback: (code: MsgCode, msg: string) => void) {
|
||
let obj = mail.toSystemMailDB();
|
||
let sql: string = SKDBUtil.createInsertDuplicatet("dh_system_mail", obj, {
|
||
mail_id: mail.mail_id
|
||
});
|
||
DB.query(sql, (error: any, rows: []) => {
|
||
if (error) {
|
||
let info = this.errorInfo(error);
|
||
SKLogger.debug(`系统邮件:[${obj.mail_id}:${obj.title}]存档失败[${info}]`);
|
||
callback(MsgCode.FAILED, info);
|
||
return;
|
||
}
|
||
let info = `系统邮件:[${mail.mail_id}:${mail.title}]存档成功`;
|
||
SKLogger.debug(info);
|
||
callback(MsgCode.SUCCESS, info);
|
||
});
|
||
}
|
||
// 玩家邮件存档
|
||
static saveRoleMail(roleId: number, list: MailData[], callback: (code: MsgCode, msg: string) => void) {
|
||
let sql = "";
|
||
for (let mail of list) {
|
||
let obj = mail.toRoleMailDB();
|
||
obj.role_id = roleId;
|
||
sql += SKDBUtil.createInsertDuplicatet("dh_mail", obj, {
|
||
mail_id: mail.mail_id
|
||
});
|
||
}
|
||
DB.query(sql, (error: any, rows: []) => {
|
||
if (error) {
|
||
let info = this.errorInfo(error);
|
||
callback(MsgCode.FAILED, info);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, "");
|
||
});
|
||
}
|
||
// 读机器人数据
|
||
static readRobots(total: number, callback: (rows: any) => void) {
|
||
let sql = `SELECT * FROM qy_role WHERE ai_flag = 1 LIMIT ${total};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
return;
|
||
}
|
||
callback(rows);
|
||
});
|
||
}
|
||
|
||
|
||
// 检查注册码
|
||
static isCodeEnable(inviteCode: string, callback: (code: number, msg: string) => void) {
|
||
let sql = `SELECT * FROM agency_admin_user WHERE status = 1 and invite ='${inviteCode}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, `无效注册码${inviteCode}失败!`);
|
||
return;
|
||
}else {
|
||
if (rows.length == 0){
|
||
callback(MsgCode.FAILED, `无效注册码${inviteCode}失败!`);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, `注册码${inviteCode}成功`);
|
||
}
|
||
|
||
});
|
||
};
|
||
|
||
// 多宝阁数据
|
||
static selectShopData(callback: (code: number, data: any) => void) {
|
||
let sql = '';
|
||
let data: any = {};
|
||
sql = `SELECT id, itemid, price, discount FROM prop_fresh;`;
|
||
sql += `SELECT id, itemid, price, discount FROM prop_mall;`;
|
||
sql += `SELECT id, itemid, price, time, discount FROM prop_day_limit;`;
|
||
sql += `SELECT id, itemid, price, time, discount FROM prop_recommend;`;
|
||
sql += `SELECT id, itemid, price, item_kind FROM prop_integral;`;
|
||
sql += `SELECT id, itemid, price, discount FROM prop_bind_jade;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
data.propFresh = rows[0];
|
||
data.propMall = rows[1];
|
||
data.propDayLimit = rows[2];
|
||
data.propRecommend = rows[3];
|
||
data.propIntegral = rows[4];
|
||
data.propBindJade = rows[5];
|
||
callback(MsgCode.SUCCESS, data);
|
||
});
|
||
};
|
||
|
||
// 碎片商城数据
|
||
static selectDebrisData(callback: (code: number, data: any) => void) {
|
||
let sql = `SELECT name, serial, price, num, type FROM prop_debris;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
};
|
||
|
||
// 甄不亏数据
|
||
static selectZbkData(callback: (code: number, data: any) => void) {
|
||
let sql = `SELECT id, itemid, itemname, kind, weight, min_price, max_price, type, min_quantity, max_quantity FROM prop_zhenbukui_shop;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
};
|
||
|
||
static selectReport(callback: any){
|
||
let sql = `SELECT sroleid, eresid, eroleid, erolename, iswin, ranking, cdate FROM qy_report`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
}
|
||
|
||
// 藏宝图数据
|
||
static selectLotteryData(callback: (code: number, data: any) => void) {
|
||
let sql = `SELECT id, item, name, num, rate FROM prop_lottery;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
};
|
||
|
||
// 山河社稷图图数据
|
||
static selectLotterySuperData(callback: (code: number, data: any) => void) {
|
||
let sql = `SELECT id, item, name, num, rate FROM prop_lottery_super;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
};
|
||
|
||
// 幸运转盘数据
|
||
static selectDialData(callback: (code: number, data: any) => void) {
|
||
let sql = `SELECT item_id, item_name, type, num, flag, rate FROM dh_dial;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
};
|
||
|
||
// 检查兑换码
|
||
static checkCod(code: any, callback: any) {
|
||
let sql = `SELECT code, reward, start, end FROM qy_convert WHERE code = '${code}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS,rows);
|
||
})
|
||
}
|
||
//使用变身卡数据
|
||
static selectUseCard(callback: any){
|
||
let sql = `SELECT roleid, resid, card_id, usetime, endtime, gain, five_phases FROM use_change_card`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
}
|
||
|
||
//修改角色特效数据
|
||
static insertSeffect(effectid: any, roleid: any, usestate: any, effecttype: any, callback: any){
|
||
let sql = `select * from role_has_seffect where roleid = ${roleid} and effectid = ${effectid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
if (rows.length > 0) {
|
||
sql = `UPDATE role_has_seffect SET use_state = ${usestate} WHERE roleid = ${roleid} and effectid = ${effectid} and effecttype = ${effecttype};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED);
|
||
return;
|
||
}
|
||
});
|
||
} else {
|
||
let sql = `INSERT INTO role_has_seffect (roleid, effectid, effecttype, use_state) values(${roleid},${effectid},${effecttype},0)`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
})
|
||
}
|
||
|
||
//所有玩家的特效
|
||
static selectSeffect(callback: any){
|
||
let sql = `SELECT * FROM role_has_seffect`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
}
|
||
|
||
//添加五行数据
|
||
static insertFivePhasesById(roleid: any){
|
||
let sql = `INSERT INTO qy_five_phases (roleid) values(${roleid})`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
|
||
//修改五行数据
|
||
static updateFivePhasesById(info: any, roleid: any){
|
||
let sql = `UPDATE qy_five_phases SET five_phases_level = ${info.fplevel},jin_level = ${info.jinlevel},jin_exp = ${info.jinexp},mu_level = ${info.mulevel},mu_exp = ${info.muexp},shui_level = ${info.shuilevel},shui_exp = ${info.shuiexp},huo_level = ${info.huolevel},huo_exp = ${info.huoexp},tu_level = ${info.tulevel},tu_exp = ${info.muexp},use_count = ${info.count} WHERE roleid = ${roleid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
|
||
//添加支援宠物
|
||
static insertSupportPet(info: any, callback: any){
|
||
let sql = `INSERT INTO qy_pet_support (roleid,petid,petname,resid,sorder) values(${info.roleid},${info.petid},'${info.petname}',${info.resid},${info.sorder})`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
|
||
//添加天策符
|
||
static insertOfuda(roleid: number, ofudainfo: any){
|
||
let insql = `UPDATE role_has_ofuda SET ofuda_data = '${ofudainfo}' WHERE roleid = ${roleid};`;
|
||
DB.query(insql, (error: any, rows: any) => {
|
||
if (error) {
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
|
||
//删除支援宠物
|
||
static deleteSupportPet(roleid: number, petid: number) {
|
||
let sql = `DELETE FROM qy_pet_support WHERE roleid= ${roleid} AND petid = ${petid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
|
||
// 删除支援宠物后修改宠物支援顺序
|
||
static updateSupportPetSorder(info: any, callback: any) {
|
||
let sql = `UPDATE qy_pet_support SET sorder = '${info.sorder}' WHERE roleid = ${info.roleid} and petid = ${info.petid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, `修改宠物支援顺序失败${info.petid}:${info.sorder}`);
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
|
||
// 修改双倍点数
|
||
static updateDoublePoint(info: any) {
|
||
let sql = `UPDATE qy_role SET doublecnt = '${info.doublecnt}',unget_doublecnt = '${info.unget_doublecnt}' WHERE roleid = ${info.roleid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
return;
|
||
});
|
||
}
|
||
|
||
static updateMoney(info: any) {
|
||
let sql = `UPDATE qy_role SET bind_jade = '${info.bind_jade}',bang_score = '${info.bangscore}',shi_score = '${info.shiscore}',di_score = '${info.discore}',xiu_score = '${info.xiuscore}',guo_score = '${info.guoscore}' WHERE roleid = ${info.roleid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
return;
|
||
});
|
||
}
|
||
|
||
|
||
// 帮战记录
|
||
static insertCutFaction(one: any, one_site: any, two: any, two_site: any) {
|
||
let sql = `insert into cut_faction(side_id, enemy_id, create_time, site) values('${one}',${two},NOW(),'${one_site}');`;
|
||
sql += `insert into cut_faction(side_id, enemy_id, create_time, site) values('${two}','${one}',NOW(),'${two_site}');`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
return;
|
||
});
|
||
}
|
||
|
||
// 重启服务器读取当前入围帮战资格数据
|
||
static getCutFaction(callback: (code: number, data: any) => void) {
|
||
let sql = `SELECT side_id, enemy_id, site FROM cut_faction where create_time = date_format(NOW(),'%y%m%d');`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
};
|
||
|
||
// 游戏配置
|
||
static selectConfiguration(key: any,callback: any) {
|
||
let sql = `SELECT value_data FROM game_configuration where key_data = '${key}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows[0]);
|
||
});
|
||
};
|
||
|
||
// 更改游戏配置
|
||
static updateConfiguration(key: any, data: any) {
|
||
let sql = `UPDATE game_configuration SET value_data = '${data}' WHERE key_data = '${key}';`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
return;
|
||
});
|
||
};
|
||
|
||
// 更改游戏配置
|
||
static updateCurrencyRole(roleid: any, money: any) {
|
||
let sql = `UPDATE qy_currency_role SET money = ${money} WHERE roleid = ${roleid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
return;
|
||
});
|
||
};
|
||
|
||
// 读取玩家点券数据
|
||
static selectCurrencyRole(callback: any) {
|
||
let sql = `SELECT roleid,money FROM qy_currency_role;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
};
|
||
|
||
// 添加申请提款
|
||
static insertCurrencyWithdraw(data: any, money: any) {
|
||
let sql = `INSERT INTO qy_currency_withdraw (serial,roleid,alipay,name,money, req_time) values(${data.serial},${data.roleid},'${data.alipay}','${data.name}',${data.money},'${data.req_time}')`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
return;
|
||
}
|
||
sql = `update qy_currency_role set money =${money} where roleid = ${data.roleid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
return;
|
||
}
|
||
});
|
||
return;
|
||
});
|
||
};
|
||
|
||
// 查询申请提款
|
||
static selectCurrencyWithdraw(callback: (code: number, data: any) => void) {
|
||
let sql = `SELECT * FROM qy_currency_withdraw;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
return;
|
||
});
|
||
};
|
||
|
||
// 白名单数据
|
||
static selectInterface(callback: (code: number, data: any) => void) {
|
||
let sql = `SELECT map_interface FROM dhxy_whitelist_interface;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
};
|
||
|
||
// 结婚数据
|
||
static selectMarry(callback: (code: number, data: any) => void) {
|
||
let sql = `SELECT * FROM qy_marry;`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, null);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, rows);
|
||
});
|
||
};
|
||
|
||
|
||
/**天梯数据 写入数据库 */
|
||
static tiantidata(player: any, score: number, baichang: number, shengchang: number, effid: number, callback: (code: number, msg: string) => void) {
|
||
var sql = `SELECT * FROM qy_tianti WHERE roleid = "${player.roleid}";`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, `天梯数据:SQL错误,请稍候重试!`);
|
||
return;
|
||
}
|
||
if (rows.length > 0) {
|
||
callback(MsgCode.FAILED, `天梯数据,已经存在,请更新!`);
|
||
sql = `UPDATE qy_tianti SET jifen = ${score} , baichang = ${baichang}, shengchang = ${shengchang}, wingId = ${player.wingId}, effid = ${effid} WHERE roleid = ${player.roleid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, `天梯数据更新失败,请稍候重试!`);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, `天梯数据更新成功!`);
|
||
});
|
||
|
||
return;
|
||
} else {
|
||
sql = `insert into qy_tianti (roleid, resid, jifen, name, baichang,shengchang,wingId,effid) values (${player.roleid},${player.resid}, ${player.tianti_integral},'${player.name}',${baichang},${shengchang},${player.wingId},${effid});`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
callback(MsgCode.FAILED, `天梯数据:插入失败,请稍候重试!`);
|
||
return;
|
||
}
|
||
callback(MsgCode.SUCCESS, `天梯数据成功!`);
|
||
});
|
||
}
|
||
});
|
||
}
|
||
|
||
static insertMarry(roleid_a: any, rolename_a: any, roleid_b: any, rolename_b: any) {
|
||
let sql = `insert into qy_marry(roleid_a, rolename_a, roleid_b, rolename_b) values(${roleid_a}, '${rolename_a}', ${roleid_b}, '${rolename_b}');`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
return;
|
||
});
|
||
}
|
||
|
||
static deleteMarry(roleid: any) {
|
||
let sql = `DELETE FROM qy_marry WHERE roleid_a = ${roleid};`;
|
||
DB.query(sql, (error: any, rows: any) => {
|
||
if (error) {
|
||
return;
|
||
}
|
||
});
|
||
}
|
||
|
||
static errorInfo(error: any): string {
|
||
if (error.sqlMessage) {
|
||
return error.sqlMessage;
|
||
}
|
||
if (error.message) {
|
||
return error.message;
|
||
}
|
||
if (error.code) {
|
||
return error.code;
|
||
}
|
||
return "未知";
|
||
}
|
||
} |