From a2371d570725163f3ad9ecee8725f16c839b1e2a Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期二, 27 十月 2026 18:06:53 +0800
Subject: [PATCH] fix(ums): 资料变更列表按提交人过滤,查看全部需审核权限
---
yudao-module-ums/src/main/java/cn/iocoder/yudao/module/ums/dal/mysql/member/UmsMemberProfileChangeMapper.java | 13 ++++++++++++-
yudao-module-ums/src/main/java/cn/iocoder/yudao/module/ums/service/member/UmsMemberProfileChangeServiceImpl.java | 24 +++++++++++++++++++++++-
2 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/yudao-module-ums/src/main/java/cn/iocoder/yudao/module/ums/dal/mysql/member/UmsMemberProfileChangeMapper.java b/yudao-module-ums/src/main/java/cn/iocoder/yudao/module/ums/dal/mysql/member/UmsMemberProfileChangeMapper.java
index 8c4dc1b..e921d8b 100644
--- a/yudao-module-ums/src/main/java/cn/iocoder/yudao/module/ums/dal/mysql/member/UmsMemberProfileChangeMapper.java
+++ b/yudao-module-ums/src/main/java/cn/iocoder/yudao/module/ums/dal/mysql/member/UmsMemberProfileChangeMapper.java
@@ -27,11 +27,22 @@
return list.isEmpty() ? null : list.get(0);
}
- default PageResult<UmsMemberProfileChangeDO> selectPage(UmsMemberProfileChangePageReqVO reqVO) {
+ /**
+ * 鍒嗛〉鏌ヨ璧勬枡鍙樻洿鐢宠
+ *
+ * <p>鏂规硶鍚嶄笉鐢� selectPage 閲嶈浇锛岄伩鍏嶄笌 BaseMapperX.selectPage(PageParam, Wrapper) 鍦ㄤ紶 null 鏃朵簩涔夈��
+ *
+ * @param reqVO 鏌ヨ鏉′欢
+ * @param submitterUserId 鎻愪氦浜虹敤鎴风紪鍙凤紱闈炵┖鏃跺彧鏌ヨ鐢ㄦ埛鎻愪氦鐨勮褰曪紙浼氬憳鑷姪鍦烘櫙锛夛紝
+ * 涓虹┖琛ㄧず涓嶉檺鍒舵彁浜や汉锛堢鐞嗗憳瀹℃牳鍦烘櫙锛�
+ */
+ default PageResult<UmsMemberProfileChangeDO> selectPageBySubmitter(UmsMemberProfileChangePageReqVO reqVO,
+ Long submitterUserId) {
return selectPage(reqVO, new LambdaQueryWrapperX<UmsMemberProfileChangeDO>()
.likeIfPresent(UmsMemberProfileChangeDO::getMemberNo, reqVO.getMemberNo())
.likeIfPresent(UmsMemberProfileChangeDO::getMemberName, reqVO.getMemberName())
.eqIfPresent(UmsMemberProfileChangeDO::getStatus, reqVO.getStatus())
+ .eqIfPresent(UmsMemberProfileChangeDO::getUserId, submitterUserId)
.orderByDesc(UmsMemberProfileChangeDO::getId));
}
diff --git a/yudao-module-ums/src/main/java/cn/iocoder/yudao/module/ums/service/member/UmsMemberProfileChangeServiceImpl.java b/yudao-module-ums/src/main/java/cn/iocoder/yudao/module/ums/service/member/UmsMemberProfileChangeServiceImpl.java
index e50cc8f..fb118dc 100644
--- a/yudao-module-ums/src/main/java/cn/iocoder/yudao/module/ums/service/member/UmsMemberProfileChangeServiceImpl.java
+++ b/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
--
Gitblit v1.9.3