综合查询页面中,列表里面证件号码字段,系统管理员或者校工会管理员角色就不用改为*号

This commit is contained in:
2026-11-10 17:03:07 +08:00
parent 503072e5b1
commit 6082aedf03
3 changed files with 27 additions and 8 deletions
@@ -6,7 +6,6 @@ import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.util.DesensitizedUtil; import cn.hutool.core.util.DesensitizedUtil;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.result.Result; import com.budwk.app.base.result.Result;
import com.budwk.app.base.utils.CommonDownloadUtil; import com.budwk.app.base.utils.CommonDownloadUtil;
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberStatisticsPageForm; import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberStatisticsPageForm;
@@ -54,13 +53,7 @@ public class MemberComprehensiveController {
@At @At
@SaCheckPermission("member.statistics.comprehensive") @SaCheckPermission("member.statistics.comprehensive")
public Result pageData(MemberStatisticsPageForm pageForm) { public Result pageData(MemberStatisticsPageForm pageForm) {
Sql sql = memberStatisticsService.getComprehensiveSql(pageForm); return Result.success(memberStatisticsService.getComprehensivePage(pageForm));
Pagination<NutMap> pagination = memberStatisticsService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
for (NutMap row : pagination.getList()) {
row.put("mobile", DesensitizedUtil.mobilePhone(row.getString("mobile")));
row.put("idCard", DesensitizedUtil.idCardNum(row.getString("idCard"), 3, 4));
}
return Result.success(pagination);
} }
@@ -1,6 +1,7 @@
package com.budwk.app.zhgh.staffmanage.member.service; package com.budwk.app.zhgh.staffmanage.member.service;
import com.budwk.app.base.service.BaseService; import com.budwk.app.base.service.BaseService;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.sys.models.Sys_user; import com.budwk.app.sys.models.Sys_user;
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberStatisticsPageForm; import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberStatisticsPageForm;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
@@ -33,6 +34,13 @@ public interface MemberStatisticsService extends BaseService<Sys_user> {
*/ */
Sql getComprehensiveSql(MemberStatisticsPageForm pageForm); Sql getComprehensiveSql(MemberStatisticsPageForm pageForm);
/**
* 查询综合查询列表,证件号码是否脱敏由当前登录人的角色决定。
* @param pageForm 列表筛选、排序和分页条件,不接受调用方指定脱敏权限
* @return 分页结果,list中的mobile始终脱敏;idCard仅系统管理员或校工会管理员可见原值
*/
Pagination<NutMap> getComprehensivePage(MemberStatisticsPageForm pageForm);
/** /**
* 获取工会分析数据 * 获取工会分析数据
@@ -7,6 +7,8 @@ import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.DesensitizedUtil;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.service.impl.BaseServiceImpl; import com.budwk.app.base.service.impl.BaseServiceImpl;
import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.commons.auth.utils.AuthUtil;
@@ -44,6 +46,22 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl<Sys_user> imple
super(dao); super(dao);
} }
/** 列表沿用原查询范围,只按登录角色调整证件号码展示,不改变手机号及导出规则。 */
@Override
public Pagination<NutMap> getComprehensivePage(MemberStatisticsPageForm pageForm) {
Sql sql = getComprehensiveSql(pageForm);
Pagination<NutMap> pagination = listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
boolean showFullIdCard = AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name());
for (NutMap row : pagination.getList()) {
row.put("mobile", DesensitizedUtil.mobilePhone(row.getString("mobile")));
// 角色取自服务端会话;同时拥有普通角色的管理员仍按管理员展示原始证件号码。
if (!showFullIdCard) {
row.put("idCard", DesensitizedUtil.idCardNum(row.getString("idCard"), 3, 4));
}
}
return pagination;
}
@Override @Override
public Cnd getCnd(MemberStatisticsPageForm pageForm) { public Cnd getCnd(MemberStatisticsPageForm pageForm) {