You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampark.apache.org by kr...@apache.org on 2022/11/11 02:35:54 UTC

[incubator-streampark] branch dev updated: [Improve] sql Improvement (#2002)

This is an automated email from the ASF dual-hosted git repository.

kriszu pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git


The following commit(s) were added to refs/heads/dev by this push:
     new ca42e7fe8 [Improve] sql Improvement (#2002)
ca42e7fe8 is described below

commit ca42e7fe8d3a0102ffce23ff4833ee0ff7b666ae
Author: benjobs <be...@apache.org>
AuthorDate: Fri Nov 11 10:35:50 2022 +0800

    [Improve] sql Improvement (#2002)
---
 .../src/assembly/script/data/mysql-data.sql        |  2 +-
 .../src/assembly/script/data/pgsql-data.sql        |  2 +-
 .../core/mapper/ApplicationConfigMapper.java       |  5 ++
 .../console/core/mapper/ApplicationMapper.java     |  7 ++
 .../console/core/mapper/FlinkClusterMapper.java    |  5 ++
 .../console/core/mapper/ProjectMapper.java         |  8 +-
 .../console/core/mapper/VariableMapper.java        |  3 +
 .../console/core/service/ApplicationService.java   |  2 +-
 .../console/core/service/FlinkClusterService.java  |  4 +
 .../console/core/service/ProjectService.java       |  2 +-
 .../console/core/service/VariableService.java      |  3 +-
 .../core/service/impl/AppBuildPipeServiceImpl.java |  2 +-
 .../service/impl/ApplicationConfigServiceImpl.java |  9 +--
 .../core/service/impl/ApplicationServiceImpl.java  | 36 ++++-----
 .../core/service/impl/FlinkClusterServiceImpl.java | 29 +++----
 .../core/service/impl/ProjectServiceImpl.java      | 15 +---
 .../core/service/impl/VariableServiceImpl.java     |  7 +-
 .../console/core/task/ProjectBuildTask.java        |  9 ++-
 .../console/system/authentication/ShiroConfig.java | 22 ++++++
 .../system/service/impl/TeamServiceImpl.java       |  6 +-
 .../src/main/resources/application.yml             | 19 -----
 .../src/main/resources/db/data-h2.sql              |  2 +-
 .../resources/mapper/core/AlertConfigMapper.xml    |  7 +-
 .../mapper/core/ApplicationConfigMapper.xml        | 13 ++++
 .../resources/mapper/core/ApplicationMapper.xml    | 88 +++++++++++++---------
 .../resources/mapper/core/FlinkClusterMapper.xml   | 20 +++++
 .../main/resources/mapper/core/FlinkSqlMapper.xml  |  3 +-
 .../main/resources/mapper/core/ProjectMapper.xml   | 36 +++++----
 .../main/resources/mapper/core/VariableMapper.xml  | 14 +++-
 29 files changed, 235 insertions(+), 145 deletions(-)

diff --git a/streampark-console/streampark-console-service/src/assembly/script/data/mysql-data.sql b/streampark-console/streampark-console-service/src/assembly/script/data/mysql-data.sql
index 884603ec0..a263e424e 100644
--- a/streampark-console/streampark-console-service/src/assembly/script/data/mysql-data.sql
+++ b/streampark-console/streampark-console-service/src/assembly/script/data/mysql-data.sql
@@ -40,7 +40,7 @@ insert into `t_flink_effective` values (100000, 100000, 2, 100000, now());
 -- ----------------------------
 -- Records of t_flink_project
 -- ----------------------------
-insert into `t_flink_project` values (100000, 100000, 'streampark-quickstart', 'https://github.com/streamxhub/streampark-quickstart.git', 'main', null, null, null, null, 1, 1, null, 'streampark-quickstart', 1, now(), now());
+insert into `t_flink_project` values (100000, 100000, 'streampark-quickstart', 'https://github.com/streamxhub/streampark-quickstart.git', 'main', null, null, null, null, 1, 1, null, 'streampark-quickstart', -1, now(), now());
 
 -- ----------------------------
 -- Records of t_flink_sql
diff --git a/streampark-console/streampark-console-service/src/assembly/script/data/pgsql-data.sql b/streampark-console/streampark-console-service/src/assembly/script/data/pgsql-data.sql
index 1269a05fc..65f42d17e 100644
--- a/streampark-console/streampark-console-service/src/assembly/script/data/pgsql-data.sql
+++ b/streampark-console/streampark-console-service/src/assembly/script/data/pgsql-data.sql
@@ -35,7 +35,7 @@ insert into "public"."t_flink_effective" values (100000, 100000, 2, 100000, now(
 -- ----------------------------
 -- Records of t_flink_project
 -- ----------------------------
-insert into "public"."t_flink_project" values (100000, 100000, 'streampark-quickstart', 'https://github.com/streamxhub/streampark-quickstart.git', 'main', null, null, null, null, 1, 1, null, 'streampark-quickstart', 1, now(), now());
+insert into "public"."t_flink_project" values (100000, 100000, 'streampark-quickstart', 'https://github.com/streamxhub/streampark-quickstart.git', 'main', null, null, null, null, 1, 1, null, 'streampark-quickstart', -1, now(), now());
 
 
 -- ----------------------------
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/ApplicationConfigMapper.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/ApplicationConfigMapper.java
index 80459224e..62c3ff3b7 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/ApplicationConfigMapper.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/ApplicationConfigMapper.java
@@ -20,6 +20,8 @@ package org.apache.streampark.console.core.mapper;
 import org.apache.streampark.console.core.entity.ApplicationConfig;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
 
 public interface ApplicationConfigMapper extends BaseMapper<ApplicationConfig> {
@@ -28,4 +30,7 @@ public interface ApplicationConfigMapper extends BaseMapper<ApplicationConfig> {
 
     ApplicationConfig getEffective(@Param("appId") Long appId);
 
+    ApplicationConfig getLatest(@Param("appId") Long appId);
+
+    IPage<ApplicationConfig> pageByAppId(Page<ApplicationConfig> page, @Param("appId") Long appId);
 }
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/ApplicationMapper.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/ApplicationMapper.java
index 61bddd771..88472e956 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/ApplicationMapper.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/ApplicationMapper.java
@@ -50,4 +50,11 @@ public interface ApplicationMapper extends BaseMapper<Application> {
 
     List<String> getRecentK8sTmPodTemplate(@Param("limitSize") int limit);
 
+    void resetOptionState();
+
+    Boolean existsByTeamId(@Param("teamId") Long teamId);
+
+    Boolean existsByJobName(@Param("jobName") String jobName);
+
+    List<Application> getByProjectId(@Param("projectId") Long id);
 }
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/FlinkClusterMapper.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/FlinkClusterMapper.java
index b2cb088bd..428aa8e99 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/FlinkClusterMapper.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/FlinkClusterMapper.java
@@ -20,7 +20,12 @@ package org.apache.streampark.console.core.mapper;
 import org.apache.streampark.console.core.entity.FlinkCluster;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 
 public interface FlinkClusterMapper extends BaseMapper<FlinkCluster> {
 
+    Boolean existsByClusterId(@Param("clusterId") String clusterId);
+
+    Boolean existsByClusterName(@Param("clusterName") String clusterName, @Param("id") Long id);
+
 }
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/ProjectMapper.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/ProjectMapper.java
index c5ce5db8f..db0d1d61b 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/ProjectMapper.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/ProjectMapper.java
@@ -20,14 +20,16 @@ package org.apache.streampark.console.core.mapper;
 import org.apache.streampark.console.core.entity.Project;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
 
 public interface ProjectMapper extends BaseMapper<Project> {
 
-    void updateFailureBuildById(@Param("project") Project project);
+    void updateBuildState(@Param("id") Long id, @Param("state") Integer buildState);
 
-    void updateSuccessBuildById(@Param("project") Project project);
+    IPage<Project> page(Page<Project> page, @Param("project") Project project);
 
-    void updateStartBuildById(@Param("project") Project project);
+    Boolean existsByTeamId(@Param("teamId") Long teamId);
 
 }
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/VariableMapper.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/VariableMapper.java
index db3b84917..79fd65eed 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/VariableMapper.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/VariableMapper.java
@@ -31,4 +31,7 @@ public interface VariableMapper extends BaseMapper<Variable> {
     IPage<Variable> page(Page<Variable> page, @Param("variable") Variable variable);
 
     List<Variable> selectByTeamId(@Param("teamId") Long teamId, @Param("keyword") String keyword);
+
+    Boolean existsByTeamId(@Param("teamId") Long teamId);
+
 }
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ApplicationService.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ApplicationService.java
index 3c091c35e..c3dfc493a 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ApplicationService.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ApplicationService.java
@@ -35,7 +35,7 @@ public interface ApplicationService extends IService<Application> {
 
     IPage<Application> page(Application app, RestRequest request);
 
-    long countByTeamId(Long teamId);
+    boolean existsByTeamId(Long teamId);
 
     boolean create(Application app) throws IOException;
 
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/FlinkClusterService.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/FlinkClusterService.java
index 879b7fa48..a2c525441 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/FlinkClusterService.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/FlinkClusterService.java
@@ -35,4 +35,8 @@ public interface FlinkClusterService extends IService<FlinkCluster> {
     ResponseResult start(FlinkCluster flinkCluster);
 
     ResponseResult shutdown(FlinkCluster flinkCluster);
+
+    Boolean existsByClusterId(String clusterId);
+
+    Boolean existsByClusterName(String clusterName, Long id);
 }
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ProjectService.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ProjectService.java
index dfc45c9f3..ff3c986ed 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ProjectService.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ProjectService.java
@@ -38,7 +38,7 @@ public interface ProjectService extends IService<Project> {
 
     IPage<Project> page(Project project, RestRequest restRequest);
 
-    long countByTeamId(Long teamId);
+    Boolean existsByTeamId(Long teamId);
 
     void build(Long id) throws Exception;
 
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/VariableService.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/VariableService.java
index ec7b51701..4c27980b9 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/VariableService.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/VariableService.java
@@ -52,7 +52,7 @@ public interface VariableService extends IService<Variable> {
      */
     List<Variable> findByTeamId(Long teamId, String keyword);
 
-    long countByTeamId(Long teamId);
+    boolean existsByTeamId(Long teamId);
 
     /**
      * create variable
@@ -68,4 +68,5 @@ public interface VariableService extends IService<Variable> {
     String replaceVariable(Long teamId, String mixed);
 
     IPage<Application> dependAppsPage(Variable variable, RestRequest request);
+
 }
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/AppBuildPipeServiceImpl.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/AppBuildPipeServiceImpl.java
index 866b4c40b..96597b52e 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/AppBuildPipeServiceImpl.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/AppBuildPipeServiceImpl.java
@@ -445,7 +445,7 @@ public class AppBuildPipeServiceImpl
             return Maps.newHashMap();
         }
         LambdaQueryWrapper<AppBuildPipeline> queryWrapper = new LambdaQueryWrapper<AppBuildPipeline>()
-            .select(AppBuildPipeline::getAppId, AppBuildPipeline::getPipeStatus)
+            .select(AppBuildPipeline::getAppId, AppBuildPipeline::getPipeStatusCode)
             .in(AppBuildPipeline::getAppId, appIds);
         List<Map<String, Object>> rMaps = baseMapper.selectMaps(queryWrapper);
         if (CollectionUtils.isEmpty(rMaps)) {
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ApplicationConfigServiceImpl.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ApplicationConfigServiceImpl.java
index 9b1001456..dc23e192a 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ApplicationConfigServiceImpl.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ApplicationConfigServiceImpl.java
@@ -180,10 +180,7 @@ public class ApplicationConfigServiceImpl
 
     @Override
     public ApplicationConfig getLatest(Long appId) {
-        LambdaQueryWrapper<ApplicationConfig> queryWrapper = new LambdaQueryWrapper<ApplicationConfig>()
-            .eq(ApplicationConfig::getAppId, appId)
-            .eq(ApplicationConfig::getLatest, true);
-        return this.getOne(queryWrapper);
+        return baseMapper.getLatest(appId);
     }
 
     @Override
@@ -206,9 +203,7 @@ public class ApplicationConfigServiceImpl
     @Override
     public IPage<ApplicationConfig> page(ApplicationConfig config, RestRequest request) {
         Page<ApplicationConfig> page = new MybatisPager<ApplicationConfig>().getPage(request, "version", Constant.ORDER_DESC);
-        LambdaQueryWrapper<ApplicationConfig> queryWrapper = new LambdaQueryWrapper<ApplicationConfig>()
-            .eq(ApplicationConfig::getAppId, config.getAppId());
-        return this.page(page, queryWrapper);
+        return this.baseMapper.pageByAppId(page, config.getAppId());
     }
 
     @Override
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ApplicationServiceImpl.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ApplicationServiceImpl.java
index e9b6e95e3..777de6488 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ApplicationServiceImpl.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ApplicationServiceImpl.java
@@ -94,7 +94,6 @@ import org.apache.streampark.flink.submit.bean.KubernetesSubmitParam;
 import org.apache.streampark.flink.submit.bean.SubmitRequest;
 import org.apache.streampark.flink.submit.bean.SubmitResponse;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -212,9 +211,7 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli
 
     @PostConstruct
     public void resetOptionState() {
-        Application application = new Application();
-        application.setOptionState(0);
-        this.update(application);
+        this.baseMapper.resetOptionState();
     }
 
     private final Map<Long, CompletableFuture<SubmitResponse>> startFutureMap = new ConcurrentHashMap<>();
@@ -516,10 +513,8 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli
     }
 
     @Override
-    public long countByTeamId(Long teamId) {
-        LambdaQueryWrapper<Application> queryWrapper = new LambdaQueryWrapper<Application>()
-            .eq(Application::getTeamId, teamId);
-        return this.count(queryWrapper);
+    public boolean existsByTeamId(Long teamId) {
+        return baseMapper.existsByTeamId(teamId);
     }
 
     @Override
@@ -539,9 +534,8 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli
         if (!checkJobName(appParam.getJobName())) {
             return AppExistsState.INVALID;
         }
-        LambdaQueryWrapper<Application> queryWrapper = new LambdaQueryWrapper<Application>()
-            .eq(Application::getJobName, appParam.getJobName());
-        boolean inDB = this.baseMapper.selectCount(queryWrapper) > 0;
+
+        boolean existsByJobName = this.existsByJobName(appParam.getJobName());
 
         if (appParam.getId() != null) {
             Application app = getById(appParam.getId());
@@ -549,7 +543,7 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli
                 return AppExistsState.NO;
             }
 
-            if (inDB) {
+            if (existsByJobName) {
                 return AppExistsState.IN_DB;
             }
 
@@ -573,7 +567,7 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli
                 }
             }
         } else {
-            if (inDB) {
+            if (existsByJobName) {
                 return AppExistsState.IN_DB;
             }
 
@@ -623,19 +617,21 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli
         return false;
     }
 
+    private boolean existsByJobName(String jobName) {
+        return this.baseMapper.existsByJobName(jobName);
+    }
+
     @SuppressWarnings("checkstyle:WhitespaceAround")
     @Override
     @SneakyThrows
     @Transactional(rollbackFor = {Exception.class})
     public Long copy(Application appParam) {
-        LambdaQueryWrapper<Application> queryWrapper = new LambdaQueryWrapper<Application>()
-            .eq(Application::getJobName, appParam.getJobName());
-        long count = this.baseMapper.selectCount(queryWrapper);
-        if (count > 0) {
+        boolean existsByJobName = this.existsByJobName(appParam.getJobName());
+        if (existsByJobName) {
             throw new IllegalArgumentException("[StreamPark] Application names cannot be repeated");
         }
-        Application oldApp = getById(appParam.getId());
 
+        Application oldApp = getById(appParam.getId());
         Application newApp = new Application();
         String jobName = appParam.getJobName();
 
@@ -882,9 +878,7 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli
 
     @Override
     public List<Application> getByProjectId(Long id) {
-        LambdaQueryWrapper<Application> queryWrapper = new LambdaQueryWrapper<Application>()
-            .eq(Application::getProjectId, id);
-        return this.list(queryWrapper);
+        return baseMapper.getByProjectId(id);
     }
 
     @Override
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/FlinkClusterServiceImpl.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/FlinkClusterServiceImpl.java
index b2cc47bdc..f1161d639 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/FlinkClusterServiceImpl.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/FlinkClusterServiceImpl.java
@@ -39,7 +39,6 @@ import org.apache.streampark.flink.submit.bean.KubernetesDeployParam;
 import org.apache.streampark.flink.submit.bean.ShutDownRequest;
 import org.apache.streampark.flink.submit.bean.ShutDownResponse;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -91,15 +90,11 @@ public class FlinkClusterServiceImpl extends ServiceImpl<FlinkClusterMapper, Fli
             return "error";
         }
         //1) Check if name is duplicate, if it already exists
-        LambdaQueryWrapper<FlinkCluster> queryWrapper = new LambdaQueryWrapper<FlinkCluster>()
-            .eq(FlinkCluster::getClusterName, cluster.getClusterName());
-        FlinkCluster flinkCluster = this.getOne(queryWrapper);
-        if (flinkCluster != null) {
-            boolean isExists = cluster.getId() == null || (cluster.getId() != null && !flinkCluster.getId().equals(cluster.getId()));
-            if (isExists) {
-                return "exists";
-            }
+        Boolean existsByClusterName = this.existsByClusterName(cluster.getClusterName(), cluster.getId());
+        if (existsByClusterName) {
+            return "exists";
         }
+
         if (ExecutionMode.REMOTE.equals(cluster.getExecutionModeEnum())) {
             //2) Check if the connection can be made to
             return cluster.verifyConnection() ? "success" : "fail";
@@ -117,10 +112,8 @@ public class FlinkClusterServiceImpl extends ServiceImpl<FlinkClusterMapper, Fli
         }
         String clusterId = flinkCluster.getClusterId();
         if (StringUtils.isNoneBlank(clusterId)) {
-            LambdaQueryWrapper<FlinkCluster> queryWrapper = new LambdaQueryWrapper<FlinkCluster>()
-                .eq(FlinkCluster::getClusterId, clusterId);
-            FlinkCluster inDb = this.getOne(queryWrapper);
-            if (inDb != null) {
+            Boolean existsByClusterId = this.existsByClusterId(clusterId);
+            if (existsByClusterId) {
                 result.setMsg("the clusterId" + clusterId + "is already exists,please check!");
                 result.setStatus(0);
                 return result;
@@ -290,6 +283,16 @@ public class FlinkClusterServiceImpl extends ServiceImpl<FlinkClusterMapper, Fli
         }
     }
 
+    @Override
+    public Boolean existsByClusterId(String clusterId) {
+        return this.baseMapper.existsByClusterId(clusterId);
+    }
+
+    @Override
+    public Boolean existsByClusterName(String clusterName, Long id) {
+        return this.baseMapper.existsByClusterName(clusterName, id);
+    }
+
     @Override
     public ResponseResult delete(FlinkCluster flinkCluster) {
         ResponseResult result = new ResponseResult();
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ProjectServiceImpl.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ProjectServiceImpl.java
index 73fbf7f1e..1e4d9b9f9 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ProjectServiceImpl.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ProjectServiceImpl.java
@@ -45,7 +45,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
@@ -166,24 +165,18 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project>
     @Override
     public IPage<Project> page(Project project, RestRequest request) {
         Page<Project> page = new MybatisPager<Project>().getDefaultPage(request);
-        LambdaQueryWrapper<Project> queryWrapper = new LambdaQueryWrapper<Project>()
-            .eq(Project::getTeamId, project.getTeamId())
-            .like(StringUtils.isNotBlank(project.getName()), Project::getName, project.getName())
-            .eq(project.getBuildState() != null, Project::getBuildState, project.getBuildState());
-        return this.page(page, queryWrapper);
+        return this.baseMapper.page(page, project);
     }
 
     @Override
-    public long countByTeamId(Long teamId) {
-        LambdaQueryWrapper<Project> queryWrapper = new LambdaQueryWrapper<Project>()
-            .eq(Project::getTeamId, teamId);
-        return this.count(queryWrapper);
+    public Boolean existsByTeamId(Long teamId) {
+        return this.baseMapper.existsByTeamId(teamId);
     }
 
     @Override
     public void build(Long id) throws Exception {
         Project project = getById(id);
-        this.baseMapper.updateStartBuildById(project);
+        this.baseMapper.updateBuildState(project.getId(), BuildState.BUILDING.get());
         ProjectBuildTask projectBuildTask = new ProjectBuildTask(getBuildLogPath(id), project, baseMapper, applicationService);
         CompletableFuture<Void> buildTask = CompletableFuture.runAsync(projectBuildTask, executorService);
         // TODO May need to define parameters to set the build timeout in the future.
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/VariableServiceImpl.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/VariableServiceImpl.java
index 62ed98c92..2bd1bf2fe 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/VariableServiceImpl.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/VariableServiceImpl.java
@@ -230,9 +230,8 @@ public class VariableServiceImpl extends ServiceImpl<VariableMapper, Variable> i
     }
 
     @Override
-    public long countByTeamId(Long teamId) {
-        LambdaQueryWrapper<Variable> queryWrapper = new LambdaQueryWrapper<Variable>()
-            .eq(Variable::getTeamId, teamId);
-        return this.count(queryWrapper);
+    public boolean existsByTeamId(Long teamId) {
+        return this.baseMapper.existsByTeamId(teamId);
     }
+
 }
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/task/ProjectBuildTask.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/task/ProjectBuildTask.java
index 3410ab256..f731dc25d 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/task/ProjectBuildTask.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/task/ProjectBuildTask.java
@@ -22,6 +22,7 @@ import org.apache.streampark.common.util.Utils;
 import org.apache.streampark.console.base.util.CommonUtils;
 import org.apache.streampark.console.core.entity.Application;
 import org.apache.streampark.console.core.entity.Project;
+import org.apache.streampark.console.core.enums.BuildState;
 import org.apache.streampark.console.core.enums.LaunchState;
 import org.apache.streampark.console.core.mapper.ProjectMapper;
 import org.apache.streampark.console.core.service.ApplicationService;
@@ -64,16 +65,16 @@ public class ProjectBuildTask extends AbstractLogFileTask {
         boolean cloneSuccess = cloneSourceCode(project);
         if (!cloneSuccess) {
             fileLogger.error("[StreamPark] clone or pull error.");
-            this.baseMapper.updateFailureBuildById(project);
+            this.baseMapper.updateBuildState(project.getId(), BuildState.FAILED.get());
             return;
         }
         boolean build = projectBuild(project);
         if (!build) {
-            this.baseMapper.updateFailureBuildById(project);
+            this.baseMapper.updateBuildState(project.getId(), BuildState.FAILED.get());
             fileLogger.error("build error, project name: {} ", project.getName());
             return;
         }
-        this.baseMapper.updateSuccessBuildById(project);
+        this.baseMapper.updateBuildState(project.getId(), BuildState.SUCCESSFUL.get());
         this.deploy(project);
         List<Application> applications = this.applicationService.getByProjectId(project.getId());
         // Update the deploy state
@@ -87,7 +88,7 @@ public class ProjectBuildTask extends AbstractLogFileTask {
 
     @Override
     protected void processException(Throwable t) {
-        this.baseMapper.updateFailureBuildById(project);
+        this.baseMapper.updateBuildState(project.getId(), BuildState.FAILED.get());
         fileLogger.error("Build error, project name: {}", project.getName(), t);
     }
 
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/authentication/ShiroConfig.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/authentication/ShiroConfig.java
index 367a8837e..8fa0ef897 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/authentication/ShiroConfig.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/authentication/ShiroConfig.java
@@ -42,6 +42,7 @@ public class ShiroConfig {
 
         LinkedHashMap<String, String> filterChainDefinitionMap = new LinkedHashMap<>();
         filterChainDefinitionMap.put("/actuator/**", "anon");
+
         filterChainDefinitionMap.put("/doc.html", "anon");
         filterChainDefinitionMap.put("/swagger-ui/**", "anon");
         filterChainDefinitionMap.put("/swagger-resources", "anon");
@@ -49,6 +50,27 @@ public class ShiroConfig {
         filterChainDefinitionMap.put("/swagger-resources/configuration/ui", "anon");
         filterChainDefinitionMap.put("/v3/api-docs", "anon");
         filterChainDefinitionMap.put("/webjars/**", "anon");
+
+        filterChainDefinitionMap.put("/passport/**", "anon");
+        filterChainDefinitionMap.put("/systemName", "anon");
+        filterChainDefinitionMap.put("/member/teams", "anon");
+        filterChainDefinitionMap.put("/user/check/**", "anon");
+        filterChainDefinitionMap.put("/user/initTeam", "anon");
+        filterChainDefinitionMap.put("/websocket/**", "anon");
+        filterChainDefinitionMap.put("/metrics/**", "anon");
+
+        filterChainDefinitionMap.put("/index.html", "anon");
+        filterChainDefinitionMap.put("/assets/**", "anon");
+        filterChainDefinitionMap.put("/css/**", "anon");
+        filterChainDefinitionMap.put("/fonts/**", "anon");
+        filterChainDefinitionMap.put("/img/**", "anon");
+        filterChainDefinitionMap.put("/js/**", "anon");
+        filterChainDefinitionMap.put("/loading/**", "anon");
+        filterChainDefinitionMap.put("/*.js", "anon");
+        filterChainDefinitionMap.put("/*.png", "anon");
+        filterChainDefinitionMap.put("/*.jpg", "anon");
+        filterChainDefinitionMap.put("/*.less", "anon");
+        filterChainDefinitionMap.put("/", "anon");
         filterChainDefinitionMap.put("/**", "jwt");
 
         shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/TeamServiceImpl.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/TeamServiceImpl.java
index 59fe76a5c..1b83c88ec 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/TeamServiceImpl.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/TeamServiceImpl.java
@@ -104,13 +104,13 @@ public class TeamServiceImpl extends ServiceImpl<TeamMapper, Team> implements Te
         if (team == null) {
             throw new ApiAlertException(String.format("The team[Id=%s] doesn't exists.", teamId));
         }
-        if (applicationService.countByTeamId(teamId) > 0) {
+        if (applicationService.existsByTeamId(teamId)) {
             throw new ApiAlertException(String.format("Please delete the applications under the team[name=%s] first!", team.getTeamName()));
         }
-        if (projectService.countByTeamId(teamId) > 0) {
+        if (projectService.existsByTeamId(teamId)) {
             throw new ApiAlertException(String.format("Please delete the projects under the team[name=%s] first!", team.getTeamName()));
         }
-        if (variableService.countByTeamId(teamId) > 0) {
+        if (variableService.existsByTeamId(teamId)) {
             throw new ApiAlertException(String.format("Please delete the variables under the team[name=%s] first!", team.getTeamName()));
         }
 
diff --git a/streampark-console/streampark-console-service/src/main/resources/application.yml b/streampark-console/streampark-console-service/src/main/resources/application.yml
index 33bab5c75..a7560a715 100644
--- a/streampark-console/streampark-console-service/src/main/resources/application.yml
+++ b/streampark-console/streampark-console-service/src/main/resources/application.yml
@@ -129,25 +129,6 @@ streampark:
     jwtTimeOut: 86400
     # backend authentication-free resources url
     anonUrl: >
-      /passport/**,
-      /systemName,
-      /member/teams,
-      /user/check/**,
-      /user/initTeam,
-      /websocket/**,
-      /metrics/**,
-      /index.html,
-      /assets/**,
-      /css/**,
-      /fonts/**,
-      /img/**,
-      /js/**,
-      /loading/**,
-      /*.js,
-      /*.png,
-      /*.jpg,
-      /*.less,
-      /
 
 ldap:
   ## AD server IP, default port 389
diff --git a/streampark-console/streampark-console-service/src/main/resources/db/data-h2.sql b/streampark-console/streampark-console-service/src/main/resources/db/data-h2.sql
index 9e2d666e2..89d0893fe 100644
--- a/streampark-console/streampark-console-service/src/main/resources/db/data-h2.sql
+++ b/streampark-console/streampark-console-service/src/main/resources/db/data-h2.sql
@@ -35,7 +35,7 @@ insert into `t_flink_effective` values (100000, 100000, 2, 100000, now());
 -- ----------------------------
 -- Records of t_flink_project
 -- ----------------------------
-insert into `t_flink_project` values (100000, 100000, 'streampark-quickstart', 'https://github.com/streamxhub/streampark-quickstart.git', 'main', null, null, null, null, 1, 1, null, 'streampark-quickstart', 1, now(), now());
+insert into `t_flink_project` values (100000, 100000, 'streampark-quickstart', 'https://github.com/streamxhub/streampark-quickstart.git', 'main', null, null, null, null, 1, 1, null, 'streampark-quickstart', -1, now(), now());
 
 -- ----------------------------
 -- Records of t_flink_sql
diff --git a/streampark-console/streampark-console-service/src/main/resources/mapper/core/AlertConfigMapper.xml b/streampark-console/streampark-console-service/src/main/resources/mapper/core/AlertConfigMapper.xml
index 4eae46e65..15b5b55bf 100644
--- a/streampark-console/streampark-console-service/src/main/resources/mapper/core/AlertConfigMapper.xml
+++ b/streampark-console/streampark-console-service/src/main/resources/mapper/core/AlertConfigMapper.xml
@@ -34,8 +34,9 @@
     </resultMap>
 
     <select id="getAlertConfByName" resultType="org.apache.streampark.console.core.entity.AlertConfig" parameterType="org.apache.streampark.console.core.entity.AlertConfig">
-        SELECT id
-        FROM t_alert_config t
-        where t.alert_name = #{alertConfig.alertName} limit 1;
+        select id
+        from t_alert_config t
+        where t.alert_name = #{alertConfig.alertName}
+        limit 1
     </select>
 </mapper>
diff --git a/streampark-console/streampark-console-service/src/main/resources/mapper/core/ApplicationConfigMapper.xml b/streampark-console/streampark-console-service/src/main/resources/mapper/core/ApplicationConfigMapper.xml
index e606a3cd4..9644a23bc 100644
--- a/streampark-console/streampark-console-service/src/main/resources/mapper/core/ApplicationConfigMapper.xml
+++ b/streampark-console/streampark-console-service/src/main/resources/mapper/core/ApplicationConfigMapper.xml
@@ -30,6 +30,13 @@
         <result column="create_time" jdbcType="DATE" property="createTime"/>
     </resultMap>
 
+    <select id="getLatest" resultType="org.apache.streampark.console.core.entity.ApplicationConfig" parameterType="java.lang.Long">
+        select *
+        from t_flink_config
+        where app_id=#{appId}
+        and latest=true
+    </select>
+
     <select id="getLastVersion" resultType="java.lang.Integer" parameterType="java.lang.Long">
         select max(`version`) as lastVersion
         from t_flink_config
@@ -44,4 +51,10 @@
         where e.app_id = #{appId}
         and e.target_type = 1
     </select>
+
+    <select id="pageByAppId" resultType="org.apache.streampark.console.core.entity.ApplicationConfig" parameterType="java.lang.Long">
+        select * from t_flink_config
+        where app_id=#{appId}
+    </select>
+
 </mapper>
diff --git a/streampark-console/streampark-console-service/src/main/resources/mapper/core/ApplicationMapper.xml b/streampark-console/streampark-console-service/src/main/resources/mapper/core/ApplicationMapper.xml
index 117d57bfe..27b95048d 100644
--- a/streampark-console/streampark-console-service/src/main/resources/mapper/core/ApplicationMapper.xml
+++ b/streampark-console/streampark-console-service/src/main/resources/mapper/core/ApplicationMapper.xml
@@ -79,15 +79,40 @@
         <result column="tags" jdbcType="VARCHAR" property="tags"/>
     </resultMap>
 
+    <update id="resetOptionState">
+        update t_flink_app
+        set option_state = 0
+    </update>
+
+    <select id="existsByTeamId" resultType="java.lang.Boolean" parameterType="java.lang.Long">
+        select count(1)
+        from t_flink_app
+        where team_id = #{teamId}
+        limit 1
+    </select>
+
+    <select id="existsByJobName" resultType="java.lang.Boolean" parameterType="java.lang.String">
+        select count(1)
+        from t_flink_app
+        where job_name = #{jobName}
+        limit 1
+    </select>
+
+    <select id="getByProjectId" resultType="org.apache.streampark.console.core.entity.Application" parameterType="java.lang.Long">
+        select * from t_flink_app where project_id=#{projectId}
+    </select>
+
     <select id="page" resultType="org.apache.streampark.console.core.entity.Application" parameterType="org.apache.streampark.console.core.entity.Application">
-        select t.*,
-               p.name as projectName,
-               u.username,
-               case when trim(u.nick_name) = ''
+        select
+            t.*,
+            p.name as projectName,
+            u.username,
+           case
+               when trim(u.nick_name) = ''
                    then u.username
-                   else u.nick_name
-                   end as nickname,
-               v.version as flinkVersion
+               else u.nick_name
+            end as nickname,
+            v.version as flinkVersion
         from t_flink_app t
         inner join t_user u
         on t.user_id = u.user_id
@@ -194,7 +219,14 @@
     </update>
 
     <select id="getByTeamId" resultType="org.apache.streampark.console.core.entity.Application" parameterType="java.lang.Long">
-        select t.*, u.username, case when trim(u.nick_name) = '' then u.username else u.nick_name end as nick_name
+        select
+            t.*,
+            u.username,
+            case
+                when trim(u.nick_name) = ''
+                    then u.username
+                else u.nick_name
+            end as nick_name
         from t_flink_app t
         inner join t_user u
         on t.user_id = u.user_id
@@ -219,9 +251,7 @@
     <select id="getRecentK8sNamespace" resultType="java.lang.String" parameterType="java.lang.Integer">
         select k8s_namespace
         from (
-            select
-                k8s_namespace,
-                max(create_time) as ct
+            select k8s_namespace, max(create_time) as ct
             from t_flink_app
             where k8s_namespace is not null
             group by k8s_namespace
@@ -233,12 +263,10 @@
     <select id="getRecentK8sClusterId" resultType="java.lang.String" parameterType="java.util.Map">
         select cluster_id
         from (
-            select
-                cluster_id,
-                max(create_time) as ct
+            select cluster_id, max(create_time) as ct
             from t_flink_app
             where cluster_id is not null
-                and execution_mode = #{executionMode}
+            and execution_mode = #{executionMode}
             group by cluster_id
             order by ct desc
         ) as ci
@@ -248,12 +276,10 @@
     <select id="getRecentFlinkBaseImage" resultType="java.lang.String" parameterType="java.lang.Integer">
         select flink_image
         from (
-            select
-                flink_image,
-                max(create_time) as ct
+            select flink_image, max(create_time) as ct
             from t_flink_app
             where flink_image is not null
-                and execution_mode = 6
+            and execution_mode = 6
             group by flink_image
             order by ct desc
         ) as fi
@@ -263,13 +289,11 @@
     <select id="getRecentK8sPodTemplate" resultType="java.lang.String" parameterType="java.lang.Integer">
         select k8s_pod_template
         from (
-            select
-                k8s_pod_template,
-                max(create_time) as ct
+            select k8s_pod_template, max(create_time) as ct
             from t_flink_app
             where k8s_pod_template is not null
-                and k8s_pod_template !=''
-                and execution_mode = 6
+            and k8s_pod_template !=''
+            and execution_mode = 6
             group by k8s_pod_template
             order by ct desc
         ) as pt
@@ -279,13 +303,11 @@
     <select id="getRecentK8sJmPodTemplate" resultType="java.lang.String" parameterType="java.lang.Integer">
         select k8s_jm_pod_template
         from (
-            select
-                k8s_jm_pod_template,
-                max(create_time) as ct
+            select k8s_jm_pod_template, max(create_time) as ct
             from t_flink_app
             where k8s_jm_pod_template is not null
-                and k8s_jm_pod_template != ''
-                and execution_mode = 6
+            and k8s_jm_pod_template != ''
+            and execution_mode = 6
             group by k8s_jm_pod_template
             order by ct desc
         ) as pt
@@ -295,13 +317,11 @@
     <select id="getRecentK8sTmPodTemplate" resultType="java.lang.String" parameterType="java.lang.Integer">
         select k8s_tm_pod_template
         from (
-            select
-                k8s_tm_pod_template,
-                max(create_time) as ct
+            select k8s_tm_pod_template, max(create_time) as ct
             from t_flink_app
             where k8s_tm_pod_template is not null
-                and k8s_tm_pod_template != ''
-                and execution_mode = 6
+            and k8s_tm_pod_template != ''
+            and execution_mode = 6
             group by k8s_tm_pod_template
             order by ct desc
         ) as pt
diff --git a/streampark-console/streampark-console-service/src/main/resources/mapper/core/FlinkClusterMapper.xml b/streampark-console/streampark-console-service/src/main/resources/mapper/core/FlinkClusterMapper.xml
index 2e073a39f..5e4d48769 100644
--- a/streampark-console/streampark-console-service/src/main/resources/mapper/core/FlinkClusterMapper.xml
+++ b/streampark-console/streampark-console-service/src/main/resources/mapper/core/FlinkClusterMapper.xml
@@ -43,4 +43,24 @@
         <result column="cluster_state" jdbcType="TINYINT" property="clusterState"/>
         <result column="create_time" jdbcType="DATE" property="createTime"/>
     </resultMap>
+
+    <select id="existsByClusterId" resultType="java.lang.Boolean" parameterType="java.lang.String">
+        select count(1)
+        from t_flink_cluster
+        where cluster_id=#{clusterId}
+        limit 1
+    </select>
+
+    <select id="existsByClusterName" resultType="java.lang.Boolean" parameterType="java.util.Map">
+        select count(1)
+        from t_flink_cluster
+        <where>
+            cluster_name=#{clusterName}
+            <if test="id != null">
+                and id &lt;&gt; #{id}
+            </if>
+        </where>
+        limit 1
+    </select>
+
 </mapper>
diff --git a/streampark-console/streampark-console-service/src/main/resources/mapper/core/FlinkSqlMapper.xml b/streampark-console/streampark-console-service/src/main/resources/mapper/core/FlinkSqlMapper.xml
index ba658907b..a0b8fbd41 100644
--- a/streampark-console/streampark-console-service/src/main/resources/mapper/core/FlinkSqlMapper.xml
+++ b/streampark-console/streampark-console-service/src/main/resources/mapper/core/FlinkSqlMapper.xml
@@ -45,7 +45,8 @@
 
     <select id="getByTeamId" resultType="org.apache.streampark.console.core.entity.FlinkSql" parameterType="java.lang.Long">
         select s.*
-        from t_flink_sql s, t_flink_app a
+        from t_flink_sql s
+        inner join t_flink_app a
         where s.app_id = a.id
         and a.team_id = #{teamId}
     </select>
diff --git a/streampark-console/streampark-console-service/src/main/resources/mapper/core/ProjectMapper.xml b/streampark-console/streampark-console-service/src/main/resources/mapper/core/ProjectMapper.xml
index 520a0b31d..65e70f6c8 100644
--- a/streampark-console/streampark-console-service/src/main/resources/mapper/core/ProjectMapper.xml
+++ b/streampark-console/streampark-console-service/src/main/resources/mapper/core/ProjectMapper.xml
@@ -39,21 +39,31 @@
         <result column="modify_time" jdbcType="TIMESTAMP" property="modifyTime"/>
     </resultMap>
 
-    <update id="updateFailureBuildById" parameterType="org.apache.streampark.console.core.entity.Project">
-        update t_flink_project
-        set BUILD_STATE=2
-        where id=#{project.id}
-    </update>
+    <select id="existsByTeamId" resultType="java.lang.Boolean" parameterType="java.lang.Long">
+        select count(1)
+        from t_flink_project
+        where team_id = #{teamId}
+        limit 1
+    </select>
 
-    <update id="updateSuccessBuildById" parameterType="org.apache.streampark.console.core.entity.Project">
+    <update id="updateBuildState" parameterType="java.util.Map">
         update t_flink_project
-        set LAST_BUILD=now(), BUILD_STATE=1
-        where id=#{project.id}
+        set build_state = #{state}
+        where id = #{id}
     </update>
 
-    <update id="updateStartBuildById" parameterType="org.apache.streampark.console.core.entity.Project">
-        update t_flink_project
-        set BUILD_STATE=0
-        where id=#{project.id}
-    </update>
+    <select id="page" resultType="org.apache.streampark.console.core.entity.Project" parameterType="org.apache.streampark.console.core.entity.Project">
+        select *
+        from t_flink_project t
+        <where>
+            t.team_id = #{project.teamId}
+            <if test="project.name != null and project.name != ''">
+                and t.name like '%${project.name}%'
+            </if>
+            <if test="project.buildState != null">
+                and t.build_state = #{project.buildState}
+            </if>
+        </where>
+    </select>
+
 </mapper>
diff --git a/streampark-console/streampark-console-service/src/main/resources/mapper/core/VariableMapper.xml b/streampark-console/streampark-console-service/src/main/resources/mapper/core/VariableMapper.xml
index fa6f640b6..789e250f5 100644
--- a/streampark-console/streampark-console-service/src/main/resources/mapper/core/VariableMapper.xml
+++ b/streampark-console/streampark-console-service/src/main/resources/mapper/core/VariableMapper.xml
@@ -32,8 +32,11 @@
     </resultMap>
 
     <select id="page" resultType="org.apache.streampark.console.core.entity.Variable" parameterType="org.apache.streampark.console.core.entity.Variable">
-        select v.*, u.username as creatorName
-        from t_variable v, t_user u
+        select
+            v.*,
+            u.username as creatorName
+        from t_variable v
+        inner join t_user u
         <where>
             v.creator_id = u.user_id
             and v.team_id = ${variable.teamId}
@@ -46,6 +49,13 @@
         </where>
     </select>
 
+    <select id="existsByTeamId" resultType="java.lang.Boolean" parameterType="java.lang.Long">
+        select count(1)
+        from t_variable
+        where team_id = #{teamId}
+        limit 1
+    </select>
+
     <select id="selectByTeamId" resultType="org.apache.streampark.console.core.entity.Variable">
         select *
         from t_variable