package com.happy.service;

import com.happy.Model.Booking;
import com.happy.Model.Booking;
import com.happy.Model.app.Tongji;
import com.happy.dto.BookTypeEto;
import com.happy.dto.IPage;

import java.util.List;

public interface BookService {

    /**
     * 描述：新增
     * @param book
     * @return
     */
    int insertBooking(Booking book);

    /**
     * 描述：修改
     * @param book
     * @return
     */
    int updateBooking(Booking book);

    /**
     * 描述：删除
     * @param id
     * @return
     */
    int delBooking(int id);

    /**
     * 描述：根据Id查询详细
     * @param id
     * @return
     */
    Booking getById(int id);

    /**
     * 描述：分页查询
     * @param sqlx
     * @param page
     * @param rows
     * @return
     */
    IPage<Booking> queryPage(String sqlx, int page, int rows, String orderDesc);

    // 订单金额统计
    public Tongji queryOrderT(String sqlx);

    // 支付金额统计
    public Tongji queryPayT(String sqlx);

    // 退款金额统计
    public Tongji queryRefundT(String sqlx);

    // 入账金额统计
    public Tongji queryInT(String sqlx);

    // 清账操作
    public int updateSaccount(Booking booking);

    /**
     * 描述：查询列表
     * @param sqlx
     * @return
     */
    List<Booking> queryList(String sqlx);

    /**
     * 描述：查询一条数据
     * @param sqlx
     * @return
     */
    Booking getOen(String sqlx);

    /**
     * 描述：汇总查询金额
     * @param sqlx
     * @return
     */
    Double sumAccount(String sqlx);

    /**
     * 描述：查询订单类型汇总
     * @param sqlx
     * @return
     */
    BookTypeEto getBookStatusSum(String sqlx);

//    /**
//     * 取消订单功能
//     * @param bookingId
//     * @return
//     */
//    String cancelBooking(String bookingId) throws Exception;

    /**
     * 删除订单(假删除)
     * @param bookingId
     * @return
     */
    String delBooking(String bookingId);

    /**
     * 描述：根据订单号获取订单
     * @param orderNum
     * @return
     */
    Booking queryByOrder(String orderNum);


}
