This is an automated email from the ASF dual-hosted git repository.
liuhongyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git
The following commit(s) were added to refs/heads/master by this push:
new 65735aa2a1 [type:fix]fix namespace delete error (#5916)
65735aa2a1 is described below
commit 65735aa2a1b2cb002baf23c2bf929dda970216fe
Author: liyabing12138 <[email protected]>
AuthorDate: Thu Jan 23 18:00:56 2025 +0800
[type:fix]fix namespace delete error (#5916)
* fix namespace delete error
* fix namespace delete error optimized code
---------
Co-authored-by: liyabing <[email protected]>
---
.../org/apache/shenyu/admin/mapper/AppAuthMapper.java | 9 +++++++++
.../shenyu/admin/service/impl/NamespaceServiceImpl.java | 15 ++++++++++-----
.../src/main/resources/mappers/app-auth-sqlmap.xml | 10 ++++++++++
3 files changed, 29 insertions(+), 5 deletions(-)
diff --git
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/AppAuthMapper.java
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/AppAuthMapper.java
index 4b36b7f6b6..71247dc48a 100644
---
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/AppAuthMapper.java
+++
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/AppAuthMapper.java
@@ -196,4 +196,13 @@ public interface AppAuthMapper extends ExistProvider {
* @return list
*/
List<AppAuthVO> selectByCondition(@Param("condition") AppAuthQuery
condition);
+
+
+ /**
+ * Find by namespace id list.
+ *
+ * @param namespaceIds the namespaceIds
+ * @return the list
+ */
+ List<AppAuthDO> findByNamespaceIds(List<String> namespaceIds);
}
diff --git
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/NamespaceServiceImpl.java
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/NamespaceServiceImpl.java
index a828ba12bb..309e491638 100644
---
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/NamespaceServiceImpl.java
+++
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/NamespaceServiceImpl.java
@@ -25,11 +25,12 @@ import org.apache.shenyu.admin.mapper.AuthPathMapper;
import org.apache.shenyu.admin.mapper.DiscoveryMapper;
import org.apache.shenyu.admin.mapper.MetaDataMapper;
import org.apache.shenyu.admin.mapper.NamespaceMapper;
+import org.apache.shenyu.admin.mapper.AppAuthMapper;
import org.apache.shenyu.admin.mapper.NamespacePluginRelMapper;
import org.apache.shenyu.admin.mapper.RuleMapper;
import org.apache.shenyu.admin.mapper.SelectorMapper;
import org.apache.shenyu.admin.model.dto.NamespaceDTO;
-import org.apache.shenyu.admin.model.entity.AuthPathDO;
+import org.apache.shenyu.admin.model.entity.AppAuthDO;
import org.apache.shenyu.admin.model.entity.DiscoveryDO;
import org.apache.shenyu.admin.model.entity.MetaDataDO;
import org.apache.shenyu.admin.model.entity.NamespaceDO;
@@ -80,6 +81,8 @@ public class NamespaceServiceImpl implements NamespaceService
{
private final NamespacePluginRelMapper namespacePluginRelMapper;
+ private final AppAuthMapper appAuthMapper;
+
public NamespaceServiceImpl(final NamespaceMapper namespaceMapper,
final NamespaceUserService
namespaceUserService,
@@ -89,7 +92,8 @@ public class NamespaceServiceImpl implements NamespaceService
{
final RuleMapper ruleMapper,
final AuthPathMapper authPathMapper,
final MetaDataMapper metaDataMapper,
- final DiscoveryMapper discoveryMapper) {
+ final DiscoveryMapper discoveryMapper,
+ final AppAuthMapper appAuthMapper) {
this.namespaceMapper = namespaceMapper;
this.namespaceUserService = namespaceUserService;
this.namespaceEventPublisher = namespaceEventPublisher;
@@ -99,6 +103,7 @@ public class NamespaceServiceImpl implements
NamespaceService {
this.authPathMapper = authPathMapper;
this.metaDataMapper = metaDataMapper;
this.discoveryMapper = discoveryMapper;
+ this.appAuthMapper = appAuthMapper;
}
@Override
@@ -152,9 +157,9 @@ public class NamespaceServiceImpl implements
NamespaceService {
if (CollectionUtils.isNotEmpty(metaDataDOList)) {
throw new ShenyuAdminException("metaData exist under those
namespace!");
}
- List<AuthPathDO> authPathDOList =
authPathMapper.findByNamespaceIds(namespaceIdList);
- if (CollectionUtils.isNotEmpty(authPathDOList)) {
- throw new ShenyuAdminException("authPath exist under those
namespace!");
+ List<AppAuthDO> appPathDOList =
appAuthMapper.findByNamespaceIds(namespaceIdList);
+ if (CollectionUtils.isNotEmpty(appPathDOList)) {
+ throw new ShenyuAdminException("appPath exist under those
namespace!");
}
List<DiscoveryDO> discoveryDOList =
discoveryMapper.selectAllByNamespaceIds(namespaceIdList);
if (CollectionUtils.isNotEmpty(discoveryDOList)) {
diff --git a/shenyu-admin/src/main/resources/mappers/app-auth-sqlmap.xml
b/shenyu-admin/src/main/resources/mappers/app-auth-sqlmap.xml
index ce671fe7a9..4923c18132 100644
--- a/shenyu-admin/src/main/resources/mappers/app-auth-sqlmap.xml
+++ b/shenyu-admin/src/main/resources/mappers/app-auth-sqlmap.xml
@@ -83,6 +83,16 @@
WHERE app_key = #{appKey, jdbcType=VARCHAR}
</select>
+ <select id="findByNamespaceIds" parameterType="java.lang.String"
resultMap="BaseResultMap">
+ SELECT
+ <include refid="Base_Column_List"/>
+ FROM app_auth
+ WHERE namespace_id IN
+ <foreach item="namespaceId" collection="namespaceIds" open="("
separator="," close=")">
+ #{namespaceId, jdbcType=VARCHAR}
+ </foreach>
+ </select>
+
<select id="selectByQuery"
parameterType="org.apache.shenyu.admin.model.query.AppAuthQuery"
resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>