Commit f5a0b1e8 by lixinming

no message

parent 410ecfa4
...@@ -134,7 +134,7 @@ export async function associationSelect(tableName:string, param) { ...@@ -134,7 +134,7 @@ export async function associationSelect(tableName:string, param) {
/** /**
* 多表联查 * 多表联查 列表
* @param tableModel * @param tableModel
* @param includeConf {"表名":["",""] } * @param includeConf {"表名":["",""] }
* @param param * @param param
...@@ -187,3 +187,29 @@ export async function selectDataToTableAssociationToPage(tableModel, includeConf ...@@ -187,3 +187,29 @@ export async function selectDataToTableAssociationToPage(tableModel, includeConf
let data = await tableModel.findAll(selectParam); let data = await tableModel.findAll(selectParam);
return {data}; return {data};
} }
/**
* 多表查询单个
* @param tableModel
* @param includeConf
* @param param
* @param column
* @returns
*/
export async function selectOneDataToTableAssociation(tableModel, includeConf, param, column) {
let include = [];
for (let tableName in includeConf) {
if (!mysqlModelMap[tableName]) throw new BizError(ERRORENUM.不存在表, `尝试进行多表联查,但是不存在${tableName}`);
include.push({
attributes : includeConf[tableName],
model : mysqlModelMap[tableName]
});
}
let selectParam:any = analysisParamToWhere(param, column);
selectParam.include = include;
let data = await tableModel.findOne(selectParam);
return {data};
}
...@@ -20,6 +20,8 @@ export function setRouter(httpServer){ ...@@ -20,6 +20,8 @@ export function setRouter(httpServer){
httpServer.post('/yfs/dataserver/mysql/table/find/count', checkMySqlSign, asyncHandler(findCountData)); httpServer.post('/yfs/dataserver/mysql/table/find/count', checkMySqlSign, asyncHandler(findCountData));
httpServer.post('/yfs/dataserver/mysql/table/find/aggragate', checkMySqlSign, asyncHandler(findAggragateData)); httpServer.post('/yfs/dataserver/mysql/table/find/aggragate', checkMySqlSign, asyncHandler(findAggragateData));
httpServer.post('/yfs/dataserver/mysql/table/find/aggragatetopage', checkMySqlSign, asyncHandler(findAggragateDataToPage)); httpServer.post('/yfs/dataserver/mysql/table/find/aggragatetopage', checkMySqlSign, asyncHandler(findAggragateDataToPage));
httpServer.post('/yfs/dataserver/mysql/table/find/aggragateone', checkMySqlSign, asyncHandler(selectOneDataToTableAssociation));
} }
...@@ -125,3 +127,14 @@ async function findAggragateDataToPage(req, res) { ...@@ -125,3 +127,14 @@ async function findAggragateDataToPage(req, res) {
res.success(result); res.success(result);
} }
async function selectOneDataToTableAssociation(req, res) {
let table = req.tableModel;
let reqConf = {param:'Object', includeConf:'Object', column:"[String]" };
let { param, includeConf, column } = eccReqParamater(reqConf, req.body, ["column"]);
let result = await findBiz.selectOneDataToTableAssociation(table, includeConf, param, column);
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