From 68e7d31bc6d6c4a84ffb4b423c1ccd211f16f949 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 15 一月 2025 09:29:57 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java |   51 ++++++++++++++++++++++++++++++++-------------------
 1 files changed, 32 insertions(+), 19 deletions(-)

diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java
index 3344af0..68927ec 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java
@@ -165,21 +165,33 @@
                 });
             }
         }
-        //手动处理分页
+        // 手动处理分页
         PageInfo<GoodsVO> pageInfo = new PageInfo<>();
         pageInfo.setSize(search.getPageSize());
         pageInfo.setTotal(list.size());
-        Integer pageSize = search.getPageSize();
-        Integer pageNum = (search.getPageCurr() - 1) * pageSize;
 
-        if(list.size() >= (pageNum + 1) * pageSize){
-            list = list.subList(pageNum, pageNum + pageSize);
-        }else if(pageNum < list.size() && list.size() < (pageNum + 1) * pageSize){
-            list = list.subList(pageNum, list.size());
-        }else{
-            list = new ArrayList<>();
+        int pageSize = search.getPageSize();
+        int pageCurr = search.getPageCurr();
+
+        // 计算起始索引
+        int pageNum = (pageCurr - 1) * pageSize;
+
+        // 检查 pageNum 是否合法
+        if (pageNum < 0 || pageNum >= list.size()) {
+            // 如果 pageNum 不合法,返回空列表
+            pageInfo.setRecords(new ArrayList<>());
+            return pageInfo;
         }
-        return pageInfo.setRecords(list);
+
+        // 计算结束索引
+        int endIndex = Math.min(pageNum + pageSize, list.size());
+
+        // 获取分页数据
+        List<GoodsVO> pageList = list.subList(pageNum, endIndex);
+
+        // 设置分页结果
+        pageInfo.setRecords(pageList);
+        return pageInfo;
     }
 
     @Override
@@ -394,9 +406,10 @@
                     area.setProvinceCode(goodsArea.getProvinceCode());
                     area.setCityCode(goodsArea.getCityCode());
                     area.setDistrictsCode(goodsArea.getDistrictsCode());
-                    if(null != area.getSellingPrice() || null != area.getIntegral()){
-                        goodsAreaList2.add(area);
-                    }
+//                    if(null != area.getSellingPrice() || null != area.getIntegral()){
+//                        goodsAreaList2.add(area);
+//                    }
+                    goodsAreaList2.add(area);
                 }
                 goodsAreaService.saveBatch(goodsAreaList2);
             }
@@ -572,15 +585,15 @@
             if(null == bargainPriceDetail){
                 //没有门店特价,判断地区价格配置
                 LambdaQueryWrapper<GoodsArea> queryWrapper = new LambdaQueryWrapper<GoodsArea>().eq(GoodsArea::getGoodsId, goodsId).eq(GoodsArea::getVip, vip);
-                if(StringUtils.isNotEmpty(districtCode)){
-                    queryWrapper.eq(GoodsArea::getDistrictsCode, districtCode);
-                }
-                if(StringUtils.isNotEmpty(cityCode)){
-                    queryWrapper.eq(GoodsArea::getCityCode, cityCode);
-                }
                 if(StringUtils.isNotEmpty(provinceCode)){
                     queryWrapper.eq(GoodsArea::getProvinceCode, provinceCode);
                 }
+                if(StringUtils.isNotEmpty(cityCode)){
+                    queryWrapper.and(i -> i.eq(GoodsArea::getCityCode, cityCode).or().isNull(GoodsArea::getCityCode));
+                }
+                if(StringUtils.isNotEmpty(districtCode)){
+                    queryWrapper.and(i -> i.eq(GoodsArea::getDistrictsCode, districtCode).or().isNull(GoodsArea::getDistrictsCode));
+                }
                 GoodsArea goodsArea = goodsAreaService.getOne(queryWrapper);
                 if(null == goodsArea){
                     //没有地区价格,则使用会员价格

--
Gitblit v1.7.1