91 lines
2.6 KiB
JavaScript
91 lines
2.6 KiB
JavaScript
const { sys_model_field, sys_model, querySql, op } = require("../../middleware/baseModel");
|
|
const autoFile = require("../service/autoFile");
|
|
|
|
const handleRow = (row) => {
|
|
let { data_type, defaultValue } = row;
|
|
if (data_type === "INTEGER") {
|
|
row.defaultValue = row.defaultValue || 0;
|
|
|
|
if (row.data_length < 1 || row.data_length > 11) {
|
|
row.data_length = 11;
|
|
}
|
|
} else if (data_type === "DOUBLE") {
|
|
row.defaultValue = row.defaultValue || 0;
|
|
|
|
if (row.data_length < 1 || row.data_length > 12) {
|
|
row.data_length = 12;
|
|
}
|
|
}
|
|
};
|
|
|
|
module.exports = {
|
|
"GET /sys_model_field/all": async (ctx, next) => {
|
|
let model_id = ctx.get("model_id");
|
|
|
|
let dbColKeys = [];
|
|
let modelRow = await sys_model.findOne({ where: { id: model_id } });
|
|
if (modelRow) {
|
|
let { project_id } = modelRow;
|
|
let isExistTableName = await autoFile.querySql(`select TABLE_NAME from information_schema.TABLES where TABLE_NAME ="${modelRow.key}"`, project_id);
|
|
if (isExistTableName && isExistTableName.length > 0) {
|
|
let colRows = await autoFile.querySql(`show columns from ${modelRow.key}`, project_id);
|
|
dbColKeys = colRows.map((p) => p.Field);
|
|
}
|
|
}
|
|
|
|
let model_fields = await sys_model_field.findAll({ where: { model_id }, order: [["sort", "asc"]] });
|
|
model_fields = model_fields.map((p) => {
|
|
let newRow = p.toJSON();
|
|
if (dbColKeys.indexOf(newRow.key) > -1) {
|
|
newRow.isDbExist = true;
|
|
} else {
|
|
newRow.isDbExist = false;
|
|
}
|
|
return newRow;
|
|
});
|
|
|
|
return ctx.success(model_fields);
|
|
},
|
|
"GET /sys_model_field/allByKey": async (ctx, next) => {
|
|
let key = ctx.get("key");
|
|
|
|
let modelRow = await sys_model.findOne({ where: { key } });
|
|
if (modelRow) {
|
|
let model_id = modelRow.id;
|
|
const resList = await sys_model_field.findAll({ where: { model_id }, order: [["sort", "asc"]] });
|
|
return ctx.success(resList);
|
|
}
|
|
|
|
return ctx.fail();
|
|
},
|
|
|
|
"POST /sys_model_field/add": async (ctx, next) => {
|
|
let row = ctx.getBody();
|
|
|
|
handleRow(row);
|
|
|
|
const res = await sys_model_field.create(row);
|
|
return ctx.success(res);
|
|
},
|
|
"POST /sys_model_field/edit": async (ctx, next) => {
|
|
let row = ctx.getBody();
|
|
let { id } = row;
|
|
handleRow(row);
|
|
const res = await sys_model_field.update(row, {
|
|
where: {
|
|
id: id,
|
|
},
|
|
});
|
|
return ctx.success(res);
|
|
},
|
|
"POST /sys_model_field/del": async (ctx, next) => {
|
|
let id = ctx.get("id");
|
|
const res = await sys_model_field.destroy({
|
|
where: {
|
|
id: id,
|
|
},
|
|
});
|
|
return ctx.success(res);
|
|
},
|
|
};
|