package com.sv.mapper;
import com.sv.dto.api.OrderDTO;
import com.sv.dto.oms.OrderCheatDTO;
import com.sv.entity.Order;
import org.apache.ibatis.annotations.Param;
import org.aspectj.weaver.ast.Or;


import javax.xml.crypto.Data;
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.List;

/**
 * Mapper - 订单
 *
 * @author yechanglin
 * @since 2018-08-02
 */
public interface OrderMapper {

    /**
     * 新建订单
     *
     * @param order 订单
     */
    void insert(Order order);

    /**
     * 更新订单
     *
     * @param order 订单
     */
    void update(Order order);

    /**
     * 删除订单
     *
     * @param id 编号
     * @return 删除数量
     */
    int delete(Integer id);

    /**
     * 删除订单
     *
     * @param ids 编号数组
     * @return 删除数量
     */
    int deleteByIds(Integer[] ids);

    /**
     * 查询订单
     *
     * @param id 编号
     * @return 订单
     */
    Order findById(Integer id);

    /**
     * 查询订单
     *
     * @return 订单集合
     */
    List<Order> findAll();

    /**
     * 查询订单-oms
     *
     * @return 订单集合
     */
    List<Order> findAlls(@Param("payStatus") Integer payStatus,
                         @Param("starTime") String starTime, @Param("endTime") String endTime);

    /**
     * 查询订单报表数据-oms
     *
     * @return 订单报表集合
     */
    List<OrderCheatDTO> findMoney(@Param("time") String time);

    /**
     * api 根据用户Id，订单号查询订单
     */
    Order findOrderSn(@Param("orderSn") String orderSn, @Param("memberId") Integer memberId);

    /**
     * api
     */
    void updatePrepayId(@Param("orderSn") String orderSn,@Param("prepayId") String prepayId);

    /**
     * api 根据订单编号查询总价钱
     */
    Order findByOrderSn(String orderSn);
}