This commit is contained in:
aozhiwei 2022-11-01 21:02:44 +08:00
parent 7533a5e7ed
commit f98d9e8dfb
2 changed files with 73 additions and 4 deletions

View File

@ -8,6 +8,10 @@ const BC_FUNC_BLIND_BOX = 5;
const BC_FUNC_PRESENT = 6;
const BC_MAX_TOKEN_IDX = 99999;
const BC_TRANSID_MAX_PARAMS_NUM = 3;
const BC_TRANSID_MAX_SEQID = 9999999;
const BC_TRANS_FUNC_ACTIVATE = 11;
const BC_EPOCH = 1643212800;
const NONE_TYPE = 0;
@ -62,6 +66,35 @@ function isSameAddress(a, b) {
return a.toLowerCase() == b.toLowerCase();
}
/*
max(uint64): 18446744073709551615 = len(20)
max(uint256): 115792089237316195423570985008687907853269984665640564039457584007913129639935 = len(78)
max(int32): 2147483648 = len(10)
len(tokenid) = 16
transHead: funcId(2)|time(9)|seqId(7) = len(18)
*/
function genTransId(funcId, time, seqId, params) {
let transId =
utils.pad(funcId, 2) +
utils.pad(toBcTime(time), 9) +
utils.pad(seqId % BC_TRANSID_MAX_SEQID, 7);
params.forEach
(
(element) => {
transId += utils.pad(element, 20);
}
);
for (let i = 0; i < BC_TRANSID_MAX_PARAMS_NUM - params.length; ++i) {
transId += utils.pad(0, 20);
}
return transId;
}
function isValidTransId(transId) {
return utils.isPureNumberStr(transId.toString()) && transId.toString().length == 78;
}
exports.BC_BASE_GAME_ID = BC_BASE_GAME_ID;
exports.BC_FUNC_CREATION = BC_FUNC_CREATION;
exports.BC_FUNC_GUILD = BC_FUNC_GUILD;
@ -69,11 +102,13 @@ exports.BC_FUNC_BLIND_BOX = BC_FUNC_BLIND_BOX;
exports.BC_FUNC_PRESENT = BC_FUNC_PRESENT;
exports.BC_EPOCH = BC_EPOCH;
exports.BC_MAX_TOKEN_IDX = BC_MAX_TOKEN_IDX;
exports.BC_TRANSID_MAX_PARAMS_NUM = BC_TRANSID_MAX_PARAMS_NUM;
exports.BC_TRANS_FUNC_ACTIVATE = BC_TRANS_FUNC_ACTIVATE;
exports.NONE_TYPE = NONE_TYPE;
exports.HERO_TYPE = HERO_TYPE
exports.EQUIP_TYPE = EQUIP_TYPE
exports.CHIP_TYPE = CHIP_TYPE
exports.BLIND_BOX_TYPE = BLIND_BOX_TYPE
exports.HERO_TYPE = HERO_TYPE;
exports.EQUIP_TYPE = EQUIP_TYPE;
exports.CHIP_TYPE = CHIP_TYPE;
exports.BLIND_BOX_TYPE = BLIND_BOX_TYPE;
exports.isValidBcGameId = isValidBcGameId;
exports.isValidBcTime = isValidBcTime;
exports.isValidBcFuncId = isValidBcFuncId;
@ -83,3 +118,5 @@ exports.toNormalAddress = toNormalAddress;
exports.genTokenId = genTokenId;
exports.isValidTokenId = isValidTokenId;
exports.isSameAddress = isSameAddress;
exports.genTransId = genTransId;
exports.isValidTransId = isValidTransId;

32
db.js
View File

@ -117,6 +117,38 @@ class DB {
return await this.execScript(sql, params);
}
async insertEx(tblName, fieldList) {
const params = [];
let sql = 'INSERT INTO `' + tblName + '` (';
fieldList.forEach((item, index) => {
const suffix = (index + 1 < fieldList.length ? ',': '');
sql += '`' + item[0] + '`' + suffix;
});
sql += ') VALUES (';
fieldList.forEach((item, index) => {
const suffix = (index + 1 < fieldList.length ? ',': '');
sql += '?' + suffix;
params.push(item[1]);
});
sql += ')';
const ret = await this.execScript(sql, params);
ret['last_idx'] = 0;
const {err, row} = await this.execQueryOne(
'SELECT LAST_INSERT_ID() AS lastId',
[
]
);
if (err) {
ret['err'] = err;
} else {
ret['lastId'] = row['lastId'];
}
return ret;
}
async upsert(tblName, whereList, updateList, insertList, opts = null) {
const params = [];
let sql = 'SELECT * FROM `' + tblName + '` ';