package com.zteits.bill.mapper.smapper;
import com.zteits.bill.domain.TVipCardCustInfo;
import com.zteits.bill.domain.TVipNoPushCardCustInfoDO;
import com.zteits.bill.domain.TdBVipCardInfoCheckDayDO;
import com.zteits.bill.domain.VipCardBuyInfoDO;
import com.zteits.bill.domain.sdomain.VipCardCustInfoBuyDO;
import com.zteits.clouds.api.dto.bill.vipcard.VipCardCustInfoDTO;
import com.zteits.clouds.api.dto.bill.vipcard.VipCardExpireWarnPushDTO;
import com.zteits.clouds.api.dto.bill.vipcard.VipCardInfoBuyNumDTO;
import com.zteits.clouds.api.dto.bill.vipcard.param.QueryVipCardBuyInfoForPageRequest;
import com.zteits.clouds.api.dto.bill.vipcard.param.QueryVipCardCustInfoByCustIdRequest;
import com.zteits.clouds.api.dto.bill.vipcard.param.VipCardCustInfoBuyReq;
import com.zteits.clouds.api.dto.bill.vipcard.param.VipCardInfoReq;
import com.zteits.clouds.api.dto.bill.whitelist.param.QueryCarNumIsWhitelistRequest;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
public interface TVipCardCustInfoSmapper {
/**
* 用户购买会员卡记录.
* @param request
* @return
*/
List queryVipCardCustInfoForList(VipCardCustInfoBuyReq request);
/**
* 批量保存用户购买会员卡记录.
* @param tVipCardCustInfo
* @return
* @throws Exception
*/
Integer batchSaveVipCardCustInfo(@Param("vipCardCustInfoList") List list);
/**
* 根据客户id查询个人购买会员卡记录
* @param request
* @return
* 2017年11月2日 langlw
*/
List queryVipCardCustInfoByCustId(QueryVipCardCustInfoByCustIdRequest request);
/**
* 通过车牌/停车场编码查询车辆是否购买会员卡.
* @param request
* @return
* 2017年11月17日 wangfs.
*/
TVipCardCustInfo queryCarNumIsBuyVipCard(@Param("request") QueryCarNumIsWhitelistRequest request,@Param("currentDate") String currentDate);
/**
* 查询未同步给你第三方的会员卡
* @return
*/
List queryNoPustVipCardCustInfo(@Param("currentDate")String currentDate,@Param("id") Long id);
/**
* 查询同步和未同步给你第三方的会员卡
* @return
*/
List queryPustVipCardCustInfo(@Param("currentDate")String currentDate,@Param("id") Long id);
/**
* 是否重复办理
* @param record
* @return
* 2018年6月4日 wangfs.
*/
int queryNoPustVipCardCustInfoByCarNum(TVipCardCustInfo record);
/**
* 分页查询-会员卡记录(订单管理->会员卡记录页面)
* @param request
* @return
* 2018年1月17日 wangfs.
*/
List queryVipCardBuyInfoForPage(QueryVipCardBuyInfoForPageRequest request);
/**
* 账单管理-->底层会员卡数据查询.
* 获取时间段内会员卡购买汇总.
* @param beginTime
* @param endTime
* @return
* 2018年1月23日 wangfs.
*/
List queryVipCardForPerson(@Param("beginTime") String beginTime, @Param("endTime") String endTime);
/**
* 通过
* @param tVipCardCustInfo
* @return
* 2018年1月24日 xiejp
*/
int updateVipCardCustInfoByCustCardNo(TVipCardCustInfo tVipCardCustInfo);
/**
* 通过cust_card_no 查询记录是否已存在
* @param custCardNo
* @return
* Mar 19, 2018 hxz
*/
int selectVipCardCustInfoByCustCardNo(@Param("beginTime") String custCardNo);
/**
* 查询未下发给艾润优惠券的车牌信息
* @param date
* @return
* 2018年3月30日 zhaowg
*/
List queryCouponNoPushInfo(String date);
/**
* 通过card_no 查询记录是否已存在
* @param cardNo
* @return
* 2018年9月4日 wangfei
*/
int selectVipCardCustInfoByCardNo(@Param("cardNo") String cardNo);
TVipCardCustInfo queryCardCustInfoBycustCardNo(@Param("custCardNo") String custCardNo);
/**
* 根据失效时间查询会员卡信息
* @Auther: wangfs
* @param
* @return
*/
List queryVipCardByExpireDate(@Param("beginTime")String beginTime, @Param("endTime")String endTime);
/**
* 根据停车场编号,车牌号码获取当前有效车会员车信息
* @param request
* @author: zegnqc
* @return
*/
TVipCardCustInfo queryCardCustInfoByParkcodeAndCarnumber(VipCardInfoReq request);
/**
* 据停车场编号与车牌号码查询该车所有有效的会员卡记录,包括已过期数据
*
* @param plNo 停车场编号
* @param carNumber 车牌号码
* @return 所有的有效会员卡信息列表(包括已过期数据)
*/
List queryAllCardCustInfoByParkcodeAndCarnumber(@Param("plNo")String plNo, @Param("carNumber")String carNumber);
List queryAllCardCustInfoByCardNoAndCarnumber(@Param("cardNo")String cardNo, @Param("carNumber")String carNumber);
List queryAllActiveInfo(VipCardInfoReq request);
/**
* 重置会员卡更新次数
* @param updateNum
* @return
*/
int resetVipCardUpdateNum(@Param("updateNum") Integer updateNum);
/**
* 检验会员卡购买数量
* @Auther: wangfs
* @param
* @return
*/
VipCardInfoBuyNumDTO checkVipCarBuyNum(@Param("cardNo") String cardNo, @Param("startTime") Date startTime, @Param("endTime")Date endTime);
/**
* 根据开始日期定向查询当前生效会员卡(供续费前卡校验使用)
* @param requestVip
* @return
*/
List queryParentCard(QueryVipCardCustInfoByCustIdRequest requestVip);
}