1
This commit is contained in:
parent
65e4d443c0
commit
944fb8ff43
7
server/bin/web3admin/config/marketdb_mysql.json
Normal file
7
server/bin/web3admin/config/marketdb_mysql.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"host": "192.168.100.21",
|
||||
"port": 3306,
|
||||
"user": "root",
|
||||
"passwd": "keji178",
|
||||
"database": "marketdb2006_dev"
|
||||
}
|
8
server/web3admin/be/metadata/Config.js
Normal file
8
server/web3admin/be/metadata/Config.js
Normal file
@ -0,0 +1,8 @@
|
||||
const utils = require('j7/utils');
|
||||
const basewrap = require('./basewrap');
|
||||
|
||||
class Config extends basewrap.BaseWrap {
|
||||
|
||||
}
|
||||
|
||||
module.exports = Config;
|
8
server/web3admin/be/metadata/MarketDb.js
Normal file
8
server/web3admin/be/metadata/MarketDb.js
Normal file
@ -0,0 +1,8 @@
|
||||
const utils = require('j7/utils');
|
||||
const basewrap = require('./basewrap');
|
||||
|
||||
class MarketDb extends basewrap.BaseWrap {
|
||||
|
||||
}
|
||||
|
||||
module.exports = MarketDb;
|
57
server/web3admin/be/metadata/basewrap.js
Normal file
57
server/web3admin/be/metadata/basewrap.js
Normal file
@ -0,0 +1,57 @@
|
||||
const utils = require('j7/utils');
|
||||
|
||||
class BaseWrap {
|
||||
|
||||
#writeLock = false;
|
||||
|
||||
constructor(json, metaClass) {
|
||||
this._json = json;
|
||||
//this._metaClass = metaClass;
|
||||
this._metaName = metaClass['wrapClassName'];
|
||||
}
|
||||
|
||||
lock() {
|
||||
//this.#writeLock = true;
|
||||
}
|
||||
|
||||
_getHandler() {
|
||||
return {
|
||||
get: (obj, prop) => {
|
||||
if (prop in obj._json) {
|
||||
let val = obj._json[prop];
|
||||
if (utils.isArray(val)) {
|
||||
return new Proxy(val, {
|
||||
set: () => {
|
||||
console.log(33333);
|
||||
}
|
||||
});
|
||||
} else if (utils.isObject(val)) {
|
||||
return new Proxy(val, {
|
||||
set: () => {
|
||||
console.log(33333);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
return prop in obj ? obj[prop] : null;
|
||||
},
|
||||
set: (obj, prop, val) => {
|
||||
if (this.#writeLock) {
|
||||
console.log(111111);
|
||||
} else {
|
||||
Reflect.set(obj, prop, val);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
getMetaName() {
|
||||
return this._metaName;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
exports.BaseWrap = BaseWrap;
|
@ -1,5 +1,130 @@
|
||||
function init() {
|
||||
const app = require('j7/app');
|
||||
const utils = require('j7/utils');
|
||||
const log = require('j7/log');
|
||||
|
||||
const metaClassList = [];
|
||||
const metaClasses = {};
|
||||
|
||||
function registerMetaClass(fileName, primKey, wrapClass) {
|
||||
const metaClass = {
|
||||
'fileName' : fileName,
|
||||
'primKey' : primKey,
|
||||
'wrapClassName': wrapClass,
|
||||
'wrapClass': require('./' + wrapClass),
|
||||
'rawList' : [],
|
||||
'rawHash' : {},
|
||||
'wrapList' : [],
|
||||
'wrapHash' : {},
|
||||
};
|
||||
metaClassList.push(metaClass);
|
||||
metaClasses[wrapClass] = metaClass;
|
||||
}
|
||||
|
||||
function load() {
|
||||
metaClassList.forEach((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));
|
||||
});
|
||||
{
|
||||
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/';
|
||||
if (utils.isOnlineEnv()) {
|
||||
configDir = '../config/';
|
||||
} else if (utils.getArgv('env') == 'dev'){
|
||||
configDir = './config_dev/';
|
||||
}
|
||||
console.log(configDir, utils.getArgv('env'));
|
||||
|
||||
let resDir = './res/';
|
||||
if (utils.isOnlineEnv()) {
|
||||
resDir = '../res/';
|
||||
} else if (utils.getArgv('env') == 'dev'){
|
||||
resDir = './res_dev/';
|
||||
}
|
||||
resDir = '/data/conf/webadmin2006/';
|
||||
|
||||
registerMetaClass(configDir + 'marketdb_mysql.json',
|
||||
'',
|
||||
'MarketDb'
|
||||
);
|
||||
registerMetaClass(configDir + 'config.json',
|
||||
'',
|
||||
'Config'
|
||||
);
|
||||
load();
|
||||
}
|
||||
|
||||
function getMetaClass(name) {
|
||||
return utils.hasKey(metaClasses, name) ? metaClasses[name] : null;
|
||||
}
|
||||
|
||||
function getMetaByKey(name, key) {
|
||||
const metaClass = getMetaClass(name);
|
||||
return metaClass && key in metaClass['wrapHash'] ? metaClass['wrapHash'][key] : null;
|
||||
}
|
||||
|
||||
function getMetaList(name) {
|
||||
const metaClass = getMetaClass(name);
|
||||
return metaClass ? metaClass['wrapList'] : null;
|
||||
}
|
||||
|
||||
function callMetaStatic(name, method, ...args) {
|
||||
const metaClass = getMetaClass(name);
|
||||
return metaClass['wrapClass'][method](...args);
|
||||
}
|
||||
|
||||
function traverseMetaList(name, cb) {
|
||||
const metaList = getMetaList(name);
|
||||
if (metaList) {
|
||||
for (let i = 0; i < metaList.length; ++i) {
|
||||
if (!cb(metaList[i], i, metaList.length)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
exports.init = init;
|
||||
exports.getMetaByKey = getMetaByKey;
|
||||
exports.traverseMetaList = traverseMetaList;
|
||||
exports.callMetaStatic = callMetaStatic;
|
||||
|
Loading…
x
Reference in New Issue
Block a user