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 1d8879a4a8 feat: Add new role search criteria (#6282)
1d8879a4a8 is described below
commit 1d8879a4a8b99ec667fe19fa3c8a8db20fd0d9a3
Author: yangyx107 <[email protected]>
AuthorDate: Tue Feb 3 16:29:10 2026 +0800
feat: Add new role search criteria (#6282)
* feat: Add new role search criteria
* feat: Add new role search criteria
* feat: Add new role search criteria
---------
Co-authored-by: aias00 <[email protected]>
---
.../shenyu/admin/controller/PluginController.java | 5 ++--
.../shenyu/admin/model/query/PluginQuery.java | 30 ++++++++++++++++++++++
.../src/main/resources/mappers/plugin-sqlmap.xml | 4 +++
.../admin/controller/PluginControllerTest.java | 1 +
4 files changed, 38 insertions(+), 2 deletions(-)
diff --git
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/PluginController.java
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/PluginController.java
index c2cdae2bfb..ab6e5e4787 100644
---
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/PluginController.java
+++
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/PluginController.java
@@ -65,15 +65,16 @@ public class PluginController implements
PagedController<PluginQueryCondition, P
*
* @param name plugin name.
* @param enabled plugin enabled.
+ * @param role plugin role.
* @param currentPage current page.
* @param pageSize page size.
* @return {@linkplain ShenyuAdminResult}
*/
@GetMapping
- public ShenyuAdminResult queryPlugins(final String name, final Integer
enabled,
+ public ShenyuAdminResult queryPlugins(final String name, final Integer
enabled, final String role,
@NotNull final Integer currentPage,
@NotNull final Integer pageSize) {
- CommonPager<PluginVO> commonPager = pluginService.listByPage(new
PluginQuery(name, enabled, new PageParameter(currentPage, pageSize)));
+ CommonPager<PluginVO> commonPager = pluginService.listByPage(new
PluginQuery(name, enabled, role, new PageParameter(currentPage, pageSize)));
return ShenyuAdminResult.success(ShenyuResultMessage.QUERY_SUCCESS,
commonPager);
}
diff --git
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/query/PluginQuery.java
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/query/PluginQuery.java
index b534fe933b..f8f67ae276 100644
---
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/query/PluginQuery.java
+++
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/query/PluginQuery.java
@@ -34,6 +34,11 @@ public class PluginQuery implements Serializable {
*/
private String name;
+ /**
+ * plugin role.
+ */
+ private String role;
+
/**
* plugin enabled.
*/
@@ -53,6 +58,13 @@ public class PluginQuery implements Serializable {
this.pageParameter = pageParameter;
}
+ public PluginQuery(final String name, final Integer enabled, final String
role, final PageParameter pageParameter) {
+ this.name = name;
+ this.enabled = enabled;
+ this.role = role;
+ this.pageParameter = pageParameter;
+ }
+
/**
* Gets the value of name.
*
@@ -89,6 +101,24 @@ public class PluginQuery implements Serializable {
this.enabled = enabled;
}
+ /**
+ * Gets the value of role.
+ *
+ * @return the value of role
+ */
+ public String getRole() {
+ return role;
+ }
+
+ /**
+ * Sets the role.
+ *
+ * @param role role
+ */
+ public void setRole(final String role) {
+ this.role = role;
+ }
+
/**
* Gets the value of pageParameter.
*
diff --git a/shenyu-admin/src/main/resources/mappers/plugin-sqlmap.xml
b/shenyu-admin/src/main/resources/mappers/plugin-sqlmap.xml
index f8dbacedfc..da687b1c7c 100644
--- a/shenyu-admin/src/main/resources/mappers/plugin-sqlmap.xml
+++ b/shenyu-admin/src/main/resources/mappers/plugin-sqlmap.xml
@@ -93,6 +93,10 @@
<bind name="nameLike" value="('%' + name + '%')"/>
AND name LIKE #{nameLike, jdbcType=VARCHAR}
</if>
+ <if test="role != null and role != ''">
+ <bind name="role" value="('%' + role + '%')"/>
+ AND role LIKE #{role, jdbcType=VARCHAR}
+ </if>
<if test="enabled != null">
AND enabled = #{enabled, jdbcType=TINYINT}
</if>
diff --git
a/shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/PluginControllerTest.java
b/shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/PluginControllerTest.java
index 72772881a3..897ac861f9 100644
---
a/shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/PluginControllerTest.java
+++
b/shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/PluginControllerTest.java
@@ -110,6 +110,7 @@ public final class PluginControllerTest {
this.mockMvc.perform(MockMvcRequestBuilders.get("/plugin-template")
.param("name", "t_n")
.param("enabled", "1")
+ .param("role", "super")
.param("currentPage",
String.valueOf(pageParameter.getCurrentPage()))
.param("pageSize",
String.valueOf(pageParameter.getPageSize())))
.andExpect(status().isOk())