From f9e4883831956328e73f4df77c8d6887a0f8d70b Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 11 五月 2026 10:41:46 +0800
Subject: [PATCH] 小程序   接口开发

---
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java |   62 +++++++++++++-----------------
 1 files changed, 27 insertions(+), 35 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 aa3cbef..71ef791 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
@@ -372,17 +372,9 @@
                     .eq(GoodsSku::getIsdeleted,Constants.ZERO)
                     .in(GoodsSku::getGoodsId,idList));
         }
-        long shopNum   = shopMapper.selectCount(new QueryWrapper<Shop>().lambda()
-                .eq(Shop::getIsdeleted,Constants.ZERO)
-                .eq(Shop::getStatus,Constants.ZERO));
-        MPJLambdaWrapper<Goods> queryWrapper = new MPJLambdaWrapper<>();
-        queryWrapper.selectAll(Goods.class);
-        queryWrapper.select("(select count(s.id) from shop_goods_relation s  " +
-                "left join shop g on s.SHOP_ID =g.id " +
-                "where g.status=0 and s.ISDELETED=0 and s.GOODS_ID=t.id) as pricedShopNum ");
-        queryWrapper.eq(GoodsSku::getIsdeleted,Constants.ZERO);
-        queryWrapper.in(Goods::getId,idList);
-        List<Goods> goodsList= goodsAdminJoinMapper.selectJoinList(Goods.class,queryWrapper);
+        List<Goods> goodsList= goodsMapper.selectList(new QueryWrapper<Goods>().lambda()
+                .eq(Goods::getIsdeleted,Constants.ZERO)
+                .in(Goods::getId,idList));
         if(goodsList==null || goodsList.size() == 0){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鍟嗗搧淇℃伅鏌ヨ鏃犳晥 ");
         }
@@ -409,14 +401,6 @@
                  throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), goods.getName()+":鍟嗗搧鍟嗗搧灏氭湭璁剧疆闆跺敭浠凤紝鏃犳硶涓婃灦");
                 }
             }
-            if(Constants.formatLongNum(goods.getPricedShopNum()) < shopNum){
-                //榛樿sku淇℃伅
-                s =false;
-                if(idList.size()==1){
-                  throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), goods.getName()+":鏈夋湭璁剧疆渚涜揣浠风殑缁忛攢鍟嗭紝鏃犳硶涓婃灦");
-                }
-
-            }
             if(s){
                 idList2.add(param.getId());
             }
@@ -432,7 +416,7 @@
 
         if(successNum != idList.size()){
             if( idList.size()>1){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鎴愬姛涓婃灦鍟嗗搧鏁帮細銆�"+successNum+"銆戯紝涓婃灦澶辫触锛氥��"+(idList.size()-successNum)+"銆戜釜鍟嗗搧,璇风‘淇濆緟涓婃灦鍟嗗搧鐨勫潎閿�鍞环鍜屼緵璐т环宸茶缃�");
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鎴愬姛涓婃灦鍟嗗搧鏁帮細銆�"+successNum+"銆戯紝涓婃灦澶辫触锛氥��"+(idList.size()-successNum)+"銆戜釜鍟嗗搧,璇风‘淇濆緟涓婃灦鍟嗗搧鐨勯攢鍞环宸茶缃�");
             }else {
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode()," 涓婃灦澶辫触");
             }
@@ -889,9 +873,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,7 +956,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.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()),
@@ -988,10 +973,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())){
@@ -999,13 +984,13 @@
             if(Constants.equalsInteger(model.getSortInfo(),Constants.ZERO)){
                 wrapper.orderByDesc("t.CREATE_DATE");
             }else if(Constants.equalsInteger(model.getSortInfo(),Constants.ONE)){
-                wrapper.orderByAsc("realSaleNum");
+                wrapper.orderByAsc("(realSaleNum + ifnull(t.SALENUM,0))");
             }else if(Constants.equalsInteger(model.getSortInfo(),Constants.TWO)){
-                wrapper.orderByAsc("t.price");
+                wrapper.orderByAsc("minPrice");
             }else if(Constants.equalsInteger(model.getSortInfo(),Constants.THREE)){
-                wrapper.orderByDesc("realSaleNum");
+                wrapper.orderByDesc("(realSaleNum + ifnull(t.SALENUM,0))");
             }else if(Constants.equalsInteger(model.getSortInfo(),Constants.FOUR)){
-                wrapper.orderByDesc("t.price");
+                wrapper.orderByDesc("minPrice");
             }
         }
         IPage<Goods> page =
@@ -1055,14 +1040,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);
-        goodsResponse.setRealSaleNum(goodsResponse.getRealSaleNum()+sumStock);
+        if(noRestrictions){
+            goodsResponse.setStock(-Constants.ONE);
+        }else{
+            goodsResponse.setStock(sumStock);
+        }
         goodsResponse.setGoodsSkuResponseList(goodsSkuResponseList);
         //Sku鍩虹淇℃伅
         List<SkuResponse> skuResponseList = skuMapper.getSkuResponseList(goodsResponse.getId());
@@ -1084,9 +1076,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