From e14a6debcb17348164f703fcb2a7b9b1c3608352 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 02 二月 2024 10:19:32 +0800
Subject: [PATCH] 提交版本

---
 meiya-admin/src/main/java/com/sinata/modular/mall/controller/MallGoodsController.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 56 insertions(+), 0 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 f53bdfe..244a52c 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
@@ -1,5 +1,6 @@
 package com.sinata.modular.mall.controller;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
@@ -10,6 +11,7 @@
 import com.sinata.common.enums.EnumIsDelete;
 import com.sinata.common.enums.mall.EnumMallGoodsGroupType;
 import com.sinata.common.enums.mall.EnumMallGoodsState;
+import com.sinata.common.model.GroupSpecGoodsSkuJsonVo;
 import com.sinata.core.base.controller.BaseController;
 import com.sinata.core.base.tips.ErrorTip;
 import com.sinata.core.common.annotion.BussinessLog;
@@ -47,6 +49,9 @@
 
     @Autowired
     private IMallGoodsService mallGoodsService;
+
+    @Autowired
+    private IMallGroupSpecService groupSpecService;
 
     @Autowired
     private IMallGoodsSkuService mallGoodsSkuService;
@@ -527,4 +532,55 @@
                         .in("id", ids.split(","))
         );
     }
+
+    @ResponseBody
+    @BussinessLog(value = "获取商品列表")
+    @GetMapping(value = "/goodsByGoodsSpecId")
+    public List<Map<String, Object>> goodsByIdsList(String goodsIds, Integer groupSpecId, String oldGoodsSkuJson) {
+        List<MallGoods> goodsList = mallGoodsService.selectList(
+                new EntityWrapper<MallGoods>()
+                        .eq("group_type", EnumMallGoodsGroupType.GOODS.index)
+                        .in("id", goodsIds.split(","))
+        );
+
+        List<Map<String, Object>> list;
+        if (groupSpecId != null) {
+            String goodsSkuJson = oldGoodsSkuJson;
+            if (StrUtil.isBlank(goodsSkuJson) || goodsSkuJson.equals("[]")) {
+                // 查询套餐规格组信息
+                MallGroupSpec groupSpec = groupSpecService.selectById(groupSpecId);
+                goodsSkuJson = groupSpec.getGoodsSkuJson();
+            }
+
+            // 格式化套餐规格组数据
+            List<GroupSpecGoodsSkuJsonVo> groupSpecGoodsSkuJsonVoList;
+            if (StrUtil.isBlank(goodsSkuJson) || goodsSkuJson.equals("[]")) {
+                groupSpecGoodsSkuJsonVoList = null;
+            } else {
+                groupSpecGoodsSkuJsonVoList = JSONUtil.parseArray(goodsSkuJson).toList(GroupSpecGoodsSkuJsonVo.class);
+            }
+
+            list = goodsList.stream().map(o -> {
+                Map<String, Object> map = BeanUtil.beanToMap(o);
+                Integer goodsNum = 1;
+                if (groupSpecGoodsSkuJsonVoList != null) {
+                    // 匹配商品数量
+                    for (GroupSpecGoodsSkuJsonVo groupSpecGoodsSkuJsonVo : groupSpecGoodsSkuJsonVoList) {
+                        if (o.getId().equals(groupSpecGoodsSkuJsonVo.getGoodsId())) {
+                            goodsNum = groupSpecGoodsSkuJsonVo.getGoodsNum();
+                        }
+                    }
+                }
+                map.put("goodsNum", goodsNum);
+                return map;
+            }).collect(Collectors.toList());
+        } else {
+            list = goodsList.stream().map(o -> {
+                Map<String, Object> map = BeanUtil.beanToMap(o);
+                map.put("goodsNum", 1);
+                return map;
+            }).collect(Collectors.toList());
+        }
+        return list;
+    }
 }

--
Gitblit v1.7.1