From d3c9cfc5c41ece3819160d8a0164b34d803eb22d Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Fri, 10 Oct 2025 10:55:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=99=BA=E6=85=A7=E9=A3=9F=E5=A0=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hard/api/vo/hard/PanelCanteenVo.java | 5 +++ .../panel/PanelCanteenController.java | 8 ++--- .../impl/panel/PanelCanteenServiceImpl.java | 33 +++++++++++++++---- .../mapper/order/HardOrderMapper.xml | 2 +- 4 files changed, 37 insertions(+), 11 deletions(-) diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/hard/PanelCanteenVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/hard/PanelCanteenVo.java index 411ad9fd9..e7431c336 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/hard/PanelCanteenVo.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/hard/PanelCanteenVo.java @@ -19,6 +19,11 @@ public class PanelCanteenVo { */ private String productName; + /** + * 商家ID + */ + private Long mchId; + /** * 商家名称 */ diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/panel/PanelCanteenController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/panel/PanelCanteenController.java index a69b02d2b..0b0955297 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/panel/PanelCanteenController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/panel/PanelCanteenController.java @@ -61,14 +61,14 @@ public class PanelCanteenController { return R.ok(panelCanteenService.mchPayPersonCount(dto)); } - @PostMapping(value = "/mch-pay-person-count-trend") + @PostMapping(value = "/pay-person-count-trend") @Operation(summary = "各个食堂的用餐人数(趋势)") - public R> mchPayPersonCountTrend(@RequestBody PanelCanteenDto dto) { + public R payPersonCountTrend(@RequestBody PanelCanteenDto dto) { dto.setTotalTimeList(new LocalDateTime[]{ - LocalDateTime.now().minusDays(6).withHour(0).withMinute(0).withSecond(0), + LocalDateTime.now().minusDays(8).withHour(0).withMinute(0).withSecond(0), LocalDateTime.now().withHour(23).withMinute(59).withSecond(59) }); - return R.ok(panelCanteenService.mchPayPersonCount(dto)); + return R.ok(panelCanteenService.groupByTimeAndHourType(dto)); } @PostMapping(value = "/mch-pay-count-top") diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/panel/PanelCanteenServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/panel/PanelCanteenServiceImpl.java index f84b58d82..4533b4ea9 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/panel/PanelCanteenServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/panel/PanelCanteenServiceImpl.java @@ -3,13 +3,17 @@ package com.bsd.pjcloud.hard.service.impl.panel; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.util.ObjectUtil; +import com.bsd.pjcloud.common.core.util.CollectionUtils; import com.bsd.pjcloud.hard.api.constant.order.HardHourTypeEnum; import com.bsd.pjcloud.hard.api.dto.panel.PanelCanteenDto; import com.bsd.pjcloud.hard.api.vo.hard.PanelCanteenVo; import com.bsd.pjcloud.hard.mapper.order.HardOrderMapper; import com.bsd.pjcloud.hard.service.PanelCanteenService; +import com.bsd.pjcloud.wallet.api.feign.RemoteMchService; +import com.bsd.pjcloud.wallet.api.vo.MchManageVo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.security.core.parameters.P; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import org.springframework.web.context.request.RequestAttributes; @@ -17,10 +21,7 @@ import org.springframework.web.context.request.RequestContextHolder; import java.time.LocalDate; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.LinkedList; -import java.util.List; +import java.util.*; import java.util.concurrent.CompletableFuture; @Validated @@ -31,6 +32,8 @@ public class PanelCanteenServiceImpl implements PanelCanteenService { private final HardOrderMapper hardOrderMapper; + private final RemoteMchService remoteMchService; + /** * 用餐数据统计(根据时间段和日期分类统计) */ @@ -79,7 +82,9 @@ public class PanelCanteenServiceImpl implements PanelCanteenService { */ @Override public List mchPayPersonCount(PanelCanteenDto dto) { - return hardOrderMapper.groupByMch(dto); + List list = hardOrderMapper.groupByMch(dto); + disposePanelCanteenVoSetMchName(list); + return list; } /** @@ -127,7 +132,9 @@ public class PanelCanteenServiceImpl implements PanelCanteenService { */ @Override public List mchPayCountTop(PanelCanteenDto dto) { - return hardOrderMapper.groupByMch(dto); + List list = hardOrderMapper.groupByMch(dto); + disposePanelCanteenVoSetMchName(list); + return list; } private List generatePanelCanteenList(LocalDateTime[] totalTimeList) { @@ -148,4 +155,18 @@ public class PanelCanteenServiceImpl implements PanelCanteenService { return dateList; } + private void disposePanelCanteenVoSetMchName(List list) { + if (ObjectUtil.isEmpty(list)) return; + // 商户名 + List mchIds = list.stream().map(PanelCanteenVo::getMchId).distinct().filter(ObjectUtil::isNotEmpty).toList(); + List mchList = remoteMchService.getByIds(mchIds).getData(); + if (ObjectUtil.isNotEmpty(mchList)) { + Map mchMap = CollectionUtils.convertMap(mchList, MchManageVo::getId); + for (PanelCanteenVo i : list) { + MchManageVo mch = mchMap.get(i.getMchId()); + if (ObjectUtil.isNotEmpty(mch)) i.setMchName(mch.getName()); + } + } + } + } 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 5497aa6b3..d30d32438 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 @@ -578,7 +578,7 @@