package cn.van.business.repository;

/**
 * @author Leo
 * @version 1.0
 * @create 2024/11/6 14:44
 * @description：
 */

import cn.van.business.model.jd.OrderRow;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

@Repository
public interface OrderRowRepository extends JpaRepository<OrderRow, String> {
    // 这里可以根据需要添加自定义的查询方法，例如：

    // 根据订单号查询订单行
    List<OrderRow> findByOrderId(long orderId);

    // 根据SKU ID 和订单号查询订单行
    List<OrderRow> findBySkuIdAndOrderId(long skuId, long orderId);

    // 根据有效码查询订单行
    List<OrderRow> findByValidCode(int validCode);

    // 查找  validCode != 15 或者 !=-1 的订单行 ,并且按orderTime 降序
    @Query("select o from OrderRow o where o.validCode not in ?1 order by o.orderTime DESC")
    List<OrderRow> findByValidCodeNotInOrderByOrderTimeDesc(int[] validCodes);

    @Query("select o from OrderRow o where o.validCode not in ?1 and o.orderTime >= ?2 order by o.orderTime DESC")
    List<OrderRow> findByValidCodeNotInAndOrderTimeGreaterThanOrderByOrderTimeDesc(
            int[] validCodes,
            @DateTimeFormat(pattern = "yyyy-MM-dd") Date threeMonthsAgo
    );
}
