package com.gic.haoban.manage.service.dao.mapper.role;

import com.gic.haoban.manage.service.entity.role.TabHaobanRoleMenu;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 好办小程序权限菜单(TabHaobanRoleMenu)表数据库访问层
 *
 * @author mozhu
 * @since 2022-09-09 11:36:06
 */
public interface TabHaobanRoleMenuMapper {

    /**
     * 批量新增数据（MyBatis原生foreach方法）
     *
     * @param entities List<TabHaobanRoleMenu> 实例对象列表
     * @return 影响行数
     */
    int insertBatch(@Param("entities") List<TabHaobanRoleMenu> entities);


    /**
     * 按角色删除id
     *
     * @param roleId 角色id
     * @return int
     * @author mozhu
     * @date 2022-09-09 17:19:31
     */
    int deleteByRoleId(Long roleId);

    /**
     * 通过wx企业id和角色id 查询菜单
     *
     * @param wxEnterpriseId wx企业标识
     * @param roleId         角色id
     * @return {@link List }<{@link String }>
     * @author mozhu
     * @date 2022-09-13 14:58:22
     */
    List<String> getByWxEnterpriseIdAndRoleId(@Param("wxEnterpriseId") String wxEnterpriseId,
                                              @Param("roleId") Long roleId);

    /**
     * 根据wx企业id 删除
     *
     * @param wxEnterpriseId wx企业标识
     * @return boolean
     * @author mozhu
     * @date 2022-09-14 10:40:18
     */
    boolean deleteByWxEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId);

    List<String> getMenuInMenuCodes(@Param("wxEnterpriseId") String wxEnterpriseId,
                                       @Param("roleId") Long roleId,
                                       @Param("menuCodes")  List<String> menuCodes);

    int deleteByMenuCodeAndRoleId(@Param("menuCode") String menuCode, @Param("wxEnterpriseId") String wxEnterpriseId,@Param("roleId") Long roleId);
}

