package com.ruoyi.jarvis.mapper;

import com.ruoyi.jarvis.domain.JDOrder;
import com.ruoyi.jarvis.domain.dto.QuickRecordModelOption;
import java.util.List;

/**
 * 京东订单信息表 Mapper 接口
 */
public interface JDOrderMapper {

    /**
     * 查询京东订单列表
     */
    List<JDOrder> selectJDOrderList(JDOrder jdOrder);

    /**
     * 查询京东订单列表（支持动态排序）
     */
    List<JDOrder> selectJDOrderListWithSort(JDOrder jdOrder);

    /**
     * 根据主键查询
     */
    JDOrder selectJDOrderById(Long id);

    int insertJDOrder(JDOrder jdOrder);

    int updateJDOrder(JDOrder jdOrder);

    JDOrder selectJDOrderByRemark(String remark);

    List<JDOrder> selectJDOrderListByAddress(String address);

    /**
     * 根据订单号查询订单
     */
    JDOrder selectJDOrderByOrderId(String orderId);

    /**
     * 批量按京东订单号查询最新慢单（每个 order_id 取 id 最大一条）
     */
    List<JDOrder> selectLatestJDOrdersByOrderIds(@org.apache.ibatis.annotations.Param("orderIds") List<String> orderIds);

    /**
     * 根据物流链接查询订单
     */
    JDOrder selectJDOrderByLogisticsLink(String logisticsLink);
    
    /**
     * 根据第三方单号查询订单
     */
    JDOrder selectJDOrderByThirdPartyOrderNo(String thirdPartyOrderNo);

    /**
     * 后返备注 JSON 中含指定 uploadRecordId 的订单主键（撤销导入时用）
     */
    List<Long> selectOrderIdsByRebateRemarkUploadRecordId(Long uploadRecordId);

    /**
     * 批量删除（根据主键ID）
     */
    int deleteJDOrderByIds(Long[] ids);
    
    /**
     * 查询分销标记为F或PDD且有物流链接的订单列表
     * @return 订单列表
     */
    List<JDOrder> selectJDOrderListByDistributionMarkFOrPDD();

    /**
     * 每个型号取其主键最大的一条订单的付款 / 后返（用于快捷录单下拉回填）
     */
    List<QuickRecordModelOption> selectQuickRecordModelOptions();

    /** 待拆分型号店铺的历史订单（全表扫描，由业务层按配置过滤） */
    List<JDOrder> selectOrdersPendingModelShopMigration();

    int updateModelShopFields(@org.apache.ibatis.annotations.Param("id") Long id,
                              @org.apache.ibatis.annotations.Param("modelNumber") String modelNumber,
                              @org.apache.ibatis.annotations.Param("modelShop") String modelShop);
}


