Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
pentaLiker
DolphinScheduler
提交
c8322482
DolphinScheduler
项目概览
pentaLiker
/
DolphinScheduler
与 Fork 源项目一致
Fork自
apache / DolphinScheduler
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
DolphinScheduler
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
c8322482
编写于
8月 13, 2020
作者:
L
lgcareer
提交者:
GitHub
8月 13, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[Fix-3463][api]Fixed that run the sql task will be failure after rename the udf resource (#3482)
上级
a678c827
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
59 addition
and
2 deletion
+59
-2
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ResourcesService.java
...apache/dolphinscheduler/api/service/ResourcesService.java
+25
-1
dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/UdfFuncMapper.java
...org/apache/dolphinscheduler/dao/mapper/UdfFuncMapper.java
+8
-1
dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/UdfFuncMapper.xml
.../org/apache/dolphinscheduler/dao/mapper/UdfFuncMapper.xml
+13
-0
dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/UdfFuncMapperTest.java
...apache/dolphinscheduler/dao/mapper/UdfFuncMapperTest.java
+13
-0
未找到文件。
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ResourcesService.java
浏览文件 @
c8322482
...
...
@@ -436,14 +436,38 @@ public class ResourcesService extends BaseService {
if
(
CollectionUtils
.
isNotEmpty
(
childrenResource
))
{
String
matcherFullName
=
Matcher
.
quoteReplacement
(
fullName
);
List
<
Resource
>
childResourceList
=
new
ArrayList
<>();
List
<
Resource
>
resourceList
=
resourcesMapper
.
listResourceByIds
(
childrenResource
.
toArray
(
new
Integer
[
childrenResource
.
size
()]));
Integer
[]
childResIdArray
=
childrenResource
.
toArray
(
new
Integer
[
childrenResource
.
size
()]);
List
<
Resource
>
resourceList
=
resourcesMapper
.
listResourceByIds
(
childResIdArray
);
childResourceList
=
resourceList
.
stream
().
map
(
t
->
{
t
.
setFullName
(
t
.
getFullName
().
replaceFirst
(
originFullName
,
matcherFullName
));
t
.
setUpdateTime
(
now
);
return
t
;
}).
collect
(
Collectors
.
toList
());
resourcesMapper
.
batchUpdateResource
(
childResourceList
);
if
(
ResourceType
.
UDF
.
equals
(
resource
.
getType
()))
{
List
<
UdfFunc
>
udfFuncs
=
udfFunctionMapper
.
listUdfByResourceId
(
childResIdArray
);
if
(
CollectionUtils
.
isNotEmpty
(
udfFuncs
))
{
udfFuncs
=
udfFuncs
.
stream
().
map
(
t
->
{
t
.
setResourceName
(
t
.
getResourceName
().
replaceFirst
(
originFullName
,
matcherFullName
));
t
.
setUpdateTime
(
now
);
return
t
;
}).
collect
(
Collectors
.
toList
());
udfFunctionMapper
.
batchUpdateUdfFunc
(
udfFuncs
);
}
}
}
}
else
if
(
ResourceType
.
UDF
.
equals
(
resource
.
getType
()))
{
List
<
UdfFunc
>
udfFuncs
=
udfFunctionMapper
.
listUdfByResourceId
(
new
Integer
[]{
resourceId
});
if
(
CollectionUtils
.
isNotEmpty
(
udfFuncs
))
{
udfFuncs
=
udfFuncs
.
stream
().
map
(
t
->
{
t
.
setResourceName
(
fullName
);
t
.
setUpdateTime
(
now
);
return
t
;
}).
collect
(
Collectors
.
toList
());
udfFunctionMapper
.
batchUpdateUdfFunc
(
udfFuncs
);
}
}
putMsg
(
result
,
Status
.
SUCCESS
);
...
...
dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/UdfFuncMapper.java
浏览文件 @
c8322482
...
...
@@ -16,9 +16,9 @@
*/
package
org.apache.dolphinscheduler.dao.mapper
;
import
org.apache.dolphinscheduler.dao.entity.UdfFunc
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
org.apache.dolphinscheduler.dao.entity.UdfFunc
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
...
...
@@ -100,5 +100,12 @@ public interface UdfFuncMapper extends BaseMapper<UdfFunc> {
*/
List
<
UdfFunc
>
listAuthorizedUdfByResourceId
(
@Param
(
"userId"
)
int
userId
,
@Param
(
"resourceIds"
)
int
[]
resourceIds
);
/**
* batch update udf func
* @param udfFuncList udf list
* @return update num
*/
int
batchUpdateUdfFunc
(
@Param
(
"udfFuncList"
)
List
<
UdfFunc
>
udfFuncList
);
}
dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/UdfFuncMapper.xml
浏览文件 @
c8322482
...
...
@@ -111,4 +111,17 @@
</foreach>
</if>
</select>
<update
id=
"batchUpdateUdfFunc"
parameterType=
"java.util.List"
>
<foreach
collection=
"udfFuncList"
item=
"udf"
index=
"index"
open=
""
close=
""
separator =
";"
>
update t_ds_udfs
<set>
resource_name=#{udf.resourceName},
update_time=#{udf.updateTime}
</set>
<where>
id=#{udf.id}
</where>
</foreach>
</update>
</mapper>
\ No newline at end of file
dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/UdfFuncMapperTest.java
浏览文件 @
c8322482
...
...
@@ -33,6 +33,7 @@ import org.springframework.test.annotation.Rollback;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
...
...
@@ -303,4 +304,16 @@ public class UdfFuncMapperTest {
authorizedUdfFunc
=
udfFuncMapper
.
listAuthorizedUdfFunc
(
generalUser1
.
getId
(),
udfFuncIds
);
Assert
.
assertTrue
(
authorizedUdfFunc
.
stream
().
map
(
t
->
t
.
getId
()).
collect
(
toList
()).
containsAll
(
Arrays
.
asList
(
udfFuncIds
)));
}
@Test
public
void
batchUpdateUdfFuncTest
(){
//create general user
User
generalUser1
=
createGeneralUser
(
"user1"
);
UdfFunc
udfFunc
=
insertOne
(
generalUser1
);
udfFunc
.
setResourceName
(
"/updateTest"
);
List
<
UdfFunc
>
udfFuncList
=
new
ArrayList
<>();
udfFuncList
.
add
(
udfFunc
);
Assert
.
assertTrue
(
udfFuncMapper
.
batchUpdateUdfFunc
(
udfFuncList
)>
0
);
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录