package com.fs.store.mapper;

import java.util.List;
import com.fs.store.domain.FsStoreCouponIssueUser;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * 优惠券用户领取记录Mapper接口
 *
 * @author fs
 * @date 2022-03-15
 */
public interface FsStoreCouponIssueUserMapper
{
    /**
     * 查询优惠券用户领取记录
     *
     * @param id 优惠券用户领取记录ID
     * @return 优惠券用户领取记录
     */
    public FsStoreCouponIssueUser selectFsStoreCouponIssueUserById(Long id);

    /**
     * 查询优惠券用户领取记录列表
     *
     * @param fsStoreCouponIssueUser 优惠券用户领取记录
     * @return 优惠券用户领取记录集合
     */
    public List<FsStoreCouponIssueUser> selectFsStoreCouponIssueUserList(FsStoreCouponIssueUser fsStoreCouponIssueUser);

    /**
     * 新增优惠券用户领取记录
     *
     * @param fsStoreCouponIssueUser 优惠券用户领取记录
     * @return 结果
     */
    public int insertFsStoreCouponIssueUser(FsStoreCouponIssueUser fsStoreCouponIssueUser);

    /**
     * 修改优惠券用户领取记录
     *
     * @param fsStoreCouponIssueUser 优惠券用户领取记录
     * @return 结果
     */
    public int updateFsStoreCouponIssueUser(FsStoreCouponIssueUser fsStoreCouponIssueUser);

    /**
     * 删除优惠券用户领取记录
     *
     * @param id 优惠券用户领取记录ID
     * @return 结果
     */
    public int deleteFsStoreCouponIssueUserById(Long id);

    /**
     * 批量删除优惠券用户领取记录
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteFsStoreCouponIssueUserByIds(Long[] ids);
    @Select("select ifnull(count(1),0) from fs_store_coupon_issue_user where user_id=#{userId} and issue_id=#{id} ")
    int checkReceive(@Param("userId") String userId,@Param("id") Long id);

    /**
     * 用户当月是否领取过
     * @param userId 用户Id
     * @param id id
     * @return
     */
    @Select("SELECT IFNULL(COUNT(1),0) FROM fs_store_coupon_issue_user WHERE user_id=#{userId} AND issue_id=#{id} AND DATE_FORMAT(create_time,'%Y%m')=DATE_FORMAT(NOW(),'%Y%m')")
    int checkReceiveThisMonth(@Param("userId") String userId,@Param("id") Long id);
}
