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

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


The following commit(s) were added to refs/heads/dev-1.3.2 by this push:
     new 100430840 load user's and shared udf (#4417)
100430840 is described below

commit 1004308408e0ac571d0f0518ad26c1a53f05f75f
Author: rarexixi <[email protected]>
AuthorDate: Mon Mar 27 19:07:31 2023 +0800

    load user's and shared udf (#4417)
---
 .../java/org/apache/linkis/udf/dao/UDFDao.java     |  4 ++-
 .../org/apache/linkis/udf/service/UDFService.java  |  2 +-
 .../linkis/udf/service/impl/UDFServiceImpl.java    |  4 +--
 .../src/main/resources/mapper/common/UDFDao.xml    | 30 ++++++++++++++--------
 .../apache/linkis/udf/api/rpc/UdfReceiver.scala    |  3 ++-
 5 files changed, 27 insertions(+), 16 deletions(-)

diff --git 
a/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/UDFDao.java
 
b/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/UDFDao.java
index 98028be80..b8ae15c38 100644
--- 
a/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/UDFDao.java
+++ 
b/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/UDFDao.java
@@ -62,7 +62,9 @@ public interface UDFDao {
       Long treeId, String userName, Collection<Integer> categoryCodes);
 
   List<UDFInfoVo> getUDFInfoByIds(
-      @Param("ids") Long[] ids, @Param("categoryCodes") Collection<Integer> 
categoryCodes);
+      @Param("username") String username,
+      @Param("ids") Long[] ids,
+      @Param("categoryCodes") Collection<Integer> categoryCodes);
 
   List<UDFInfo> getLoadedUDFs(String userName);
 
diff --git 
a/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/UDFService.java
 
b/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/UDFService.java
index 5b25b744e..c319dc14a 100644
--- 
a/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/UDFService.java
+++ 
b/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/UDFService.java
@@ -52,7 +52,7 @@ public interface UDFService {
   List<UDFInfoVo> getUDFInfoByTreeId(Long treeId, String userName, String 
category)
       throws UDFException;
 
-  List<UDFInfoVo> getUDFInfoByIds(Long[] ids, String category) throws 
UDFException;
+  List<UDFInfoVo> getUDFInfoByIds(String username, Long[] ids, String 
category) throws UDFException;
 
   Map<String, List<String>> generateInitSql(String userName) throws 
UDFException;
 
diff --git 
a/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/impl/UDFServiceImpl.java
 
b/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/impl/UDFServiceImpl.java
index 14ab927e8..9d6144ba0 100644
--- 
a/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/impl/UDFServiceImpl.java
+++ 
b/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/impl/UDFServiceImpl.java
@@ -815,11 +815,11 @@ public class UDFServiceImpl implements UDFService {
   }
 
   @Override
-  public List<UDFInfoVo> getUDFInfoByIds(Long[] ids, String category) {
+  public List<UDFInfoVo> getUDFInfoByIds(String username, Long[] ids, String 
category) {
     if (ids == null || ids.length == 0) {
       return new ArrayList<>(0);
     }
-    return udfDao.getUDFInfoByIds(ids, categoryToCodes.get(category));
+    return udfDao.getUDFInfoByIds(username, ids, 
categoryToCodes.get(category));
   }
 
   /**
diff --git 
a/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/resources/mapper/common/UDFDao.xml
 
b/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/resources/mapper/common/UDFDao.xml
index 17133345b..59e327976 100644
--- 
a/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/resources/mapper/common/UDFDao.xml
+++ 
b/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/resources/mapper/common/UDFDao.xml
@@ -165,17 +165,25 @@
     </select>
 
     <select id="getUDFInfoByIds" 
resultType="org.apache.linkis.udf.vo.UDFInfoVo">
-        select pub.*, puv.path, puv.register_format, puv.use_format, 
puv.bml_resource_id, puv.bml_resource_version, puv.description
-        from
-            linkis_ps_udf_baseinfo pub
-            join (
-                select udf_id, max(bml_resource_version) as max_version
-                from linkis_ps_udf_version
-                where udf_id in <foreach collection="ids" open="(" 
separator="," close=")" item="item">#{item}</foreach>
-                group by udf_id
-            ) puvg on pub.id=puvg.udf_id
-            join linkis_ps_udf_version puv on puvg.udf_id=puv.udf_id and 
puvg.max_version=puv.bml_resource_version
-        where udf_type in <foreach collection="categoryCodes" open="(" 
separator="," close=")" item="item">#{item}</foreach>
+        select pub.*,
+               puv.path,
+               puv.register_format,
+               puv.use_format,
+               puv.bml_resource_id,
+               puv.bml_resource_version,
+               puv.description
+        from (select *
+              from linkis_ps_udf_baseinfo
+              where id in <foreach collection="ids" open="(" separator="," 
close=")" item="item">#{item}</foreach>
+                 and udf_type in <foreach collection="categoryCodes" open="(" 
separator="," close=")" item="item">#{item}</foreach>
+             ) pub
+                 join (select udf_id, max(bml_resource_version) as max_version
+                       from linkis_ps_udf_version
+                       where udf_id in <foreach collection="ids" open="(" 
separator="," close=")" item="item">#{item}</foreach>
+                       group by udf_id) puvg on pub.id = puvg.udf_id
+                 join linkis_ps_udf_version puv on puvg.udf_id = puv.udf_id 
and puvg.max_version = puv.bml_resource_version
+                 left join (select udf_id from linkis_ps_udf_shared_info where 
user_name = #{username}) pusi on pub.id = pusi.udf_id
+        where pub.create_user = #{username} or pusi.udf_id is not null
     </select>
 
     <select id="getLoadedUDFs" resultMap="UDFInfoMap">
diff --git 
a/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/scala/org/apache/linkis/udf/api/rpc/UdfReceiver.scala
 
b/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/scala/org/apache/linkis/udf/api/rpc/UdfReceiver.scala
index 501e4d3bc..06a085148 100644
--- 
a/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/scala/org/apache/linkis/udf/api/rpc/UdfReceiver.scala
+++ 
b/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/scala/org/apache/linkis/udf/api/rpc/UdfReceiver.scala
@@ -44,7 +44,8 @@ class UdfReceiver extends Receiver {
         val udfTree = udfTreeService.getTreeById(treeId, userName, treeType, 
treeCategory)
         new ResponseUdfTree(udfTree)
       case RequestUdfIds(userName, udfIds, treeCategory) =>
-        val udfs = udfService.getUDFInfoByIds(udfIds.map(id => new 
lang.Long(id)), treeCategory)
+        val udfs =
+          udfService.getUDFInfoByIds(userName, udfIds.map(id => new 
lang.Long(id)), treeCategory)
         new ResponseUdfs(udfs)
       case _ =>
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to