From 2d012dbd7f09e117520da233165cf32052d822f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Mon, 27 Apr 2026 06:23:09 +0800 Subject: [PATCH] =?UTF-8?q?feat(tenant):=20=E6=94=AF=E6=8C=81=E7=A7=9F?= =?UTF-8?q?=E6=88=B7=E6=89=8B=E6=9C=BA=E5=8F=B7=E8=84=B1=E6=95=8F=E5=BC=80?= =?UTF-8?q?=E5=85=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Tenant实体新增phoneMasked字段,默认开启手机号脱敏 - getPhone方法根据phoneMasked决定是否返回脱敏手机号 - TenantController分页接口支持mask参数,控制手机号是否脱敏 - TenantMapper调整SQL,始终关联sys_user表获取手机号 - TenantParam新增mask字段,兼容传入脱敏控制参数 --- .../system/controller/TenantController.java | 11 ++++++++++- .../gxwebsoft/common/system/entity/Tenant.java | 16 +++++++++++++++- .../common/system/mapper/xml/TenantMapper.xml | 9 ++------- .../common/system/param/TenantParam.java | 4 ++-- 4 files changed, 29 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/gxwebsoft/common/system/controller/TenantController.java b/src/main/java/com/gxwebsoft/common/system/controller/TenantController.java index 89a8787..b5fc3b2 100644 --- a/src/main/java/com/gxwebsoft/common/system/controller/TenantController.java +++ b/src/main/java/com/gxwebsoft/common/system/controller/TenantController.java @@ -53,7 +53,16 @@ public class TenantController extends BaseController { @Operation(summary = "分页查询租户") @GetMapping("/page") public ApiResult> page(TenantParam param) { - return success(tenantService.pageRel(param)); + PageResult result = tenantService.pageRel(param); + // 如果传入 mask=false,设置不脱敏 + if (param.getMask() != null && !param.getMask()) { + if (result.getList() != null) { + for (Tenant tenant : result.getList()) { + tenant.setPhoneMasked(false); + } + } + } + return success(result); } @PreAuthorize("hasAuthority('sys:tenant:list')") diff --git a/src/main/java/com/gxwebsoft/common/system/entity/Tenant.java b/src/main/java/com/gxwebsoft/common/system/entity/Tenant.java index 771bfd6..e3d3849 100644 --- a/src/main/java/com/gxwebsoft/common/system/entity/Tenant.java +++ b/src/main/java/com/gxwebsoft/common/system/entity/Tenant.java @@ -112,7 +112,21 @@ public class Tenant implements Serializable { @TableField(exist = false) private String freeDomain; + /** + * 是否脱敏手机号,默认true脱敏 + */ + @TableField(exist = false) + @Schema(description = "手机号是否脱敏,默认true") + private boolean phoneMasked = true; + public String getPhone(){ - return DesensitizedUtil.mobilePhone(this.phone); + if (phoneMasked) { + return DesensitizedUtil.mobilePhone(this.phone); + } + return this.phone; + } + + public void setPhoneMasked(boolean masked) { + this.phoneMasked = masked; } } diff --git a/src/main/java/com/gxwebsoft/common/system/mapper/xml/TenantMapper.xml b/src/main/java/com/gxwebsoft/common/system/mapper/xml/TenantMapper.xml index 6bf5f90..df9d363 100644 --- a/src/main/java/com/gxwebsoft/common/system/mapper/xml/TenantMapper.xml +++ b/src/main/java/com/gxwebsoft/common/system/mapper/xml/TenantMapper.xml @@ -4,15 +4,10 @@ - SELECT a.*,b.company_name,b.company_logo as logo,b.admin_url,b.domain,b.free_domain - - ,c.phone - + SELECT a.*,b.company_name,b.company_logo as logo,b.admin_url,b.domain,b.free_domain,c.phone FROM sys_tenant a LEFT JOIN sys_company b ON a.tenant_id = b.tenant_id - - LEFT JOIN sys_user c ON a.user_id = c.user_id - + LEFT JOIN sys_user c ON a.user_id = c.user_id AND a.tenant_id = #{param.tenantId} diff --git a/src/main/java/com/gxwebsoft/common/system/param/TenantParam.java b/src/main/java/com/gxwebsoft/common/system/param/TenantParam.java index 484ee78..f843526 100644 --- a/src/main/java/com/gxwebsoft/common/system/param/TenantParam.java +++ b/src/main/java/com/gxwebsoft/common/system/param/TenantParam.java @@ -52,8 +52,8 @@ public class TenantParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer tenantId; - @Schema(description = "是否获取手机号码") + @Schema(description = "手机号是否脱敏,默认true") @QueryField(type = QueryType.EQ) - private Boolean getPhone; + private Boolean mask; }