代码生成器改造完成

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; package co.yixiang.service.impl;
import co.yixiang.common.service.impl.BaseServiceImpl;
import co.yixiang.domain.GenConfig; import co.yixiang.domain.GenConfig;
import co.yixiang.repository.GenConfigRepository;
import co.yixiang.service.GenConfigService; import co.yixiang.service.GenConfigService;
import co.yixiang.service.mapper.GenConfigMapper;
import co.yixiang.utils.StringUtils; import co.yixiang.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CachePut; import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Cacheable;
@ -15,19 +17,13 @@ import java.io.File;
* @date 2019-01-14 * @date 2019-01-14
*/ */
@Service @Service
@CacheConfig(cacheNames = "genConfig") //@CacheConfig(cacheNames = "genConfig")
public class GenConfigServiceImpl implements GenConfigService { public class GenConfigServiceImpl extends BaseServiceImpl<GenConfigMapper, GenConfig> implements GenConfigService {
private final GenConfigRepository genConfigRepository;
public GenConfigServiceImpl(GenConfigRepository genConfigRepository) {
this.genConfigRepository = genConfigRepository;
}
@Override @Override
@Cacheable(key = "#p0") // @Cacheable(key = "#p0")
public GenConfig find(String tableName) { public GenConfig find(String tableName) {
GenConfig genConfig = genConfigRepository.findByTableName(tableName); GenConfig genConfig = this.getOne(new QueryWrapper<GenConfig>().eq("table_name",tableName));
if(genConfig == null){ if(genConfig == null){
return new GenConfig(tableName); return new GenConfig(tableName);
} }
@ -35,7 +31,7 @@ public class GenConfigServiceImpl implements GenConfigService {
} }
@Override @Override
@CachePut(key = "#p0") // @CachePut(key = "#p0")
public GenConfig update(String tableName, GenConfig genConfig) { public GenConfig update(String tableName, GenConfig genConfig) {
// 如果 api 路径为空,则自动生成路径 // 如果 api 路径为空,则自动生成路径
if(StringUtils.isBlank(genConfig.getApiPath())){ if(StringUtils.isBlank(genConfig.getApiPath())){
@ -58,6 +54,7 @@ public class GenConfigServiceImpl implements GenConfigService {
} }
genConfig.setApiPath(api.toString()); 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.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ZipUtil; import cn.hutool.core.util.ZipUtil;
import co.yixiang.common.service.impl.BaseServiceImpl;
import co.yixiang.domain.ColumnInfo; import co.yixiang.domain.ColumnInfo;
import co.yixiang.domain.GenConfig; 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.utils.GenUtil;
import co.yixiang.domain.vo.TableInfo; import co.yixiang.domain.vo.TableInfo;
import co.yixiang.exception.BadRequestException; import co.yixiang.exception.BadRequestException;
import co.yixiang.repository.ColumnInfoRepository;
import co.yixiang.service.GeneratorService; import co.yixiang.service.GeneratorService;
import co.yixiang.utils.FileUtil; import co.yixiang.utils.FileUtil;
import co.yixiang.utils.PageUtil; import co.yixiang.utils.PageUtil;
import co.yixiang.utils.StringUtils; import co.yixiang.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -34,16 +37,11 @@ import java.util.stream.Collectors;
*/ */
@Service @Service
@SuppressWarnings({"unchecked","all"}) @SuppressWarnings({"unchecked","all"})
public class GeneratorServiceImpl implements GeneratorService { public class GeneratorServiceImpl extends BaseServiceImpl<ColumnInfoMapper, ColumnInfo> implements GeneratorService {
@PersistenceContext @PersistenceContext
private EntityManager em; private EntityManager em;
private final ColumnInfoRepository columnInfoRepository;
public GeneratorServiceImpl(ColumnInfoRepository columnInfoRepository) {
this.columnInfoRepository = columnInfoRepository;
}
@Override @Override
public Object getTables() { public Object getTables() {
@ -78,12 +76,14 @@ public class GeneratorServiceImpl implements GeneratorService {
@Override @Override
public List<ColumnInfo> getColumns(String tableName) { 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)){ if(CollectionUtil.isNotEmpty(columnInfos)){
return columnInfos; return columnInfos;
} else { } else {
columnInfos = query(tableName); 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())){ if(StringUtils.isBlank(column.getRemark())){
column.setRemark(columnInfo.getRemark()); column.setRemark(columnInfo.getRemark());
} }
columnInfoRepository.save(column); this.save(column);
} else { } 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())); List<ColumnInfo> columns = new ArrayList<ColumnInfo>(columnInfoList.stream().filter(c-> c.getColumnName().equals(columnInfo.getColumnName())).collect(Collectors.toList()));
// 如果找不到,就代表字段被删除了,则需要删除该字段 // 如果找不到,就代表字段被删除了,则需要删除该字段
if(CollectionUtil.isEmpty(columns)){ if(CollectionUtil.isEmpty(columns)){
columnInfoRepository.delete(columnInfo); this.removeById(columnInfo.getId());
} }
} }
} }
@Override @Override
public void save(List<ColumnInfo> columnInfos) { public void save(List<ColumnInfo> columnInfos) {
columnInfoRepository.saveAll(columnInfos); this.saveBatch(columnInfos);
} }
@Override @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> {
}