package com.flossom.common.core.mapper;

import com.flossom.common.core.domain.entity.WxUserTag;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * 微信用户标签关联Mapper接口
 *
 * @author flossom
 * @date 2023-12-19
 */
public interface WxUserTagMapper {
    /**
     * 查询微信用户标签关联
     *
     * @param id 微信用户标签关联主键
     * @return 微信用户标签关联
     */
    public WxUserTag selectWxUserTagById(Long id);

    /**
     * 查询微信用户标签关联列表
     *
     * @param wxUserTag 微信用户标签关联
     * @return 微信用户标签关联集合
     */
    public List<WxUserTag> selectWxUserTagList(WxUserTag wxUserTag);

    /**
     * 新增微信用户标签关联
     *
     * @param wxUserTag 微信用户标签关联
     * @return 结果
     */
    public int insertWxUserTag(WxUserTag wxUserTag);

    /**
     * 修改微信用户标签关联
     *
     * @param wxUserTag 微信用户标签关联
     * @return 结果
     */
    public int updateWxUserTag(WxUserTag wxUserTag);

    /**
     * 删除微信用户标签关联
     *
     * @param id 微信用户标签关联主键
     * @return 结果
     */
    public int deleteWxUserTagById(Long id);

    /**
     * 删除微信用户标签关联
     *
     * @param tagId 标签关联主键
     * @return 结果
     */
    public int deleteWxUserTagByTagId(Long tagId);

    /**
     * 批量删除微信用户标签关联
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteWxUserTagByIds(Long[] ids);

    List<Integer> selectWxUserTagByTagId(@Param("tagId") Integer tagId, @Param("type") Integer type);

    void insertBatch(@Param("list") List<WxUserTag> list);

    void deleteBatch(@Param("tagIdList") List<Integer> tagIdList, @Param("userIdList") List<Integer> userIdList);

    void deleteWxUserTagByUserId(@Param("userId") Long userId);
}
