From b6373daa40c3dc17ca107f3666fd252f3b6b0778 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 03 一月 2025 18:34:52 +0800
Subject: [PATCH] 代码

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCourseController.java |   26 ++++++++++++++++++--------
 1 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCourseController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCourseController.java
index 4e37a05..2a2fb51 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCourseController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCourseController.java
@@ -131,13 +131,20 @@
         }
 
         Set<Long> cacheSet = redisCache.getCacheSet("COURSE:" + userId);
-        List<TTechnicalTitle> tTechnicalTitles = tTechnicalTitleService.lambdaQuery().list();
-        List<TTitleMajor> tTitleMajors = majorService.lambdaQuery().list();
-        List<TRegion> regions = regionService.lambdaQuery().list();
+
+        List<TCourse> records = page.getRecords();
+        List<Long> technicalId = records.stream().map(TCourse::getTechnicalId).collect(Collectors.toList());
+        List<TTechnicalTitle> tTechnicalTitles = tTechnicalTitleService.lambdaQuery().in(TTechnicalTitle::getId, technicalId).list();
+        List<Long> majorId = records.stream().map(TCourse::getMajorId).collect(Collectors.toList());
+        List<TTitleMajor> tTitleMajors = majorService.lambdaQuery().in(TTitleMajor::getId, majorId).list();
+        List<Integer> regionId = records.stream().map(TCourse::getRegionId).collect(Collectors.toList());
+        List<TRegion> regions = regionService.lambdaQuery().in(TRegion::getId,regionId).list();
+        List<Long> ids = records.stream().map(TCourse::getId).collect(Collectors.toList());
         List<TOrder> orders = orderService.lambdaQuery()
                 .eq(TOrder::getGoodType, 1)
-                .eq(TOrder::getPaymentStatus, 2).list();
-        for (TCourse record : page.getRecords()) {
+                .eq(TOrder::getPaymentStatus, 2)
+                .in(TOrder::getGoodId, ids).list();
+        for (TCourse record : records) {
             TTechnicalTitle tTechnicalTitle = tTechnicalTitles.stream().filter(e -> e.getId().equals(record.getTechnicalId())).findFirst().orElse(null);
             TTitleMajor tTitleMajor = tTitleMajors.stream().filter(e -> e.getId().equals(record.getMajorId())).findFirst().orElse(null);
             TRegion region = regions.stream().filter(e -> e.getId().equals(record.getRegionId())).findFirst().orElse(null);
@@ -170,9 +177,12 @@
     @PostMapping(value = "/other")
     public R<List<TCourse>> other(@RequestParam Long id) {
         List<TCourse> list = courseService.lambdaQuery().ne(TCourse::getId, id).last("limit 3").list();
-        List<TRegion> regions = regionService.lambdaQuery().list();
-        List<TTechnicalTitle> tTechnicalTitles = tTechnicalTitleService.lambdaQuery().list();
-        List<TTitleMajor> tTitleMajors = majorService.lambdaQuery().list();
+        List<Integer> regionId = list.stream().map(TCourse::getRegionId).collect(Collectors.toList());
+        List<TRegion> regions = regionService.lambdaQuery().in(TRegion::getId,regionId).list();
+        List<Long> technicalId = list.stream().map(TCourse::getTechnicalId).collect(Collectors.toList());
+        List<TTechnicalTitle> tTechnicalTitles = tTechnicalTitleService.lambdaQuery().in(TTechnicalTitle::getId,technicalId).list();
+        List<Long> majorId = list.stream().map(TCourse::getMajorId).collect(Collectors.toList());
+        List<TTitleMajor> tTitleMajors = majorService.lambdaQuery().in(TTitleMajor::getId,majorId).list();
         for (TCourse record : list) {
             TRegion region = regions.stream().filter(e -> e.getId().equals(record.getRegionId())).findFirst().orElse(null);
             TTechnicalTitle tTechnicalTitle = tTechnicalTitles.stream().filter(e -> e.getId().equals(record.getTechnicalId())).findFirst().orElse(null);

--
Gitblit v1.7.1