1
This commit is contained in:
parent
0d84a32b64
commit
832b7f6d82
@ -1,8 +1,8 @@
|
||||
const utils = require('j7/utils');
|
||||
const basewrap = require('./basewrap');
|
||||
|
||||
class Contract extends basewrap.BaseWrap {
|
||||
class BlockChainDb extends basewrap.BaseWrap {
|
||||
|
||||
}
|
||||
|
||||
module.exports = Contract;
|
||||
module.exports = BlockChainDb;
|
@ -1,8 +0,0 @@
|
||||
const utils = require('j7/utils');
|
||||
const basewrap = require('./basewrap');
|
||||
|
||||
class GameDb extends basewrap.BaseWrap {
|
||||
|
||||
}
|
||||
|
||||
module.exports = GameDb;
|
@ -1,8 +0,0 @@
|
||||
const utils = require('j7/utils');
|
||||
const basewrap = require('./basewrap');
|
||||
|
||||
class MarketDb extends basewrap.BaseWrap {
|
||||
|
||||
}
|
||||
|
||||
module.exports = MarketDb;
|
@ -1,8 +0,0 @@
|
||||
const utils = require('j7/utils');
|
||||
const basewrap = require('./basewrap');
|
||||
|
||||
class Web3 extends basewrap.BaseWrap {
|
||||
|
||||
}
|
||||
|
||||
module.exports = Web3;
|
@ -4,8 +4,11 @@ const log = require('j7/log');
|
||||
|
||||
const metaClassList = [];
|
||||
const metaClasses = {};
|
||||
const web3ConfHash = {};
|
||||
let web3ServiceConf = null;
|
||||
let configDir = './config/';
|
||||
|
||||
function registerMetaClass(fileName, primKey, wrapClass, aliseName = '') {
|
||||
function registerMetaClass(fileName, primKey, wrapClass) {
|
||||
const metaClass = {
|
||||
'fileName' : fileName,
|
||||
'primKey' : primKey,
|
||||
@ -15,70 +18,59 @@ function registerMetaClass(fileName, primKey, wrapClass, aliseName = '') {
|
||||
'rawHash' : {},
|
||||
'wrapList' : [],
|
||||
'wrapHash' : {},
|
||||
'aliseName': aliseName
|
||||
};
|
||||
metaClassList.push(metaClass);
|
||||
if (aliseName) {
|
||||
metaClasses[aliseName] = metaClass;
|
||||
} else {
|
||||
metaClasses[wrapClass] = metaClass;
|
||||
}
|
||||
}
|
||||
|
||||
function onAllLoadPost(classList) {
|
||||
for (let i = 0; i < 3; ++i) {
|
||||
classList.forEach((metaClass) => {
|
||||
metaClass['wrapList'].forEach((item) => {
|
||||
if (item['_init' + i]) {
|
||||
item['_init' + i](exports);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
classList.forEach((metaClass) => {
|
||||
metaClass['wrapList'].forEach((item) => {
|
||||
item.lock();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function loadMeta(metaClass) {
|
||||
const json = utils.readJsonFromFile(metaClass['fileName']);
|
||||
if (!json) {
|
||||
throw new Error('读取配置' + metaClass['fileName'] + '失败');
|
||||
}
|
||||
if (Array.isArray(json)) {
|
||||
metaClass['rawList'] = json;
|
||||
|
||||
} else {
|
||||
metaClass['rawList'].push(json);
|
||||
}
|
||||
let idx = 0;
|
||||
metaClass['rawList'].forEach(function (item) {
|
||||
const wrapOjb = new metaClass['wrapClass'](item, metaClass);
|
||||
const wrapProxy = new Proxy(wrapOjb, wrapOjb._getHandler());
|
||||
metaClass['wrapList'].push(wrapProxy);
|
||||
if (metaClass['primKey'] == '') {
|
||||
metaClass['rawHash'][idx] = item;
|
||||
metaClass['wrapHash'][idx] = wrapProxy;
|
||||
} else {
|
||||
metaClass['rawHash'][item[metaClass['primKey']]] = item;
|
||||
metaClass['wrapHash'][item[metaClass['primKey']]] = wrapProxy;
|
||||
}
|
||||
++idx;
|
||||
});
|
||||
metaClasses[wrapClass] = metaClass;
|
||||
}
|
||||
|
||||
function load() {
|
||||
metaClassList.forEach((metaClass) => {
|
||||
loadMeta(metaClass);
|
||||
const json = utils.readJsonFromFile(metaClass['fileName']);
|
||||
if (!json) {
|
||||
throw new Error('读取配置' + metaClass['fileName'] + '失败');
|
||||
}
|
||||
if (Array.isArray(json)) {
|
||||
metaClass['rawList'] = json;
|
||||
|
||||
} else {
|
||||
metaClass['rawList'].push(json);
|
||||
}
|
||||
let idx = 0;
|
||||
metaClass['rawList'].forEach(function (item) {
|
||||
const wrapOjb = new metaClass['wrapClass'](item, metaClass);
|
||||
const wrapProxy = new Proxy(wrapOjb, wrapOjb._getHandler());
|
||||
metaClass['wrapList'].push(wrapProxy);
|
||||
if (metaClass['primKey'] == '') {
|
||||
metaClass['rawHash'][idx] = item;
|
||||
metaClass['wrapHash'][idx] = wrapProxy;
|
||||
} else {
|
||||
metaClass['rawHash'][item[metaClass['primKey']]] = item;
|
||||
metaClass['wrapHash'][item[metaClass['primKey']]] = wrapProxy;
|
||||
}
|
||||
++idx;
|
||||
});
|
||||
//log.debug(utils.jsonEncode(metaClass));
|
||||
});
|
||||
onAllLoadPost(metaClassList);
|
||||
{
|
||||
for (let i = 0; i < 3; ++i) {
|
||||
metaClassList.forEach((metaClass) => {
|
||||
metaClass['wrapList'].forEach((item) => {
|
||||
if (item['_init' + i]) {
|
||||
item['_init' + i](exports);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
metaClassList.forEach((metaClass) => {
|
||||
metaClass['wrapList'].forEach((item) => {
|
||||
item.lock();
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function init() {
|
||||
let configDir = './config/';
|
||||
async function init() {
|
||||
configDir = './config/';
|
||||
if (utils.isOnlineEnv()) {
|
||||
configDir = '../config/';
|
||||
} else if (utils.getArgv('env') == 'dev'){
|
||||
@ -92,50 +84,41 @@ function init() {
|
||||
} else if (utils.getArgv('env') == 'dev'){
|
||||
resDir = './res_dev/';
|
||||
}
|
||||
console.log(resDir);
|
||||
|
||||
registerMetaClass(configDir + 'config.json',
|
||||
'',
|
||||
'Config'
|
||||
);
|
||||
registerMetaClass(configDir + 'web3.json',
|
||||
registerMetaClass(configDir + 'blockchaindb_mysql.json',
|
||||
'',
|
||||
'Web3'
|
||||
'BlockChainDb'
|
||||
);
|
||||
registerMetaClass(configDir + 'contract.json',
|
||||
registerMetaClass(configDir + 'web3service.cluster.json',
|
||||
'',
|
||||
'Contract'
|
||||
);
|
||||
registerMetaClass(configDir + 'marketdb_mysql.json',
|
||||
'',
|
||||
'MarketDb'
|
||||
);
|
||||
registerMetaClass(configDir + 'gamedb_mysql.json',
|
||||
'',
|
||||
'GameDb'
|
||||
'Web3Service'
|
||||
);
|
||||
|
||||
// registerMetaClass(resDir + 'item@item.json',
|
||||
// 'id',
|
||||
// 'Item'
|
||||
// );
|
||||
load();
|
||||
{
|
||||
const classList = [];
|
||||
getMetaByKey('PresentList', '0')['list'].forEach((item) => {
|
||||
registerMetaClass(resDir + item + '@present.json',
|
||||
'id',
|
||||
'Present',
|
||||
'Present' + item
|
||||
);
|
||||
const metaClass = getMetaClass('Present' + item);
|
||||
loadMeta(metaClass);
|
||||
classList.push(metaClass);
|
||||
traverseMetaList('BlockChainDb', (dbConf, idx) => {
|
||||
app.registerDb('BlockChainDb' + idx, dbConf);
|
||||
});
|
||||
onAllLoadPost(classList);
|
||||
}
|
||||
{
|
||||
traverseMetaList('MarketDb', (dbConf, idx) => {
|
||||
app.registerDb('MarketDb' + idx, dbConf);
|
||||
});
|
||||
}
|
||||
{
|
||||
traverseMetaList('GameDb', (dbConf, idx) => {
|
||||
app.registerDb('GameDb' + idx, dbConf);
|
||||
traverseMetaList('Web3Service', (item, idx) => {
|
||||
if (item['instance_id'] == app.getInstanceId()) {
|
||||
web3ServiceConf = item;
|
||||
item['nets'].forEach((netId) => {
|
||||
const netDir = configDir + 'nets/' + netId + '/';
|
||||
web3ConfHash[netId] = {
|
||||
'Web3': utils.readJsonFromFile(netDir + 'web3.json'),
|
||||
'Contract': utils.readJsonFromFile(netDir + 'contract.json')
|
||||
};
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -170,34 +153,42 @@ function traverseMetaList(name, cb) {
|
||||
}
|
||||
}
|
||||
|
||||
function getWeb3Conf() {
|
||||
return getMetaByKey('Web3', '0');
|
||||
}
|
||||
|
||||
function getContracts() {
|
||||
return getMetaList('Contract');
|
||||
}
|
||||
|
||||
function getContractByName(name) {
|
||||
return getMetaByKey('Contract', name);
|
||||
}
|
||||
|
||||
function getContractByAddress(address) {
|
||||
let contract = null;
|
||||
getContracts().forEach((item) => {
|
||||
if (item['address'] == address) {
|
||||
contract = item;
|
||||
function getWeb3Conf(netId) {
|
||||
const keys = Object.keys(web3ConfHash);
|
||||
for (let i = 0; i < keys.length; ++i) {
|
||||
if (keys[i] == netId) {
|
||||
return web3ConfHash[keys[i]]['Web3'];
|
||||
}
|
||||
});
|
||||
return contract;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function getUserAddress() {
|
||||
return getWeb3Conf()['user_address'];
|
||||
function getWeb3ServiceConf() {
|
||||
return web3ServiceConf;
|
||||
}
|
||||
|
||||
function getPrivateKey() {
|
||||
return getWeb3Conf()['private_key'];
|
||||
function getContractsConf(netId) {
|
||||
const keys = Object.keys(web3ConfHash);
|
||||
for (let i = 0; i < keys.length; ++i) {
|
||||
if (keys[i] == netId) {
|
||||
return web3ConfHash[keys[i]]['Contract'];
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function getNetList() {
|
||||
const netList = [];
|
||||
const keys = Object.keys(web3ConfHash);
|
||||
for (let i = 0; i < keys.length; ++i) {
|
||||
netList.push(keys[i]);
|
||||
}
|
||||
return netList;
|
||||
}
|
||||
|
||||
function getNetDir(netId) {
|
||||
const netDir = configDir + 'nets/' + netId + '/';
|
||||
return netDir;
|
||||
}
|
||||
|
||||
exports.init = init;
|
||||
@ -207,8 +198,7 @@ exports.traverseMetaList = traverseMetaList;
|
||||
exports.callMetaStatic = callMetaStatic;
|
||||
|
||||
exports.getWeb3Conf = getWeb3Conf;
|
||||
exports.getContracts = getContracts;
|
||||
exports.getContractByName = getContractByName;
|
||||
exports.getContractByAddress = getContractByAddress;
|
||||
exports.getUserAddress = getUserAddress;
|
||||
exports.getPrivateKey = getPrivateKey;
|
||||
exports.getWeb3ServiceConf = getWeb3ServiceConf;
|
||||
exports.getContractsConf = getContractsConf;
|
||||
exports.getNetList = getNetList;
|
||||
exports.getNetDir = getNetDir;
|
||||
|
Loading…
x
Reference in New Issue
Block a user