package com.iamberry.rent.service.order.mapper;

import java.util.List;

import com.iamberry.wechat.core.entity.rent.AccountLogsInfo;
import com.iamberry.wechat.core.entity.rent.RentOrder;
import com.iamberry.wechat.core.entity.rent.RentOrderDTO;
import com.iamberry.wechat.core.entity.rent.RentOrderItem;

/**
 * 租赁订单Mapper
 * @company	深圳爱贝源科技有限公司
 * @website www.iamberry.com
 * @author 	献
 * @tel		18271840547
 * @date	2017年3月10日
 */
public interface RentOrderMapper {

	/**
	 * 根据用户openid，查询已支付但为使用的激活码
	 * @param openId
	 * @return
	 * @author 献
	 * @Time   2017年3月10日
	 */
	List<RentOrderItem> listInitCode(String openId);
	
	/**
	 * 修改订单项信息
	 * @param item
	 * @return
	 * @author 献
	 * @Time   2017年3月10日
	 */
	Integer update(RentOrderItem item);
	
	/**
	 * 根据openid，获取当前分享的信息
	 * @param openId
	 * @return
	 * @author 献
	 * @Time   2017年3月10日
	 */
	RentOrderItem getWaitInit(String openId);
	
	/**
	 * 根据openid 获取当前用户订单详情
	 * 2017年3月10日
	 * @author muzx
	 * @param openId
	 * @return
	 */
	List<RentOrderDTO> listRentOrder(RentOrderDTO rentOrderDTO);
	
	/**
	 * 根据条件查询订单总数
	 * 2017年3月16日
	 * @author muzx
	 * @param rentOrderDto
	 * @return
	 */
	int countRentOrder(RentOrderDTO rentOrderDto);
	
	/**
	 * 添加租赁订单信息
	 * @param rentOrder
	 * @return
	 */
	Integer insertRentOrderInfo(RentOrder rentOrder);
	
	/**
	 * 批量添加租赁订单项数据
	 * @param list
	 * @return
	 */
	Integer insertRentOrderItemList(List<RentOrderItem> list);
	
	/**
	 * 跟据条件查询一条订单项数据
	 * @param rentOrderItem
	 * @return
	 */
	RentOrderItem getOrderItemByInitCode(RentOrderItem rentOrderItem);
	
	/**
	 * 根据orderid查询租赁订单信息
	 * @param rentOrder
	 * @return
	 */
	RentOrder getRentOrderByOrderId(RentOrder rentOrder);
	
	/**
	 * 根据条件查询租赁订单项列表
	 * @param rentOrderItem
	 * @return
	 */
	List<RentOrderItem> listOrderItem(RentOrderItem rentOrderItem);
	
	/**
	 * 修改订单状态
	 * @param rentOrder
	 * @return
	 */
	Integer updateRentOrder(RentOrder rentOrder);
	
	/**
	 * 修改订单项状态
	 * @param rentOrderItem
	 * @return
	 */
	Integer updateOrderItem(RentOrderItem rentOrderItem);
	
	/**
     * 根据openid查询订单
     * @param rentOpenid
     * @return
     */
    List<RentOrderItem> getRentOrderByOpenId(String rentOpenid);
    
	/**
     * 修改订单相关
     * @param rentOrder
     * @return
     */
	Integer updateRentOrderByOrderId(RentOrder rentOrder);
	
	/**
	 * 根据激活码查询订单id
	 * @param initCode
	 * @return
	 * @author 献
	 * @Time   2017年4月5日
	 */
	RentOrder getOrderIdByInitCode(String initCode);
	
	/**
	 * 根据订单创建时间和状态查询订单信息
	 * @param rentOrder
	 * @return
	 */
	List<RentOrder> listOrderByDeadline(RentOrder rentOrder);
	
	/**
	 * 批量修改订单状态
	 * @param list
	 * @return
	 */
	Integer updateOrderList(List<String> list);
	
	/**
	 * 批量修改订单项状态(1-->0)
	 * @param list
	 * @return
	 */
	Integer updateOrderItemList(List<String> list);

	/**
	 * 根据openid查询订单(押金抵扣卷使用)
	 * @param rentOpenid
	 * @return
	 */
	List<RentOrderItem> selectRentOrderByOpenId(String rentOpenid);

	/**
	 * 新增转账记录
	 * @param accountLogsInfo
	 * @return
	 */
	Integer addTransferRecord(AccountLogsInfo accountLogsInfo);
}
