package com.younike.system.mapper;

import com.younike.system.domain.UjdChangeRecord;
import com.younike.system.domain.vo.OrdersVO;
import com.younike.system.domain.vo.ReconciliationVo;
import com.younike.system.param.OrderQueryParam;
import com.younike.system.param.UjdChangeRedordQueryParam;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 订单主Mapper接口
 *
 * @author jubs
 * @date 2022-01-05
 */
public interface MerchantOrderMapper {
    /**
     * 查询订单主
     *
     * @param orderId 订单主主键
     * @return 订单主
     */
    public OrdersVO selectOrderByOrderId(Long orderId);

    /**
     * 查询订单主列表
     *
     * @param order 订单主
     * @return 订单主集合
     */
    public List<OrdersVO> selectOrderList(OrdersVO order);

    /**
     * 新增订单主
     *
     * @param order 订单主
     * @return 结果
     */
    public int insertOrder(OrdersVO order);

    /**
     * 修改订单主
     *
     * @param order 订单主
     * @return 结果
     */
    public int updateOrder(OrdersVO order);

    /**
     * 删除订单主
     *
     * @param orderId 订单主主键
     * @return 结果
     */
    public int deleteOrderByOrderId(Long orderId);

    /**
     * 批量删除订单主
     *
     * @param orderIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteOrderByOrderIds(Long[] orderIds);

    /**
     * 财务对账：查询订单账单
     *
     * @param vo
     * @return
     */
    List<ReconciliationVo> selectReconciliationOrderList(ReconciliationVo vo);

    /**
     * 查询店铺实收金额统计 主订单店铺收入
     *
     * @param vo
     * @return
     */
    ReconciliationVo getOrderStatistics(ReconciliationVo vo);

    /**
     * 查询追加服务店铺可得金额
     *
     * @param vo
     * @return
     */
    ReconciliationVo getOrderAddStatistics(ReconciliationVo vo);

    /**
     * 运营管理：财务对账：查询订单账单
     *
     * @param vo
     * @return
     */
    List<ReconciliationVo> getReconciliationOrderList(ReconciliationVo vo);

    /**
     * 运营管理:查询店铺实收金额统计 主订单店铺收入
     *
     * @param vo
     * @return
     */
    ReconciliationVo getAdminOrderStatistics(ReconciliationVo vo);

    /**
     * 运营管理:查询追加服务店铺收入
     *
     * @param vo
     * @return
     */
    ReconciliationVo getAdminOrderAddStatistics(ReconciliationVo vo);


    /**
     * 查询保证金账单运营list
     * @param ujdChangeRedordQueryParam
     * @return
     */
    List<UjdChangeRecord> reconciliationlist(UjdChangeRedordQueryParam ujdChangeRedordQueryParam);

    /**
     * 查询订单分页列表
     *
     * @param param
     * @return
     */
    List<OrdersVO> listOrder(OrderQueryParam param);

    /**
     * 根据核销码查询订单详情
     *
     * @param orderVerificationCode
     * @return
     */
    OrdersVO getOrderByVerificationCode(@Param("orderVerificationCode")String orderVerificationCode);
}
