2299 lines
92 KiB
TypeScript
Raw Permalink Normal View History

2025-04-23 09:34:08 +08:00
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 "未知";
}
}