package com.yinet.yyqh.mapper;

import com.yinet.yyqh.domain.Yyqh;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import javax.smartcardio.Card;
import java.util.Date;
import java.util.List;

/**
 * 网上预约列表Mapper接口
 *
 * @author yinet
 * @date 2019-09-02
 */
public interface YyqhMapper {

    /**
     * 查询网上预约列表列表
     *
     * @param yyqh 网上预约列表
     * @return 网上预约列表集合
     */
    public List<Yyqh> selectYyqhList(Yyqh yyqh);

    /**
     * 查询网上预约列表列表
     *
     * @param yyqh 网上预约列表
     * @return 网上预约列表集合
     */
    public List<Yyqh> selectYyqhListByCard(Yyqh yyqh);

    /**
     * 查询网上预约列表列表
     *
     * @param yyqh 网上预约列表
     * @return 网上预约列表集合
     */
    public List<Yyqh> selectYyqhListZh(Yyqh yyqh);

    /**
     * 新增网上预约列表
     *
     * @param yyqh 网上预约列表
     * @return 结果
     */
    public int insertYyqh(@Param("yyqh") Yyqh yyqh);


    /**
     * 批量删除网上预约列表
     *
     * @param yyqhIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteYyqhByIds(String[] yyqhIds);

    /**
     * 查询时间段数量
     */
    public int selectCountForTime(@Param("time") Long time, @Param("bookedDay") Date bookedDay, @Param("guidanceParent") Long guidanceParent);

    @Select("select count(*) from yyqh where id_num=#{idNum} and booked_day=#{bookedDay} and booked_time=#{bookedTime} and status=1")
    public int selectByIdNumforData(@Param("idNum") String idNum, @Param("bookedDay") Date bookedDay, @Param("bookedTime") String bookedTime);

    /**
     * 根据身份证查询是否有预约
     *
     * @param Card
     * @return
     */
    public List<Yyqh> selectYyqhListByIdNum(@Param("idNum") String Card);

    /**
     * 更改预约状态
     */
    public int changeStatus(@Param("id") String id, @Param("tickNum") String tickNum);

    /**
     * 取消预约
     */
    public int cancelYy(@Param("id") String id);
}
