Commit 90b13405 by lixinming

模糊查询

parent 6ffdb28e
...@@ -649,6 +649,14 @@ ...@@ -649,6 +649,14 @@
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
}, },
"generate-function": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz",
"integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==",
"requires": {
"is-property": "^1.0.2"
}
},
"get-intrinsic": { "get-intrinsic": {
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
...@@ -807,6 +815,11 @@ ...@@ -807,6 +815,11 @@
"resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&sync_timestamp=1604429388528&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz", "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&sync_timestamp=1604429388528&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz",
"integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4="
}, },
"is-property": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
"integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g=="
},
"is-stream": { "is-stream": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
...@@ -916,6 +929,11 @@ ...@@ -916,6 +929,11 @@
} }
} }
}, },
"long": {
"version": "5.2.3",
"resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz",
"integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q=="
},
"lru-cache": { "lru-cache": {
"version": "4.1.5", "version": "4.1.5",
"resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz", "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz",
...@@ -1093,6 +1111,61 @@ ...@@ -1093,6 +1111,61 @@
} }
} }
}, },
"mysql2": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.6.0.tgz",
"integrity": "sha512-EWUGAhv6SphezurlfI2Fpt0uJEWLmirrtQR7SkbTHFC+4/mJBrPiSzHESHKAWKG7ALVD6xaG/NBjjd1DGJGQQQ==",
"requires": {
"denque": "^2.1.0",
"generate-function": "^2.3.1",
"iconv-lite": "^0.6.3",
"long": "^5.2.1",
"lru-cache": "^8.0.0",
"named-placeholders": "^1.1.3",
"seq-queue": "^0.0.5",
"sqlstring": "^2.3.2"
},
"dependencies": {
"denque": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz",
"integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw=="
},
"iconv-lite": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"requires": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
}
},
"lru-cache": {
"version": "8.0.5",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz",
"integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA=="
},
"sqlstring": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz",
"integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg=="
}
}
},
"named-placeholders": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz",
"integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==",
"requires": {
"lru-cache": "^7.14.1"
},
"dependencies": {
"lru-cache": {
"version": "7.18.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
"integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA=="
}
}
},
"negotiator": { "negotiator": {
"version": "0.6.2", "version": "0.6.2",
"resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz", "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz",
...@@ -1375,6 +1448,11 @@ ...@@ -1375,6 +1448,11 @@
} }
} }
}, },
"seq-queue": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz",
"integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q=="
},
"sequelize": { "sequelize": {
"version": "6.32.1", "version": "6.32.1",
"resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.32.1.tgz", "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.32.1.tgz",
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
"moment": "^2.24.0", "moment": "^2.24.0",
"mongoose": "^5.4.0", "mongoose": "^5.4.0",
"mysql": "^2.18.1", "mysql": "^2.18.1",
"mysql2": "^3.6.0",
"node-xlsx": "^0.16.1", "node-xlsx": "^0.16.1",
"nodemailer": "^6.1.1", "nodemailer": "^6.1.1",
"qs": "^6.11.0", "qs": "^6.11.0",
......
<config> <config>
<port>40002</port> <port>40002</port>
<sign>xxx90909082fsdahfjosadjfpoiwausjorip2hjklrhn1iou-0u124r-0qwejfokasjfolksaujfoas</sign> <sign>xxx90909082fsdahfjosadjfpoiwausjorip2hjklrhn1ioud0u124rx0qwejfokasjfolksaujfoas</sign>
<mongodb> <mongodb>
<path>127.0.0.1</path> <path>127.0.0.1</path>
<port>27017</port> <port>27017</port>
......
import { Op } from "sequelize";
import { ERRORENUM } from "../../config/errorEnum"; import { ERRORENUM } from "../../config/errorEnum";
import { modelMap } from "../../model/modelBind"; import { modelMap } from "../../model/modelBind";
import { BizError } from "../../util/bizError"; import { BizError } from "../../util/bizError";
function analysisParamToWhere(param) {
let where = {};
for (let key in param) {// 模糊查询{"字段名":{"%like%":'三'}}
if (param[key]["%like%"]) {
where[key] = {[Op.like]:`%${param[key]}%`};
} else {
where[key] = param[key];
}
}
return where
}
/** /**
* 查询单个数据 * 查询单个数据
...@@ -9,8 +21,9 @@ import { BizError } from "../../util/bizError"; ...@@ -9,8 +21,9 @@ import { BizError } from "../../util/bizError";
* @param param * @param param
* @returns * @returns
*/ */
export async function selectOneDataByParam(tableModel, param:object) { export async function selectOneDataByParam(tableModel, param) {
let data = tableModel.findOne({where:param}); let where = analysisParamToWhere(param);
let data = tableModel.findOne({where});
return {data}; return {data};
} }
...@@ -22,7 +35,8 @@ export async function selectOneDataByParam(tableModel, param:object) { ...@@ -22,7 +35,8 @@ export async function selectOneDataByParam(tableModel, param:object) {
* @returns * @returns
*/ */
export async function selectDataListByParam(tableModel, param:any) { export async function selectDataListByParam(tableModel, param:any) {
let data = tableModel.findAll({where:param}); let where = analysisParamToWhere(param);
let data = tableModel.findAll({where});
return {data}; return {data};
} }
...@@ -37,12 +51,14 @@ export async function selectDataListByParam(tableModel, param:any) { ...@@ -37,12 +51,14 @@ export async function selectDataListByParam(tableModel, param:any) {
*/ */
export async function selectDataListToPageByParam(tableModel, param:any, pageNumber:number, pageSize:number) { export async function selectDataListToPageByParam(tableModel, param:any, pageNumber:number, pageSize:number) {
pageSize = pageSize || 10; pageSize = pageSize || 10;
let data = tableModel.findAll({where:param, offset:(pageNumber-1)*10, limit:pageSize}); let where = analysisParamToWhere(param);
let data = tableModel.findAll({where, offset:(pageNumber-1)*10, limit:pageSize});
return {data}; return {data};
} }
export async function selectDataCountByParam(tableModel, param:any) { export async function selectDataCountByParam(tableModel, param:any) {
let data = tableModel.count({where:param}); let where = analysisParamToWhere(param);
let data = tableModel.count({where});
return {data}; return {data};
} }
......
...@@ -5,6 +5,8 @@ export enum ERRORENUM { ...@@ -5,6 +5,8 @@ export enum ERRORENUM {
缺少必要参数_表名, 缺少必要参数_表名,
数据表不存在, 数据表不存在,
参数错误, 参数错误,
添加时数据对象为空,
修改时数据对象为空
} }
/** /**
......
...@@ -28,6 +28,7 @@ export async function initConfig() { ...@@ -28,6 +28,7 @@ export async function initConfig() {
if (mysqldb) { if (mysqldb) {
let dbConfigInfo = mysqldb[0]; let dbConfigInfo = mysqldb[0];
systemConfig.mysqldb = {host:'', port:0, user:'', pwd:'', dataBase:''};
if (dbConfigInfo.mysqlHost && dbConfigInfo.mysqlPort && dbConfigInfo.mysqlUser && dbConfigInfo.dataBase) { if (dbConfigInfo.mysqlHost && dbConfigInfo.mysqlPort && dbConfigInfo.mysqlUser && dbConfigInfo.dataBase) {
systemConfig.mysqldb.host=dbConfigInfo.mysqlHost[0]; systemConfig.mysqldb.host=dbConfigInfo.mysqlHost[0];
systemConfig.mysqldb.port=parseInt(dbConfigInfo.mysqlPort[0]); systemConfig.mysqldb.port=parseInt(dbConfigInfo.mysqlPort[0]);
......
import { TablesConfig } from "../../config/mysqlTableConfig";
import { mysqlDB } from "./mysqlInit";
/**
* mysql 数据层
*/
let baseDB;
export async function initMysqlDB() {
for (let tableNameCN in TablesConfig) {
let { tableName, schema } = TablesConfig[tableNameCN];
let schemaConf = {
freezeTableName:true, //true表示使用给定的表名,false表示模型名后加s作为表名
timestamps:false //true表示给模型加上时间戳属性(createAt、updateAt),false表示不带时间戳属性
};
baseDB[tableName] = await mysqlDB.define( tableName, schema, schemaConf).sync({})
}
}
export { baseDB };
\ No newline at end of file
...@@ -2,6 +2,7 @@ import { initConfig, systemConfig} from "./config/serverConfig"; ...@@ -2,6 +2,7 @@ import { initConfig, systemConfig} from "./config/serverConfig";
import * as mongoDB from "./db/mongo/dbInit"; import * as mongoDB from "./db/mongo/dbInit";
import * as mysqlDB from "./db/mysql/mysqlInit"; import * as mysqlDB from "./db/mysql/mysqlInit";
import { initModel } from "./model/modelBind"; import { initModel } from "./model/modelBind";
import { initMysqlModel } from "./model/sqlModelBind";
import { httpServer } from "./net/http_server"; import { httpServer } from "./net/http_server";
async function lanuch() { async function lanuch() {
...@@ -12,6 +13,7 @@ async function lanuch() { ...@@ -12,6 +13,7 @@ async function lanuch() {
await initModel(); await initModel();
/**初始化sql */ /**初始化sql */
await mysqlDB.initMysqlDB(); await mysqlDB.initMysqlDB();
await initMysqlModel();
/**创建http服务 */ /**创建http服务 */
httpServer.createServer(systemConfig.port); httpServer.createServer(systemConfig.port);
......
/**
* mysql 数据层
*/
import { TablesConfig } from "../config/mysqlTableConfig";
import { mysqlDB } from "../db/mysql/mysqlInit";
let baseDB = {};
export async function initMysqlModel() {
for (let tableNameCN in TablesConfig) {
let { tableName, schema } = TablesConfig[tableNameCN];
let schemaConf = {
freezeTableName:true, //true表示使用给定的表名,false表示模型名后加s作为表名
timestamps:false //true表示给模型加上时间戳属性(createAt、updateAt),false表示不带时间戳属性
};
let model = mysqlDB.define( tableName, schema, schemaConf);
baseDB[tableName] = model.sync({}).then();
}
}
export { baseDB };
\ No newline at end of file
...@@ -7,6 +7,8 @@ import * as findBiz from '../biz/mysql/findData'; ...@@ -7,6 +7,8 @@ import * as findBiz from '../biz/mysql/findData';
import { checkMySqlSign } from '../middleware/user'; import { checkMySqlSign } from '../middleware/user';
import { eccReqParamater } from '../tools/eccParam'; import { eccReqParamater } from '../tools/eccParam';
import { BizError } from '../util/bizError';
import { ERRORENUM } from '../config/errorEnum';
export function setRouter(httpServer){ export function setRouter(httpServer){
httpServer.post('/yfs/dataserver/mysql/table/add', checkMySqlSign, asyncHandler(addTableData)); httpServer.post('/yfs/dataserver/mysql/table/add', checkMySqlSign, asyncHandler(addTableData));
...@@ -26,6 +28,8 @@ async function addTableData(req, res) { ...@@ -26,6 +28,8 @@ async function addTableData(req, res) {
let reqConf = {data: 'Object' }; let reqConf = {data: 'Object' };
let { data } = eccReqParamater(reqConf, req.body); let { data } = eccReqParamater(reqConf, req.body);
if (!Object.keys(data).length) throw new BizError(ERRORENUM.添加时数据对象为空);
let result = await addBiz.addData(table, data); let result = await addBiz.addData(table, data);
res.success(result); res.success(result);
} }
...@@ -34,10 +38,10 @@ async function addTableData(req, res) { ...@@ -34,10 +38,10 @@ async function addTableData(req, res) {
async function deleteData(req, res) { async function deleteData(req, res) {
let table = req.headers.table; let table = req.headers.table;
let reqConf = {data: 'Object' }; let reqConf = {param: 'Object' };
let { data } = eccReqParamater(reqConf, req.body); let { param } = eccReqParamater(reqConf, req.body);
let result = await delBiz.delData(table, data); let result = await delBiz.delData(table, param);
res.success(result); res.success(result);
} }
...@@ -47,6 +51,8 @@ async function updateManyData(req, res) { ...@@ -47,6 +51,8 @@ async function updateManyData(req, res) {
let reqConf = {param:'Object', data: 'Object' }; let reqConf = {param:'Object', data: 'Object' };
let { param, data } = eccReqParamater(reqConf, req.body); let { param, data } = eccReqParamater(reqConf, req.body);
if (!Object.keys(data).length) throw new BizError(ERRORENUM.修改时数据对象为空);
let result = await updateBiz.updateManyData(table, param, data); let result = await updateBiz.updateManyData(table, param, data);
res.success(result); res.success(result);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment