Files
platformV2Web/api/controller_admin/sys_model_field.js
张成 8309808835 1
2025-11-21 16:53:49 +08:00

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);
},
};