/**
 * 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.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.GovStaffRoleDTO;
import com.epmet.dto.result.GovStaffRoleResultDTO;
import com.epmet.dto.result.GovStaffRoleTemplateDTO;
import com.epmet.dto.result.ResiGovRoleListResultDTO;
import com.epmet.dto.result.RoleInfoResultDTO;
import com.epmet.entity.GovStaffRoleEntity;
import java.util.List;
import java.util.Map;
/**
 * 政府端角色表
 *
 * @author generator generator@elink-cn.com
 * @since v1.0.0 2020-04-22
 */
public interface GovStaffRoleService extends BaseService {
    /**
     * 默认分页
     *
     * @param params
     * @return PageData
     * @author generator
     * @date 2020-04-22
     */
    PageData page(Map params);
    /**
     * 默认查询
     *
     * @param params
     * @return java.util.List
     * @author generator
     * @date 2020-04-22
     */
    List list(Map params);
    /**
     * 单条查询
     *
     * @param id
     * @return GovStaffRoleDTO
     * @author generator
     * @date 2020-04-22
     */
    GovStaffRoleDTO get(String id);
    /**
     * 默认保存
     *
     * @param dto
     * @return void
     * @author generator
     * @date 2020-04-22
     */
    void save(GovStaffRoleDTO dto);
    /**
     * 默认更新
     *
     * @param dto
     * @return void
     * @author generator
     * @date 2020-04-22
     */
    void update(GovStaffRoleDTO dto);
    /**
     * 批量删除
     *
     * @param ids
     * @return void
     * @author generator
     * @date 2020-04-22
     */
    void delete(String[] ids);
    /**
     * 根据staffId查询具有的角色列表
     * @param staffId
     * @return
     */
    List listRolesByStaffId(String staffId, String orgId);
    /**
     * 获取当前机关下的角色列表
     * @param dto
     * @return
     */
    List getGovStaffRoleList(GovStaffRoleDTO dto);
    /**
     * 为客户初始化角色列表
     * @param customerId
     */
    void initGovStaffRolesForCustomer(String customerId);
    /**
     * 根据客户ID和角色key查询角色信息
     * @param customerId
     * @param roleKey
     */
    GovStaffRoleDTO getRoleByCustomerIdAndRoleKey(String customerId, String roleKey);
    List listRolesByCustomer(String customerId);
    List listRoleTemplates();
    GovStaffRoleResultDTO getDTOById(String roleId);
    /**
     * @author sun
     * @Description  获取居民端、工作端人员角色列表
     */
    ResiGovRoleListResultDTO resiGovRoleList();
    int updateRole(String roleId, String roleName);
    void saveSortOrder(List roleIdList);
    List listRolesByRoleKey(String roleKey);
    /**
     * @return java.util.List
     * @param customerId
     * @author yinzuomei
     * @description 获取当前客户下-工作端角色列表
     * @Date 2021/3/29 15:37
     **/
    List queryCustomerGovRoleList(String customerId);
}