mitao
2024-04-03 e36aa4e9b9f061da11587fbd2580b065a661364a
meiya-admin/src/main/java/com/sinata/modular/mall/controller/MallGoodsGroupController.java
@@ -1,6 +1,7 @@
package com.sinata.modular.mall.controller;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
@@ -9,6 +10,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;
@@ -536,27 +538,52 @@
        );
        return list.stream().map(o -> {
            String[] goodsIds = o.getGoodsIds().split(",");
//            String[] goodsIds = o.getGoodsIds().split(",");
//            List<MallGoods> mallGoodsList = goodsList.stream()
//                    .filter(ggg -> {
//                        for (String gid : goodsIds) {
//                            if (gid.equals(ggg.getId() + "")) {
//                                return true;
//                            }
//                        }
//                        return false;
//                    }).collect(Collectors.toList());
//
//            o.setGoodsNames(
//                    mallGoodsList.stream()
//                            .map(MallGoods::getGoodsName)
//                            .collect(Collectors.joining(","))
//            );
            // 封装显示套餐规格组商品名称、数量
            List<GroupSpecGoodsSkuJsonVo> groupSpecGoodsSkuJsonVoList;
            String goodsSkuJson = o.getGoodsSkuJson();
            if (ObjUtil.isNotEmpty(goodsSkuJson)) {
                groupSpecGoodsSkuJsonVoList = JSONUtil.parseArray(goodsSkuJson).toList(GroupSpecGoodsSkuJsonVo.class);
            } else {
                groupSpecGoodsSkuJsonVoList = null;
            }
            List<MallGoods> mallGoodsList = goodsList.stream()
                    .filter(ggg -> {
                        for (String gid : goodsIds) {
                            if (gid.equals(ggg.getId() + "")) {
                                return true;
                        if (groupSpecGoodsSkuJsonVoList != null) {
                            for (GroupSpecGoodsSkuJsonVo groupSpecGoodsSkuJsonVo : groupSpecGoodsSkuJsonVoList) {
                                if (groupSpecGoodsSkuJsonVo.getGoodsId().equals(ggg.getId())) {
                                    ggg.setStock(groupSpecGoodsSkuJsonVo.getGoodsNum());
                                    return true;
                                }
                            }
                        }
                        return false;
                    }).collect(Collectors.toList());
            o.setGoodsNames(
                    mallGoodsList.stream()
                            .map(MallGoods::getGoodsName)
                            .map(ggg -> ggg.getGoodsName() + "x" + ggg.getStock())
                            .collect(Collectors.joining(","))
            );
            o.setTotalPrice(
                    mallGoodsList.stream()
                            .map(MallGoods::getPrice)
                            .map(ggg -> ggg.getPrice().multiply(BigDecimal.valueOf(ggg.getStock())))
                            .reduce(BigDecimal.ZERO, BigDecimal::add)
            );