package com.zteits.bill.dao.vipcard;
import java.util.List;
import com.github.pagehelper.PageInfo;
import com.zteits.bill.domain.CheckVipCardParkDO;
import com.zteits.bill.domain.TVipCard;
import com.zteits.bill.domain.sdomain.VipCardMaxBuyNumIsLimitDO;
import com.zteits.clouds.api.apibase.bean.BizResult;
import com.zteits.clouds.api.dto.bill.vipcard.VipCardAndCustInfoDTO;
import com.zteits.clouds.api.dto.bill.vipcard.VipCardDTO;
import com.zteits.clouds.api.dto.bill.vipcard.VipCardStatisticDTO;
import com.zteits.clouds.api.dto.bill.vipcard.param.*;
/**
* 停车场会员卡-(月卡/年卡规则Dao接口).
*
* 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 VipCardDao {
/**
* 新增会员卡(年卡/月卡等).
* 步骤:
* 1.插入会员卡.
* 2.插入会员卡与停车场售卖关系.
* @param request
* @return
*/
int insert(VipCardInsertRequest request) throws Exception;
/**
* 修改会员卡(年卡/月卡等).
* @return
*/
int updateVipCard(VipCardUpdateRequest request);
/**
* 通过会员卡编码查询会员卡信息.
* @param request
* @return
* @throws Exception
*/
TVipCard queryVipCardByCardNo(QueryVipCardByCardNoRequest request) ;
/**
* 通过会员卡对象查询会员卡信息
* @return
* @throws Exception
* 2017年10月30日 langlw
*/
TVipCard queryVipCardByVipCard(TVipCard tVipCard) throws Exception;
/**
* 分页查询会员卡信息集合
* @param request
* @return
* 2017年10月30日 langlw
*/
PageInfo queryVipCardForPageByVipCard(VipCardForPageRequest request) ;
/**
* 分页查询-会员卡规则.
* @param request
* @return
*/
PageInfo queryVIPCardRuleForPage(QueryVIPCardRuleRequest request);
/**
* 校验对应的时间段内停车场是否重复办理.
* @param request
* @return
*/
List checkVipCardPark(CheckVipCardParkRequest request);
/**
* 下架(年卡/月卡等).
* @return
*/
int deleteVipCard(VipCardUpdateRequest request);
/**
*
* @Title: queryParkVipCardByPlNo
* @Description: TODO(这里用一句话描述这个方法的作用)
* @param @param queryVIPCardRuleRequest
* @param @return 设定文件
* @return List 返回类型
* @throws
*/
List queryParkVipCardByPlNo(QueryVIPCardRuleRequest queryVIPCardRuleRequest);
/**
* 查询发布会员卡的停车场
* @param request
* @return
* 2018年1月22日 xiejp
*/
List queryPlNoList(QueryVipCardByPlNoRequest request);
/**
* 通过plNos查询vipCardNos
* @param request
* @return
* 2018年3月2日 xiejp
*/
List queryVipCardNosByPlNos(QueryVipCardByPlNoRequest request);
/**
* 通过plNos查询会员卡信息
* @param request
* @return
* 2018年1月22日 xiejp
*/
List queryVipCardParkSaleRelForListByPlNo(QueryVipCardByPlNoRequest request);
/**
* 查询个人拥有的会员卡
* @param request
* @return
* 2018年1月22日 xiejp
*/
List queryVipCardByCustId(QueryVipCardCustInfoByCustIdRequest request);
/**
* 查询个人拥有的会员卡
* @param request
* @return
* 2018年1月22日 xiejp
*/
List queryVipCardAllByCustId(QueryVipCardCustInfoByCustIdRequest request);
/**
*
* @param request
* @return
* 2018年2月1日 xiejp
*/
List queryVipCardMsgByCardNo(QueryVipCardByCardNoRequest request);
/**
* 通过卡编码查询卡费用
* @param cardNo
* @return
* Mar 23, 2018 hxz
*/
Long queryVipCardFeeByCardNo (String cardNo);
/**
* 通过卡编码查询卡费用
* @param cardNo
* @return
* Mar 23, 2018 hxz
*/
TVipCard queryVipCardByOnlyCardNo (String cardNo);
/**
* 通过停车场编码List查询的的授权车的信息
* @param
* @return
* @Author: xiejianpeng
* @Date: 2018/5/13 16:35
*
*/
List queryVipCardStatisticPlNos(QueryVipCardByCarNumberAndPlNosRequest request);
/**
* 查询停车场会员卡购买数量是否超过最大限制数量
* @param request
* @return true : 超过最大数量 ; false:没有超过最大数量
*/
VipCardMaxBuyNumIsLimitDO queryVipCardMaxBuyNumIsLimit(VipCardBuyNumLimtReq request);
/**
* 查询会员卡车场列表
* @param req
* @return
*/
List queryParkListForVipCard(QueryVipCardPlNoListRequest req);
/**
* 查询会员卡热门车场列表
* @param req
* @return
* @Auther niueb 2019/12/12
*/
List queryHotParkListForVipCard(QueryVipCardPlNoListRequest req);
/**
* 根据车场id查询会员卡信息
* @param req
* @return
*/
List queryVipCardInfoByPlNo(QueryVipCardByPlNoRequest req);
}