diff --git a/servo/src/main/java/com/yvan/workbench/controller/LccModelManager.java b/servo/src/main/java/com/yvan/workbench/controller/LccModelManager.java index 4bbe39a..6ed4349 100644 --- a/servo/src/main/java/com/yvan/workbench/controller/LccModelManager.java +++ b/servo/src/main/java/com/yvan/workbench/controller/LccModelManager.java @@ -6,6 +6,7 @@ import org.apache.commons.lang3.StringUtils; import org.clever.core.Assert; import org.clever.core.Conv; import org.clever.core.id.SnowFlake; +import org.clever.core.mapper.JacksonMapper; import org.clever.core.model.request.QueryByPage; import org.clever.core.model.request.page.Page; import org.clever.core.model.response.R; @@ -111,6 +112,33 @@ public class LccModelManager { return QUERY_DSL.selectFrom(lccModelWorld).where(lccModelWorld.id.eq(project.getId())).fetchOne(); } + @Transactional + public static R addOrUpdateWorld(@RequestBody LccModelWorld params) { + Assert.isNotBlank(params.getProjectUuid(), "项目编号必填"); + long count = QUERY_DSL.selectFrom(lccModelWorld) + .where(lccModelWorld.projectUuid.eq(params.getProjectUuid())) + .where(lccModelWorld.projectVersion.eq(1L)) + .fetchCount(); + if (count >= 1) { + QUERY_DSL.update(lccModelWorld) + .set(lccModelWorld.otherData, params.getOtherData()) + .set(lccModelWorld.directoryData, params.getDirectoryData()) + .where(lccModelWorld.projectUuid.eq(params.getProjectUuid())) + .where(lccModelWorld.projectVersion.eq(1L)) + .execute(); + } else { + //noinspection unchecked + Map map = JacksonMapper.getInstance().fromJson(params.getOtherData(), Map.class); + params.setId(SnowFlake.SNOW_FLAKE.nextId()); + params.setProjectVersion(1L); + params.setProjectLabel(Conv.asString(map.get("project_label"))); + params.setServer(Conv.asString(map.get("server"))); + // params.setCreateBy(); + QUERY_DSL.insert(lccModelWorld).populate(params).execute(); + } + return R.success(); + } + public static LccModelFloor getFloor(@RequestParam Map params) { String catalogCode = Conv.asString(params.get("catalogCode")); String project_uuid = Conv.asString(params.get("project_uuid")); diff --git a/yvan-rcs-dev/.lck b/yvan-rcs-dev/.lck new file mode 100644 index 0000000..e69de29