云
6 天以前 d0cf2cb2c352bdeb146aad2bb57ba7d39cef3bbd
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,15 +36,22 @@
    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() {
        return getLoginMember();
        Long userId = getLoginUserId();
        return userId != null ? memberMapper.selectByUserId(userId) : null;
    }
    @Override
@@ -75,7 +83,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