跨校身份修订
ci-userbase-service / build-and-push (push) Successful in 44s

This commit is contained in:
chenxing
2026-08-27 20:14:12 +08:00
parent ebbaeee181
commit c588dedea7
31 changed files with 1811 additions and 328 deletions
@@ -6,6 +6,7 @@ import com.yunhai.userbase.model.sysuser.SysUserGroupDeleteItem;
import com.yunhai.userbase.model.sysuser.SysUserQuery;
import com.yunhai.userbase.model.sysuser.SysUserRequest;
import com.yunhai.userbase.model.sysuser.SysUserVo;
import com.yunhai.userbase.model.sysuser.UserIdentityVo;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
@@ -103,13 +104,29 @@ public interface ISysUserService {
List<Integer> findGroupIdsByUserId(Integer userId);
/**
* 批量调整用户所属组:覆盖式更新 sys_user_group_rel。<br>
* 同一批用户统一设置为目标组列表,第一个组设为主归属,其余为兼职。
* 查询用户身份(管理端「用户身份」回显):后端按所在组解析 schoolId 后返回 {schoolId, roleIds};<br>
* 同一学校多组返回同一 schoolId 与角色并集。前端回显唯一来源(roles 列已停写,不再作为真源)。<br>
* 编辑请求提交时原样携带返回的 {schoolId, roleIds},由后端按 schoolId 全量覆盖写库并对齐。
*
* @param userIds 待调整用户ID列表
* @param groupIds 目标组ID列表
* @param userId 用户ID
* @param groupId 所在组ID(Select 当前选中项;schoolId 解析规则见 {@link com.yunhai.userbase.service.ISysGroupService#resolveSchoolId})
* @return {schoolId, roleIds}
*/
void changeGroups(List<Integer> userIds, List<Integer> groupIds);
UserIdentityVo getUserIdentity(Integer userId, Integer groupId);
/**
* 批量调整用户所属组:覆盖式更新 sys_user_group_rel。<br>
* 主归属组按三级降级确定:<br>
* ① mainGroupId 显式传入(须 ∈ groupIds,否则 400)→ 所有用户统一置主;<br>
* ② 未传 → 逐用户沿用旧主组(旧主组 ∈ 新 groupIds);<br>
* ③ 旧主组不在新集合 → 取 groupIds 首项(现状行为兜底)。<br>
* ② 级为行为增强:只要用户没把主组勾掉,调整组后主组不动(旧实现按数组顺序随机重指)。
*
* @param userIds 待调整用户ID列表
* @param groupIds 目标组ID列表
* @param mainGroupId 主归属组ID(可选;null 走 ②③ 级降级)
*/
void changeGroups(List<Integer> userIds, List<Integer> groupIds, Integer mainGroupId);
/**
* 开放接口专用:在学校(组)范围内移动用户。<br>