package com.ghy.order.service;

import com.ghy.order.domain.OrderDetail;

import java.util.List;
import java.util.Map;

/**
 * 详细订单接口
 *
 * @author HH 2022/4/25
 */
public interface OrderDetailService {

    /**
     * @param orderDetail 详细订单属性
     * @return 成功条数
     */
    int insertOrderDetail(OrderDetail orderDetail);

    /**
     * @param orderDetail 详细订单属性
     * @return 成功条数
     */
    int updateOrderDetail(OrderDetail orderDetail);

    /**
     * @param orderDetail 详细订单入参
     * @return 详细订单集合
     */
    List<OrderDetail> selectOrderDetailList(OrderDetail orderDetail);


    /**
     * @param orderDetailId 详细订单id
     * @return 详细订单
     */
    OrderDetail selectById(Long orderDetailId);

    /**
     * @param orderMasterId 主订单id
     * @return 详细订单
     */
    List<OrderDetail> selectByOrderMasterId(Long orderMasterId);

    /**
     * @param ids 详细订单ids
     * @return 删除结果
     */
    int deleteOrderDetailByIds(String ids);

    /**
     * 校验详细订单编码是否重复
     *
     * @param orderDetail 详细订单属性
     * @return 校验结果 1存在 0不存在
     */
    String checkOrderDetailCodeUnique(OrderDetail orderDetail);

    /**
     * 创建code
     */
    String createCode();

    /**
     * 根据订单id集合信息进行查询封装成为map数据，
     *
     * @param orderIdList 订单Id集合信息数据
     * @return 键值队列数据， key-> 订单Id value-> 订单实体集合信息
     */
    Map<Long, List<OrderDetail>> byOrderIdInMap(List<Long> orderIdList);

}
