From fa668c325f2dac348fb9f80c0c6c679f9ce1e41b Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期二, 10 三月 2026 18:28:17 +0800
Subject: [PATCH] 小程序   接口开发

---
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java |   34 +++++++++++++++++++++-------------
 1 files changed, 21 insertions(+), 13 deletions(-)

diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
index 0ce6f17..0d731d5 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
@@ -889,9 +889,9 @@
         queryWrapper.eq(pageWrap.getModel().getBrandId() != null, Goods::getBrandId, pageWrap.getModel().getBrandId());
         queryWrapper.eq(pageWrap.getModel().getStatus() != null, Goods::getStatus, pageWrap.getModel().getStatus());
         queryWrapper.in(pageWrap.getModel().getIdList() != null && pageWrap.getModel().getIdList().size()>0, Goods::getId, pageWrap.getModel().getIdList());
-        if(pageWrap.getModel().getShopId() !=null){
-            queryWrapper.orderByAsc("shopPrice");
-        }
+//        if(pageWrap.getModel().getShopId() !=null){
+//            queryWrapper.orderByAsc("shopPrice");
+//        }
         queryWrapper.orderByDesc(Goods::getId);
         IPage<Goods> result = goodsAdminJoinMapper.selectJoinPage(page, Goods.class, queryWrapper);
         initResult(result.getRecords(),pageWrap.getModel().getShopId()==null);
@@ -972,8 +972,8 @@
        GoodsRequest model = pageWrap.getModel();
         MPJLambdaWrapper<Goods> wrapper = new MPJLambdaWrapper<Goods>()
                 .selectAll(Goods.class)
-                .select("  ifnull(( select min(gs.PRICE) from goods_sku gs where gs.GOODS_ID = t.id ),0)   ",Goods::getMinPrice)
-                .select("  ifnull(( select min(gs.SHOW_PRICE) from goods_sku gs where gs.GOODS_ID = t.id ),0)   ",Goods::getLinePrice)
+                .select("  ifnull(( select min(gs.PRICE) from goods_sku gs where gs.GOODS_ID = t.id and gs.ISDELETED = 0  ),0)   ",Goods::getMinPrice)
+                .select("  ifnull(( select min(gs.SHOW_PRICE) from goods_sku gs where gs.GOODS_ID = t.id and gs.ISDELETED = 0 ),0)   ",Goods::getLinePrice)
                 .leftJoin(SystemUser.class, SystemUser::getId, Goods::getCreator)
                 .eq(Goods::getIsdeleted,Constants.ZERO)
                 .eq(!Objects.isNull(model) && Objects.nonNull(model.getCategoryId()),
@@ -989,10 +989,10 @@
                 .like(StringUtils.isNotBlank(model.getGoodsName()),Goods::getName,model.getGoodsName());
         if(Objects.nonNull(model.getShopId())){
             wrapper.select("  ifnull( ( select sgr.PRICE from shop_goods_relation sgr where sgr.GOODS_ID = t.ID and sgr.ISDELETED = 0 and sgr.`STATUS` = 0  and sgr.SHOP_ID = "+model.getShopId()+" ) ,0) ",Goods::getExFactoryPrice);
-            wrapper.select(" ifnull(( select sum(gd.GOODS_NUM) from goodsorder_detail gd  inner join goodsorder go on gd.ORDER_ID = go.id  where gd.GOODS_ID = t.`id` and  go.DISTRIBUTION_SHOP_ID = "+model.getShopId()+" ),0) ",Goods::getRealSaleNum);
+            wrapper.select(" ifnull(( select sum(gd.GOODS_NUM) from goodsorder_detail gd  inner join goodsorder go on gd.ORDER_ID = go.id  where go.PAY_STATUS = 1 and gd.GOODS_ID = t.`id` and  go.DISTRIBUTION_SHOP_ID = "+model.getShopId()+" ),0) ",Goods::getRealSaleNum);
 
         }else{
-            wrapper.select(" (( select ifnull(sum(GOODS_NUM),0) from goodsorder_detail gd  where gd.GOODS_ID =  t.id  )) ",Goods::getRealSaleNum);
+            wrapper.select(" ifnull(( select sum(gd.GOODS_NUM) from goodsorder_detail gd  inner join goodsorder go on gd.ORDER_ID = go.id  where go.PAY_STATUS = 1 and gd.GOODS_ID = t.`id` ),0) ",Goods::getRealSaleNum);
         }
 
         if(Objects.nonNull(model.getSortInfo())){
@@ -1000,11 +1000,11 @@
             if(Constants.equalsInteger(model.getSortInfo(),Constants.ZERO)){
                 wrapper.orderByDesc("t.CREATE_DATE");
             }else if(Constants.equalsInteger(model.getSortInfo(),Constants.ONE)){
-                wrapper.orderByAsc("(realSaleNum + t.SALENUM)");
+                wrapper.orderByAsc("(realSaleNum + ifnull(t.SALENUM,0))");
             }else if(Constants.equalsInteger(model.getSortInfo(),Constants.TWO)){
                 wrapper.orderByAsc("minPrice");
             }else if(Constants.equalsInteger(model.getSortInfo(),Constants.THREE)){
-                wrapper.orderByDesc("(realSaleNum + t.SALENUM)");
+                wrapper.orderByDesc("(realSaleNum + ifnull(t.SALENUM,0))");
             }else if(Constants.equalsInteger(model.getSortInfo(),Constants.FOUR)){
                 wrapper.orderByDesc("minPrice");
             }
@@ -1056,13 +1056,21 @@
 
         List<GoodsSkuResponse>  goodsSkuResponseList = goodsSkuMapper.getSkuResponseList(goodsResponse.getId());
         Integer sumStock = Constants.ZERO;
+        Boolean noRestrictions = true;
         for (GoodsSkuResponse goodsSkuResponse:goodsSkuResponseList) {
             goodsSkuResponse.setStock(Objects.isNull(goodsSkuResponse.getStock())?Constants.ZERO:goodsSkuResponse.getStock());
             sumStock = sumStock + goodsSkuResponse.getStock();
+            if(StringUtils.isNotBlank(goodsSkuResponse.getStockStr())){
+                noRestrictions  = false;
+            }
         }
         //鐪熷疄閿�閲� = realSaleNum  - saleNum;
         //鐪熷疄搴撳瓨= sumStock - (realSaleNum  - saleNum)
-        goodsResponse.setStock(sumStock);
+        if(noRestrictions){
+            goodsResponse.setStock(-Constants.ONE);
+        }else{
+            goodsResponse.setStock(sumStock);
+        }
         goodsResponse.setGoodsSkuResponseList(goodsSkuResponseList);
         //Sku鍩虹淇℃伅
         List<SkuResponse> skuResponseList = skuMapper.getSkuResponseList(goodsResponse.getId());
@@ -1084,9 +1092,9 @@
         Goods goodsResponse = goodsMapper.selectOne(
                  new MPJLambdaWrapper<Goods>()
                         .selectAll(Goods.class)
-                        .select(" (( select ifnull(sum(GOODS_NUM),0) from goodsorder_detail gd  where gd.GOODS_ID =  t.id  )) ",Goods::getRealSaleNum)
-                        .select("  ifnull(( select min(gs.PRICE) from goods_sku gs where gs.GOODS_ID = t.id ),0)   ",Goods::getMinPrice)
-                         .select("  ifnull(( select min(gs.SHOW_PRICE) from goods_sku gs where gs.GOODS_ID = t.id ),0)   ",Goods::getLinePrice)
+                        .select(" ifnull(( select sum(gd.GOODS_NUM) from goodsorder_detail gd  inner join goodsorder go on gd.ORDER_ID = go.id  where go.PAY_STATUS = 1 and gd.GOODS_ID = t.`id`  ),0) ",Goods::getRealSaleNum)
+                        .select("  ifnull(( select min(gs.PRICE) from goods_sku gs where gs.GOODS_ID = t.id and gs.ISDELETED = 0),0)   ",Goods::getMinPrice)
+                         .select("  ifnull(( select min(gs.SHOW_PRICE) from goods_sku gs where gs.GOODS_ID = t.id and gs.ISDELETED = 0),0)   ",Goods::getLinePrice)
                         .leftJoin(SystemUser.class, SystemUser::getId, Goods::getCreator)
 //                        .eq(Goods::getIsdeleted,Constants.ZERO)
 //                        .eq(Goods::getStatus, Constants.ZERO)

--
Gitblit v1.9.3