You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@linkis.apache.org by al...@apache.org on 2022/03/14 15:01:12 UTC

[incubator-linkis] branch dev-1.1.1 updated: Optimize the performance of API /api/rest_j/v1/udf/all #1726 (#1728)

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

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


The following commit(s) were added to refs/heads/dev-1.1.1 by this push:
     new 0654e3a  Optimize the performance of API /api/rest_j/v1/udf/all #1726 (#1728)
0654e3a is described below

commit 0654e3ad458113a62522fb45588076b9600e8b27
Author: peacewong <wp...@gmail.com>
AuthorDate: Mon Mar 14 22:58:19 2022 +0800

    Optimize the performance of API /api/rest_j/v1/udf/all #1726 (#1728)
---
 .../main/java/org/apache/linkis/udf/api/UDFApi.java  |  8 ++------
 .../main/java/org/apache/linkis/udf/dao/UDFDao.java  |  4 ++++
 .../java/org/apache/linkis/udf/dao/impl/UDFDao.xml   | 18 ++++++++++++++++++
 .../org/apache/linkis/udf/service/UDFService.java    |  2 ++
 .../linkis/udf/service/impl/UDFServiceImpl.java      | 20 ++++++++++++++++++++
 5 files changed, 46 insertions(+), 6 deletions(-)

diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/api/UDFApi.java b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/api/UDFApi.java
index 155bf7e..82fc548 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/api/UDFApi.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/api/UDFApi.java
@@ -89,13 +89,9 @@ public class UDFApi {
                 message = Message.ok();
                 message.data("udfTree", udfTree);
             } else {
-                List<UDFInfoVo> allInfo = Lists.newArrayList();
-
-                UDFTree udfTree = udfTreeService.getTreeById(-1L, userName, "self", "udf");
-                fetchUdfInfoRecursively(allInfo, udfTree, userName);
+                List<UDFInfoVo> allInfo = udfService.getAllUDFSByUserName(userName);
 
-                udfTree = udfTreeService.getTreeById(-1L, userName, "self", "function");
-                fetchUdfInfoRecursively(allInfo, udfTree, userName);
+                UDFTree udfTree = new UDFTree();
 
                 udfTree.setUdfInfos(allInfo);
                 udfTree.setChildrens(Lists.newArrayList());
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/UDFDao.java b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/UDFDao.java
index 7ef928e..258095a 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/UDFDao.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/UDFDao.java
@@ -46,6 +46,10 @@ public interface UDFDao {
     List<UDFInfoVo> getUDFSByTreeIdAndUser(
             Long treeId, String userName, Collection<Integer> categoryCodes);
 
+    List<UDFInfoVo> getUDFSByUsers(Collection<String> users);
+
+    List<UDFInfoVo> getSharedUDFByUser(String user);
+
     List<Long> getSharedUDFIdsByUser(@Param("userName") String userName);
     /*
     List<UDFInfo> getSharedUDFByTreeId(Long treeId, String userName);
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/impl/UDFDao.xml b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/impl/UDFDao.xml
index cfec5b4..61a064e 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/impl/UDFDao.xml
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/impl/UDFDao.xml
@@ -112,6 +112,24 @@
         where create_user = #{arg0}
     </select>
 
+    <select id="getUDFSByUsers" resultMap="UDFResultMap">
+        select
+        <include refid="udf_Column_List"/>
+        from linkis_ps_udf_baseinfo
+        where create_user in
+        <foreach collection="arg0" open="(" separator="," close=")" item="item">
+            #{item}
+        </foreach>
+    </select>
+
+    <select id="getSharedUDFByUser" resultMap="UDFResultMap">
+        select
+        <include refid="udf_Column_List"/>
+        from linkis_ps_udf_baseinfo
+        where id in
+        (select udf_id from linkis_ps_udf_shared_info where user_name=#{userName})
+    </select>
+
     <select id="getUDFSByTreeIdAndUser" resultType="org.apache.linkis.udf.vo.UDFInfoVo">
         select t1.*,puv.path,puv.register_format,puv.use_format,puv.bml_resource_id,puv.bml_resource_version,puv.description
         from
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/UDFService.java b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/UDFService.java
index c1fe225..56c1a5f 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/UDFService.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/UDFService.java
@@ -115,4 +115,6 @@ public interface UDFService {
     List<String> allUdfUsers();
 
     List<String> getUserDirectory(String user, String category);
+
+    List<UDFInfoVo> getAllUDFSByUserName(String userName) throws UDFException;
 }
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/impl/UDFServiceImpl.java b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/impl/UDFServiceImpl.java
index a72a026..cf44ef9 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/impl/UDFServiceImpl.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/impl/UDFServiceImpl.java
@@ -680,6 +680,26 @@ public class UDFServiceImpl implements UDFService {
         return udfTreeDao.getUserDirectory(user, category);
     }
 
+    @Override
+    public List<UDFInfoVo> getAllUDFSByUserName(String userName) throws UDFException {
+        logger.info("Start to get all udf {}", userName);
+        List<String> users = new ArrayList<String>();
+        users.add(SYS_USER);
+        users.add(BDP_USER);
+        users.add(userName);
+        List<UDFInfoVo> udfsByUsers = udfDao.getUDFSByUsers(users);
+        List<UDFInfoVo> sharedUDFByUser = udfDao.getSharedUDFByUser(userName);
+        List<UDFInfoVo> udfInfoVos = new ArrayList<>();
+        if (null != udfsByUsers) {
+            udfInfoVos.addAll(udfsByUsers);
+        }
+        if (null != sharedUDFByUser) {
+            udfInfoVos.addAll(sharedUDFByUser);
+        }
+        logger.info("Finished to get all udf {}, size {}", userName, udfInfoVos.size());
+        return udfInfoVos;
+    }
+
     //    @Override
     //    public FsPath copySharedUdfFile(String userName, UDFInfo udfInfo) throws IOException {
     //        String fileName = FilenameUtils.getBaseName(udfInfo.getPath()) +

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@linkis.apache.org
For additional commands, e-mail: commits-help@linkis.apache.org