liu
2 天以前 a2371d570725163f3ad9ecee8725f16c839b1e2a
yudao-module-ums/src/main/java/cn/iocoder/yudao/module/ums/service/member/UmsMemberProfileChangeServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
import cn.iocoder.yudao.module.ums.controller.admin.member.vo.profile.UmsMemberProfileChangePageReqVO;
import cn.iocoder.yudao.module.ums.controller.admin.member.vo.profile.UmsMemberProfileChangeSaveReqVO;
import cn.iocoder.yudao.module.ums.dal.dataobject.member.UmsMemberDO;
@@ -35,11 +36,17 @@
    private static final int SUMMARY_MAX_LENGTH = 1000;
    /** 资料变更审核权限:拥有该权限(或为超级管理员)即可查看全部申请 */
    private static final String PERMISSION_CHANGE_AUDIT = "ums:member:change:audit";
    @Resource
    private UmsMemberMapper memberMapper;
    @Resource
    private UmsMemberProfileChangeMapper changeMapper;
    @Resource
    private PermissionApi permissionApi;
    @Override
    public UmsMemberDO getMyProfile() {
@@ -75,7 +82,22 @@
    @Override
    public PageResult<UmsMemberProfileChangeDO> getChangePage(UmsMemberProfileChangePageReqVO reqVO) {
        return changeMapper.selectPage(reqVO);
        Long loginUserId = getLoginUserId();
        // 无登录态时返回空,避免提交人条件为空导致退化成查全部
        if (loginUserId == null) {
            return PageResult.empty();
        }
        // 有审核权限(含超级管理员)可查看全部申请;其余人只能看到自己提交的记录,
        // 否则普通会员凭 ums:member:change:query 就能翻到其他会员的联系方式等资料。
        if (canViewAllChanges(loginUserId)) {
            return changeMapper.selectPageBySubmitter(reqVO, null);
        }
        return changeMapper.selectPageBySubmitter(reqVO, loginUserId);
    }
    /** 是否有查看全部资料变更申请的权限:审核权限或超级管理员(hasAnyPermissions 内含超管兜底) */
    private boolean canViewAllChanges(Long userId) {
        return permissionApi.hasAnyPermissions(userId, PERMISSION_CHANGE_AUDIT);
    }
    @Override