diff --git a/sky-server/pom.xml b/sky-server/pom.xml
index 23f9085..bde19e4 100644
--- a/sky-server/pom.xml
+++ b/sky-server/pom.xml
@@ -96,6 +96,7 @@
spring-boot-starter-cache
+
org.springframework.boot
spring-boot-starter-websocket
@@ -122,11 +123,6 @@
minio
8.5.2
-
-
- org.springframework.boot
- spring-boot-starter-websocket
-
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
new file mode 100644
index 0000000..7cd3fd0
--- /dev/null
+++ b/sky-server/src/main/java/com/sky/controller/admin/ReportController.java
@@ -0,0 +1,40 @@
+package com.sky.controller.admin;
+
+import com.sky.result.Result;
+import com.sky.service.ReportService;
+import com.sky.vo.TurnoverReportVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.time.LocalDate;
+
+@RestController
+@RequestMapping("/admin/report")
+@Api(tags = "数据相关接口")
+@Slf4j
+public class ReportController {
+ @Resource
+ private ReportService reportService;
+
+ /**
+ * 营业额统计
+ *
+ * @param begin 看起始时间
+ * @param end 结束时间
+ * @return TurnoverReportVO
+ */
+ @ApiOperation("营业额统计")
+ @GetMapping("/turnoverStatistics")
+ public Result turnoverReport(@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,
+ @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) {
+ log.info("营业额统计,开始时间:{};结束时间:{}", begin, end);
+ TurnoverReportVO turnoverStatistics = reportService.getTurnoverStatistics(begin, end);
+ return Result.success(turnoverStatistics);
+ }
+}
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 50edd24..ccab665 100644
--- a/sky-server/src/main/java/com/sky/mapper/OrderMapper.java
+++ b/sky-server/src/main/java/com/sky/mapper/OrderMapper.java
@@ -6,6 +6,7 @@ import com.sky.entity.Orders;
import org.apache.ibatis.annotations.Mapper;
import java.time.LocalDateTime;
+import java.util.HashMap;
import java.util.List;
@Mapper
@@ -70,4 +71,12 @@ public interface OrderMapper {
* @param status
*/
Integer countStatus(Integer status);
+
+ /**
+ * 根据动态条件统计营业额数据
+ *
+ * @param map 集合
+ * @return Double
+ */
+ Double sumByMap(HashMap map);
}
diff --git a/sky-server/src/main/java/com/sky/service/ReportService.java b/sky-server/src/main/java/com/sky/service/ReportService.java
new file mode 100644
index 0000000..c6808b8
--- /dev/null
+++ b/sky-server/src/main/java/com/sky/service/ReportService.java
@@ -0,0 +1,16 @@
+package com.sky.service;
+
+import com.sky.vo.TurnoverReportVO;
+
+import java.time.LocalDate;
+
+public interface ReportService {
+ /**
+ * 营业额统计
+ *
+ * @param begin 看起始时间
+ * @param end 结束时间
+ * @return TurnoverReportVO
+ */
+ TurnoverReportVO getTurnoverStatistics(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
new file mode 100644
index 0000000..658a6d6
--- /dev/null
+++ b/sky-server/src/main/java/com/sky/service/impl/ReportServiceImpl.java
@@ -0,0 +1,56 @@
+package com.sky.service.impl;
+
+import com.sky.entity.Orders;
+import com.sky.mapper.OrderMapper;
+import com.sky.service.ReportService;
+import com.sky.vo.TurnoverReportVO;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.util.ArrayList;
+import java.util.HashMap;
+
+@Service
+public class ReportServiceImpl implements ReportService {
+ @Resource
+ private OrderMapper orderMapper;
+
+ /**
+ * 营业额统计
+ *
+ * @param begin 看起始时间
+ * @param end 结束时间
+ * @return TurnoverReportVO
+ */
+ @Override
+ public TurnoverReportVO getTurnoverStatistics(LocalDate begin, LocalDate end) {
+ ArrayList dateArrayList = new ArrayList<>();
+ dateArrayList.add(begin);
+ // 循环加天
+ while (!begin.equals(end)) {
+ begin = begin.plusDays(1);
+ dateArrayList.add(begin);
+ }
+ // 查询date日期营业额
+ ArrayList turnoverList = new ArrayList<>();
+ for (LocalDate date : dateArrayList) {
+ // 查询date日期对应营业额数据,营业额是:状态已完成订单金额合计
+ LocalDateTime beginTime = LocalDateTime.of(date, LocalTime.MIN);
+ LocalDateTime endTime = LocalDateTime.of(date, LocalTime.MAX);
+
+ HashMap map = new HashMap<>();
+ map.put("begin", beginTime);
+ map.put("end", endTime);
+ map.put("status", Orders.COMPLETED);
+ Double turnover = orderMapper.sumByMap(map);
+ turnover = turnover == null ? 0.0 : turnover;
+ turnoverList.add(turnover);
+ }
+
+ return TurnoverReportVO.builder().dateList(StringUtils.join(dateArrayList, ",")).turnoverList(StringUtils.join(turnoverList, ",")).build();
+ }
+}
diff --git a/sky-server/src/main/resources/mapper/OrderMapper.xml b/sky-server/src/main/resources/mapper/OrderMapper.xml
index a15c249..f7cbd95 100644
--- a/sky-server/src/main/resources/mapper/OrderMapper.xml
+++ b/sky-server/src/main/resources/mapper/OrderMapper.xml
@@ -109,4 +109,20 @@
from orders
where status = #{status}
+
+
+