package com.zteits.bill.dao.vipcard;
import com.github.pagehelper.PageInfo;
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 java.util.Date;
import java.util.List;
/**
* 个人用户购买会员卡记录.
*
* Copyright: Copyright (c) 2017 ZTE-ITS
*
* @ClassName: AmountUtils.java
* @Description:
* @version: v1.0.0
* @author: wangfs
* @date: 2017年10月27日
* Modification History:
* Date Author Version Description
*---------------------------------------------------------*
* 2017年10月27日 wangfs v1.0.0 创建
*/
public interface VipCardCustInfoDao {
/**
* 分页查询-用户购买会员卡记录.
* @param request
* @return
*/
PageInfo queryVipCardCustInfoForPage(VipCardCustInfoBuyReq request) ;
/**
* 保存用户购买会员卡记录.
* @param tVipCardCustInfo
* @return
* @throws Exception
*/
Integer saveVipCardCustInfo(TVipCardCustInfo tVipCardCustInfo);
/**
* 批量保存用户购买会员卡记录.
* @param tVipCardCustInfo
* @return
* @throws Exception
*/
Integer batchSaveVipCardCustInfo(List list);
/**
* 通过主键修改个人会员卡信息
* @param tVipCardCustInfo
* @return
* 2017年11月1日 langlw
*/
Integer updateVipCardCustInfoById(TVipCardCustInfo record);
/**
* 根据客户id查询个人购买会员卡信息集合
* @param request
* @return
* 2017年11月2日 langlw
*/
List queryVipCardCustInfoByCustId(QueryVipCardCustInfoByCustIdRequest request);
/**
* 通过车牌/停车场编码查询车辆是否购买会员卡.
* @param request
* @param currentDate 系统当前时间 yyyy-MM-dd HH:mm:ss
* @return
* 2017年11月17日 wangfs.
*/
TVipCardCustInfo queryCarNumIsBuyVipCard(QueryCarNumIsWhitelistRequest request,String currentDate);
/**
* 查询未推送给第三发的会员卡
* @param currentDate yyyy-MM-dd HH:mm:ss
* @return
*/
List queryNoPustVipCardCustInfo(String currentDate,Long id);
/**
* 查询推送和未推送给第三发的会员卡
* @param currentDate yyyy-MM-dd HH:mm:ss
* @return
*/
List queryPustVipCardCustInfo(String currentDate,Long id);
/**
* 通过车牌号+开始结束时间查询是否已经办理.
* @param record
* @return
* 2017年12月30日 wangfs.
*/
int queryNoPustVipCardCustInfoByCarNum(TVipCardCustInfo record );
/**
* 分页查询-会员卡记录(订单管理->会员卡记录页面)
* @param request
* @return
* 2018年1月17日 wangfs.
*/
PageInfo queryVipCardBuyInfoForPage(QueryVipCardBuyInfoForPageRequest request);
/**
* 账单管理-->底层会员卡数据查询.
* 获取时间段内会员卡购买汇总.
* @param beginTime
* @param endTime
* @return
* 2018年1月23日 wangfs.
*/
List queryVipCardForPerson(String beginTime,String endTime);
/**
* 通过custCardNo修改个人会员卡信息
* @param tVipCardCustInfo
* @return
* 2018年1月24日 xiejp
*/
int updateVipCardCustInfoByCustCardNo(TVipCardCustInfo tVipCardCustInfo);
/**
* 通过custCardNo查询记录
* @param custCardNo
* @return
* Mar 19, 2018 hxz
*/
int selectVipCardCustInfoByCustCardNo(String custCardNo);
/**
* 查询未推送给艾润优惠券的车牌信息
* @param date yyyy-MM-dd HH:mm:ss
* @return
* 2018年3月30日 zhaowg
*/
List queryCouponNoPushInfo(String date);
/**
* 根据cardNo查询是否有购买记录
* @param cardNo
* @return
* 2018年9月4日 wangfei
*/
int selectVipCardCustInfoByCardNo(String cardNo);
/**
* 通过个人卡编码查询个人会员卡信息
* @param custCardNo
* @return
*/
TVipCardCustInfo queryCardCustInfoBycustCardNo(String custCardNo);
/**
*通过失效时间查询会员卡信息
* @return
* 2019-10-10 wangfs
*/
List queryVipCardByExpireDate(String beginTime,String endTime);
/**
* 根据停车场编号,车牌号码获取当前有效车会员车信息
* @param request
* @author: zegnqc
* @return
*/
TVipCardCustInfo queryCardCustInfoByParkcodeAndCarnumber(VipCardInfoReq request);
/**
* 据停车场编号与车牌号码查询该车所有有效的会员卡记录,包括已过期数据
* @param plNo 停车场编号
* @param carNumber 车牌号码
* @return 所有的有效会员卡信息列表(包括已过期数据)
*/
List queryAllCardCustInfoByParkcodeAndCarnumber(String plNo, String carNumber);
VipCardCustInfoDTO queryVipCardCustInfoByCardNoAndCarNumber(String cardNo,String carNumber);
List queryAllCardCustInfoByCardNoAndCarnumber(String cardNo, String carNumber);
List queryAllActiveInfo(VipCardInfoReq request);
/**
* 重置会员卡修改次数
* @param updateNum 重置的修改次数值
* @return
*/
int resetVipCardUpdateNum(int updateNum);
/**
* 会员卡购买数量限制
* @Auther: wangfs
* @param
* @return
*/
VipCardInfoBuyNumDTO checkVipCarBuyNum(String cardNo, Date startTime, Date endTime);
/**
* 根据开始日期定向查询当前生效会员卡(供续费前卡校验使用)
* @param requestVip
* @return
*/
VipCardCustInfoDTO queryParentCard(QueryVipCardCustInfoByCustIdRequest requestVip);
/**
* 根据卡编号查询当前时间还在生效或者将要生效的会员卡数量
* @param cardNo
* @return
*/
long queryValidCardNum(String cardNo);
/**
* 根据车牌号码和会员卡查询正在生效的或者将要生效的会员卡信息
* @param cardNo
* @return
*/
List queryVipCardInEffectByCardNoAndCarNum(String cardNo, String carNum);
}