You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by jo...@apache.org on 2020/03/08 07:58:33 UTC
[incubator-dolphinscheduler] branch dev-resource-tree updated:
update resource name also need update all the children full name (#2096)
This is an automated email from the ASF dual-hosted git repository.
journey pushed a commit to branch dev-resource-tree
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler.git
The following commit(s) were added to refs/heads/dev-resource-tree by this push:
new 8c2bcc2 update resource name also need update all the children full name (#2096)
8c2bcc2 is described below
commit 8c2bcc25dd082ead86beb19d4e3220320efdfd2f
Author: lgcareer <18...@163.com>
AuthorDate: Sun Mar 8 15:58:25 2020 +0800
update resource name also need update all the children full name (#2096)
* update resource service test
* Fix github action rerun failed
* add status of PARENT_RESOURCE_NOT_EXIST
* build resource process definition map
* update resource name also need update all the children full name
* need add queryResource
---
.../api/service/ResourcesService.java | 14 ++++++++++++++
.../dao/mapper/ResourceMapper.java | 14 ++++++++++++++
.../dolphinscheduler/dao/mapper/ResourceMapper.xml | 22 ++++++++++++++++++++++
3 files changed, 50 insertions(+)
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ResourcesService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ResourcesService.java
index 02bffc7..b8a53d1 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ResourcesService.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ResourcesService.java
@@ -333,7 +333,11 @@ public class ResourcesService extends BaseService {
}
// updateResource data
+
+ List<Integer> integers = resourcesMapper.listChildren(resourceId);
+ String oldFullName = resource.getFullName();
Date now = new Date();
+
resource.setAlias(nameWithSuffix);
resource.setFullName(fullName);
resource.setDescription(desc);
@@ -341,6 +345,16 @@ public class ResourcesService extends BaseService {
try {
resourcesMapper.updateById(resource);
+ if (resource.isDirectory()) {
+ List<Resource> childResourceList = new ArrayList<>();
+ List<Resource> resourceList = resourcesMapper.listResourceByIds(integers.toArray(new Integer[integers.size()]));
+ childResourceList = resourceList.stream().map(t -> {
+ t.setFullName(t.getFullName().replaceFirst(oldFullName, fullName));
+ t.setUpdateTime(now);
+ return t;
+ }).collect(Collectors.toList());
+ resourcesMapper.batchUpdateResource(childResourceList);
+ }
putMsg(result, Status.SUCCESS);
Map<Object, Object> dataMap = new BeanMap(resource);
diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ResourceMapper.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ResourceMapper.java
index cd7a473..b7b4447 100644
--- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ResourceMapper.java
+++ b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ResourceMapper.java
@@ -123,4 +123,18 @@ public interface ResourceMapper extends BaseMapper<Resource> {
* @return resource
*/
List<Resource> queryResource(@Param("fullName") String fullName,@Param("pid") Integer pid,@Param("type") int type);
+
+ /**
+ * list resource by id array
+ * @param resIds resource id array
+ * @return resource list
+ */
+ List<Resource> listResourceByIds(@Param("resIds")Integer[] resIds);
+
+ /**
+ * update resource
+ * @param resourceList resource list
+ * @return update num
+ */
+ int batchUpdateResource(@Param("resourceList") List<Resource> resourceList);
}
diff --git a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ResourceMapper.xml b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ResourceMapper.xml
index e42b46a..57383ab 100644
--- a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ResourceMapper.xml
+++ b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ResourceMapper.xml
@@ -123,4 +123,26 @@
and pid = #{pid}
</if>
</select>
+
+ <update id="batchUpdateResource" parameterType="java.util.List">
+ <foreach collection="resourceList" item="resource" index="index" open="" close="" separator =";">
+ update t_ds_resources
+ <set>
+ full_name=#{resource.fullName},
+ update_time=#{resource.updateTime}
+ </set>
+ <where>
+ id=#{resource.id}
+ </where>
+ </foreach>
+ </update>
+
+ <select id="listResourceByIds" resultType="org.apache.dolphinscheduler.dao.entity.Resource">
+ select *
+ from t_ds_resources
+ where id in
+ <foreach collection="resIds" item="i" open="(" close=")" separator=",">
+ #{i}
+ </foreach>
+ </select>
</mapper>