浏览代码

添加column的CRUD

Administrator 4 年之前
父节点
当前提交
3f52b42d9c

+ 1 - 1
boman-modules/boman-gen/src/main/java/com/boman/gen/controller/GenController.java

@@ -200,7 +200,7 @@ public class GenController extends BaseController {
 
 
     /**
-    * @Description 代码生成增加新增功能
+    * @Description 数据表 新增功能
     * @Author: tjf
     * @Date: 2021/3/24
     */

+ 28 - 2
boman-modules/boman-gen/src/main/java/com/boman/gen/controller/GenTableColumnController.java

@@ -2,6 +2,7 @@ package com.boman.gen.controller;
 
 
 import com.boman.common.core.constant.UserConstants;
+import com.boman.common.core.utils.DateUtils;
 import com.boman.common.core.utils.SecurityUtils;
 import com.boman.common.core.web.controller.BaseController;
 import com.boman.common.core.web.domain.AjaxResult;
@@ -36,13 +37,18 @@ public class GenTableColumnController extends BaseController {
     @PostMapping
     @Log(title = "新增业务表字段", businessType = BusinessType.INSERT)
     public AjaxResult add(@Validated @RequestBody GenTableColumn genTableColumn) {
+        if (UserConstants.NOT_UNIQUE.equals(genTableColumnService.checkColumnNameUnique(genTableColumn)))
+        {
+            return AjaxResult.error("修改参数'" + genTableColumn.getColumnName() + "'失败,参数键名已存在");
+        }
+        genTableColumn.setCreateBy(SecurityUtils.getUsername());
         return toAjax(genTableColumnService.insertGenTableColumn(genTableColumn));
     }
 
 
 
     /**
-    * @Description 修改业务表字段
+    * @Description 修改业务表字段 列名称不可以修改
     * @author tjf
     * @Date 2021/3/24
     */
@@ -50,7 +56,27 @@ public class GenTableColumnController extends BaseController {
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody GenTableColumn genTableColumn)
     {
-
+        genTableColumn.setUpdateBy(SecurityUtils.getUsername());
         return toAjax( genTableColumnService.updateGenTableColumn(genTableColumn));
     }
+
+    /**
+     * 删除表字段
+     */
+    @Log(title = "删除表字段", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{columnIds}")
+    public AjaxResult remove(@PathVariable String columnIds)
+    {
+        return toAjax(genTableColumnService.deleteGenTableColumnByIds(columnIds));
+    }
+
+    /**
+     * 根据表编号获取字段详细信息
+     */
+    @GetMapping(value = "/{tableId}")
+    public AjaxResult getInfo(@PathVariable Long tableId)
+    {
+        return AjaxResult.success(genTableColumnService.selectGenTableColumnListByTableId(tableId));
+    }
+
 }

+ 9 - 0
boman-modules/boman-gen/src/main/java/com/boman/gen/mapper/GenTableColumnMapper.java

@@ -66,4 +66,13 @@ public interface GenTableColumnMapper
      * @return 结果
      */
     public int deleteGenTableColumnByIds(Long[] ids);
+
+
+
+    /**校验column_name是否重复
+    * @Description
+    * @author tjf
+    * @Date 2021/3/25
+    */
+    public GenTableColumn checkColumnNameUnique(String columnName);
 }

+ 62 - 56
boman-modules/boman-gen/src/main/java/com/boman/gen/service/GenTableColumnServiceImpl.java

@@ -1,7 +1,12 @@
 package com.boman.gen.service;
 
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+
+import com.boman.common.core.constant.UserConstants;
+import com.boman.common.core.utils.DateUtils;
+import com.boman.common.core.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.boman.common.core.text.Convert;
@@ -10,85 +15,86 @@ import com.boman.gen.mapper.GenTableColumnMapper;
 
 /**
  * 业务字段 服务层实现
- * 
+ *
  * @author ruoyi
  */
 @Service
-public class GenTableColumnServiceImpl implements IGenTableColumnService 
-{
-	@Autowired
-	private GenTableColumnMapper genTableColumnMapper;
+public class GenTableColumnServiceImpl implements IGenTableColumnService {
+    @Autowired
+    private GenTableColumnMapper genTableColumnMapper;
 
-	/**
+    /**
      * 查询业务字段列表
-     * 
+     *
      * @param tableId 业务字段编号
      * @return 业务字段集合
      */
-	@Override
-	public List<GenTableColumn> selectGenTableColumnListByTableId(Long tableId)
-	{
-	    return genTableColumnMapper.selectGenTableColumnListByTableId(tableId);
-	}
+    @Override
+    public List<GenTableColumn> selectGenTableColumnListByTableId(Long tableId) {
+        return genTableColumnMapper.selectGenTableColumnListByTableId(tableId);
+    }
 
-	/**
-	 * 查询业务字段列表
-	 *
-	 * @param tableIdList 业务字段编号List
-	 * @return 业务字段集合
-	 */
-	@Override
-	public List<GenTableColumn> listByTableIdList(List<Long> tableIdList) {
-		if (null == tableIdList || tableIdList.isEmpty()) {
-			return Collections.emptyList();
-		}
+    /**
+     * 查询业务字段列表
+     *
+     * @param tableIdList 业务字段编号List
+     * @return 业务字段集合
+     */
+    @Override
+    public List<GenTableColumn> listByTableIdList(List<Long> tableIdList) {
+        if (null == tableIdList || tableIdList.isEmpty()) {
+            return Collections.emptyList();
+        }
 
-		return genTableColumnMapper.listByTableIdList(tableIdList);
-	}
+        return genTableColumnMapper.listByTableIdList(tableIdList);
+    }
 
-	/**
+    /**
      * 新增业务字段
-     * 
+     *
      * @param genTableColumn 业务字段信息
      * @return 结果
      */
-	@Override
-	public int insertGenTableColumn(GenTableColumn genTableColumn)
-	{
-	    return genTableColumnMapper.insertGenTableColumn(genTableColumn);
-	}
-	
-	/**
+    @Override
+    public int insertGenTableColumn(GenTableColumn genTableColumn) {
+        return genTableColumnMapper.insertGenTableColumn(genTableColumn);
+    }
+
+    /**
      * 修改业务字段
-     * 
+     *
      * @param genTableColumn 业务字段信息
      * @return 结果
      */
-	@Override
-	public int updateGenTableColumn(GenTableColumn genTableColumn)
-	{
-	    return genTableColumnMapper.updateGenTableColumn(genTableColumn);
-	}
+    @Override
+    public int updateGenTableColumn(GenTableColumn genTableColumn) {
+        return genTableColumnMapper.updateGenTableColumn(genTableColumn);
+    }
 
-	/**
+    /**
      * 删除业务字段对象
-     * 
+     *
      * @param ids 需要删除的数据ID
      * @return 结果
      */
-	@Override
-	public int deleteGenTableColumnByIds(String ids)
-	{
-		return genTableColumnMapper.deleteGenTableColumnByIds(Convert.toLongArray(ids));
-	}
+    @Override
+    public int deleteGenTableColumnByIds(String ids) {
+        return genTableColumnMapper.deleteGenTableColumnByIds(Convert.toLongArray(ids));
+    }
 
-	/**
-	 * 校验column_name是否重复
-	 * @param genTableColumn
-	 * @return
-	 */
-	@Override
-	public String checkConfigKeyUnique(GenTableColumn genTableColumn) {
-		return null;
-	}
+    /**
+     * 校验column_name是否重复
+     *
+     * @param genTableColumn
+     * @return
+     */
+    @Override
+    public String checkColumnNameUnique(GenTableColumn genTableColumn) {
+        Long columnId = StringUtils.isNull(genTableColumn.getColumnId()) ? -1L : genTableColumn.getColumnId();
+        GenTableColumn column = genTableColumnMapper.checkColumnNameUnique(genTableColumn.getColumnName());
+        if (StringUtils.isNotNull(column) && column.getColumnId().longValue() != columnId.longValue()) {
+            return UserConstants.NOT_UNIQUE;
+        }
+        return UserConstants.UNIQUE;
+    }
 }

+ 120 - 143
boman-modules/boman-gen/src/main/java/com/boman/gen/service/GenTableServiceImpl.java

@@ -11,6 +11,7 @@ import java.util.stream.Collectors;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
+import com.boman.common.core.utils.DateUtils;
 import com.boman.common.core.web.domain.AjaxResult;
 import org.apache.commons.io.IOUtils;
 import org.apache.velocity.Template;
@@ -40,12 +41,11 @@ import com.boman.gen.util.VelocityUtils;
 
 /**
  * 业务 服务层实现
- * 
+ *
  * @author ruoyi
  */
 @Service
-public class GenTableServiceImpl implements IGenTableService
-{
+public class GenTableServiceImpl implements IGenTableService {
     private static final Logger log = LoggerFactory.getLogger(GenTableServiceImpl.class);
 
     @Autowired
@@ -56,13 +56,12 @@ public class GenTableServiceImpl implements IGenTableService
 
     /**
      * 查询业务信息
-     * 
+     *
      * @param id 业务ID
      * @return 业务信息
      */
     @Override
-    public GenTable selectGenTableById(Long id)
-    {
+    public GenTable selectGenTableById(Long id) {
         GenTable genTable = genTableMapper.selectGenTableById(id);
         setTableFromOptions(genTable);
         return genTable;
@@ -70,68 +69,62 @@ public class GenTableServiceImpl implements IGenTableService
 
     /**
      * 查询业务列表
-     * 
+     *
      * @param genTable 业务信息
      * @return 业务集合
      */
     @Override
-    public List<GenTable> selectGenTableList(GenTable genTable)
-    {
-        return genTableMapper.selectGenTableList(genTable);
+    public List<GenTable> selectGenTableList(GenTable genTable) {
+        List<GenTable> genTables = genTableMapper.selectGenTableList(genTable);
+        return genTables;
     }
 
     /**
      * 查询据库列表
-     * 
+     *
      * @param genTable 业务信息
      * @return 数据库表集合
      */
     @Override
-    public List<GenTable> selectDbTableList(GenTable genTable)
-    {
+    public List<GenTable> selectDbTableList(GenTable genTable) {
         return genTableMapper.selectDbTableList(genTable);
     }
 
     /**
      * 查询据库列表
-     * 
+     *
      * @param tableNames 表名称组
      * @return 数据库表集合
      */
     @Override
-    public List<GenTable> selectDbTableListByNames(String[] tableNames)
-    {
+    public List<GenTable> selectDbTableListByNames(String[] tableNames) {
         return genTableMapper.selectDbTableListByNames(tableNames);
     }
 
     /**
      * 查询所有表信息
-     * 
+     *
      * @return 表信息集合
      */
     @Override
-    public List<GenTable> selectGenTableAll()
-    {
+    public List<GenTable> selectGenTableAll() {
         return genTableMapper.selectGenTableAll();
     }
 
     /**
      * 修改业务
-     * 
+     *
      * @param genTable 业务信息
      * @return 结果
      */
     @Override
     @Transactional
-    public void updateGenTable(GenTable genTable)
-    {
+    public void updateGenTable(GenTable genTable) {
         String options = JSON.toJSONString(genTable.getParams());
         genTable.setOptions(options);
         int row = genTableMapper.updateGenTable(genTable);
-        if (row > 0)
-        {
-            for (GenTableColumn cenTableColumn : genTable.getColumns())
-            {
+        if (row > 0) {
+            for (GenTableColumn cenTableColumn : genTable.getColumns()) {
                 genTableColumnMapper.updateGenTableColumn(cenTableColumn);
             }
         }
@@ -139,62 +132,53 @@ public class GenTableServiceImpl implements IGenTableService
 
     /**
      * 删除业务对象
-     * 
+     *
      * @param tableIds 需要删除的数据ID
      * @return 结果
      */
     @Override
     @Transactional
-    public void deleteGenTableByIds(Long[] tableIds)
-    {
+    public void deleteGenTableByIds(Long[] tableIds) {
         genTableMapper.deleteGenTableByIds(tableIds);
         genTableColumnMapper.deleteGenTableColumnByIds(tableIds);
     }
 
     /**
      * 导入表结构
-     * 
+     *
      * @param tableList 导入表列表
      */
     @Override
     @Transactional
-    public void importGenTable(List<GenTable> tableList)
-    {
+    public void importGenTable(List<GenTable> tableList) {
         String operName = SecurityUtils.getUsername();
-        try
-        {
-            for (GenTable table : tableList)
-            {
+        try {
+            for (GenTable table : tableList) {
                 String tableName = table.getTableName();
                 GenUtils.initTable(table, operName);
                 int row = genTableMapper.insertGenTable(table);
-                if (row > 0)
-                {
+                if (row > 0) {
                     // 保存列信息
                     List<GenTableColumn> genTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName);
-                    for (GenTableColumn column : genTableColumns)
-                    {
+                    for (GenTableColumn column : genTableColumns) {
                         GenUtils.initColumnField(column, table);
                         genTableColumnMapper.insertGenTableColumn(column);
                     }
                 }
             }
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             throw new CustomException("导入失败:" + e.getMessage());
         }
     }
 
     /**
      * 预览代码
-     * 
+     *
      * @param tableId 表编号
      * @return 预览数据列表
      */
     @Override
-    public Map<String, String> previewCode(Long tableId)
-    {
+    public Map<String, String> previewCode(Long tableId) {
         Map<String, String> dataMap = new LinkedHashMap<>();
         // 查询表信息
         GenTable table = genTableMapper.selectGenTableById(tableId);
@@ -208,8 +192,7 @@ public class GenTableServiceImpl implements IGenTableService
 
         // 获取模板列表
         List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory());
-        for (String template : templates)
-        {
+        for (String template : templates) {
             // 渲染模板
             StringWriter sw = new StringWriter();
             Template tpl = Velocity.getTemplate(template, Constants.UTF8);
@@ -221,13 +204,12 @@ public class GenTableServiceImpl implements IGenTableService
 
     /**
      * 生成代码(下载方式)
-     * 
+     *
      * @param tableName 表名称
      * @return 数据
      */
     @Override
-    public byte[] downloadCode(String tableName)
-    {
+    public byte[] downloadCode(String tableName) {
         ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
         ZipOutputStream zip = new ZipOutputStream(outputStream);
         generatorCode(tableName, zip);
@@ -237,12 +219,11 @@ public class GenTableServiceImpl implements IGenTableService
 
     /**
      * 生成代码(自定义路径)
-     * 
+     *
      * @param tableName 表名称
      */
     @Override
-    public void generatorCode(String tableName)
-    {
+    public void generatorCode(String tableName) {
         // 查询表信息
         GenTable table = genTableMapper.selectGenTableByName(tableName);
         // 设置主子表信息
@@ -256,21 +237,16 @@ public class GenTableServiceImpl implements IGenTableService
 
         // 获取模板列表
         List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory());
-        for (String template : templates)
-        {
-            if (!StringUtils.containsAny(template, "sql.vm", "api.js.vm", "index.vue.vm", "index-tree.vue.vm"))
-            {
+        for (String template : templates) {
+            if (!StringUtils.containsAny(template, "sql.vm", "api.js.vm", "index.vue.vm", "index-tree.vue.vm")) {
                 // 渲染模板
                 StringWriter sw = new StringWriter();
                 Template tpl = Velocity.getTemplate(template, Constants.UTF8);
                 tpl.merge(context, sw);
-                try
-                {
+                try {
                     String path = getGenPath(table, template);
                     FileUtils.writeStringToFile(new File(path), sw.toString(), CharsetKit.UTF_8);
-                }
-                catch (IOException e)
-                {
+                } catch (IOException e) {
                     throw new CustomException("渲染模板失败,表名:" + table.getTableName());
                 }
             }
@@ -279,13 +255,12 @@ public class GenTableServiceImpl implements IGenTableService
 
     /**
      * 同步数据库
-     * 
+     *
      * @param tableName 表名称
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void synchDb(String tableName)
-    {
+    public void synchDb(String tableName) {
         GenTable table = genTableMapper.selectGenTableByName(tableName);
         //获取表字段集合
         List<GenTableColumn> tableColumns = table.getColumns();
@@ -293,41 +268,36 @@ public class GenTableServiceImpl implements IGenTableService
         List<String> tableColumnNames = tableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList());
         //根据表名称查询原列信息
         List<GenTableColumn> dbTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName);
-        if (StringUtils.isEmpty(dbTableColumns))
-        {
+        if (StringUtils.isEmpty(dbTableColumns)) {
             throw new CustomException("同步数据失败,原表结构不存在");
         }
         //获取原表列名称集合
         List<String> dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList());
 
         dbTableColumns.forEach(column -> {
-            if (!tableColumnNames.contains(column.getColumnName()))
-            {
+            if (!tableColumnNames.contains(column.getColumnName())) {
                 GenUtils.initColumnField(column, table);
                 genTableColumnMapper.insertGenTableColumn(column);
             }
         });
 
         List<GenTableColumn> delColumns = tableColumns.stream().filter(column -> !dbTableColumnNames.contains(column.getColumnName())).collect(Collectors.toList());
-        if (StringUtils.isNotEmpty(delColumns))
-        {
+        if (StringUtils.isNotEmpty(delColumns)) {
             genTableColumnMapper.deleteGenTableColumns(delColumns);
         }
     }
 
     /**
      * 批量生成代码(下载方式)
-     * 
+     *
      * @param tableNames 表数组
      * @return 数据
      */
     @Override
-    public byte[] downloadCode(String[] tableNames)
-    {
+    public byte[] downloadCode(String[] tableNames) {
         ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
         ZipOutputStream zip = new ZipOutputStream(outputStream);
-        for (String tableName : tableNames)
-        {
+        for (String tableName : tableNames) {
             generatorCode(tableName, zip);
         }
         IOUtils.closeQuietly(zip);
@@ -337,8 +307,7 @@ public class GenTableServiceImpl implements IGenTableService
     /**
      * 查询表信息并生成代码
      */
-    private void generatorCode(String tableName, ZipOutputStream zip)
-    {
+    private void generatorCode(String tableName, ZipOutputStream zip) {
         // 查询表信息
         GenTable table = genTableMapper.selectGenTableByName(tableName);
         // 设置主子表信息
@@ -352,23 +321,19 @@ public class GenTableServiceImpl implements IGenTableService
 
         // 获取模板列表
         List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory());
-        for (String template : templates)
-        {
+        for (String template : templates) {
             // 渲染模板
             StringWriter sw = new StringWriter();
             Template tpl = Velocity.getTemplate(template, Constants.UTF8);
             tpl.merge(context, sw);
-            try
-            {
+            try {
                 // 添加到zip
                 zip.putNextEntry(new ZipEntry(VelocityUtils.getFileName(template, table)));
                 IOUtils.write(sw.toString(), zip, Constants.UTF8);
                 IOUtils.closeQuietly(sw);
-				zip.flush();
+                zip.flush();
                 zip.closeEntry();
-            }
-            catch (IOException e)
-            {
+            } catch (IOException e) {
                 log.error("渲染模板失败,表名:" + table.getTableName(), e);
             }
         }
@@ -376,36 +341,24 @@ public class GenTableServiceImpl implements IGenTableService
 
     /**
      * 修改保存参数校验
-     * 
+     *
      * @param genTable 业务信息
      */
     @Override
-    public void validateEdit(GenTable genTable)
-    {
-        if (GenConstants.TPL_TREE.equals(genTable.getTplCategory()))
-        {
+    public void validateEdit(GenTable genTable) {
+        if (GenConstants.TPL_TREE.equals(genTable.getTplCategory())) {
             String options = JSON.toJSONString(genTable.getParams());
             JSONObject paramsObj = JSONObject.parseObject(options);
-            if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_CODE)))
-            {
+            if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_CODE))) {
                 throw new CustomException("树编码字段不能为空");
-            }
-            else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_PARENT_CODE)))
-            {
+            } else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_PARENT_CODE))) {
                 throw new CustomException("树父编码字段不能为空");
-            }
-            else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_NAME)))
-            {
+            } else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_NAME))) {
                 throw new CustomException("树名称字段不能为空");
-            }
-            else if (GenConstants.TPL_SUB.equals(genTable.getTplCategory()))
-            {
-                if (StringUtils.isEmpty(genTable.getSubTableName()))
-                {
+            } else if (GenConstants.TPL_SUB.equals(genTable.getTplCategory())) {
+                if (StringUtils.isEmpty(genTable.getSubTableName())) {
                     throw new CustomException("关联子表的表名不能为空");
-                }
-                else if (StringUtils.isEmpty(genTable.getSubTableFkName()))
-                {
+                } else if (StringUtils.isEmpty(genTable.getSubTableFkName())) {
                     throw new CustomException("子表关联的外键名不能为空");
                 }
             }
@@ -414,80 +367,106 @@ public class GenTableServiceImpl implements IGenTableService
 
     /**
      * 代码生成业务表新增
+     *
      * @param genTable
      * @return
      */
     @Override
     public AjaxResult insertGenTable(GenTable genTable) {
         //判断是否是菜单
-        return  genTableMapper.insertGenTable(genTable) > 0?AjaxResult.success():AjaxResult.error();
+        //新增表成功的时候,新增字段公共字段
+
+        int i = genTableMapper.insertGenTable(genTable);
+        if (i > 0) {
+            insertCommonColumn(genTable.getTableId());
+            return AjaxResult.success();
+        }
+        return AjaxResult.error();
+    }
+    /**
+     * 新建表时新增对应公共字段
+     *
+     * @param tableId
+     */
+    public void insertCommonColumn(Long tableId) {
+
+        String[]  columnName = new String[]{"create_by","create_time","update_by","update_time","is_del"};
+        String[]  columnComment = new String[]{"创建者","创建时间","更新者","更新时间","是否删除"};
+        String[]  columnType = new String[]{"varchar(64)","datetime","varchar(64)","datetime","char(1)"};
+        String[]  htmlType = new String[]{"input","datetime","input","datetime","input"};
+
+        for (int i = 0; i < columnName.length; i++) {
+            GenTableColumn genTableColumn = new GenTableColumn();
+            genTableColumn.setTableId(tableId);
+            genTableColumn.setColumnName(columnName[i]);
+            genTableColumn.setColumnComment(columnComment[i]);
+            genTableColumn.setColumnType(columnType[i]);
+            genTableColumn.setIsPk("0");
+            genTableColumn.setIsIncrement("0");
+            genTableColumn.setIsInsert("1");
+            genTableColumn.setQueryType("EQ");
+            genTableColumn.setHtmlType(htmlType[i]);
+            genTableColumn.setSort(i+1);
+            genTableColumn.setCreateBy("admin");
+            genTableColumn.setCreateTime(DateUtils.getNowDate());
+            genTableColumnMapper.insertGenTableColumn(genTableColumn);
+        }
     }
 
     /**
      * 设置主键列信息
-     * 
+     *
      * @param table 业务表信息
      */
-    public void setPkColumn(GenTable table)
-    {
-        for (GenTableColumn column : table.getColumns())
-        {
-            if (column.isPk())
-            {
+    public void setPkColumn(GenTable table) {
+        for (GenTableColumn column : table.getColumns()) {
+            if (column.isPk()) {
                 table.setPkColumn(column);
                 break;
             }
         }
-        if (StringUtils.isNull(table.getPkColumn()))
-        {
+        if (StringUtils.isNull(table.getPkColumn())) {
             table.setPkColumn(table.getColumns().get(0));
         }
-        if (GenConstants.TPL_SUB.equals(table.getTplCategory()))
-        {
-            for (GenTableColumn column : table.getSubTable().getColumns())
-            {
-                if (column.isPk())
-                {
+        if (GenConstants.TPL_SUB.equals(table.getTplCategory())) {
+            for (GenTableColumn column : table.getSubTable().getColumns()) {
+                if (column.isPk()) {
                     table.getSubTable().setPkColumn(column);
                     break;
                 }
             }
-            if (StringUtils.isNull(table.getSubTable().getPkColumn()))
-            {
+            if (StringUtils.isNull(table.getSubTable().getPkColumn())) {
                 table.getSubTable().setPkColumn(table.getSubTable().getColumns().get(0));
             }
         }
     }
+
     /**
      * 设置主子表信息
-     * 
+     *
      * @param table 业务表信息
      */
-    public void setSubTable(GenTable table)
-    {
+    public void setSubTable(GenTable table) {
         String subTableName = table.getSubTableName();
-        if (StringUtils.isNotEmpty(subTableName))
-        {
+        if (StringUtils.isNotEmpty(subTableName)) {
             table.setSubTable(genTableMapper.selectGenTableByName(subTableName));
         }
     }
 
     /**
      * 设置代码生成其他选项值
-     * 
+     *
      * @param genTable 设置后的生成对象
      */
-    public void setTableFromOptions(GenTable genTable)
-    {
+    public void setTableFromOptions(GenTable genTable) {
         JSONObject paramsObj = JSONObject.parseObject(genTable.getOptions());
-        if (StringUtils.isNotNull(paramsObj))
-        {
+        if (StringUtils.isNotNull(paramsObj)) {
             String treeCode = paramsObj.getString(GenConstants.TREE_CODE);
             String treeParentCode = paramsObj.getString(GenConstants.TREE_PARENT_CODE);
             String treeName = paramsObj.getString(GenConstants.TREE_NAME);
             String parentMenuId = paramsObj.getString(GenConstants.PARENT_MENU_ID);
             String parentMenuName = paramsObj.getString(GenConstants.PARENT_MENU_NAME);
-            
+
             genTable.setTreeCode(treeCode);
             genTable.setTreeParentCode(treeParentCode);
             genTable.setTreeName(treeName);
@@ -498,16 +477,14 @@ public class GenTableServiceImpl implements IGenTableService
 
     /**
      * 获取代码生成地址
-     * 
-     * @param table 业务表信息
+     *
+     * @param table    业务表信息
      * @param template 模板文件路径
      * @return 生成地址
      */
-    public static String getGenPath(GenTable table, String template)
-    {
+    public static String getGenPath(GenTable table, String template) {
         String genPath = table.getGenPath();
-        if (StringUtils.equals(genPath, "/"))
-        {
+        if (StringUtils.equals(genPath, "/")) {
             return System.getProperty("user.dir") + File.separator + "src" + File.separator + VelocityUtils.getFileName(template, table);
         }
         return genPath + File.separator + VelocityUtils.getFileName(template, table);

+ 1 - 1
boman-modules/boman-gen/src/main/java/com/boman/gen/service/IGenTableColumnService.java

@@ -58,5 +58,5 @@ public interface IGenTableColumnService
     * @author tjf
     * @Date 2021/3/24
     */
-    public String checkConfigKeyUnique(GenTableColumn genTableColumn);
+    public String checkColumnNameUnique(GenTableColumn genTableColumn);
 }

+ 7 - 0
boman-modules/boman-gen/src/main/resources/mapper/generator/GenTableColumnMapper.xml

@@ -115,6 +115,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             query_type = #{queryType},
             html_type = #{htmlType},
             dict_type = #{dictType},
+            foreign_key = #{foreignKey},
             sort = #{sort},
             update_by = #{updateBy},
             update_time = sysdate()
@@ -128,6 +129,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{tableId}
         </foreach>
     </delete>
+
+
+    <select id="checkColumnNameUnique" parameterType="Long" resultType="com.boman.gen.domain.GenTableColumn">
+        <include refid="selectGenTableColumnVo"/>
+        where column_name = #{columnName} limit 1
+    </select>
     
     <delete id="deleteGenTableColumns">
         delete from gen_table_column where column_id in 

+ 1 - 1
boman-modules/boman-gen/src/main/resources/mapper/generator/GenTableMapper.xml

@@ -58,7 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 	
 	<sql id="selectGenTableVo">
-        select table_id, table_name, table_comment, sub_table_name, sub_table_fk_name, class_name, tpl_category, package_name, module_name, business_name, function_name, function_author, gen_type, gen_path, options, create_by, create_time, update_by, update_time, remark, is_menu, menu_role, ak_column, dk_columnfrom gen_table
+        select table_id, table_name, table_comment, sub_table_name, sub_table_fk_name, class_name, tpl_category, package_name, module_name, business_name, function_name, function_author, gen_type, gen_path, options, create_by, create_time, update_by, update_time, remark, is_menu, menu_role, ak_column, dk_column from gen_table
     </sql>
     
     <select id="selectGenTableList" parameterType="GenTable" resultMap="GenTableResult">