From a5ff990b9e9b69ef5e6e5feb3da8087d0306e8ef Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Tue, 28 Oct 2025 11:06:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E7=83=AD=E5=8D=96=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hard/api/vo/hard/PanelPorductVo.java | 14 +++++++++++++ .../panel/PanelNutritionController.java | 2 +- .../controller/panel/PanelShopController.java | 15 ++++++++++++++ .../hard/mapper/order/HardOrderMapper.java | 2 ++ .../hard/service/PanelShopService.java | 5 +++++ .../impl/panel/PanelShopServiceImpl.java | 8 ++++++++ .../mapper/order/HardOrderMapper.xml | 20 +++++++++++++++++++ 7 files changed, 65 insertions(+), 1 deletion(-) diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/hard/PanelPorductVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/hard/PanelPorductVo.java index b09f2291d..e0a3fbe5e 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/hard/PanelPorductVo.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/hard/PanelPorductVo.java @@ -113,6 +113,20 @@ public class PanelPorductVo { } + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class ProductListByTimeItemVo { + + private String timeStr; + + private LocalDateTime time; + + private List list; + + } + @Data @Builder @AllArgsConstructor diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/panel/PanelNutritionController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/panel/PanelNutritionController.java index 963f5036c..d7c7c6df0 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/panel/PanelNutritionController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/panel/PanelNutritionController.java @@ -100,7 +100,7 @@ public class PanelNutritionController { @PostMapping(value = "/repurchase") @Operation(summary = "复购排行榜") public R> repurchase(@RequestBody PanelProductDto dto) { - dto.setDateRangeType(DateRangeTypeEnum.THIS_YEAR); + dto.setDateRangeType(DateRangeTypeEnum.TODAY); if (ObjectUtil.isNotEmpty(dto.getDateRangeType()) && ObjectUtil.isEmpty(dto.getTotalTimeList())) { dto.setTotalTimeList(DateRangeTool.transitionDateTypeToDateTimeList(dto.getDateRangeType())); } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/panel/PanelShopController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/panel/PanelShopController.java index be9a386b0..d5b9b49d5 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/panel/PanelShopController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/panel/PanelShopController.java @@ -146,4 +146,19 @@ public class PanelShopController { return R.ok(panelShopService.todayTrend(dto)); } + + @PostMapping(value = "/hot-product") + @Operation(summary = "热卖商品") + public R> hotProduct(@RequestBody PanelProductDto dto) { + dto.setDateRangeType(DateRangeTypeEnum.THIS_WEEK); + if (ObjectUtil.isNotEmpty(dto.getDateRangeType()) && ObjectUtil.isEmpty(dto.getTotalTimeList())) { + dto.setTotalTimeList(DateRangeTool.transitionDateTypeToDateTimeList(dto.getDateRangeType())); + } + dto.setMchTypeCodes(List.of(MerchantTypeEnum.SELF_SUPERMARKET.getType())); + dto.setOrderStatus(HardOrderStatusEnum.getPayPrice()); + dto.setLimit(10L); + return R.ok(panelShopService.hotProduct(dto)); + } + + } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java index 13b16f645..2c6d75541 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java @@ -168,4 +168,6 @@ public interface HardOrderMapper extends PjcloudBaseMapper { List shopGroupByMonthAndHourType(@Param("dto") PanelProductDto dto); List shopGroupByTimeAndHourType(@Param("dto") PanelProductDto dto); + + List shopGroupByProduct(@Param("dto") PanelProductDto dto); } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/PanelShopService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/PanelShopService.java index 71668485b..ab4bcfd0c 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/PanelShopService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/PanelShopService.java @@ -26,4 +26,9 @@ public interface PanelShopService { * 当天超市购买次数趋势统计 */ List todayTrend(PanelProductDto dto); + + /** + * 热卖商品 + */ + List hotProduct(PanelProductDto dto); } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/panel/PanelShopServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/panel/PanelShopServiceImpl.java index 27cb42f8f..c8d3fd377 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/panel/PanelShopServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/panel/PanelShopServiceImpl.java @@ -133,6 +133,14 @@ public class PanelShopServiceImpl implements PanelShopService { return result.stream().sorted(Comparator.comparingInt(PanelPorductVo::getOrder)).toList(); } + /** + * 热卖商品 + */ + @Override + public List hotProduct(PanelProductDto dto) { + return hardOrderMapper.shopGroupByProduct(dto); + } + private void disposePanelCanteenVoSetMchName(List list) { if (ObjectUtil.isEmpty(list)) return; // 商户名 diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardOrderMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardOrderMapper.xml index b27a5e4cb..150d45bb3 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardOrderMapper.xml +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardOrderMapper.xml @@ -846,4 +846,24 @@ group by date(o.create_time), o.merchant_id order by date(o.create_time), sum(c.product_count) desc + + \ No newline at end of file