package cn.com.countrygarden.bi.main.service.mediaResource;


import cn.com.countrygarden.bi.main.core.Service;
import cn.com.countrygarden.bi.main.dto.mediaResource.MediaCycleDto;
import cn.com.countrygarden.bi.main.dto.mediaResource.MediaOrderBillDto;
import cn.com.countrygarden.bi.main.dto.mediaResource.MediaOrderDto;
import cn.com.countrygarden.bi.main.model.PageData;
import cn.com.countrygarden.bi.main.model.mediaResource.MediaOrder;

import java.util.List;

/**
 * <pre>
 *  媒体资源订单服务
 * </pre>
 *
 * @author ferren  liao-r@neusoft.com
 * @version 1.00.00
 * <p>
 * <p>
 * <pre>
 * 修改记录
 *    修改后版本:     修改人：  修改日期:     修改内容:
 * </pre>
 */
public interface MediaOrderService extends Service<MediaOrder> {

	/**
	 * 高级分页查询
	 * 根据用户id及订单号
	 *
	 * @param dto
	 * @return
	 */
	PageData select(MediaOrderDto dto);

	/**
	 * 查询订单
	 * @param param
	 * @return
	 */
	List<MediaOrderDto> selectList(MediaOrderDto param);

	/**
	 * 查询订单明细
	 * @param orderId
	 * @return
	 */
	List<MediaOrderBillDto> selectBillList(String orderId);

	/**
	 * 锁定订单
	 * @param param
	 * @return
	 */
	boolean lockBill(MediaOrderDto param);

	/**
	 * 高级分页查询订单明细
	 *
	 * @param dto
	 * @return
	 */
	PageData selectBillPageList(MediaOrderBillDto param);

	/**
	 * 执行订单
	 * @param param
	 * @return
	 */
	boolean runBill(MediaOrderDto param);

	/**
	 * 解锁订单
	 * @param param
	 * @return
	 */
	boolean unlockBill(MediaOrderDto param);

	/**
	 * 订单详情
	 * @param param
	 */
	MediaOrderDto orderDetail(MediaOrderDto param);

	/**
	 * 结束订单
	 * @param param
	 * @return
	 */
	boolean finalBill(MediaOrderDto param);

    /**
     * 删除订单id
     * @param orderId
     * @return
     */
	boolean delById(String orderId);
}
