From ab4ea7b8f10c9b66aed9c2ea161a08b25c3851a7 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期二, 30 四月 2024 19:11:37 +0800
Subject: [PATCH] 2024.04新增内容

---
 meiya-admin/src/main/java/com/sinata/modular/mall/controller/MallGoodsController.java |   67 ++++++++++++++++++++++++---------
 1 files changed, 48 insertions(+), 19 deletions(-)

diff --git a/meiya-admin/src/main/java/com/sinata/modular/mall/controller/MallGoodsController.java b/meiya-admin/src/main/java/com/sinata/modular/mall/controller/MallGoodsController.java
index 244a52c..39ab6fd 100644
--- a/meiya-admin/src/main/java/com/sinata/modular/mall/controller/MallGoodsController.java
+++ b/meiya-admin/src/main/java/com/sinata/modular/mall/controller/MallGoodsController.java
@@ -19,9 +19,11 @@
 import com.sinata.core.common.constant.factory.PageFactory;
 import com.sinata.core.common.exception.BizExceptionEnum;
 import com.sinata.core.log.LogObjectHolder;
+import com.sinata.core.shiro.ShiroKit;
 import com.sinata.core.util.Convert;
 import com.sinata.core.util.DateUtils2;
 import com.sinata.core.util.ExcelExportUtil;
+import com.sinata.core.util.SpringContextHolder;
 import com.sinata.modular.mall.model.*;
 import com.sinata.modular.mall.service.*;
 import org.apache.commons.collections.CollectionUtils;
@@ -125,7 +127,7 @@
     public List<MallGoodsSku> getGoodsSpecData(Integer goodsId) {
         List<MallGoodsSku> skuList = mallGoodsSkuService.selectList(
                 new EntityWrapper<MallGoodsSku>()
-                        .setSqlSelect("spec_ids id, grep_name, stock")
+                        .setSqlSelect("spec_ids id, grep_name, stock,price_sale,price_member")
                         .eq("goods_id", goodsId)
                         .eq("merchant_id", 0)
         );
@@ -453,25 +455,47 @@
             wrapper.eq("group_type", groupType);
         }
         List<MallGoods> goodsList = mallGoodsService.selectList(wrapper);
-        List<HashMap<String, Object>> goodsMapList = goodsList.stream().map(goods -> {
-            HashMap<String, Object> goodMap = new HashMap<>();
-            //商品编号
-            goodMap.put("aGoodsNo", goods.getGoodsNo());
-            goodMap.put("bName", goods.getGoodsName());
-            goodMap.put("cGroupType", goods.getGroupType());
-            String groupTypName = goods.getGroupType() > 0 ? (goods.getGroupType() == 1 ? "黄金套餐" : "钻石套餐") : "普通商品";
-            goodMap.put("cGroupTypeName", groupTypName);
-            goodMap.put("dPrice", goods.getPrice());
-            goodMap.put("dPriceDale", goods.getPriceSale());
-            goodMap.put("ePriceMember", goods.getPriceMember());
-            goodMap.put("fStock", goods.getStock());
-            goodMap.put("gBuyCount", goods.getBuyCount());
-            goodMap.put("hId", goods.getId());
-            return goodMap;
-        }).collect(Collectors.toList());
+        Set<Integer> goodsIdList = goodsList.stream().map(MallGoods::getId).collect(Collectors.toSet());
+        Wrapper skuWrapper = new EntityWrapper<MallGoodsSku>().in("goods_id", goodsIdList)
+                .eq("merchant_id", 0).orderBy("id", false);
+        List<MallGoodsSku> skuList = mallGoodsSkuService.selectList(skuWrapper);
+        List<HashMap<String, Object>> result = new ArrayList<>();
+        goodsList.forEach(goods -> {
+            List<MallGoodsSku> goodsSkuList = skuList.stream()
+                    .filter(sku -> sku.getGoodsId().equals(goods.getId()))
+                    .collect(Collectors.toList());
+            List<HashMap<String, Object>> goodsMapList = goodsSkuList.stream().map(sku -> {
+                HashMap<String, Object> goodMap = new HashMap<>();
+                //商品编号
+                goodMap.put("aGoodsNo", goods.getGoodsNo());
+                goodMap.put("bName", goods.getGoodsName());
+                goodMap.put("bbGrepName", sku.getGrepName());
+                goodMap.put("cGroupType", goods.getGroupType());
+                String groupTypName = goods.getGroupType() > 0 ? (goods.getGroupType() == 1 ? "黄金套餐"
+                        : "钻石套餐") : "普通商品";
+                goodMap.put("cGroupTypeName", groupTypName);
+                goodMap.put("dPrice", goods.getPrice());
+                goodMap.put("dPriceDale", sku.getPriceSale());
+                goodMap.put("ePriceMember", sku.getPriceMember());
+                goodMap.put("fStock", sku.getStock());
+                goodMap.put("gBuyCount", goods.getBuyCount());
+                goodMap.put("hId", goods.getId());
+                goodMap.put("iSpecIds", sku.getSpecIds());
+                goodMap.put("jSkuId", sku.getId());
+                return goodMap;
+            }).collect(Collectors.toList());
+            result.addAll(goodsMapList);
+        });
+        /*for (int i = 0; i < result.size(); i++) {
+            for (int j = i+1; j < result.size(); j++) {
+                if (result.get(i).get("hId").equals(result.get(j).get("hId"))) {
+                    result.get(j).put("bName","");
+                }
+            }
+        }*/
         return new HashMap<String, Object>() {{
             put("code", 200);
-            put("value", goodsMapList);
+            put("value", result);
         }};
     }
 
@@ -488,7 +512,7 @@
 
     @BussinessLog(value = "获取商品规格")
     @RequestMapping(value = "/getGoodsSpecs")
-    public Object getGoodsSpecs(Integer oneClassifyId, Integer twoClassifyId, Model model) {
+    public Object getGoodsSpecs(Integer oneClassifyId, Integer twoClassifyId,@RequestParam(required = false) List<String> selectedItems, Model model) {
         Wrapper<MallGoodsSpec> wrapper = new EntityWrapper<MallGoodsSpec>()
                 .eq("is_delete", EnumIsDelete.EXISTED.index)
                 .addFilter("concat(',',classify_id_one,',') like concat( '%,', {0}, ',%' )", oneClassifyId);
@@ -496,6 +520,11 @@
         if (CollectionUtils.isEmpty(goodsSpecs)) {
             goodsSpecs = Lists.newArrayList();
         }
+        if (!selectedItems.isEmpty()) {
+            goodsSpecs = goodsSpecs.stream()
+                    .filter(specs -> !selectedItems.contains(specs.getSpecName())).collect(
+                            Collectors.toList());
+        }
         model.addAttribute("goodsSpecs", goodsSpecs);
         return PREFIX + "add_specs.html";
     }

--
Gitblit v1.7.1