/**
* Copyright 2018 人人开源 https://www.renren.io
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
package com.epmet.dao;
import com.epmet.commons.mybatis.annotation.DataFilter;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.commons.mybatis.entity.DataScope;
import com.epmet.dto.StaffRoleDTO;
import com.epmet.dto.form.CommonUserFormDTO;
import com.epmet.dto.form.CustomerStaffRoleListFormDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.StaffRoleEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.context.annotation.Scope;
import java.util.List;
/**
* 工作人员-角色关系表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-04-22
*/
@Mapper
public interface StaffRoleDao extends BaseDao {
/**
* 查询具有某角色的staff列表
* @param roleKey
* @param orgId
* @return
*/
//@DataFilter(tableAliases = { "sr" }, gridIdArgName = "gridId", deptIdArgName = "deptId")
List listStaffIdsByRoleKeyAndOrgId(@Param("roleKey") String roleKey, @Param("orgId") String orgId,
@Param("dataScope") DataScope dataScope);
/**
* 删除工作人员权限
* @param dto
* @return
*/
boolean delStaffRoles(StaffRoleDTO dto);
/**
* @Description 得到指定客户下的某个用户的全部角色
* @Param getCustomerId :: getUserId
* @return StaffRolesResultDTO
* @Author wangc
* @Date 2020.04.26 11:01
**/
//@DataFilter(tableAliases = { "role" })
StaffRolesResultDTO getStaffRoles(CommonUserFormDTO commonUserFormDTO);
/**
* @Description 查询特定身份的员工Id
* @param roleKeys
* @param userIds
* @param customerId
* @author wangc
* @date 2020.04.29 23:38
**/
List selectSpecificRolesStaffs(@Param("roleKeys")List roleKeys,@Param("userIds")List userIds,@Param("customerId")String customerId);
/**
* @param staffIdList
* @return
* @Author sun
* @Description 根据staffId集合查询人员拥有的所有角色信息
**/
List selectStaffRoleList(@Param("staffIdList") List staffIdList);
/**
* @Description 根据客户Id和staffId查询一个员工在指定客户下的角色列表
* @Author sun
**/
List selectCustomerStaffRoleList(CustomerStaffRoleListFormDTO formDTO);
}