代码生成器改造完成

This commit is contained in:
xuwenbo
2020-05-13 16:24:45 +08:00
parent aecf726c76
commit 1a2361ae1e
6 changed files with 46 additions and 63 deletions

View File

@ -1,19 +0,0 @@
package co.yixiang.repository;
import co.yixiang.domain.ColumnInfo;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
/**
* @author Zheng Jie
* @date 2019-01-14
*/
public interface ColumnInfoRepository extends JpaRepository<ColumnInfo,Long> {
/**
* 查询表信息
* @param tableName 表格名
* @return 表信息
*/
List<ColumnInfo> findByTableNameOrderByIdAsc(String tableName);
}

View File

@ -1,18 +0,0 @@
package co.yixiang.repository;
import co.yixiang.domain.GenConfig;
import org.springframework.data.jpa.repository.JpaRepository;
/**
* @author Zheng Jie
* @date 2019-01-14
*/
public interface GenConfigRepository extends JpaRepository<GenConfig,Long> {
/**
* 查询表配置
* @param tableName 表名
* @return /
*/
GenConfig findByTableName(String tableName);
}

View File

@ -1,9 +1,11 @@
package co.yixiang.service.impl;
import co.yixiang.common.service.impl.BaseServiceImpl;
import co.yixiang.domain.GenConfig;
import co.yixiang.repository.GenConfigRepository;
import co.yixiang.service.GenConfigService;
import co.yixiang.service.mapper.GenConfigMapper;
import co.yixiang.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
@ -15,19 +17,13 @@ import java.io.File;
* @date 2019-01-14
*/
@Service
@CacheConfig(cacheNames = "genConfig")
public class GenConfigServiceImpl implements GenConfigService {
private final GenConfigRepository genConfigRepository;
public GenConfigServiceImpl(GenConfigRepository genConfigRepository) {
this.genConfigRepository = genConfigRepository;
}
//@CacheConfig(cacheNames = "genConfig")
public class GenConfigServiceImpl extends BaseServiceImpl<GenConfigMapper, GenConfig> implements GenConfigService {
@Override
@Cacheable(key = "#p0")
// @Cacheable(key = "#p0")
public GenConfig find(String tableName) {
GenConfig genConfig = genConfigRepository.findByTableName(tableName);
GenConfig genConfig = this.getOne(new QueryWrapper<GenConfig>().eq("table_name",tableName));
if(genConfig == null){
return new GenConfig(tableName);
}
@ -35,7 +31,7 @@ public class GenConfigServiceImpl implements GenConfigService {
}
@Override
@CachePut(key = "#p0")
// @CachePut(key = "#p0")
public GenConfig update(String tableName, GenConfig genConfig) {
// 如果 api 路径为空,则自动生成路径
if(StringUtils.isBlank(genConfig.getApiPath())){
@ -58,6 +54,7 @@ public class GenConfigServiceImpl implements GenConfigService {
}
genConfig.setApiPath(api.toString());
}
return genConfigRepository.save(genConfig);
this.save(genConfig);
return genConfig;
}
}

View File

@ -3,16 +3,19 @@ package co.yixiang.service.impl;
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.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;
import co.yixiang.repository.ColumnInfoRepository;
import co.yixiang.service.GeneratorService;
import co.yixiang.utils.FileUtil;
import co.yixiang.utils.PageUtil;
import co.yixiang.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
@ -34,16 +37,11 @@ import java.util.stream.Collectors;
*/
@Service
@SuppressWarnings({"unchecked","all"})
public class GeneratorServiceImpl implements GeneratorService {
public class GeneratorServiceImpl extends BaseServiceImpl<ColumnInfoMapper, ColumnInfo> implements GeneratorService {
@PersistenceContext
private EntityManager em;
private final ColumnInfoRepository columnInfoRepository;
public GeneratorServiceImpl(ColumnInfoRepository columnInfoRepository) {
this.columnInfoRepository = columnInfoRepository;
}
@Override
public Object getTables() {
@ -78,12 +76,14 @@ public class GeneratorServiceImpl implements GeneratorService {
@Override
public List<ColumnInfo> getColumns(String tableName) {
List<ColumnInfo> columnInfos = columnInfoRepository.findByTableNameOrderByIdAsc(tableName);
List<ColumnInfo> columnInfos = this.list(new QueryWrapper<ColumnInfo>()
.eq("table_name",tableName).orderByAsc("id"));
if(CollectionUtil.isNotEmpty(columnInfos)){
return columnInfos;
} else {
columnInfos = query(tableName);
return columnInfoRepository.saveAll(columnInfos);
this.saveBatch(columnInfos);
return columnInfos;
}
}
@ -127,10 +127,10 @@ public class GeneratorServiceImpl implements GeneratorService {
if(StringUtils.isBlank(column.getRemark())){
column.setRemark(columnInfo.getRemark());
}
columnInfoRepository.save(column);
this.save(column);
} else {
// 如果找不到,则保存新字段信息
columnInfoRepository.save(columnInfo);
this.save(columnInfo);
}
}
// 第二种情况,数据库字段删除了
@ -139,14 +139,14 @@ public class GeneratorServiceImpl implements GeneratorService {
List<ColumnInfo> columns = new ArrayList<ColumnInfo>(columnInfoList.stream().filter(c-> c.getColumnName().equals(columnInfo.getColumnName())).collect(Collectors.toList()));
// 如果找不到,就代表字段被删除了,则需要删除该字段
if(CollectionUtil.isEmpty(columns)){
columnInfoRepository.delete(columnInfo);
this.removeById(columnInfo.getId());
}
}
}
@Override
public void save(List<ColumnInfo> columnInfos) {
columnInfoRepository.saveAll(columnInfos);
this.saveBatch(columnInfos);
}
@Override

View File

@ -0,0 +1,12 @@
package co.yixiang.service.mapper;
import co.yixiang.common.mapper.CoreMapper;
import co.yixiang.domain.ColumnInfo;
import co.yixiang.domain.GenConfig;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Repository
@Mapper
public interface ColumnInfoMapper extends CoreMapper<ColumnInfo> {
}

View File

@ -0,0 +1,11 @@
package co.yixiang.service.mapper;
import co.yixiang.common.mapper.CoreMapper;
import co.yixiang.domain.GenConfig;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Repository
@Mapper
public interface GenConfigMapper extends CoreMapper<GenConfig> {
}