Fix front project draft service safeguards
This commit is contained in:
@@ -11,4 +11,5 @@ public interface FrontProjectGenerationMapper
|
||||
public int insertFrontProjectGeneration(FrontProjectGeneration frontProjectGeneration);
|
||||
public int updateFrontProjectGeneration(FrontProjectGeneration frontProjectGeneration);
|
||||
public int deleteFrontProjectGenerationById(Long generationId);
|
||||
public int deleteGenerationsByProjectId(Long projectId);
|
||||
}
|
||||
|
||||
@@ -27,11 +27,11 @@ public class FrontProjectConverter
|
||||
genProject.setFrontFramework(project.getFrontFramework());
|
||||
genProject.setBackFramework(project.getBackFramework());
|
||||
genProject.setStatus(project.getStatus());
|
||||
genProject.setTables(toGenTables(project.getTables()));
|
||||
genProject.setTables(toGenTables(project.getTables(), project.getPackageName()));
|
||||
return genProject;
|
||||
}
|
||||
|
||||
private static List<GenTable> toGenTables(List<FrontProjectTable> tables)
|
||||
private static List<GenTable> toGenTables(List<FrontProjectTable> tables, String packageName)
|
||||
{
|
||||
List<GenTable> genTables = new ArrayList<GenTable>();
|
||||
if (tables == null)
|
||||
@@ -40,18 +40,19 @@ public class FrontProjectConverter
|
||||
}
|
||||
for (FrontProjectTable table : tables)
|
||||
{
|
||||
genTables.add(toGenTable(table));
|
||||
genTables.add(toGenTable(table, packageName));
|
||||
}
|
||||
return genTables;
|
||||
}
|
||||
|
||||
private static GenTable toGenTable(FrontProjectTable table)
|
||||
private static GenTable toGenTable(FrontProjectTable table, String packageName)
|
||||
{
|
||||
GenTable genTable = new GenTable();
|
||||
genTable.setTableId(table.getTableId());
|
||||
genTable.setTableName(table.getTableName());
|
||||
genTable.setTableComment(table.getTableComment());
|
||||
genTable.setClassName(table.getClassName());
|
||||
genTable.setPackageName(packageName);
|
||||
genTable.setModuleName(table.getModuleName());
|
||||
genTable.setBusinessName(table.getBusinessName());
|
||||
genTable.setFunctionName(table.getFunctionName());
|
||||
@@ -59,10 +60,24 @@ public class FrontProjectConverter
|
||||
genTable.setTplWebType(table.getTplWebType());
|
||||
genTable.setOptions(table.getOptions());
|
||||
genTable.setCreateTableSql(table.getCreateTableSql());
|
||||
genTable.setColumns(toGenColumns(table.getColumns()));
|
||||
List<GenTableColumn> columns = toGenColumns(table.getColumns());
|
||||
genTable.setColumns(columns);
|
||||
genTable.setPkColumn(findPkColumn(columns));
|
||||
return genTable;
|
||||
}
|
||||
|
||||
private static GenTableColumn findPkColumn(List<GenTableColumn> columns)
|
||||
{
|
||||
for (GenTableColumn column : columns)
|
||||
{
|
||||
if ("1".equals(column.getIsPk()))
|
||||
{
|
||||
return column;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private static List<GenTableColumn> toGenColumns(List<FrontProjectColumn> columns)
|
||||
{
|
||||
List<GenTableColumn> genColumns = new ArrayList<GenTableColumn>();
|
||||
|
||||
@@ -16,6 +16,8 @@ import com.ruoyi.generator.domain.front.dto.DatabaseTableDesign;
|
||||
import com.ruoyi.generator.domain.front.dto.FrontProjectCreateRequest;
|
||||
import com.ruoyi.generator.domain.front.dto.FrontProjectUpdateRequest;
|
||||
import com.ruoyi.generator.mapper.front.FrontProjectColumnMapper;
|
||||
import com.ruoyi.generator.mapper.front.FrontProjectFileMapper;
|
||||
import com.ruoyi.generator.mapper.front.FrontProjectGenerationMapper;
|
||||
import com.ruoyi.generator.mapper.front.FrontProjectMapper;
|
||||
import com.ruoyi.generator.mapper.front.FrontProjectTableMapper;
|
||||
|
||||
@@ -28,11 +30,16 @@ public class FrontProjectServiceImpl implements IFrontProjectService
|
||||
private FrontProjectTableMapper frontProjectTableMapper;
|
||||
@Autowired
|
||||
private FrontProjectColumnMapper frontProjectColumnMapper;
|
||||
@Autowired
|
||||
private FrontProjectFileMapper frontProjectFileMapper;
|
||||
@Autowired
|
||||
private FrontProjectGenerationMapper frontProjectGenerationMapper;
|
||||
|
||||
@Override
|
||||
public FrontProject createProject(Long userId, FrontProjectCreateRequest request)
|
||||
{
|
||||
if (userId == null || request == null || StringUtils.isEmpty(request.getProjectName()))
|
||||
assertFrontUserLoggedIn(userId);
|
||||
if (request == null || StringUtils.isEmpty(request.getProjectName()))
|
||||
{
|
||||
throw new ServiceException("项目名称不能为空");
|
||||
}
|
||||
@@ -56,6 +63,7 @@ public class FrontProjectServiceImpl implements IFrontProjectService
|
||||
@Override
|
||||
public List<FrontProject> listProjects(Long userId)
|
||||
{
|
||||
assertFrontUserLoggedIn(userId);
|
||||
FrontProject query = new FrontProject();
|
||||
query.setUserId(userId);
|
||||
return frontProjectMapper.selectFrontProjectList(query);
|
||||
@@ -64,6 +72,7 @@ public class FrontProjectServiceImpl implements IFrontProjectService
|
||||
@Override
|
||||
public FrontProject getProject(Long userId, Long projectId)
|
||||
{
|
||||
assertFrontUserLoggedIn(userId);
|
||||
FrontProject project = frontProjectMapper.selectFrontProjectByUserAndId(userId, projectId);
|
||||
if (project == null)
|
||||
{
|
||||
@@ -75,6 +84,7 @@ public class FrontProjectServiceImpl implements IFrontProjectService
|
||||
@Override
|
||||
public int updateProject(Long userId, Long projectId, FrontProjectUpdateRequest request)
|
||||
{
|
||||
assertFrontUserLoggedIn(userId);
|
||||
if (request == null)
|
||||
{
|
||||
throw new ServiceException("项目参数不能为空");
|
||||
@@ -95,7 +105,10 @@ public class FrontProjectServiceImpl implements IFrontProjectService
|
||||
@Transactional
|
||||
public int deleteProject(Long userId, Long projectId)
|
||||
{
|
||||
assertFrontUserLoggedIn(userId);
|
||||
getProject(userId, projectId);
|
||||
frontProjectFileMapper.deleteFilesByProjectId(projectId);
|
||||
frontProjectGenerationMapper.deleteGenerationsByProjectId(projectId);
|
||||
frontProjectColumnMapper.deleteColumnsByProjectId(projectId);
|
||||
frontProjectTableMapper.deleteTablesByProjectId(projectId);
|
||||
return frontProjectMapper.deleteFrontProjectByUserAndId(userId, projectId);
|
||||
@@ -104,6 +117,7 @@ public class FrontProjectServiceImpl implements IFrontProjectService
|
||||
@Override
|
||||
public DatabaseDesignResponse getDatabase(Long userId, Long projectId)
|
||||
{
|
||||
assertFrontUserLoggedIn(userId);
|
||||
getProject(userId, projectId);
|
||||
DatabaseDesignResponse response = new DatabaseDesignResponse();
|
||||
response.setProjectId(projectId);
|
||||
@@ -127,6 +141,7 @@ public class FrontProjectServiceImpl implements IFrontProjectService
|
||||
@Transactional
|
||||
public DatabaseDesignResponse saveDatabase(Long userId, Long projectId, DatabaseDesignResponse request)
|
||||
{
|
||||
assertFrontUserLoggedIn(userId);
|
||||
getProject(userId, projectId);
|
||||
frontProjectColumnMapper.deleteColumnsByProjectId(projectId);
|
||||
frontProjectTableMapper.deleteTablesByProjectId(projectId);
|
||||
@@ -153,6 +168,14 @@ public class FrontProjectServiceImpl implements IFrontProjectService
|
||||
return getDatabase(userId, projectId);
|
||||
}
|
||||
|
||||
private void assertFrontUserLoggedIn(Long userId)
|
||||
{
|
||||
if (userId == null)
|
||||
{
|
||||
throw new ServiceException("前台用户未登录");
|
||||
}
|
||||
}
|
||||
|
||||
private String toProjectFileName(String projectName)
|
||||
{
|
||||
return StringUtils.defaultString(projectName).trim().replaceAll("\\s+", "-").toLowerCase();
|
||||
|
||||
@@ -92,4 +92,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<delete id="deleteFrontProjectGenerationById" parameterType="Long">
|
||||
delete from front_project_generation where generation_id = #{generationId}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteGenerationsByProjectId" parameterType="Long">
|
||||
delete from front_project_generation where project_id = #{projectId}
|
||||
</delete>
|
||||
</mapper>
|
||||
|
||||
@@ -51,6 +51,8 @@ public class FrontProjectConverterTest
|
||||
assertEquals("com.easycode.vehicle", genProject.getPackageName());
|
||||
assertEquals(1, genProject.getTables().size());
|
||||
assertEquals("car_info", genProject.getTables().get(0).getTableName());
|
||||
assertEquals("com.easycode.vehicle", genProject.getTables().get(0).getPackageName());
|
||||
assertEquals("carId", genProject.getTables().get(0).getColumns().get(0).getJavaField());
|
||||
assertEquals("carId", genProject.getTables().get(0).getPkColumn().getJavaField());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user