From fc9240bd6b246ad71c4050510880a49ce07138a3 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 13 二月 2026 09:51:13 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dingyuannongji

---
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java |  129 +++++++++++++++++++++++++++---------------
 1 files changed, 83 insertions(+), 46 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 43968bc..efb5c1f 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
@@ -60,6 +60,9 @@
     @Autowired
     private ShopGoodsRelationMapper shopGoodsRelationMapper;
 
+    @Autowired
+    private SearchHistoryMapper searchHistoryMapper;
+
 
 
     @Autowired
@@ -372,6 +375,7 @@
         if(goodsSkuList==null || goodsSkuList.size() == 0){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鍟嗗搧灏氭湭璁剧疆闆跺敭浠凤紝璇峰厛璁剧疆浠锋牸锛� ");
         }
+        List<Integer> idList2 = new ArrayList<>();
         for(Goods param: list){
             Goods goods = getGoodsFromListById(param.getId(),goodsList,goodsSkuList);
             if(goods ==null ){
@@ -379,25 +383,47 @@
             }
             //濡傛灉鏄笂鏋�
             goods.setGoodsSkuList(goodsSkuList);
+            boolean s =true;
             if(goods.getSkuPrice() == null || goods.getSkuPrice().compareTo(new BigDecimal(0)) <=0){
                 //榛樿sku淇℃伅
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), goods.getName()+":鍟嗗搧鍟嗗搧灏氭湭璁剧疆闆跺敭浠凤紝鏃犳硶涓婃灦");
+                s =false;
+                if(idList.size()==1) {
+                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), goods.getName()+":鍟嗗搧鍟嗗搧灏氭湭璁剧疆闆跺敭浠凤紝鏃犳硶涓婃灦");
+                }
             }
-            if(Constants.formatLongNum(goods.getPricedShopNum()) <= shopNum){
+            if(Constants.formatLongNum(goods.getPricedShopNum()) < shopNum){
                 //榛樿sku淇℃伅
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), goods.getName()+":鏈夋湭璁剧疆渚涜揣浠风殑缁忛攢鍟嗭紝鏃犳硶涓婃灦");
+                s =false;
+                if(idList.size()==1){
+                  throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), goods.getName()+":鏈夋湭璁剧疆渚涜揣浠风殑缁忛攢鍟嗭紝鏃犳硶涓婃灦");
+                }
+
+            }
+            if(s){
+                idList2.add(param.getId());
             }
         }
-        goodsMapper.update(null,new UpdateWrapper<Goods>().lambda()
-                .set(Goods::getEditDate,new Date() )
-                .set(Goods::getEditor,user.getId())
-                .set(Goods::getStatus,Constants.ZERO )
-                .in(Goods::getId,idList));
+        int successNum = 0;
+        if(idList2.size()>0){
+            successNum = goodsMapper.update(null,new UpdateWrapper<Goods>().lambda()
+                    .set(Goods::getEditDate,new Date() )
+                    .set(Goods::getEditor,user.getId())
+                    .set(Goods::getStatus,Constants.ZERO )
+                    .in(Goods::getId,idList2));
+        }
+
+        if(successNum != idList.size()){
+            if( idList.size()>1){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鎴愬姛涓婃灦鍟嗗搧鏁帮細銆�"+successNum+"銆戯紝涓婃灦澶辫触锛氥��"+(idList.size()-successNum)+"銆戜釜鍟嗗搧,璇风‘淇濆緟涓婃灦鍟嗗搧鐨勫潎閿�鍞环鍜屼緵璐т环宸茶缃�");
+            }else {
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode()," 涓婃灦澶辫触");
+            }
+        }
     }
 
     private Goods getGoodsFromListById(Integer id, List<Goods> goodsList, List<GoodsSku> skuList) {
         for(Goods model: goodsList){
-            if(Constants.equalsObject(model.getIdList(),id)){
+            if(Constants.equalsInteger(model.getId(),id)){
                 for(GoodsSku sku :skuList){
                     if(Constants.equalsInteger(sku.getGoodsId(),id)){
                         model.setSkuPrice(sku.getPrice());
@@ -899,7 +925,6 @@
     @Override
     public IPage<GoodsInfoResponse> getGoodsPage(PageWrap<GoodsRequest> pageWrap) {
        GoodsRequest model = pageWrap.getModel();
-
        QueryWrapper<GoodsRequest> wrapper = new QueryWrapper<GoodsRequest>()
                 .eq("g.ISDELETED",Constants.ZERO)
                 .eq(!Objects.isNull(model) && Objects.nonNull(model.getCategoryId()),
@@ -933,7 +958,20 @@
                 goodsMapper.goodsPageForShop(pageWrap.toPage(),wrapper,model.getShopId()) ;
         if (!CollectionUtils.isEmpty(page.getRecords())){
             String preFixPath = systemDictDataBiz.getPreFixPath(Constants.RESOURCE_PATH, Constants.GOODS_FILE);
-            page.getRecords().forEach(s->s.setImgurl(preFixPath+s.getImgurl()));
+            for (GoodsInfoResponse goodsInfoResponse:page.getRecords()
+                 ) {
+                goodsInfoResponse.setImgurl(StringUtils.isNotBlank(goodsInfoResponse.getImgurl())?(preFixPath+goodsInfoResponse.getImgurl()):null);
+                //sku鍩虹淇℃伅
+                this.getSkuInfo(goodsInfoResponse);
+            }
+        }
+        if(StringUtils.isNotBlank(model.getGoodsName())&&Objects.nonNull(model.getMemberId())){
+            SearchHistory searchHistory = new SearchHistory();
+            searchHistory.setIsdeleted(Constants.ZERO);
+            searchHistory.setContent(model.getGoodsName());
+            searchHistory.setMemberId(model.getMemberId());
+            searchHistory.setType(Constants.ZERO);
+            searchHistoryMapper.insert(searchHistory);
         }
         return page;
     }
@@ -948,41 +986,42 @@
 
         List<GoodsSkuResponse>  goodsSkuResponseList = goodsSkuMapper.getSkuResponseList(goodsResponse.getId());
 
-        String fullUrl = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
-                systemDictDataBiz.queryByCode(Constants.OSS,Constants.GOODS_FILE).getCode();
+//        String fullUrl = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
+//                systemDictDataBiz.queryByCode(Constants.OSS,Constants.GOODS_FILE).getCode();
         Integer sumStock = Constants.ZERO;
         for (GoodsSkuResponse goodsSkuResponse:goodsSkuResponseList) {
-            if(StringUtils.isBlank(goodsSkuResponse.getImgurl())){
-                goodsSkuResponse.setImgurl(fullUrl + goodsSkuResponse.getGoodsImgUrl());
-            }else{
-                goodsSkuResponse.setImgurl(fullUrl + goodsSkuResponse.getImgurl());
-            }
-            //澶勭悊鏁版嵁涓嬫爣
-            String goodsSkuName = goodsSkuResponse.getName();
-            List<String> strList = Arrays.asList(goodsSkuName.split(";"));
-            StringBuffer indexData = new StringBuffer();
-            for (int i = 0; i < strList.size(); i++) {
-                //鏌ヨsku淇℃伅
-                Sku sku =  skuMapper.selectOne(new QueryWrapper<Sku>()
-                        .eq("GOODS_ID",goodsResponse.getId())
-                        .eq("SORTNUM",i+1)
-                        .last(" limit 1 ")
-                );
-                if(Objects.isNull(sku)){
-                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"SKU淇℃伅寮傚父,璇峰埛鏂版煡鐪�");
-                }
-                //鏌ヨSKU_ATTR
-                SkuAttr skuAttr = skuAttrMapper.selectOne(new QueryWrapper<SkuAttr>()
-                        .eq("SKU_ID",sku.getId())
-                        .eq("NAME",strList.get(i))
-                        .last(" limit 1 ")
-                );
-                if(Objects.isNull(skuAttr)){
-                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"SKU淇℃伅寮傚父,璇峰埛鏂版煡鐪�");
-                }
-                indexData.append("," + ( skuAttr.getSortnum()-1));
-            }
-            goodsSkuResponse.setIndexData(indexData.toString().substring(1));
+            goodsSkuResponse.setStock(Objects.isNull(goodsSkuResponse.getStock())?Constants.ZERO:goodsSkuResponse.getStock());
+//            if(StringUtils.isBlank(goodsSkuResponse.getImgurl())){
+//                goodsSkuResponse.setImgurl(fullUrl + goodsSkuResponse.getGoodsImgUrl());
+//            }else{
+//                goodsSkuResponse.setImgurl(fullUrl + goodsSkuResponse.getImgurl());
+//            }
+//            //澶勭悊鏁版嵁涓嬫爣
+//            String goodsSkuName = goodsSkuResponse.getName();
+//            List<String> strList = Arrays.asList(goodsSkuName.split(";"));
+//            StringBuffer indexData = new StringBuffer();
+//            for (int i = 0; i < strList.size(); i++) {
+//                //鏌ヨsku淇℃伅
+//                Sku sku =  skuMapper.selectOne(new QueryWrapper<Sku>()
+//                        .eq("GOODS_ID",goodsResponse.getId())
+//                        .eq("SORTNUM",i)
+//                        .last(" limit 1 ")
+//                );
+//                if(Objects.isNull(sku)){
+//                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"SKU淇℃伅寮傚父,璇峰埛鏂版煡鐪�");
+//                }
+//                //鏌ヨSKU_ATTR
+//                SkuAttr skuAttr = skuAttrMapper.selectOne(new QueryWrapper<SkuAttr>()
+//                        .eq("SKU_ID",sku.getId())
+//                        .eq("NAME",strList.get(i))
+//                        .last(" limit 1 ")
+//                );
+//                if(Objects.isNull(skuAttr)){
+//                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"SKU淇℃伅寮傚父,璇峰埛鏂版煡鐪�");
+//                }
+//                indexData.append("," + ( skuAttr.getSortnum()-1));
+//            }
+//            goodsSkuResponse.setIndexData(indexData.toString().substring(1));
             sumStock = sumStock + goodsSkuResponse.getStock();
         }
         //鐪熷疄閿�閲� = realSaleNum  - saleNum;
@@ -1000,7 +1039,6 @@
         }
         goodsResponse.setSkuResponsesList(skuResponseList);
     }
-
 
     @Override
     public GoodsInfoResponse getGoodsInfo(Integer goodsId,Integer memberId) {
@@ -1033,7 +1071,6 @@
                     .eq(Collect::getObjType,Constants.ONE)
             )>Constants.ZERO?Constants.ONE:Constants.ZERO);
         }
-
         return goodsResponse;
     }
 

--
Gitblit v1.9.3