From 9c6d9142c5c49c193e8fc0e147184664c40657f2 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Thu, 11 Jan 2024 21:05:17 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=80=E9=87=8F=E6=8E=92=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/ReportController.java | 16 ++++++ .../main/java/com/sky/mapper/OrderMapper.java | 10 ++++ .../java/com/sky/service/ReportService.java | 12 ++++- .../sky/service/impl/ReportServiceImpl.java | 50 ++++++++++++++++--- .../src/main/resources/mapper/OrderMapper.xml | 16 ++++++ 5 files changed, 97 insertions(+), 7 deletions(-) diff --git a/sky-server/src/main/java/com/sky/controller/admin/ReportController.java b/sky-server/src/main/java/com/sky/controller/admin/ReportController.java index 47ec04b..52a8dd6 100644 --- a/sky-server/src/main/java/com/sky/controller/admin/ReportController.java +++ b/sky-server/src/main/java/com/sky/controller/admin/ReportController.java @@ -3,6 +3,7 @@ package com.sky.controller.admin; import com.sky.result.Result; import com.sky.service.ReportService; import com.sky.vo.OrderReportVO; +import com.sky.vo.SalesTop10ReportVO; import com.sky.vo.TurnoverReportVO; import com.sky.vo.UserReportVO; import io.swagger.annotations.Api; @@ -68,4 +69,19 @@ public class ReportController { log.info("订单统计,开始时间:{};结束时间:{}", begin, end); return Result.success(reportService.ordersStatistics(begin, end)); } + + /** + * 销量排名 + * + * @param begin 看起始时间 + * @param end 结束时间 + * @return OrderReportVO + */ + @ApiOperation("销量排名") + @GetMapping("/top10") + public Result top10(@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin, + @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) { + log.info("销量排名,开始时间:{};结束时间:{}", begin, end); + return Result.success(reportService.getSalesTop10(begin, end)); + } } diff --git a/sky-server/src/main/java/com/sky/mapper/OrderMapper.java b/sky-server/src/main/java/com/sky/mapper/OrderMapper.java index ae34f9f..81aadee 100644 --- a/sky-server/src/main/java/com/sky/mapper/OrderMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/OrderMapper.java @@ -1,6 +1,7 @@ package com.sky.mapper; import com.github.pagehelper.Page; +import com.sky.dto.GoodsSalesDTO; import com.sky.dto.OrdersPageQueryDTO; import com.sky.entity.Orders; import org.apache.ibatis.annotations.Mapper; @@ -88,4 +89,13 @@ public interface OrderMapper { * @return Integer */ Integer countByMap(Map map); + + /** + * 根据指定时间区间查询效率前十 + * + * @param begin 开始时间 + * @param end 结束时间 + * @return GoodsSalesDTO + */ + List getSalesTop10(LocalDateTime begin, LocalDateTime end); } diff --git a/sky-server/src/main/java/com/sky/service/ReportService.java b/sky-server/src/main/java/com/sky/service/ReportService.java index af87e5c..443fc74 100644 --- a/sky-server/src/main/java/com/sky/service/ReportService.java +++ b/sky-server/src/main/java/com/sky/service/ReportService.java @@ -1,6 +1,7 @@ package com.sky.service; import com.sky.vo.OrderReportVO; +import com.sky.vo.SalesTop10ReportVO; import com.sky.vo.TurnoverReportVO; import com.sky.vo.UserReportVO; @@ -17,7 +18,7 @@ public interface ReportService { TurnoverReportVO getTurnoverStatistics(LocalDate begin, LocalDate end); /** - * 用户统计 + * 销量排名 * * @param begin 看起始时间 * @param end 结束时间 @@ -33,4 +34,13 @@ public interface ReportService { * @return OrderReportVO */ OrderReportVO ordersStatistics(LocalDate begin, LocalDate end); + + /** + * 销量排名 + * + * @param begin 看起始时间 + * @param end 结束时间 + * @return OrderReportVO + */ + SalesTop10ReportVO getSalesTop10(LocalDate begin, LocalDate end); } diff --git a/sky-server/src/main/java/com/sky/service/impl/ReportServiceImpl.java b/sky-server/src/main/java/com/sky/service/impl/ReportServiceImpl.java index 76480e2..3711f71 100644 --- a/sky-server/src/main/java/com/sky/service/impl/ReportServiceImpl.java +++ b/sky-server/src/main/java/com/sky/service/impl/ReportServiceImpl.java @@ -1,10 +1,12 @@ package com.sky.service.impl; +import com.sky.dto.GoodsSalesDTO; import com.sky.entity.Orders; import com.sky.mapper.OrderMapper; import com.sky.mapper.UserMapper; import com.sky.service.ReportService; import com.sky.vo.OrderReportVO; +import com.sky.vo.SalesTop10ReportVO; import com.sky.vo.TurnoverReportVO; import com.sky.vo.UserReportVO; import org.apache.commons.lang.StringUtils; @@ -17,6 +19,7 @@ import java.time.LocalTime; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.stream.Collectors; @Service public class ReportServiceImpl implements ReportService { @@ -25,6 +28,22 @@ public class ReportServiceImpl implements ReportService { @Resource private UserMapper userMapper; + /** + * 获得订单数量 + * + * @param beginTime 看起始时间 + * @param endTime 结束时间 + * @param status 状态 + * @return Integer + */ + private Integer getOrderCount(LocalDateTime beginTime, LocalDateTime endTime, Integer status) { + HashMap map = new HashMap<>(); + map.put("end", endTime); + map.put("begin", beginTime); + map.put("status", status); + return orderMapper.countByMap(map); + } + /** * 营业额统计 * @@ -152,11 +171,30 @@ public class ReportServiceImpl implements ReportService { .build(); } - private Integer getOrderCount(LocalDateTime endTime, LocalDateTime beginTime, Integer status) { - HashMap map = new HashMap<>(); - map.put("end", endTime); - map.put("begin", beginTime); - map.put("status", status); - return orderMapper.countByMap(map); + /** + * 销量排名 + * + * @param begin 看起始时间 + * @param end 结束时间 + * @return UserReportVO + */ + @Override + public SalesTop10ReportVO getSalesTop10(LocalDate begin, LocalDate end) { + LocalDateTime beginTime = LocalDateTime.of(begin, LocalTime.MIN); + LocalDateTime endTime = LocalDateTime.of(end, LocalTime.MAX); + + List salesTop10 = orderMapper.getSalesTop10(beginTime, endTime); + List names = salesTop10.stream().map(GoodsSalesDTO::getName).collect(Collectors.toList()); + String nameList = StringUtils.join(names, ","); + + List numbers = salesTop10.stream().map(GoodsSalesDTO::getNumber).collect(Collectors.toList()); + String numberList = StringUtils.join(numbers, ","); + + // 封装返回结果数据 + return SalesTop10ReportVO + .builder() + .nameList(nameList) + .numberList(numberList) + .build(); } } diff --git a/sky-server/src/main/resources/mapper/OrderMapper.xml b/sky-server/src/main/resources/mapper/OrderMapper.xml index 69299eb..92f3550 100644 --- a/sky-server/src/main/resources/mapper/OrderMapper.xml +++ b/sky-server/src/main/resources/mapper/OrderMapper.xml @@ -142,4 +142,20 @@ + + +