1 changed files with 76 additions and 2 deletions
@ -1,20 +1,94 @@ |
|||
package com.yvan.workbench.controller; |
|||
|
|||
import com.yvan.workbench.model.entity.LccModelWorld; |
|||
import com.yvan.workbench.model.query.QLccModelWorld; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.clever.core.Assert; |
|||
import org.clever.core.id.SnowFlake; |
|||
import org.clever.core.model.request.QueryByPage; |
|||
import org.clever.core.model.request.page.Page; |
|||
import org.clever.data.jdbc.DaoFactory; |
|||
import org.clever.data.jdbc.QueryDSL; |
|||
import org.clever.data.jdbc.querydsl.utils.QueryDslUtils; |
|||
import org.clever.web.mvc.annotation.RequestBody; |
|||
import org.clever.web.mvc.annotation.Transactional; |
|||
|
|||
import static com.yvan.workbench.model.query.QLccModelWorld.lccModelWorld; |
|||
|
|||
public class LccModelManager { |
|||
private static final QueryDSL QUERY_DSL = DaoFactory.getQueryDSL(); |
|||
|
|||
private static String getOtherData(String projectUuid, String projectLabel) { |
|||
return StringUtils.trim(String.format(""" |
|||
{ |
|||
"project_uuid": "%s", |
|||
"project_label": "%s", |
|||
"project_version": 0, |
|||
"server": "demo", |
|||
"Tool": { |
|||
"Group": [], |
|||
"GlobalVariables": [], |
|||
"UserCommand": [], |
|||
"Dashboard": [], |
|||
"DataTable": [], |
|||
"Trigger": [ |
|||
{ |
|||
"name": "OnOpen", |
|||
"fn": "" |
|||
}, |
|||
{ |
|||
"name": "OnReset", |
|||
"fn": "" |
|||
}, |
|||
{ |
|||
"name": "OnStart", |
|||
"fn": "" |
|||
}, |
|||
{ |
|||
"name": "OnStop", |
|||
"fn": "" |
|||
} |
|||
], |
|||
"gridHelper": { |
|||
"axesEnabled": true, |
|||
"axesSize": 5, |
|||
"axesColor": 14540253, |
|||
"axesWidth": 2, |
|||
"gridEnabled": true, |
|||
"gridSize": 1000, |
|||
"gridDivisions": 1000, |
|||
"gridColor": 14540253, |
|||
"gridOpacity": 1, |
|||
"backgroundColor": 16119285, |
|||
"snapEnabled": true, |
|||
"snapDistance": 0.25 |
|||
} |
|||
}, |
|||
"elevator": [], |
|||
"wall": [], |
|||
"pillar": [] |
|||
}""".stripIndent(), projectUuid, projectLabel)); |
|||
} |
|||
|
|||
public static Page<LccModelWorld> projectList() { |
|||
return QueryDslUtils.queryByPage( |
|||
QUERY_DSL.selectFrom(QLccModelWorld.lccModelWorld), |
|||
QUERY_DSL.selectFrom(lccModelWorld), |
|||
QueryByPage.getCurrent() |
|||
); |
|||
} |
|||
|
|||
@Transactional |
|||
public static LccModelWorld addProject(@RequestBody LccModelWorld project) { |
|||
Assert.isNotBlank(project.getProjectUuid(), "项目编号必填"); |
|||
Assert.isNotBlank(project.getProjectLabel(), "项目标题必填"); |
|||
Assert.isTrue( |
|||
QUERY_DSL.selectFrom(lccModelWorld).where(lccModelWorld.projectUuid.eq(project.getProjectUuid())).fetchCount() <= 0, |
|||
"项目编号重复" |
|||
); |
|||
project.setProjectVersion(1L); |
|||
project.setId(SnowFlake.SNOW_FLAKE.nextId()); |
|||
project.setDirectoryData("[]"); |
|||
project.setOtherData(getOtherData(project.getProjectUuid(), project.getProjectLabel())); |
|||
QUERY_DSL.insert(lccModelWorld).populate(project).execute(); |
|||
return QUERY_DSL.selectFrom(lccModelWorld).where(lccModelWorld.id.eq(project.getId())).fetchOne(); |
|||
} |
|||
} |
|||
|
|||
Loading…
Reference in new issue