package com.fs.qw.mapper;

import com.fs.qw.domain.QwUserVideo;
import com.fs.qw.param.QwUserVideoParam;
import com.fs.qw.vo.QwUserVideoVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 企业微信的视频号Mapper接口
 *
 * @author fs
 * @date 2025-01-14
 */
public interface QwUserVideoMapper
{
    /**
     * 查询企业微信的视频号
     *
     * @param id 企业微信的视频号主键
     * @return 企业微信的视频号
     */
    public QwUserVideo selectQwUserVideoById(Long id);

    /**
     * 查询企业微信的视频号列表
     *
     * @param qwUserVideo 企业微信的视频号
     * @return 企业微信的视频号集合
     */
    public List<QwUserVideo> selectQwUserVideoList(QwUserVideo qwUserVideo);

    @Select({"<script> " +
            "select quv.* from qw_user_video quv LEFT JOIN qw_user qu on quv.app_key=qu.app_key "+
            "where qu.is_del=0 and qu.company_user_id is not null and qu.app_key is not null "+
            "            <if test=\"data.qwUserName != null  and data.qwUserName != ''\"> and qu.qw_user_name like concat('%', #{data.qwUserName}, '%') </if>\n" +
            "            <if test=\"data.nickname != null  and data.nickname != ''\"> and quv.nickname like concat('%', #{data.nickname}, '%') </if> " +
            "            <if test=\"data.companyId != null \"> and qu.company_id = #{data.companyId}</if>\n" +
            "</script>"})
    public List<QwUserVideoVO> selectQwUserVideoListVO(@Param("data") QwUserVideoParam param);

    /**
     * 新增企业微信的视频号
     *
     * @param qwUserVideo 企业微信的视频号
     * @return 结果
     */
    public int insertQwUserVideo(QwUserVideo qwUserVideo);

    /**
     * 修改企业微信的视频号
     *
     * @param qwUserVideo 企业微信的视频号
     * @return 结果
     */
    public int updateQwUserVideo(QwUserVideo qwUserVideo);

    /**
     * 删除企业微信的视频号
     *
     * @param id 企业微信的视频号主键
     * @return 结果
     */
    public int deleteQwUserVideoById(Long id);

    /**
     * 批量删除企业微信的视频号
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteQwUserVideoByIds(Long[] ids);
}
