修复数据仪表盘API编译错误
修复的问题: 1. PaymentRepository中Map类型引用问题 - 将Map<String, Object>改为java.util.Map<String, Object> - 解决类型引用缺失错误 2. MembershipLevelRepository中Query注解问题 - 添加缺失的@Query导入 - 修复Query注解无法解析错误 3. DashboardApiController中类型转换问题 - 添加Order模型导入 - 修复List<Order>到List<Map<String,Object>>的类型转换 - 实现Order对象到Map的转换逻辑 4. 清理未使用的导入 - 移除DateTimeFormatter未使用导入 - 移除Map未使用导入 - 优化代码整洁度 所有编译错误已解决,代码可以正常编译运行
This commit is contained in:
@@ -5,12 +5,12 @@ import com.example.demo.repository.OrderRepository;
|
|||||||
import com.example.demo.repository.PaymentRepository;
|
import com.example.demo.repository.PaymentRepository;
|
||||||
import com.example.demo.repository.UserMembershipRepository;
|
import com.example.demo.repository.UserMembershipRepository;
|
||||||
import com.example.demo.repository.MembershipLevelRepository;
|
import com.example.demo.repository.MembershipLevelRepository;
|
||||||
|
import com.example.demo.model.Order;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import org.springframework.data.domain.PageRequest;
|
import org.springframework.data.domain.PageRequest;
|
||||||
@@ -168,7 +168,21 @@ public class DashboardApiController {
|
|||||||
Map<String, Object> response = new HashMap<>();
|
Map<String, Object> response = new HashMap<>();
|
||||||
|
|
||||||
// 获取最近的订单
|
// 获取最近的订单
|
||||||
List<Map<String, Object>> recentOrders = orderRepository.findRecentOrders(PageRequest.of(0, limit));
|
List<Order> recentOrdersList = orderRepository.findRecentOrders(PageRequest.of(0, limit));
|
||||||
|
List<Map<String, Object>> recentOrders = recentOrdersList.stream()
|
||||||
|
.map(order -> {
|
||||||
|
Map<String, Object> 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);
|
response.put("recentOrders", recentOrders);
|
||||||
|
|
||||||
return ResponseEntity.ok(response);
|
return ResponseEntity.ok(response);
|
||||||
|
|||||||
@@ -2,10 +2,10 @@ package com.example.demo.repository;
|
|||||||
|
|
||||||
import com.example.demo.model.MembershipLevel;
|
import com.example.demo.model.MembershipLevel;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
@@ -16,5 +16,5 @@ public interface MembershipLevelRepository extends JpaRepository<MembershipLevel
|
|||||||
@Query("SELECT ml.displayName as levelName, COUNT(um) as userCount " +
|
@Query("SELECT ml.displayName as levelName, COUNT(um) as userCount " +
|
||||||
"FROM MembershipLevel ml LEFT JOIN UserMembership um ON ml.id = um.membershipLevelId AND um.status = 'ACTIVE' " +
|
"FROM MembershipLevel ml LEFT JOIN UserMembership um ON ml.id = um.membershipLevelId AND um.status = 'ACTIVE' " +
|
||||||
"GROUP BY ml.id, ml.displayName")
|
"GROUP BY ml.id, ml.displayName")
|
||||||
List<Map<String, Object>> findMembershipStats();
|
List<java.util.Map<String, Object>> findMembershipStats();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,5 +61,5 @@ public interface PaymentRepository extends JpaRepository<Payment, Long> {
|
|||||||
@Query("SELECT MONTH(p.paidAt) as month, SUM(p.amount) as revenue, COUNT(p) as orderCount " +
|
@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 " +
|
"FROM Payment p WHERE p.status = 'COMPLETED' AND YEAR(p.paidAt) = :year " +
|
||||||
"GROUP BY MONTH(p.paidAt) ORDER BY MONTH(p.paidAt)")
|
"GROUP BY MONTH(p.paidAt) ORDER BY MONTH(p.paidAt)")
|
||||||
List<Map<String, Object>> findMonthlyRevenueByYear(@Param("year") int year);
|
List<java.util.Map<String, Object>> findMonthlyRevenueByYear(@Param("year") int year);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user