diff --git a/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeController.java b/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeController.java index 0b6e941..6e6a2ac 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeController.java @@ -199,7 +199,7 @@ public class ActivityBasicScopeController { $condition """); Cnd cnd = Cnd.NEW(); - if (!StpUtil.hasRole(RoleConstant.SYSADMIN.name()) && !StpUtil.hasRole(RoleConstant.SCHOOL_UNION_ADMIN.name())) { + if (!canViewAllScopeUsers()) { SqlExpressionGroup group = new SqlExpressionGroup(); group.or("creator", "=", SecurityUtil.getUserId()); if(AuthUtil.hasRole(RoleConstant.CLUB_PRESIDENT.name())) { @@ -234,16 +234,17 @@ public class ActivityBasicScopeController { } /** - * 判断用户权限及获取工会id + * 获取参加人员范围弹窗所需的当前用户角色和所属工会信息。 + * 无请求参数;返回 Result,data 中包含校工会管理员、校工会活动管理员、分工会角色、 + * 系统管理员判断结果及当前用户所属工会 id,供前端控制全校人员筛选条件。 * - * @return java.lang.Object - * @author zhf - * @description + * @return 当前用户的活动人员范围权限信息 */ @At public Result getRolesAndUnion() { return Result.success(new NutMap() {{ addv("is_A06", StpUtil.hasRole(RoleConstant.SCHOOL_UNION_ADMIN.name())); + addv("is_school_union_activity_admin", StpUtil.hasRole(RoleConstant.SCHOOL_UNION_ACTIVITY_ADMIN.name())); addv("is_H04", AuthUtil.hasRoleOr(RoleConstant.BRANCH_UNION_CHAIRMAN.name(), RoleConstant.BRANCH_UNION_ADMIN.name(), RoleConstant.BRANCH_UNION_WENTI_SPORTS.name(), RoleConstant.BRANCH_UNION_XJSHAN_PROMOTION.name(), RoleConstant.BRANCH_UNION_WENTI_WY.name())); addv("is_sysadmin", StpUtil.hasRole(RoleConstant.SYSADMIN.name())); addv("unionid", SecurityUtil.getUnionId()); @@ -377,7 +378,7 @@ public class ActivityBasicScopeController { try { - if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())){ + if (!canViewAllScopeUsers()) { cnd.andEX("u.unionid", "=", SecurityUtil.getUnionId()); } cnd.andEX("u.unionid", EQ_OR_NEQ_OP, activityUserScopePageParam.getUnionId()); @@ -398,6 +399,20 @@ public class ActivityBasicScopeController { } + /** + * 判断当前用户是否拥有活动参加人员范围的全校人员查看权限。 + * 系统管理员、校工会管理员和校工会活动管理员可查看全部人员,其他角色仍按所属工会限制。 + * + * @return true 表示可查看全校人员,false 表示仅可查看所属工会人员 + */ + private boolean canViewAllScopeUsers() { + return AuthUtil.hasRoleOr( + RoleConstant.SYSADMIN.name(), + RoleConstant.SCHOOL_UNION_ADMIN.name(), + RoleConstant.SCHOOL_UNION_ACTIVITY_ADMIN.name() + ); + } + @At @Ok("void") diff --git a/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeUserDataController.java b/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeUserDataController.java index 925fb6c..9050e4f 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeUserDataController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeUserDataController.java @@ -71,7 +71,15 @@ public class ActivityBasicScopeUserDataController { public void index() { } - + /** + * 分页查询已加入活动分组的人员。 + * pageForm 传递分页、排序和姓名/工号关键字;unionId、unitId、personType、userState、groupId + * 分别传递工会、单位、教职工类别、在职状态和活动分组筛选值;existsLoginNameRedisKey + * 用于限制导入核对产生的工号集合。返回 Result,data 为包含 list 和 totalCount 的分页结果。 + * 校工会活动管理员可查看全部活动分组人员,但删除权限仍沿用原有创建人限制。 + * + * @return 活动分组人员分页结果 + */ @At @SaCheckPermission("activity.basic.user") public Result pageData(PageForm pageForm, @@ -116,8 +124,10 @@ public class ActivityBasicScopeUserDataController { cnd.andEX("u.unitid", "=", unitId); cnd.andEX("u.personType", "=", personType); cnd.andEX("u.userState", "=", userState); + // 校工会活动管理员在设置参加人员范围时,可查看其他管理员已建立的人员分组。 if (!StpUtil.hasRole(RoleConstant.SYSADMIN.name()) && - !StpUtil.hasRole(RoleConstant.SCHOOL_UNION_ADMIN.name())) { + !StpUtil.hasRole(RoleConstant.SCHOOL_UNION_ADMIN.name()) && + !StpUtil.hasRole(RoleConstant.SCHOOL_UNION_ACTIVITY_ADMIN.name())) { cnd.and("aus.creator", "=", SecurityUtil.getUserId()); } if (StrUtil.isNotBlank(existsLoginNameRedisKey)) { diff --git a/src/main/resources/static/components/module/activity/UserDataScope.vue b/src/main/resources/static/components/module/activity/UserDataScope.vue index fb6ff1d..3b38a50 100644 --- a/src/main/resources/static/components/module/activity/UserDataScope.vue +++ b/src/main/resources/static/components/module/activity/UserDataScope.vue @@ -35,7 +35,7 @@ -