|
@@ -27,15 +27,16 @@ class FieldService
|
|
|
$pageSize = $request->get('pageSize', 10);
|
|
|
$fieldName = $request->get('field_name', '');
|
|
|
$tableName = $request->get('table_name', '');
|
|
|
+ $fieldCategory = $request->get('field_category', '');
|
|
|
|
|
|
$rows = SysField::select('*')
|
|
|
->when($fieldName != '', function ($query) use ($fieldName) {
|
|
|
$query->where('field_name', 'like', '%' . $fieldName . '%');
|
|
|
- })
|
|
|
- ->when($tableName != '', function ($query) use ($tableName) {
|
|
|
+ })->when($tableName != '', function ($query) use ($tableName) {
|
|
|
$query->where('field_table', 'like', '%' . $tableName . '%');
|
|
|
- })
|
|
|
- ->orderBy('field_addtimes', 'DESC')
|
|
|
+ })->when($fieldCategory != '', function ($query) use ($fieldCategory) {
|
|
|
+ $query->where('field_category', $fieldCategory);
|
|
|
+ })->orderBy('field_addtimes', 'DESC')
|
|
|
->forPage($page, $pageSize)
|
|
|
->get()
|
|
|
->toArray();
|
|
@@ -45,7 +46,7 @@ class FieldService
|
|
|
$query->where('field_table', 'like', '%' . $tableName . '%');
|
|
|
})->count();
|
|
|
|
|
|
- foreach ($rows as &$row){
|
|
|
+ foreach ($rows as &$row) {
|
|
|
$row['field_refer_json'] = json_decode($row['field_refer_json']);
|
|
|
}
|
|
|
|
|
@@ -80,7 +81,7 @@ class FieldService
|
|
|
*/
|
|
|
public static function addField($params)
|
|
|
{
|
|
|
- if (!empty($params['field_refer_json']['key'])){
|
|
|
+ if (!empty($params['field_refer_json']['key'])) {
|
|
|
$params['field_refer_json']['val'] = $params['field_refer_json']['key'];
|
|
|
}
|
|
|
Db::beginTransaction();
|
|
@@ -104,24 +105,26 @@ class FieldService
|
|
|
// 入库
|
|
|
SysField::insert($data);
|
|
|
|
|
|
- // 字段设置
|
|
|
- $column = [
|
|
|
- 'type' => $params['field_column_datatype'],
|
|
|
- 'field' => $params['field_column_key'],
|
|
|
- 'primary_key' => false,
|
|
|
- 'nullable' => true,
|
|
|
- 'default' => $params['field_column_default'],
|
|
|
- 'auto_increment' => false,
|
|
|
- 'comment' => $params['field_name']
|
|
|
- ];
|
|
|
- $defaultLength = Util::fieldDefaultLength();
|
|
|
- if (isset($defaultLength[$column['type']])) {
|
|
|
- $column['length'] = $defaultLength[$column['type']];
|
|
|
+ if (!empty($params['field_table'])) {
|
|
|
+ // 字段设置
|
|
|
+ $column = [
|
|
|
+ 'type' => self::$column[$params['field_column_datatype']],
|
|
|
+ 'field' => $params['field_column_key'],
|
|
|
+ 'primary_key' => false,
|
|
|
+ 'nullable' => true,
|
|
|
+ 'default' => $params['field_column_default'],
|
|
|
+ 'auto_increment' => false,
|
|
|
+ 'comment' => $params['field_name']
|
|
|
+ ];
|
|
|
+ $defaultLength = Util::fieldDefaultLength();
|
|
|
+ if (isset($defaultLength[$column['type']])) {
|
|
|
+ $column['length'] = $defaultLength[$column['type']];
|
|
|
+ }
|
|
|
+ // 写入字段
|
|
|
+ Util::schema()->table($params['field_table'], function (Blueprint $table) use ($column) {
|
|
|
+ self::createColumn($table, $column);
|
|
|
+ });
|
|
|
}
|
|
|
- // 写入字段
|
|
|
- Util::schema()->table($params['field_table'], function (Blueprint $table) use ($column) {
|
|
|
- self::createColumn($table, $column);
|
|
|
- });
|
|
|
Db::commit();
|
|
|
} catch (\Exception $e) {
|
|
|
Db::rollBack();
|
|
@@ -155,47 +158,48 @@ class FieldService
|
|
|
'field_form_key' => $params['field_form_key'],
|
|
|
'field_form_type' => $params['field_form_type'],
|
|
|
'field_form_default' => $params['field_form_default'],
|
|
|
- 'field_refer_json' => !empty($params['field_refer_json']) ? $params['field_refer_json'] : [],
|
|
|
+ 'field_refer_json' => !empty($params['field_refer_json']) ? json_encode($params['field_refer_json']) : '[]',
|
|
|
'field_remark' => $params['field_remark'],
|
|
|
- 'field_extend_json' => !empty($params['field_extend_json']) ? $params['field_extend_json'] : []
|
|
|
+// 'field_extend_json' => !empty($params['field_extend_json']) ? $params['field_extend_json'] : '[]'
|
|
|
];
|
|
|
// 更新
|
|
|
SysField::where('field_id', $id)->update($data);
|
|
|
-
|
|
|
- // 字段设置
|
|
|
- $column = [
|
|
|
- 'type' => $params['field_column_datatype'],
|
|
|
- 'field' => $params['field_column_key'],
|
|
|
- 'old_field' => $field->field_column_key,
|
|
|
- 'primary_key' => false,
|
|
|
- 'nullable' => true,
|
|
|
- 'default' => $params['field_column_default'],
|
|
|
- 'auto_increment' => false,
|
|
|
- 'comment' => $params['field_name']
|
|
|
- ];
|
|
|
- // 设置字段长度
|
|
|
- $defaultLength = Util::fieldDefaultLength();
|
|
|
- if (isset($defaultLength[$column['type']])) {
|
|
|
- $column['length'] = $defaultLength[$column['type']];
|
|
|
- }
|
|
|
- // 表变动
|
|
|
- if ($field->field_table != $params['field_table']) {
|
|
|
- if (!empty($field->field_table)){
|
|
|
- // 删原表字段
|
|
|
- Util::db()->statement("ALTER TABLE " . getenv('DB_PREFIX') . $field->field_table . " DROP COLUMN `$field->field_column_key`");
|
|
|
+ if (!empty($params['field_table'])) {
|
|
|
+ // 字段设置
|
|
|
+ $column = [
|
|
|
+ 'type' => self::$column[$params['field_column_datatype']],
|
|
|
+ 'field' => $params['field_column_key'],
|
|
|
+ 'old_field' => $field->field_column_key,
|
|
|
+ 'primary_key' => false,
|
|
|
+ 'nullable' => true,
|
|
|
+ 'default' => $params['field_column_default'],
|
|
|
+ 'auto_increment' => false,
|
|
|
+ 'comment' => $params['field_name']
|
|
|
+ ];
|
|
|
+ // 设置字段长度
|
|
|
+ $defaultLength = Util::fieldDefaultLength();
|
|
|
+ if (isset($defaultLength[$column['type']])) {
|
|
|
+ $column['length'] = $defaultLength[$column['type']];
|
|
|
+ }
|
|
|
+ // 表变动
|
|
|
+ if ($field->field_table != $params['field_table']) {
|
|
|
+ if (!empty($field->field_table)) {
|
|
|
+ // 删原表字段
|
|
|
+ Util::db()->statement("ALTER TABLE " . getenv('DB_PREFIX') . $field->field_table . " DROP COLUMN `$field->field_column_key`");
|
|
|
+ }
|
|
|
+ // 在新表创建
|
|
|
+ Util::schema()->table($params['field_table'], function (Blueprint $table) use ($column) {
|
|
|
+ self::createColumn($table, $column);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // 表没变,改就行
|
|
|
+ self::modifyColumn($params['field_table'], $column);
|
|
|
}
|
|
|
- // 在新表创建
|
|
|
- Util::schema()->table($params['field_table'], function (Blueprint $table) use ($column) {
|
|
|
- self::createColumn($table, $column);
|
|
|
- });
|
|
|
- } else {
|
|
|
- // 表没变,改就行
|
|
|
- self::modifyColumn(getenv('DB_PREFIX') . $params['field_table'], $column);
|
|
|
}
|
|
|
Db::commit();
|
|
|
} catch (\Exception $e) {
|
|
|
Db::rollBack();
|
|
|
-// dump($e->getTrace());
|
|
|
+ dump($e->getMessage());
|
|
|
return json_fail('修改字段失败');
|
|
|
}
|
|
|
|
|
@@ -258,8 +262,12 @@ class FieldService
|
|
|
|
|
|
public static function checkTableExist($table)
|
|
|
{
|
|
|
+ if (empty($table)) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
try {
|
|
|
- $table = getenv('DB_PREFIX') . $table;
|
|
|
+// $table = $table;
|
|
|
$desc = (new SysField)->getConnection()->select("desc `$table`");
|
|
|
if ($desc) {
|
|
|
return true;
|
|
@@ -280,6 +288,9 @@ class FieldService
|
|
|
*/
|
|
|
public static function checkFieldExist($table, $field)
|
|
|
{
|
|
|
+ if (empty($table)) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
return SysField::where('field_table', $table)
|
|
|
->where('field_column_key', $field)
|
|
|
->exists();
|
|
@@ -440,4 +451,10 @@ class FieldService
|
|
|
Util::db()->statement($sql);
|
|
|
}
|
|
|
|
|
|
+ public static $column = [
|
|
|
+ 'VARCHAR' => 'string',
|
|
|
+ 'DATETIME' => 'dateTime',
|
|
|
+ 'INT' => 'integer',
|
|
|
+ 'DECIMAL' => 'decimal'
|
|
|
+ ];
|
|
|
}
|