diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/statistics/MemberComprehensiveController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/statistics/MemberComprehensiveController.java index 3d37b7e..4cd1327 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/statistics/MemberComprehensiveController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/statistics/MemberComprehensiveController.java @@ -6,7 +6,6 @@ import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.dev33.satoken.annotation.SaCheckPermission; 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.utils.CommonDownloadUtil; import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberStatisticsPageForm; @@ -54,13 +53,7 @@ public class MemberComprehensiveController { @At @SaCheckPermission("member.statistics.comprehensive") public Result pageData(MemberStatisticsPageForm pageForm) { - Sql sql = memberStatisticsService.getComprehensiveSql(pageForm); - Pagination 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); + return Result.success(memberStatisticsService.getComprehensivePage(pageForm)); } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberStatisticsService.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberStatisticsService.java index e053856..ba96d6f 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberStatisticsService.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberStatisticsService.java @@ -1,6 +1,7 @@ package com.budwk.app.zhgh.staffmanage.member.service; 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.zhgh.staffmanage.member.param.pageform.MemberStatisticsPageForm; import org.apache.poi.ss.usermodel.Workbook; @@ -33,6 +34,13 @@ public interface MemberStatisticsService extends BaseService { */ Sql getComprehensiveSql(MemberStatisticsPageForm pageForm); + /** + * 查询综合查询列表,证件号码是否脱敏由当前登录人的角色决定。 + * @param pageForm 列表筛选、排序和分页条件,不接受调用方指定脱敏权限 + * @return 分页结果,list中的mobile始终脱敏;idCard仅系统管理员或校工会管理员可见原值 + */ + Pagination getComprehensivePage(MemberStatisticsPageForm pageForm); + /** * 获取工会分析数据 diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberStatisticsServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberStatisticsServiceImpl.java index 8675121..a905367 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberStatisticsServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberStatisticsServiceImpl.java @@ -7,6 +7,8 @@ import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.NumberUtil; 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.service.impl.BaseServiceImpl; import com.budwk.app.web.commons.auth.utils.AuthUtil; @@ -44,6 +46,22 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl imple super(dao); } + /** 列表沿用原查询范围,只按登录角色调整证件号码展示,不改变手机号及导出规则。 */ + @Override + public Pagination getComprehensivePage(MemberStatisticsPageForm pageForm) { + Sql sql = getComprehensiveSql(pageForm); + Pagination 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 public Cnd getCnd(MemberStatisticsPageForm pageForm) {