diff --git a/src/main/java/cn/van/business/repository/OrderRowRepository.java b/src/main/java/cn/van/business/repository/OrderRowRepository.java index 4c3ac70..c9adeb7 100644 --- a/src/main/java/cn/van/business/repository/OrderRowRepository.java +++ b/src/main/java/cn/van/business/repository/OrderRowRepository.java @@ -8,8 +8,6 @@ package cn.van.business.repository; */ import cn.van.business.model.jd.OrderRow; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; @@ -33,23 +31,35 @@ public interface OrderRowRepository extends JpaRepository { List findByValidCode(int validCode); // 查找 validCode != 15 或者 !=-1 的订单行 ,并且按orderTime 降序 -// 修改后支持传入List - @Query("SELECT o FROM OrderRow o " + "WHERE o.validCode NOT IN ?1 " + "AND o.unionId IN :unionIds " + // 关键修改点 - "ORDER BY o.orderTime DESC") - List findByValidCodeNotInOrderByOrderTimeDescAndUnionId(@Param("validCodes") int[] validCodes, @Param("unionIds") List unionIds // 参数类型改为List + @Query("SELECT o FROM OrderRow o " + + "WHERE o.validCode NOT IN :validCodes " + + "AND o.unionId IN :unionIds " + + "ORDER BY o.orderTime DESC") + List findByValidCodeNotInAndUnionIdIn( + @Param("validCodes") int[] validCodes, + @Param("unionIds") List unionIds ); - - @Query("select o from OrderRow o where o.validCode not in ?1 and o.orderTime >= ?2 order by o.orderTime DESC") - List findByValidCodeNotInAndOrderTimeGreaterThanOrderByOrderTimeDesc(int[] validCodes, @DateTimeFormat(pattern = "yyyy-MM-dd") Date threeMonthsAgo); - + @Query("SELECT o FROM OrderRow o " + + "WHERE o.validCode NOT IN :validCodes " + + "AND o.orderTime >= :startDate " + + "ORDER BY o.orderTime DESC") + List findByValidCodeNotInAndOrderTimeAfter( + @Param("validCodes") int[] validCodes, + @Param("startDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate + ); // 修改后支持传入unionId列表 - @Query("SELECT o FROM OrderRow o " + "WHERE o.validCode NOT IN :validCodes " + "AND o.skuId = :skuId " + "AND o.unionId IN :unionIds " + // 关键修改点 - "ORDER BY o.orderTime DESC") - List findBySkuIdAndUnionId(@Param("validCodes") int[] validCodes, @Param("skuId") long skuId, @Param("unionIds") List unionIds // 参数类型改为List + @Query("SELECT o FROM OrderRow o " + + "WHERE o.validCode NOT IN :validCodes " + + "AND o.skuId = :skuId " + + "AND o.unionId IN :unionIds " + + "ORDER BY o.orderTime DESC") + List findBySkuIdAndUnionIdIn( + @Param("validCodes") int[] validCodes, + @Param("skuId") long skuId, + @Param("unionIds") List unionIds ); - //// 在OrderRowRepository中添加模糊查询方法 //// 模糊查询收件人姓名或地址(包含分页) //@Query("SELECT o FROM OrderRow o WHERE " + "o.recipientName LIKE %:keyword% OR " + "o.address LIKE %:keyword% " + "ORDER BY o.orderTime DESC") diff --git a/src/main/java/cn/van/business/util/JDScheduleJob.java b/src/main/java/cn/van/business/util/JDScheduleJob.java index f2e5297..115b598 100644 --- a/src/main/java/cn/van/business/util/JDScheduleJob.java +++ b/src/main/java/cn/van/business/util/JDScheduleJob.java @@ -2,10 +2,8 @@ package cn.van.business.util; import cn.van.business.model.jd.OrderRow; import cn.van.business.repository.OrderRowRepository; -import cn.van.business.repository.ProductOrderRepository; import cn.van.business.util.jdReq.*; import com.alibaba.fastjson2.util.DateUtils; -import com.fasterxml.jackson.databind.ObjectMapper; import com.jd.open.api.sdk.DefaultJdClient; import com.jd.open.api.sdk.JdClient; import com.jd.open.api.sdk.domain.kplunion.OrderService.request.query.OrderRowReq; @@ -282,7 +280,7 @@ public class JDScheduleJob { int[] validCodes = {-1}; // 只要三个月的,更多的也刷新不出来的 Date threeMonthsAgo = Date.from(LocalDateTime.now().minusMonths(3).atZone(ZoneId.systemDefault()).toInstant()); - List orderRows = orderRowRepository.findByValidCodeNotInAndOrderTimeGreaterThanOrderByOrderTimeDesc(validCodes, threeMonthsAgo); + List orderRows = orderRowRepository.findByValidCodeNotInAndOrderTimeAfter(validCodes, threeMonthsAgo); for (OrderRow orderRow : orderRows) { diff --git a/src/main/java/cn/van/business/util/JDUtil.java b/src/main/java/cn/van/business/util/JDUtil.java index 0d6f660..9787486 100644 --- a/src/main/java/cn/van/business/util/JDUtil.java +++ b/src/main/java/cn/van/business/util/JDUtil.java @@ -242,7 +242,7 @@ public class JDUtil { unionIds.add(Long.valueOf(unionId)); } - List orderRows = orderRowRepository.findByValidCodeNotInOrderByOrderTimeDescAndUnionId(param, unionIds); + List orderRows = orderRowRepository.findByValidCodeNotInAndUnionIdIn(param, unionIds); /** * 菜单: * 今日统计 @@ -432,7 +432,7 @@ public class JDUtil { String unionId = superAdmin.getUnionId(); unionIds.add(Long.valueOf(unionId)); } - List orderRows = orderRowRepository.findByValidCodeNotInOrderByOrderTimeDescAndUnionId(param, unionIds); + List orderRows = orderRowRepository.findByValidCodeNotInAndUnionIdIn(param, unionIds); List contents = new ArrayList<>(); StringBuilder content = new StringBuilder(); @@ -505,7 +505,7 @@ public class JDUtil { content.append("精准查询sku,不统计已取消的订单:\r"); int[] validCodes = {-1, 3}; - List bySkuIdAndUnionId = orderRowRepository.findBySkuIdAndUnionId(validCodes, Long.parseLong(order), unionIds); + List bySkuIdAndUnionId = orderRowRepository.findBySkuIdAndUnionIdIn(validCodes, Long.parseLong(order), unionIds); int size = bySkuIdAndUnionId.size(); content.append("查询到").append(size).append("条订单\r"); // 切割成20条20条返回前100条