From d3cf0d6c44e3bf1356c84858a5408668ee29e6b0 Mon Sep 17 00:00:00 2001 From: xuwenbo <717567226@qq.com> Date: Wed, 13 May 2020 17:14:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{ColumnInfo.java => ColumnConfig.java} | 4 +-- .../co/yixiang/rest/GeneratorController.java | 6 ++-- .../co/yixiang/service/GeneratorService.java | 16 ++++----- .../service/impl/GeneratorServiceImpl.java | 35 +++++++++---------- .../service/mapper/ColumnInfoMapper.java | 5 ++- .../main/java/co/yixiang/utils/GenUtil.java | 12 +++---- 6 files changed, 38 insertions(+), 40 deletions(-) rename yshop-generator/src/main/java/co/yixiang/domain/{ColumnInfo.java => ColumnConfig.java} (90%) diff --git a/yshop-generator/src/main/java/co/yixiang/domain/ColumnInfo.java b/yshop-generator/src/main/java/co/yixiang/domain/ColumnConfig.java similarity index 90% rename from yshop-generator/src/main/java/co/yixiang/domain/ColumnInfo.java rename to yshop-generator/src/main/java/co/yixiang/domain/ColumnConfig.java index d8800e67..bf4793ec 100644 --- a/yshop-generator/src/main/java/co/yixiang/domain/ColumnInfo.java +++ b/yshop-generator/src/main/java/co/yixiang/domain/ColumnConfig.java @@ -15,7 +15,7 @@ import javax.persistence.*; @Entity @NoArgsConstructor @Table(name = "column_config") -public class ColumnInfo { +public class ColumnConfig { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -60,7 +60,7 @@ public class ColumnInfo { /** 日期注解 */ private String dateAnnotation; - public ColumnInfo(String tableName, String columnName, Boolean notNull, String columnType, String remark, String keyType, String extra) { + public ColumnConfig(String tableName, String columnName, Boolean notNull, String columnType, String remark, String keyType, String extra) { this.tableName = tableName; this.columnName = columnName; this.columnType = columnType; diff --git a/yshop-generator/src/main/java/co/yixiang/rest/GeneratorController.java b/yshop-generator/src/main/java/co/yixiang/rest/GeneratorController.java index 1a50b11e..5cc6e575 100644 --- a/yshop-generator/src/main/java/co/yixiang/rest/GeneratorController.java +++ b/yshop-generator/src/main/java/co/yixiang/rest/GeneratorController.java @@ -1,6 +1,6 @@ package co.yixiang.rest; -import co.yixiang.domain.ColumnInfo; +import co.yixiang.domain.ColumnConfig; import co.yixiang.service.GenConfigService; import co.yixiang.service.GeneratorService; import io.swagger.annotations.Api; @@ -54,13 +54,13 @@ public class GeneratorController { @ApiOperation("查询字段数据") @GetMapping(value = "/columns") public ResponseEntity getTables(@RequestParam String tableName){ - List columnInfos = generatorService.getColumns(tableName); + List columnInfos = generatorService.getColumns(tableName); return new ResponseEntity<>(PageUtil.toPage(columnInfos,columnInfos.size()), HttpStatus.OK); } @ApiOperation("保存字段数据") @PutMapping - public ResponseEntity save(@RequestBody List columnInfos){ + public ResponseEntity save(@RequestBody List columnInfos){ generatorService.save(columnInfos); return new ResponseEntity<>(HttpStatus.OK); } diff --git a/yshop-generator/src/main/java/co/yixiang/service/GeneratorService.java b/yshop-generator/src/main/java/co/yixiang/service/GeneratorService.java index 91545079..ae0f1573 100644 --- a/yshop-generator/src/main/java/co/yixiang/service/GeneratorService.java +++ b/yshop-generator/src/main/java/co/yixiang/service/GeneratorService.java @@ -1,6 +1,6 @@ package co.yixiang.service; -import co.yixiang.domain.ColumnInfo; +import co.yixiang.domain.ColumnConfig; import co.yixiang.domain.GenConfig; import org.springframework.http.ResponseEntity; import org.springframework.scheduling.annotation.Async; @@ -27,7 +27,7 @@ public interface GeneratorService { * @param name 表名 * @return / */ - List getColumns(String name); + List getColumns(String name); /** * 同步表数据 @@ -35,13 +35,13 @@ public interface GeneratorService { * @param columnInfoList */ @Async - void sync(List columnInfos, List columnInfoList); + void sync(List columnInfos, List columnInfoList); /** * 保持数据 * @param columnInfos / */ - void save(List columnInfos); + void save(List columnInfos); /** * 获取所有table @@ -54,7 +54,7 @@ public interface GeneratorService { * @param genConfig 配置信息 * @param columns 字段信息 */ - void generator(GenConfig genConfig, List columns); + void generator(GenConfig genConfig, List columns); /** * 预览 @@ -62,7 +62,7 @@ public interface GeneratorService { * @param columns 字段信息 * @return / */ - ResponseEntity preview(GenConfig genConfig, List columns); + ResponseEntity preview(GenConfig genConfig, List columns); /** * 打包下载 @@ -71,12 +71,12 @@ public interface GeneratorService { * @param request / * @param response / */ - void download(GenConfig genConfig, List columns, HttpServletRequest request, HttpServletResponse response); + void download(GenConfig genConfig, List columns, HttpServletRequest request, HttpServletResponse response); /** * 查询数据库的表字段数据数据 * @param table / * @return / */ - List query(String table); + List query(String table); } diff --git a/yshop-generator/src/main/java/co/yixiang/service/impl/GeneratorServiceImpl.java b/yshop-generator/src/main/java/co/yixiang/service/impl/GeneratorServiceImpl.java index 6a9d40b3..a495e515 100644 --- a/yshop-generator/src/main/java/co/yixiang/service/impl/GeneratorServiceImpl.java +++ b/yshop-generator/src/main/java/co/yixiang/service/impl/GeneratorServiceImpl.java @@ -4,10 +4,9 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ZipUtil; import co.yixiang.common.service.impl.BaseServiceImpl; -import co.yixiang.domain.ColumnInfo; +import co.yixiang.domain.ColumnConfig; import co.yixiang.domain.GenConfig; import co.yixiang.service.mapper.ColumnInfoMapper; -import co.yixiang.service.mapper.GenConfigMapper; import co.yixiang.utils.GenUtil; import co.yixiang.domain.vo.TableInfo; import co.yixiang.exception.BadRequestException; @@ -37,7 +36,7 @@ import java.util.stream.Collectors; */ @Service @SuppressWarnings({"unchecked","all"}) -public class GeneratorServiceImpl extends BaseServiceImpl implements GeneratorService { +public class GeneratorServiceImpl extends BaseServiceImpl implements GeneratorService { @PersistenceContext private EntityManager em; @@ -75,8 +74,8 @@ public class GeneratorServiceImpl extends BaseServiceImpl getColumns(String tableName) { - List columnInfos = this.list(new QueryWrapper() + public List getColumns(String tableName) { + List columnInfos = this.list(new QueryWrapper() .eq("table_name",tableName).orderByAsc("id")); if(CollectionUtil.isNotEmpty(columnInfos)){ return columnInfos; @@ -88,18 +87,18 @@ public class GeneratorServiceImpl extends BaseServiceImpl query(String tableName){ + public List query(String tableName){ // 使用预编译防止sql注入 String sql = "select column_name, is_nullable, data_type, column_comment, column_key, extra from information_schema.columns " + "where table_name = ? and table_schema = (select database()) order by ordinal_position"; Query query = em.createNativeQuery(sql); query.setParameter(1,tableName); List result = query.getResultList(); - List columnInfos = new ArrayList<>(); + List columnInfos = new ArrayList<>(); for (Object obj : result) { Object[] arr = (Object[]) obj; columnInfos.add( - new ColumnInfo( + new ColumnConfig( tableName, arr[0].toString(), "NO".equals(arr[1]), @@ -113,14 +112,14 @@ public class GeneratorServiceImpl extends BaseServiceImpl columnInfos, List columnInfoList) { + public void sync(List columnInfos, List columnInfoList) { // 第一种情况,数据库类字段改变或者新增字段 - for (ColumnInfo columnInfo : columnInfoList) { + for (ColumnConfig columnInfo : columnInfoList) { // 根据字段名称查找 - List columns = new ArrayList(columnInfos.stream().filter(c-> c.getColumnName().equals(columnInfo.getColumnName())).collect(Collectors.toList())); + List columns = new ArrayList(columnInfos.stream().filter(c-> c.getColumnName().equals(columnInfo.getColumnName())).collect(Collectors.toList())); // 如果能找到,就修改部分可能被字段 if(CollectionUtil.isNotEmpty(columns)){ - ColumnInfo column = columns.get(0); + ColumnConfig column = columns.get(0); column.setColumnType(columnInfo.getColumnType()); column.setExtra(columnInfo.getExtra()); column.setKeyType(columnInfo.getKeyType()); @@ -134,9 +133,9 @@ public class GeneratorServiceImpl extends BaseServiceImpl columns = new ArrayList(columnInfoList.stream().filter(c-> c.getColumnName().equals(columnInfo.getColumnName())).collect(Collectors.toList())); + List columns = new ArrayList(columnInfoList.stream().filter(c-> c.getColumnName().equals(columnInfo.getColumnName())).collect(Collectors.toList())); // 如果找不到,就代表字段被删除了,则需要删除该字段 if(CollectionUtil.isEmpty(columns)){ this.removeById(columnInfo.getId()); @@ -145,12 +144,12 @@ public class GeneratorServiceImpl extends BaseServiceImpl columnInfos) { + public void save(List columnInfos) { this.saveBatch(columnInfos); } @Override - public void generator(GenConfig genConfig, List columns) { + public void generator(GenConfig genConfig, List columns) { if(genConfig.getId() == null){ throw new BadRequestException("请先配置生成器"); } @@ -163,7 +162,7 @@ public class GeneratorServiceImpl extends BaseServiceImpl preview(GenConfig genConfig, List columns) { + public ResponseEntity preview(GenConfig genConfig, List columns) { if(genConfig.getId() == null){ throw new BadRequestException("请先配置生成器"); } @@ -172,7 +171,7 @@ public class GeneratorServiceImpl extends BaseServiceImpl columns, HttpServletRequest request, HttpServletResponse response) { + public void download(GenConfig genConfig, List columns, HttpServletRequest request, HttpServletResponse response) { if(genConfig.getId() == null){ throw new BadRequestException("请先配置生成器"); } diff --git a/yshop-generator/src/main/java/co/yixiang/service/mapper/ColumnInfoMapper.java b/yshop-generator/src/main/java/co/yixiang/service/mapper/ColumnInfoMapper.java index 32dc3812..6fec6202 100644 --- a/yshop-generator/src/main/java/co/yixiang/service/mapper/ColumnInfoMapper.java +++ b/yshop-generator/src/main/java/co/yixiang/service/mapper/ColumnInfoMapper.java @@ -1,12 +1,11 @@ package co.yixiang.service.mapper; import co.yixiang.common.mapper.CoreMapper; -import co.yixiang.domain.ColumnInfo; -import co.yixiang.domain.GenConfig; +import co.yixiang.domain.ColumnConfig; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; @Repository @Mapper -public interface ColumnInfoMapper extends CoreMapper { +public interface ColumnInfoMapper extends CoreMapper { } diff --git a/yshop-generator/src/main/java/co/yixiang/utils/GenUtil.java b/yshop-generator/src/main/java/co/yixiang/utils/GenUtil.java index 9f4a26e6..95c3d23a 100644 --- a/yshop-generator/src/main/java/co/yixiang/utils/GenUtil.java +++ b/yshop-generator/src/main/java/co/yixiang/utils/GenUtil.java @@ -4,7 +4,7 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.extra.template.*; import lombok.extern.slf4j.Slf4j; import co.yixiang.domain.GenConfig; -import co.yixiang.domain.ColumnInfo; +import co.yixiang.domain.ColumnConfig; import org.springframework.util.ObjectUtils; import java.io.File; import java.io.FileWriter; @@ -66,7 +66,7 @@ public class GenUtil { return templateNames; } - public static List> preview(List columns, GenConfig genConfig) { + public static List> preview(List columns, GenConfig genConfig) { Map genMap = getGenMap(columns, genConfig); List> genList = new ArrayList<>(); // 获取后端模版 @@ -92,7 +92,7 @@ public class GenUtil { return genList; } - public static String download(List columns, GenConfig genConfig) throws IOException { + public static String download(List columns, GenConfig genConfig) throws IOException { String tempPath =System.getProperty("java.io.tmpdir") + "yshop-gen-temp" + File.separator + genConfig.getTableName() + File.separator; Map genMap = getGenMap(columns, genConfig); TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH)); @@ -130,7 +130,7 @@ public class GenUtil { return tempPath; } - public static void generatorCode(List columnInfos, GenConfig genConfig) throws IOException { + public static void generatorCode(List columnInfos, GenConfig genConfig) throws IOException { Map genMap = getGenMap(columnInfos, genConfig); TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH)); // 生成后端代码 @@ -169,7 +169,7 @@ public class GenUtil { } // 获取模版数据 - private static Map getGenMap(List columnInfos, GenConfig genConfig) { + private static Map getGenMap(List columnInfos, GenConfig genConfig) { // 存储模版字段数据 Map genMap = new HashMap<>(16); // 接口别名 @@ -226,7 +226,7 @@ public class GenUtil { // 存储不为空的字段信息 List> isNotNullColumns = new ArrayList<>(); - for (ColumnInfo column : columnInfos) { + for (ColumnConfig column : columnInfos) { Map listMap = new HashMap<>(16); // 字段描述 listMap.put("remark",column.getRemark());