From 7f9b79662c3da884842769389e2a1e1b7ddacd85 Mon Sep 17 00:00:00 2001 From: lizw-2015 <1183409807@qq.com> Date: Thu, 19 Jun 2025 10:23:48 +0800 Subject: [PATCH] init --- .../yvan/workbench/controller/LccModelManager.java | 78 +++++++++++++++++++++- 1 file changed, 76 insertions(+), 2 deletions(-) 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 c2aa502..f63108e 100644 --- a/servo/src/main/java/com/yvan/workbench/controller/LccModelManager.java +++ b/servo/src/main/java/com/yvan/workbench/controller/LccModelManager.java @@ -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 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(); + } }