修改bug
This commit is contained in:
@ -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;
|
@ -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<Object> getTables(@RequestParam String tableName){
|
||||
List<ColumnInfo> columnInfos = generatorService.getColumns(tableName);
|
||||
List<ColumnConfig> columnInfos = generatorService.getColumns(tableName);
|
||||
return new ResponseEntity<>(PageUtil.toPage(columnInfos,columnInfos.size()), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@ApiOperation("保存字段数据")
|
||||
@PutMapping
|
||||
public ResponseEntity<HttpStatus> save(@RequestBody List<ColumnInfo> columnInfos){
|
||||
public ResponseEntity<HttpStatus> save(@RequestBody List<ColumnConfig> columnInfos){
|
||||
generatorService.save(columnInfos);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
@ -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<ColumnInfo> getColumns(String name);
|
||||
List<ColumnConfig> getColumns(String name);
|
||||
|
||||
/**
|
||||
* 同步表数据
|
||||
@ -35,13 +35,13 @@ public interface GeneratorService {
|
||||
* @param columnInfoList
|
||||
*/
|
||||
@Async
|
||||
void sync(List<ColumnInfo> columnInfos, List<ColumnInfo> columnInfoList);
|
||||
void sync(List<ColumnConfig> columnInfos, List<ColumnConfig> columnInfoList);
|
||||
|
||||
/**
|
||||
* 保持数据
|
||||
* @param columnInfos /
|
||||
*/
|
||||
void save(List<ColumnInfo> columnInfos);
|
||||
void save(List<ColumnConfig> columnInfos);
|
||||
|
||||
/**
|
||||
* 获取所有table
|
||||
@ -54,7 +54,7 @@ public interface GeneratorService {
|
||||
* @param genConfig 配置信息
|
||||
* @param columns 字段信息
|
||||
*/
|
||||
void generator(GenConfig genConfig, List<ColumnInfo> columns);
|
||||
void generator(GenConfig genConfig, List<ColumnConfig> columns);
|
||||
|
||||
/**
|
||||
* 预览
|
||||
@ -62,7 +62,7 @@ public interface GeneratorService {
|
||||
* @param columns 字段信息
|
||||
* @return /
|
||||
*/
|
||||
ResponseEntity<Object> preview(GenConfig genConfig, List<ColumnInfo> columns);
|
||||
ResponseEntity<Object> preview(GenConfig genConfig, List<ColumnConfig> columns);
|
||||
|
||||
/**
|
||||
* 打包下载
|
||||
@ -71,12 +71,12 @@ public interface GeneratorService {
|
||||
* @param request /
|
||||
* @param response /
|
||||
*/
|
||||
void download(GenConfig genConfig, List<ColumnInfo> columns, HttpServletRequest request, HttpServletResponse response);
|
||||
void download(GenConfig genConfig, List<ColumnConfig> columns, HttpServletRequest request, HttpServletResponse response);
|
||||
|
||||
/**
|
||||
* 查询数据库的表字段数据数据
|
||||
* @param table /
|
||||
* @return /
|
||||
*/
|
||||
List<ColumnInfo> query(String table);
|
||||
List<ColumnConfig> query(String table);
|
||||
}
|
||||
|
@ -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<ColumnInfoMapper, ColumnInfo> implements GeneratorService {
|
||||
public class GeneratorServiceImpl extends BaseServiceImpl<ColumnInfoMapper, ColumnConfig> implements GeneratorService {
|
||||
|
||||
@PersistenceContext
|
||||
private EntityManager em;
|
||||
@ -75,8 +74,8 @@ public class GeneratorServiceImpl extends BaseServiceImpl<ColumnInfoMapper, Colu
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ColumnInfo> getColumns(String tableName) {
|
||||
List<ColumnInfo> columnInfos = this.list(new QueryWrapper<ColumnInfo>()
|
||||
public List<ColumnConfig> getColumns(String tableName) {
|
||||
List<ColumnConfig> columnInfos = this.list(new QueryWrapper<ColumnConfig>()
|
||||
.eq("table_name",tableName).orderByAsc("id"));
|
||||
if(CollectionUtil.isNotEmpty(columnInfos)){
|
||||
return columnInfos;
|
||||
@ -88,18 +87,18 @@ public class GeneratorServiceImpl extends BaseServiceImpl<ColumnInfoMapper, Colu
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ColumnInfo> query(String tableName){
|
||||
public List<ColumnConfig> 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<ColumnInfo> columnInfos = new ArrayList<>();
|
||||
List<ColumnConfig> 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<ColumnInfoMapper, Colu
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sync(List<ColumnInfo> columnInfos, List<ColumnInfo> columnInfoList) {
|
||||
public void sync(List<ColumnConfig> columnInfos, List<ColumnConfig> columnInfoList) {
|
||||
// 第一种情况,数据库类字段改变或者新增字段
|
||||
for (ColumnInfo columnInfo : columnInfoList) {
|
||||
for (ColumnConfig columnInfo : columnInfoList) {
|
||||
// 根据字段名称查找
|
||||
List<ColumnInfo> columns = new ArrayList<ColumnInfo>(columnInfos.stream().filter(c-> c.getColumnName().equals(columnInfo.getColumnName())).collect(Collectors.toList()));
|
||||
List<ColumnConfig> columns = new ArrayList<ColumnConfig>(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<ColumnInfoMapper, Colu
|
||||
}
|
||||
}
|
||||
// 第二种情况,数据库字段删除了
|
||||
for (ColumnInfo columnInfo : columnInfos) {
|
||||
for (ColumnConfig columnInfo : columnInfos) {
|
||||
// 根据字段名称查找
|
||||
List<ColumnInfo> columns = new ArrayList<ColumnInfo>(columnInfoList.stream().filter(c-> c.getColumnName().equals(columnInfo.getColumnName())).collect(Collectors.toList()));
|
||||
List<ColumnConfig> columns = new ArrayList<ColumnConfig>(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<ColumnInfoMapper, Colu
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(List<ColumnInfo> columnInfos) {
|
||||
public void save(List<ColumnConfig> columnInfos) {
|
||||
this.saveBatch(columnInfos);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generator(GenConfig genConfig, List<ColumnInfo> columns) {
|
||||
public void generator(GenConfig genConfig, List<ColumnConfig> columns) {
|
||||
if(genConfig.getId() == null){
|
||||
throw new BadRequestException("请先配置生成器");
|
||||
}
|
||||
@ -163,7 +162,7 @@ public class GeneratorServiceImpl extends BaseServiceImpl<ColumnInfoMapper, Colu
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseEntity<Object> preview(GenConfig genConfig, List<ColumnInfo> columns) {
|
||||
public ResponseEntity<Object> preview(GenConfig genConfig, List<ColumnConfig> columns) {
|
||||
if(genConfig.getId() == null){
|
||||
throw new BadRequestException("请先配置生成器");
|
||||
}
|
||||
@ -172,7 +171,7 @@ public class GeneratorServiceImpl extends BaseServiceImpl<ColumnInfoMapper, Colu
|
||||
}
|
||||
|
||||
@Override
|
||||
public void download(GenConfig genConfig, List<ColumnInfo> columns, HttpServletRequest request, HttpServletResponse response) {
|
||||
public void download(GenConfig genConfig, List<ColumnConfig> columns, HttpServletRequest request, HttpServletResponse response) {
|
||||
if(genConfig.getId() == null){
|
||||
throw new BadRequestException("请先配置生成器");
|
||||
}
|
||||
|
@ -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<ColumnInfo> {
|
||||
public interface ColumnInfoMapper extends CoreMapper<ColumnConfig> {
|
||||
}
|
||||
|
@ -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<Map<String, Object>> preview(List<ColumnInfo> columns, GenConfig genConfig) {
|
||||
public static List<Map<String, Object>> preview(List<ColumnConfig> columns, GenConfig genConfig) {
|
||||
Map<String,Object> genMap = getGenMap(columns, genConfig);
|
||||
List<Map<String,Object>> genList = new ArrayList<>();
|
||||
// 获取后端模版
|
||||
@ -92,7 +92,7 @@ public class GenUtil {
|
||||
return genList;
|
||||
}
|
||||
|
||||
public static String download(List<ColumnInfo> columns, GenConfig genConfig) throws IOException {
|
||||
public static String download(List<ColumnConfig> columns, GenConfig genConfig) throws IOException {
|
||||
String tempPath =System.getProperty("java.io.tmpdir") + "yshop-gen-temp" + File.separator + genConfig.getTableName() + File.separator;
|
||||
Map<String,Object> 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<ColumnInfo> columnInfos, GenConfig genConfig) throws IOException {
|
||||
public static void generatorCode(List<ColumnConfig> columnInfos, GenConfig genConfig) throws IOException {
|
||||
Map<String,Object> genMap = getGenMap(columnInfos, genConfig);
|
||||
TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH));
|
||||
// 生成后端代码
|
||||
@ -169,7 +169,7 @@ public class GenUtil {
|
||||
}
|
||||
|
||||
// 获取模版数据
|
||||
private static Map<String,Object> getGenMap(List<ColumnInfo> columnInfos, GenConfig genConfig) {
|
||||
private static Map<String,Object> getGenMap(List<ColumnConfig> columnInfos, GenConfig genConfig) {
|
||||
// 存储模版字段数据
|
||||
Map<String,Object> genMap = new HashMap<>(16);
|
||||
// 接口别名
|
||||
@ -226,7 +226,7 @@ public class GenUtil {
|
||||
// 存储不为空的字段信息
|
||||
List<Map<String,Object>> isNotNullColumns = new ArrayList<>();
|
||||
|
||||
for (ColumnInfo column : columnInfos) {
|
||||
for (ColumnConfig column : columnInfos) {
|
||||
Map<String,Object> listMap = new HashMap<>(16);
|
||||
// 字段描述
|
||||
listMap.put("remark",column.getRemark());
|
||||
|
Reference in New Issue
Block a user