
package com.tmerclub.cloud.api.feign;

import com.tmerclub.cloud.api.vo.EsPageVO;
import com.tmerclub.cloud.common.order.dto.OrderSearchDTO;
import com.tmerclub.cloud.common.order.vo.EsOrderVO;
import com.tmerclub.cloud.common.order.vo.OrderItemVO;
import com.tmerclub.cloud.common.order.vo.UserOrderStatisticVO;
import com.tmerclub.cloud.common.response.ServerResponseEntity;

import java.util.List;

/**
 * 订单搜索
 * @author tmerclub
 * @date 2021/02/05
 */
public interface SearchOrderFeignClient {

    /**
     * 统计用户的订单相关信息
     * @param userIds 用户id集合
     * @return 用户的订单相关统计数据
     */
    ServerResponseEntity<List<UserOrderStatisticVO>> countOrderByUserIds(List<Long> userIds);

    /**
     * 分页获取订单信息
     * @param orderSearchDTO
     * @return
     */
    ServerResponseEntity<EsPageVO<EsOrderVO>> pageOrder(OrderSearchDTO orderSearchDTO);

    /**
     * 获取订单数量
     * @param orderSearchDTO
     * @return
     */
    ServerResponseEntity<Long> countOrder(OrderSearchDTO orderSearchDTO);

    /**
     * 获取订单列表
     * @param orderIds
     * @return
     */
    ServerResponseEntity<List<EsOrderVO>> listOrderById(List<Long> orderIds);

    /**
     * 获取订单列表
     * @param orderSearchDTO
     * @return
     */
    ServerResponseEntity<List<EsOrderVO>> listOrder(OrderSearchDTO orderSearchDTO);

    /**
     * 获取订单列表
     * @param orderItemIds
     * @return
     */
    ServerResponseEntity<List<OrderItemVO>> getOrderItems(List<Long> orderItemIds);

    /**
     * 获取订单列表
     * @param orderSearchDTO
     * @return
     */
    ServerResponseEntity<List<EsOrderVO>> listEsOrder(OrderSearchDTO orderSearchDTO);
}
