package com.neusoft.smart.pos.order.persistent.mapper;

import com.neusoft.smart.pos.order.persistent.domain.OrderMasterExample;
import com.neusoft.smart.pos.order.persistent.domain.OrderMasterExt;
import com.neusoft.smart.pos.order.persistent.domain.OrderMasterExtExample;
import com.neusoft.smart.pos.order.persistent.domain.OrderMasterMemberExt;
import com.neusoft.smart.pos.payorder.persistent.domain.PayOrderExample;
import com.neusoft.smart.pos.payorder.persistent.domain.PayRefundOrderExample;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface OrderMasterExtMapper {
    List<OrderMasterExt> queryShopOrderSummary(OrderMasterExtExample example);

    List<Map> queryShopOrderDetails(OrderMasterExample example);

    Map queryShopOrderDetailsTotal(OrderMasterExample example);

    Map queryShopOrderDetailsTotalAmount(OrderMasterExample example);

    BigDecimal queryHasPayAmountSum(PayOrderExample example);

    BigDecimal queryHasRefundAmountSum(PayRefundOrderExample example);

    List<Map> queryShopPayOrderList(OrderMasterExample example);

    List<Map> queryShopDayOrder(OrderMasterExample example);

    List<Map> queryShopPayTypeTradeList(OrderMasterExample example);

    List<Map> queryShopTradeOrderList(OrderMasterExample example);

    Map queryUsernameByCustomerNumber(Map param);

    List<Map> selectLoginLogoutRecordList(Map param);

    List<Map> getOrderPayDetail(Map param);

    List<Map> selectTradeSummary(OrderMasterExample example);

    Map countShopOrderDetailsLeftJoinPayOrderCount(OrderMasterExample example);

    Map queryShopOrderDetailsLeftJoinPayOrderTotalAmount(OrderMasterExample example);

    List<Map> querySpecialPayTypeShopOrderNumbers4Web(OrderMasterExample example4JoinO);

    List<OrderMasterMemberExt> queryMemberOrderDetails(OrderMasterExample example);

    Map queryMemberOrderDetailsTotalAmount(OrderMasterExample example);

    Integer queryMemberOrderDetailsCount(OrderMasterExample example);

    List<Map> queryBalanceAndPoint(Map<String, Object> params);
    List<Map> queryShopNameAndOrgName(Map<String, Object> params);

}
