From 381bd9f6a9525b11d574b4a4f79925d99d3ad626 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 13 十二月 2024 22:05:59 +0800
Subject: [PATCH] 修改

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TIndexMenuController.java |   57 ++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 44 insertions(+), 13 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TIndexMenuController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TIndexMenuController.java
index 3c5693b..888218f 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TIndexMenuController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TIndexMenuController.java
@@ -311,10 +311,17 @@
 
     @ApiOperation(value = "推荐资料",tags = {"web-首页"})
     @PostMapping(value = "/information/list")
-    public R<List<TInformation>> information() {
-        //获取当前登录人id
-        Long userId = tokenService.getLoginUser().getUserId();
-        TUserChange one = changeService.lambdaQuery().eq(TUserChange::getUserId, userId).orderByDesc(TUserChange::getCreateTime).last("limit 1").one();
+    public R<List<TInformation>> information(@RequestParam(required = false) Integer regionId, HttpServletRequest request) {
+        String token = request.getHeader("Authorization");
+        TUserChange one =null;
+        Long userId;
+        if(StringUtils.isNotEmpty(token)){
+            //获取当前登录人id
+            userId = tokenService.getLoginUser().getUserId();
+            one = changeService.lambdaQuery().eq(TUserChange::getUserId, userId).orderByDesc(TUserChange::getCreateTime).last("limit 1").one();
+        }else {
+            userId = -1L;
+        }
         List<TInformation> notices = new ArrayList<>();
         if (one!=null){
             List<TUserChangeDetail> list = changeDetailService.lambdaQuery().eq(TUserChangeDetail::getChangeId, one.getId()).list();
@@ -323,10 +330,20 @@
                 notices.addAll(list1);
             }
             notices.sort(Comparator.comparing(TInformation::getCreateTime).reversed());
-        }
+        }else {
             // 创建 LambdaQueryWrapper 并设置查询条件
-            List<TInformation> list1 = informationService.lambdaQuery().last("ORDER BY RAND() LIMIT 16").list();
+            TRegion region = regionService.getById(regionId);
+            List<TRegion> regions = regionService.list(Wrappers.lambdaQuery(TRegion.class)
+                    .eq(TRegion::getProvinceName, region.getProvinceName()));
+            List<Integer> regionIds = regions.stream().map(TRegion::getId).collect(Collectors.toList());
+            List<TInformation> list1 = informationService.lambdaQuery()
+                    .in(TInformation::getRegionId,regionIds).list();
             notices.addAll(list1);
+            notices.sort(Comparator.comparing(TInformation::getCreateTime).reversed());
+        }
+        // 创建 LambdaQueryWrapper 并设置查询条件
+//        List<TInformation> list1 = informationService.lambdaQuery().last("ORDER BY RAND() LIMIT 16").list();
+//        notices.addAll(list1);
 
         if (notices.size() > 16) {
             // 只保留前 16 条记录
@@ -343,10 +360,18 @@
 
     @ApiOperation(value = "推荐课程",tags = {"web-首页"})
     @PostMapping(value = "/course/list")
-    public R<List<TCourse>> course() {
-        //获取当前登录人id
-        Long userId = tokenService.getLoginUser().getUserId();
-        TUserChange one = changeService.lambdaQuery().eq(TUserChange::getUserId, userId).orderByDesc(TUserChange::getCreateTime).last("limit 1").one();
+    public R<List<TCourse>> course(@RequestParam(required = false) Integer regionId, HttpServletRequest request) {
+        String token = request.getHeader("Authorization");
+        TUserChange one =null;
+        Long userId;
+        if(StringUtils.isNotEmpty(token)){
+            //获取当前登录人id
+            //获取当前登录人id
+            userId = tokenService.getLoginUser().getUserId();
+            one = changeService.lambdaQuery().eq(TUserChange::getUserId, userId).orderByDesc(TUserChange::getCreateTime).last("limit 1").one();
+        }else {
+            userId = -1L;
+        }
         List<TCourse> notices = new ArrayList<>();
         if (one!=null){
             List<TUserChangeDetail> list = changeDetailService.lambdaQuery().eq(TUserChangeDetail::getChangeId, one.getId()).list();
@@ -357,10 +382,16 @@
             notices.sort(Comparator.comparing(TCourse::getCreateTime).reversed());
         }else {
             // 创建 LambdaQueryWrapper 并设置查询条件
-
+            TRegion region = regionService.getById(regionId);
+            List<TRegion> regions = regionService.list(Wrappers.lambdaQuery(TRegion.class)
+                    .eq(TRegion::getProvinceName, region.getProvinceName()));
+            List<Integer> regionIds = regions.stream().map(TRegion::getId).collect(Collectors.toList());
+            List<TCourse> list1 = courseService.lambdaQuery().in(TCourse::getRegionId,regionIds).list();
+            notices.addAll(list1);
+            notices.sort(Comparator.comparing(TCourse::getCreateTime).reversed());
         }
-        List<TCourse> list1 = courseService.lambdaQuery().last("ORDER BY RAND() LIMIT 16").list();
-        notices.addAll(list1);
+//        List<TCourse> list1 = courseService.lambdaQuery().last("ORDER BY RAND() LIMIT 16").list();
+//        notices.addAll(list1);
         if (notices.size() > 16) {
             // 只保留前 16 条记录
             notices = new ArrayList<>(notices.subList(0, 16));

--
Gitblit v1.7.1