diff --git a/demo/src/main/java/com/example/demo/controller/DashboardApiController.java b/demo/src/main/java/com/example/demo/controller/DashboardApiController.java index e632662..fbac7a3 100644 --- a/demo/src/main/java/com/example/demo/controller/DashboardApiController.java +++ b/demo/src/main/java/com/example/demo/controller/DashboardApiController.java @@ -5,12 +5,12 @@ import com.example.demo.repository.OrderRepository; import com.example.demo.repository.PaymentRepository; import com.example.demo.repository.UserMembershipRepository; import com.example.demo.repository.MembershipLevelRepository; +import com.example.demo.model.Order; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; import org.springframework.data.domain.PageRequest; @@ -168,7 +168,21 @@ public class DashboardApiController { Map response = new HashMap<>(); // 获取最近的订单 - List> recentOrders = orderRepository.findRecentOrders(PageRequest.of(0, limit)); + List recentOrdersList = orderRepository.findRecentOrders(PageRequest.of(0, limit)); + List> recentOrders = recentOrdersList.stream() + .map(order -> { + Map orderMap = new HashMap<>(); + orderMap.put("id", order.getId()); + orderMap.put("orderNumber", order.getOrderNumber()); + orderMap.put("totalAmount", order.getTotalAmount()); + orderMap.put("status", order.getStatus()); + orderMap.put("orderType", order.getOrderType()); + orderMap.put("description", order.getDescription()); + orderMap.put("createdAt", order.getCreatedAt()); + orderMap.put("username", order.getUser() != null ? order.getUser().getUsername() : "未知用户"); + return orderMap; + }) + .collect(Collectors.toList()); response.put("recentOrders", recentOrders); return ResponseEntity.ok(response); diff --git a/demo/src/main/java/com/example/demo/repository/MembershipLevelRepository.java b/demo/src/main/java/com/example/demo/repository/MembershipLevelRepository.java index 14ce3c5..586123f 100644 --- a/demo/src/main/java/com/example/demo/repository/MembershipLevelRepository.java +++ b/demo/src/main/java/com/example/demo/repository/MembershipLevelRepository.java @@ -2,10 +2,10 @@ package com.example.demo.repository; import com.example.demo.model.MembershipLevel; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; import java.util.List; -import java.util.Map; import java.util.Optional; @Repository @@ -16,5 +16,5 @@ public interface MembershipLevelRepository extends JpaRepository> findMembershipStats(); + List> findMembershipStats(); } diff --git a/demo/src/main/java/com/example/demo/repository/PaymentRepository.java b/demo/src/main/java/com/example/demo/repository/PaymentRepository.java index a796513..cdce131 100644 --- a/demo/src/main/java/com/example/demo/repository/PaymentRepository.java +++ b/demo/src/main/java/com/example/demo/repository/PaymentRepository.java @@ -61,5 +61,5 @@ public interface PaymentRepository extends JpaRepository { @Query("SELECT MONTH(p.paidAt) as month, SUM(p.amount) as revenue, COUNT(p) as orderCount " + "FROM Payment p WHERE p.status = 'COMPLETED' AND YEAR(p.paidAt) = :year " + "GROUP BY MONTH(p.paidAt) ORDER BY MONTH(p.paidAt)") - List> findMonthlyRevenueByYear(@Param("year") int year); + List> findMonthlyRevenueByYear(@Param("year") int year); }