/**
* 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.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.form.GetRoleKeyListFormDTO;
import com.epmet.dto.form.GridStaffFormDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.StaffRoleEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Set;
/**
* 工作人员-角色关系表
*
* @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);
/**
* 根据staffId查询人员拥有的所有角色信息
* @author zhaoqifeng
* @date 2020/6/2 15:54
* @param staffId
* @return java.util.List
*/
List selectStaffRoles(@Param("staffId") String staffId);
List listStaffRoleEntytiesByStaffIdAndOrgId(@Param("agencyId") String agencyId, @Param("staffId") String staffId);
/**
* 根据用户id、角色id,查询 工作人员-角色关系表
*
* @param staffId
* @param roleId
* @return com.epmet.dto.StaffRoleDTO
* @Author zhangyong
* @Date 10:45 2020-08-25
**/
StaffRoleDTO selectStaffRoleByStaffIdAndRoleId(@Param("staffId") String staffId, @Param("roleId") String roleId);
/**
* 更改角色所属组织
* @author zhaoqifeng
* @date 2020/8/31 10:33
* @param dto
* @return void
*/
void updateStaffRoleOrgId(StaffRoleDTO dto);
/**
* @param formDTO
* @return
* @Author sun
* @Description 工作端-查询用户角色key列表
**/
List selectStaffRoleKeyList(GetRoleKeyListFormDTO formDTO);
/**
* @Description 查询是网格员的人
* @Param forms
* @author zxc
* @date 2021/6/8 4:53 下午
*/
List staffGridRole(@Param("forms") List forms);
/**
* @Description 查询角色
* @Param userIds
* @author zxc
* @date 2021/6/15 3:51 下午
*/
List getRolesByDB(@Param("userId")String userId);
/**
* @Description 查询所有用户角色
* @Param
* @author zxc
* @date 2021/6/15 5:54 下午
*/
List selectAllUserRoles();
/**
* 根据角色,查询里面的人,去重
*
* @param roleIds
* @param customerId
* @return java.util.Set
* @author yinzuomei
* @date 2021/8/19 11:16 上午
*/
Set selectRoleStaffIds(@Param("customerId") String customerId,@Param("roleIds") Set roleIds);
/**
* @Author sun
* @Description 【事件】网格员服务电话
**/
List staffRoleList(@Param("staffIds") List staffIds);
/**
* desc: 条件获取工作人员list
*
* @param formDTO
* @return java.util.List
* @author LiuJanJun
* @date 2022/1/17 2:45 下午
*/
List getStaffList(GridStaffFormDTO formDTO);
}