|
@@ -6,6 +6,9 @@ import cc.smtweb.framework.core.common.R; |
|
|
import cc.smtweb.framework.core.common.SwEnum; |
|
|
import cc.smtweb.framework.core.common.SwEnum; |
|
|
import cc.smtweb.framework.core.common.SwMap; |
|
|
import cc.smtweb.framework.core.common.SwMap; |
|
|
import cc.smtweb.framework.core.db.DbEngine; |
|
|
import cc.smtweb.framework.core.db.DbEngine; |
|
|
|
|
|
import cc.smtweb.framework.core.db.cache.ModelTableCache; |
|
|
|
|
|
import cc.smtweb.framework.core.db.vo.ModelField; |
|
|
|
|
|
import cc.smtweb.framework.core.db.vo.ModelTable; |
|
|
import cc.smtweb.framework.core.mvc.service.AbstractCompService; |
|
|
import cc.smtweb.framework.core.mvc.service.AbstractCompService; |
|
|
import cc.smtweb.framework.core.mvc.service.AbstractHandler; |
|
|
import cc.smtweb.framework.core.mvc.service.AbstractHandler; |
|
|
import cc.smtweb.framework.core.mvc.service.DefaultDelHandler; |
|
|
import cc.smtweb.framework.core.mvc.service.DefaultDelHandler; |
|
@@ -127,6 +130,11 @@ public class ModelFormService extends AbstractCompService { |
|
|
try { |
|
|
try { |
|
|
String sql = params.readString("sql"); |
|
|
String sql = params.readString("sql"); |
|
|
if (StringUtils.isEmpty(sql)) return R.error("没有传入的sql!"); |
|
|
if (StringUtils.isEmpty(sql)) return R.error("没有传入的sql!"); |
|
|
|
|
|
long masterTable = params.readLong("masterTable"); |
|
|
|
|
|
if (masterTable <= 0L) return R.error("没有传入的masterTable!"); |
|
|
|
|
|
ModelTable table = ModelTableCache.getInstance().get(masterTable); |
|
|
|
|
|
if (table == null) return R.error("没有找到表定义信息(masterTable=" + masterTable + ")!"); |
|
|
|
|
|
|
|
|
sql = sql.trim().toLowerCase(); |
|
|
sql = sql.trim().toLowerCase(); |
|
|
if (!sql.startsWith("select")) return R.error("非查询类sql,禁止执行!"); |
|
|
if (!sql.startsWith("select")) return R.error("非查询类sql,禁止执行!"); |
|
|
if (sql.contains(";")) return R.error("sql内禁止出现分号!"); |
|
|
if (sql.contains(";")) return R.error("sql内禁止出现分号!"); |
|
@@ -137,9 +145,19 @@ public class ModelFormService extends AbstractCompService { |
|
|
|
|
|
|
|
|
for (int i = 1, count = metaData.getColumnCount(); i <= count; i++) { |
|
|
for (int i = 1, count = metaData.getColumnCount(); i <= count; i++) { |
|
|
SwMap col = new SwMap(2); |
|
|
SwMap col = new SwMap(2); |
|
|
col.put("name", metaData.getColumnLabel(i)); |
|
|
|
|
|
|
|
|
final String colName = metaData.getColumnLabel(i).toLowerCase(); |
|
|
|
|
|
col.put("name", colName); |
|
|
SwEnum.DataTypeBean dtb = SwEnum.DataType.getBySqlType(metaData.getColumnType(i), metaData.getPrecision(i), metaData.getScale(i)); |
|
|
SwEnum.DataTypeBean dtb = SwEnum.DataType.getBySqlType(metaData.getColumnType(i), metaData.getPrecision(i), metaData.getScale(i)); |
|
|
col.put("dataType", dtb.value); |
|
|
col.put("dataType", dtb.value); |
|
|
|
|
|
ModelField field = table.findField(colName); |
|
|
|
|
|
if (field != null) { |
|
|
|
|
|
col.put("null", field.getNotNull()); |
|
|
|
|
|
col.put("default", field.getDefaultValue()); |
|
|
|
|
|
col.put("title", field.getTitle()); |
|
|
|
|
|
col.put("link", field.getLink()); |
|
|
|
|
|
col.put("table", table.getId()); |
|
|
|
|
|
col.put("table_text", table.getTitle()); |
|
|
|
|
|
} |
|
|
fields.add(col); |
|
|
fields.add(col); |
|
|
} |
|
|
} |
|
|
return fields; |
|
|
return fields; |
|
|