From 612f7e1a1b68268f925d01cad2bb3c939056ec0a Mon Sep 17 00:00:00 2001
From: hjl <1657978663@qq.com>
Date: 星期三, 03 七月 2024 10:55:19 +0800
Subject: [PATCH] fix: 学习端、家长端商城bug

---
 ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java |   31 ++++++++++++++++++++++---------
 1 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java
index 6dc7f6a..8b6540c 100644
--- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java
+++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java
@@ -88,12 +88,16 @@
 
         // 类型匹配 todo
         if (goodQuery.getType() != null && goodQuery.getType().size() > 0) {
-            StringBuilder temp = new StringBuilder("");
             for (String s : goodQuery.getType()) {
-                wrapper.apply("FIND_IN_SET('" + s + "', typeIds)"); // 将每个类型 ID 应用于 FIND_IN_SET 函数
+                // 将每个类型 ID 应用于 FIND_IN_SET 函数
+                wrapper.apply("FIND_IN_SET('" + s + "', typeIds)").or();
             }
         }
         wrapper.eq("isDelete", 0);
+        // sort排序
+        wrapper.orderByAsc("CASE WHEN sort IS NULL THEN 1 ELSE 0 END")
+                .orderByAsc("sort")
+                .orderByDesc("createTime");
         return R.ok(goodsService.page(new PageInfo<>(goodQuery.getPageNumber(), goodQuery.getPageSize()), wrapper));
     }
 
@@ -111,11 +115,14 @@
         if (goodQuery.getType() != null && !goodQuery.getType().isEmpty()) {
             for (String s : goodQuery.getType()) {
                 // 将每个类型 ID 应用于 FIND_IN_SET 函数
-                wrapper.apply("FIND_IN_SET('" + s + "', typeIds)");
+                wrapper.apply("FIND_IN_SET('" + s + "', typeIds)").or();
             }
         }
         wrapper.eq("isDelete", 0);
-        wrapper.orderByAsc("sort");
+        // sort排序
+        wrapper.orderByAsc("CASE WHEN sort IS NULL THEN 1 ELSE 0 END")
+                .orderByAsc("sort")
+                .orderByDesc("createTime");
         return R.ok(goodsService.page(new PageInfo<>(goodQuery.getPageNumber(), goodQuery.getPageSize()), wrapper));
     }
 
@@ -752,6 +759,13 @@
                 .eq(Recipient::getUserId, tokenService.getLoginUserStudy().getUserid())
                 .eq(Recipient::getIsDefault, 1)
                 .eq(Recipient::getDisabled, 0).one();
+        if (null == recipient) {
+            recipient = recipientService.lambdaQuery()
+                    .eq(Recipient::getUserId, tokenService.getLoginUserStudy().getUserid())
+                    .eq(Recipient::getDisabled, 0)
+                    .orderByDesc(Recipient::getCreateTime)
+                    .last("limit 1").one();
+        }
         GoodDetailVO goodDetailVO = goodsService.redeemNow(goodId, recipient);
         LocalDateTime currentDateTime = LocalDateTime.now();
         // 格式化日期和时间信息
@@ -788,12 +802,11 @@
                 .eq(Recipient::getIsDefault, 1).one();
         if (recipient == null) {
             // 随便取一条地址数据
-            List<Recipient> list = recipientService.lambdaQuery()
+            recipient = recipientService.lambdaQuery()
                     .eq(Recipient::getUserId, tokenService.getLoginUser1().getUserid())
-                    .list();
-            if (!list.isEmpty()) {
-                recipient = list.get(0);
-            }
+                    .orderByDesc(Recipient::getCreateTime)
+                    .eq(Recipient::getDisabled, 0).last("limit 1")
+                    .one();
         }
         GoodDetailVO goodDetailVO = goodsService.redeemNow(goodId, recipient);
         LocalDateTime currentDateTime = LocalDateTime.now();

--
Gitblit v1.7.1