package com.younike.system.service;

import com.younike.common.core.domain.AjaxResult;
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 java.util.List;

/**
 * 订单主Service接口
 *
 * @author jubs
 * @date 2022-01-05
 */
public interface IMerchantOrderService {
    /**
     * 查询订单主
     *
     * @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 orderIds 需要删除的订单主主键集合
     * @return 结果
     */
    public int deleteOrderByOrderIds(Long[] orderIds);

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

    int modifyPrice(OrdersVO order);

    /**
     * 修改上门时间
     * @param order
     * @return
     */
    AjaxResult updateServiceStartTime(OrdersVO order);

    /**
     * 修改上门时间校验
     * @param order
     * @return
     */
    AjaxResult editVerify(OrdersVO order);

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

    /**
     * 统计店铺入账总金额，以及平台抽成
     *
     * @param vo
     * @return
     */
    ReconciliationVo orderStatistics(ReconciliationVo vo);

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

    /**
     * 运营管理:统计店铺入账总金额，以及平台抽成
     *
     * @param vo
     * @return
     */
    ReconciliationVo adminOrderStatistics(ReconciliationVo vo);

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

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

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

}
