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