package com.dgtly.wxportal.mapper;

import com.dgtly.system.domain.SysMenu;
import com.dgtly.wxportal.domain.RoleMagnet;
import com.dgtly.wxportal.domain.WxMagnet;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 菜单表 数据层
 *
 * @author dgtly
 */
public interface WxMagnetMapper
{


    /**
     * 查询h5磁贴列表
     *
     * @param wxMagnet 磁贴信息
     * @return 磁贴列表
     */
    List<WxMagnet> selectMagnetList(WxMagnet wxMagnet);

    List<WxMagnet>  selectTileMagnetList(WxMagnet wxMagnet);


    /**
     * 查询磁贴使用数量
     *
     * @param magnetId 菜单ID
     * @return 结果
     */
    Integer selectCountRoleMagnetByMagnetId(Long magnetId);

    /**
     * 删除磁贴管理信息
     *
     * @param magnetId 磁贴ID
     * @return 结果
     */
    int deleteMagnetById(Long magnetId);

    /**
     * 根据磁铁ID查询信息
     *
     * @param magnetId 磁铁ID
     * @return 菜单信息
     */
    WxMagnet selectMagnetById(Long magnetId);


    /**
     * 校验菜磁贴名称是否唯一
     *
     * @param magnetName 磁贴名称
     * @return 结果
     */
    WxMagnet checkMagnetNameUnique(@Param("magnetName") String magnetName,@Param("userType") String userType);

    /**
     * 新增保存磁贴信息
     *
     * @param wxMagnet 磁贴信息
     * @return 结果
     */
    int insertMagnet(WxMagnet wxMagnet);

    /**
     * 修改保存磁贴信息
     *
     * @param wxMagnet 磁贴信息
     * @return 结果
     */
    int updateMagnet(WxMagnet wxMagnet);



    /**
     * 根据用户ID查询磁贴
     *
     * @param userId 用户ID
     * @return 磁贴列表
     */
    List<WxMagnet> selectMagnetAllByUserId(@Param("wxMagnet")WxMagnet wxMagnet,@Param("userId")Long userId);


    /**
     * 根据角色id查询拥有的磁贴id列表
     * @param roleId
     * @return
     */
    List<String> selectMagnetIdByRoleId(Long roleId);

    /**
     * 根据角色id删除所有RoleMagnet
     * @param roleId
     * @return
     */
    int deleteRoleMagnetByRoleId(String roleId);

    /**
     * 批量添加roleMagnet
     * @param roleMagnetList
     * @return
     */
    int batchRoleMagnet(List<RoleMagnet> roleMagnetList);

    /**
     * 根据用户id查询所拥有的的磁贴
     * @param userId
     * @return
     */
    List<WxMagnet> selectMagnetByUserId(@Param("userId") String userId,@Param("loginType") String  loginType);

    List<WxMagnet> selectMagnetByCw(@Param("userId") String userId, @Param("roleId")String roleId);

    /**
     * @description: 根据用户名词和磁贴名词查询子标记
     * @param: [userId, magnetName]
     * @return: java.util.List<com.dgtly.wxportal.domain.WxMagnet>
     * @author: njs
     * @date: 2024/5/21 14:21
     */
    List<WxMagnet> selectWxMagnetRoleByUserId(@Param("userId") Long userId, @Param("magnetName")String magnetName);

    String selectSapEmploeeIdByUserId(String userId);
}
