You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.9 KiB

1 month ago
package com.crm.auth.service;
import com.crm.auth.domain.entity.AuthUser;
import com.crm.base.service.IBaseService;
import java.util.List;
public interface IAuthUserService extends IBaseService<AuthUser> {
/**
* 按手机号查用户跨平台身份映射用无则返回 null
*/
AuthUser getByMobile(String mobile);
/**
* 原子设置用户的主部门与全部兼职部门全量替换式照角色分配先例
* <p>校验用户存在所有部门存在兼职不得等于主部门兼职列表先去重
* 主部门可为 null仅兼职的用户合法层级重叠兼职到主部门父/不拦截</p>
*
* @param userId 目标用户 ID
* @param primaryDeptId 主部门 ID可为 null清空主部门
* @param partTimeDeptIds 兼职部门 ID 列表可为 null/清空兼职
*/
void assignDepts(Long userId, Long primaryDeptId, List<Long> partTimeDeptIds);
/**
* 分配用户的角色全量替换事务保护
*
* @param userId 用户 ID
* @param roleIds 角色 ID 列表
*/
void assignRoles(Long userId, List<Long> roleIds);
/**
* 管理员角色配置票据 03给指定用户增量授予/回收管理员类角色
* <p> {@link #assignRoles} 的全量替换不同本方法只动目标角色行
* 不影响用户已有的其他角色部门负责人/销售角色仍由角色管理体系承载
* 专门解决钉钉同步进来的用户如何拿到角色</p>
*
* @param userId 目标用户 ID
* @param roleCodes 角色编码列表 ROLE_ADMIN必须全部存在
* @param grant true=授予幂等false=回收无则忽略
*/
void configureAdminRoles(Long userId, List<String> roleCodes, boolean grant);
1 month ago
}