package com.czg.service.order.mapper;

import com.czg.account.vo.HandoverCategoryListVo;
import com.czg.account.vo.HandoverProductListVo;
import com.czg.product.vo.ConsStockRecord;
import org.apache.ibatis.annotations.Param;

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

/**
 * 订单表 映射层。
 *
 * @author ww
 * @since 2025-02-13
 */
public interface OrderInfoCustomMapper {

    /**
     * 交班售出商品明细
     *
     * @param shopId       店铺id
     * @param loginTime    上岗时间
     * @param handoverTime 交班时间
     * @return 交班售出商品明细
     */
    List<HandoverProductListVo> getHandoverDetailList(Long shopId, String loginTime, String handoverTime);

    /**
     * 交班售出商品分类统计
     *
     * @param shopId       店铺id
     * @param loginTime    上岗时间
     * @param handoverTime 交班时间
     * @return 售出商品分类统计
     */
    List<HandoverCategoryListVo> getHandoverCategoryList(Long shopId, String loginTime, String handoverTime);

    int decrMoney(@Param("id") Long id, @Param("amount") BigDecimal amount);

    int updatePayOrderId(@Param("orderId") Long orderId, @Param("paymentId") Long paymentId, @Param("payType") String payType, @Param("remark") String remark);

    List<ConsStockRecord> getConsByProductAndNum(
            @Param("shopId") Long shopId,
            @Param("productUsageMap") Map<Long, BigDecimal> productUsageMap
    );
}
