From f70f311efde1cd2bb0f01dda311433144c095890 Mon Sep 17 00:00:00 2001 From: wangchen147 <30853657+wangchen147@users.noreply.github.com> Date: Mon, 24 Feb 2025 16:23:24 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"ShopNewcomerSelectPageVo=E7=B1=BB?= =?UTF-8?q?=E5=90=8D=E4=B8=8D=E5=8C=B9=E9=85=8D=E9=97=AE=E9=A2=98=E5=A4=84?= =?UTF-8?q?=E7=90=86"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 992e35ab35df4556e374ac8817e751b8a39240c5. --- .../admin/marketing/IShopNewcomerService.java | 26 - .../impl/ShopNewcomerServiceImpl.java | 468 ------------------ .../vo/ShopNewcomerSelectPageVo.java | 21 - 3 files changed, 515 deletions(-) delete mode 100644 webroot/addon/shop/src/main/java/com/niu/shop/service/admin/marketing/IShopNewcomerService.java delete mode 100644 webroot/addon/shop/src/main/java/com/niu/shop/service/admin/marketing/impl/ShopNewcomerServiceImpl.java delete mode 100644 webroot/addon/shop/src/main/java/com/niu/shop/service/admin/marketing/vo/ShopNewcomerSelectPageVo.java diff --git a/webroot/addon/shop/src/main/java/com/niu/shop/service/admin/marketing/IShopNewcomerService.java b/webroot/addon/shop/src/main/java/com/niu/shop/service/admin/marketing/IShopNewcomerService.java deleted file mode 100644 index b0193f59..00000000 --- a/webroot/addon/shop/src/main/java/com/niu/shop/service/admin/marketing/IShopNewcomerService.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.niu.shop.service.admin.marketing; - -import com.niu.core.common.domain.PageParam; -import com.niu.shop.service.admin.marketing.param.ShopNewcomerSelectPageParam; -import com.niu.shop.service.admin.marketing.param.ShopNewcomerSelectSkuParam; -import com.niu.shop.service.admin.marketing.param.ShopNewcomerSetConfigParam; -import com.niu.shop.service.admin.marketing.param.ShopNewcomerShopGoodsVo; -import com.niu.shop.service.admin.marketing.vo.ShopNewcomerSelectPageVo; -import com.niu.shop.service.admin.marketing.vo.ShopNewcomerConfigVo; -import com.niu.shop.service.admin.marketing.vo.ShopNewcomerSelectSkuVo; - -import java.util.List; - -/** - * 新人专享会员参与记录服务接口 - */ -public interface IShopNewcomerService { - - void setConfig(ShopNewcomerSetConfigParam param); - - ShopNewcomerConfigVo getConfig(); - - ShopNewcomerSelectPageVo getSelectPage(PageParam pageParam, ShopNewcomerSelectPageParam param); - - List getSelectSku(ShopNewcomerSelectSkuParam param); -} diff --git a/webroot/addon/shop/src/main/java/com/niu/shop/service/admin/marketing/impl/ShopNewcomerServiceImpl.java b/webroot/addon/shop/src/main/java/com/niu/shop/service/admin/marketing/impl/ShopNewcomerServiceImpl.java deleted file mode 100644 index 4ea056a9..00000000 --- a/webroot/addon/shop/src/main/java/com/niu/shop/service/admin/marketing/impl/ShopNewcomerServiceImpl.java +++ /dev/null @@ -1,468 +0,0 @@ -package com.niu.shop.service.admin.marketing.impl; - -import cn.hutool.core.collection.CollStreamUtil; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.NumberUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.json.JSONUtil; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONArray; -import com.alibaba.fastjson2.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.niu.core.common.domain.PageParam; -import com.niu.core.common.utils.RequestUtils; -import com.niu.core.common.utils.date.DateUtils; -import com.niu.core.enums.upload.UploadThumbTypeEnum; -import com.niu.core.service.core.sys.ICoreUploadService; -import com.niu.shop.entity.active.ShopActive; -import com.niu.shop.entity.active.ShopActiveGoods; -import com.niu.shop.entity.goods.ShopGoods; -import com.niu.shop.entity.goods.ShopGoodsSku; -import com.niu.shop.enums.active.ActiveClassEnum; -import com.niu.shop.enums.active.ActiveGoodsTypeEnum; -import com.niu.shop.enums.active.ActiveStatusEnum; -import com.niu.shop.enums.active.ActiveTypeEnum; -import com.niu.shop.enums.goods.GoodsTypeEnum; -import com.niu.shop.mapper.active.ShopActiveGoodsMapper; -import com.niu.shop.mapper.active.ShopActiveMapper; -import com.niu.shop.mapper.goods.ShopGoodsMapper; -import com.niu.shop.mapper.goods.ShopGoodsSkuMapper; -import com.niu.shop.service.admin.marketing.IShopNewcomerService; -import com.niu.shop.service.admin.marketing.param.ShopNewcomerSelectPageParam; -import com.niu.shop.service.admin.marketing.param.ShopNewcomerSelectSkuParam; -import com.niu.shop.service.admin.marketing.param.ShopNewcomerSetConfigParam; -import com.niu.shop.service.admin.marketing.param.ShopNewcomerShopGoodsVo; -import com.niu.shop.service.admin.marketing.vo.ShopNewcomerSelectPageVo; -import com.niu.shop.service.admin.marketing.vo.ShopNewcomerConfigVo; -import com.niu.shop.service.admin.marketing.vo.ShopNewcomerSelectSkuVo; -import com.niu.shop.service.core.marketing.ICoreActiveService; -import com.niu.shop.service.core.marketing.ICoreShopNewcomerService; -import com.niu.shop.service.core.marketing.model.ShopManjianGoodsData; -import com.niu.shop.service.core.marketing.model.ShopNewcomerActiveValue; -import com.niu.shop.service.core.marketing.vo.CoreShopNewcomerConfigVo; -import lombok.RequiredArgsConstructor; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.math.BigDecimal; -import java.util.*; -import java.util.stream.Collectors; - - -/** - * 新人专享会员参与记录实现 - */ -@Service -@RequiredArgsConstructor -public class ShopNewcomerServiceImpl implements IShopNewcomerService { - private final ShopGoodsMapper shopGoodsMapper; - private final ShopActiveMapper shopActiveMapper; - private final ICoreActiveService coreActiveService; - private final ICoreUploadService coreUploadService; - private final ShopGoodsSkuMapper shopGoodsSkuMapper; - private final ShopActiveGoodsMapper shopActiveGoodsMapper; - private final ICoreShopNewcomerService coreShopNewcomerService; - - @Override - public ShopNewcomerConfigVo getConfig() { - CoreShopNewcomerConfigVo config = coreShopNewcomerService.getConfig(RequestUtils.siteId()); - ShopNewcomerConfigVo vo = new ShopNewcomerConfigVo(); - BeanUtils.copyProperties(config, vo); - if (ObjectUtil.isEmpty(config)) { - return vo; - } - - LambdaQueryWrapper shopActiveGoodsLambdaQueryWrapper = new LambdaQueryWrapper<>(); - shopActiveGoodsLambdaQueryWrapper.eq(ShopActiveGoods::getSiteId, RequestUtils.siteId()) - .eq(ShopActiveGoods::getActiveId, config.getActiveId()) - .eq(ShopActiveGoods::getActiveClass, ActiveClassEnum.NEWCOMER_DISCOUNT.getType()); - List shopActiveGoods = shopActiveGoodsMapper.selectList(shopActiveGoodsLambdaQueryWrapper); - - Set goodsIds = CollStreamUtil.toSet(shopActiveGoods, ShopActiveGoods::getGoodsId); - Map goodsMap = Collections.emptyMap(); - if (ObjectUtil.isNotEmpty(goodsIds)) { - goodsMap = shopGoodsMapper.selectBatchIds(goodsIds).stream().collect(Collectors.toMap(ShopGoods::getGoodsId, e -> e)); - } - - Set skuIds = CollStreamUtil.toSet(shopActiveGoods, ShopActiveGoods::getSkuId); - Map skuMap = Collections.emptyMap(); - if (ObjectUtil.isNotEmpty(skuIds)) { - skuMap = shopGoodsSkuMapper.selectBatchIds(skuIds).stream().collect(Collectors.toMap(ShopGoodsSku::getSkuId, e -> e)); - } - - List activeGoodsList = new ArrayList<>(shopActiveGoods.size()); - for (ShopActiveGoods shopActiveGood : shopActiveGoods) { - ShopGoods goods = goodsMap.getOrDefault(shopActiveGood.getGoodsId(), new ShopGoods()); - ShopGoodsSku sku = skuMap.getOrDefault(shopActiveGood.getSkuId(), new ShopGoodsSku()); - - ShopNewcomerConfigVo.ActiveGoods activeGoods = new ShopNewcomerConfigVo.ActiveGoods(); - activeGoods.setGoodsId(shopActiveGood.getGoodsId()); - activeGoods.setSkuId(shopActiveGood.getSkuId()); - activeGoods.setGoodsName(goods.getGoodsName()); - activeGoods.setGoodsType(goods.getGoodsType()); - activeGoods.setGoodsTypeName(GoodsTypeEnum.getNameByType(goods.getGoodsType())); - activeGoods.setSkuName(sku.getSkuName()); - activeGoods.setSkuImage(sku.getSkuImage()); - activeGoods.setPrice(sku.getPrice()); - activeGoods.setStock(sku.getStock()); - if (shopActiveGood.getActiveGoodsValue().startsWith("[")) { - activeGoods.setActiveGoodsValue(JSONUtil.parseArray(shopActiveGood.getActiveGoodsValue())); - } else { - activeGoods.setActiveGoodsValue(JSONUtil.parseObj(shopActiveGood.getActiveGoodsValue())); - } - - ShopNewcomerConfigVo.Goods goodsData = new ShopNewcomerConfigVo.Goods(); - BeanUtils.copyProperties(goods, goodsData); - goodsData.setGoodsTypeName(GoodsTypeEnum.getNameByType(goods.getGoodsType())); - activeGoods.setGoods(goodsData); - - ShopNewcomerConfigVo.GoodsSkuOne goodsSkuOne = new ShopNewcomerConfigVo.GoodsSkuOne(); - BeanUtils.copyProperties(sku, goodsSkuOne); - activeGoods.setGoodsSkuOne(goodsSkuOne); - - activeGoodsList.add(activeGoods); - } - - vo.setActiveGoods(activeGoodsList); - return vo; - } - - @Override - @Transactional - public void setConfig(ShopNewcomerSetConfigParam param) { - List goodsDataList = JSONArray.parseArray(param.getGoodsData(), ShopManjianGoodsData.class); - if (ActiveStatusEnum.ACTIVE.equals(ActiveStatusEnum.getEnumByStatus(param.getActiveStatus()))) { - checkGoods(goodsDataList); - } - - ShopNewcomerActiveValue activeValue = new ShopNewcomerActiveValue(); - activeValue.setValidityType(param.getValidityType()); - activeValue.setValidityDay(param.getValidityDay()); - activeValue.setValidityTime(ObjectUtil.isEmpty(param.getValidityTime()) ? 0 : DateUtils.StringToTimestamp(param.getValidityTime())); - activeValue.setParticipationWay(param.getParticipationWay()); - activeValue.setAppointTime(ObjectUtil.isEmpty(param.getAppointTime()) ? 0 : DateUtils.StringToTimestamp(param.getAppointTime())); - activeValue.setLimitNum(param.getLimitNum()); - activeValue.setBannerList(param.getBannerList()); - - List activeGoods = new ArrayList<>(CollectionUtil.size(goodsDataList)); - for (ShopManjianGoodsData goodsData : goodsDataList) { - ShopActiveGoods goods = new ShopActiveGoods(); - goods.setSiteId(RequestUtils.siteId()); - goods.setGoodsId(goodsData.getGoodsId()); - goods.setActiveGoodsType(ActiveGoodsTypeEnum.GOODS_SINGLE.getType()); - goods.setActiveClass(ActiveClassEnum.NEWCOMER_DISCOUNT.getType()); - goods.setActiveGoodsValue(JSON.toJSONString(goodsData)); - goods.setSkuId(goodsData.getSkuId()); - goods.setActiveGoodsStatus(param.getActiveStatus()); - goods.setActiveGoodsPrice(NumberUtil.toBigDecimal(goodsData.getNewcomerPrice())); - activeGoods.add(goods); - } - - LambdaQueryWrapper activeLambdaQueryWrapper = new LambdaQueryWrapper<>(); - activeLambdaQueryWrapper.eq(ShopActive::getSiteId, RequestUtils.siteId()) - .eq(ShopActive::getActiveClass, ActiveClassEnum.NEWCOMER_DISCOUNT.getType()); - ShopActive active = shopActiveMapper.selectOne(activeLambdaQueryWrapper); - if (ObjectUtil.isEmpty(active)) { - ShopActive shopActive = new ShopActive(); - shopActive.setActiveDesc(param.getActiveDesc()); - shopActive.setSiteId(RequestUtils.siteId()); - shopActive.setActiveGoodsInfo(param.getGoodsData()); - shopActive.setActiveType(ActiveTypeEnum.GOODS.getType()); - shopActive.setActiveGoodsType(ActiveGoodsTypeEnum.GOODS_SINGLE.getType()); - shopActive.setActiveClass(ActiveClassEnum.NEWCOMER_DISCOUNT.getType()); - shopActive.setActiveValue(JSON.toJSONString(activeValue)); - shopActive.setActiveStatus(param.getActiveStatus()); - coreActiveService.add(shopActive, activeGoods); - return; - } - - active.setSiteId(RequestUtils.siteId()); - active.setActiveStatus(param.getActiveStatus()); - active.setActiveDesc(param.getActiveDesc()); - active.setActiveGoodsInfo(param.getGoodsData()); - active.setActiveType(ActiveTypeEnum.GOODS.getType()); - active.setActiveGoodsType(ActiveGoodsTypeEnum.GOODS_SINGLE.getType()); - active.setActiveClass(ActiveClassEnum.NEWCOMER_DISCOUNT.getType()); - active.setActiveValue(JSON.toJSONString(activeValue)); - activeGoods.forEach(goods -> goods.setActiveId(active.getActiveId())); - coreActiveService.edit(active, activeGoods); - } - - @Override - public ShopNewcomerSelectPageVo getSelectPage(PageParam pageParam, ShopNewcomerSelectPageParam param) { - Integer page = pageParam.getPage(); - Integer limit = pageParam.getLimit(); - - LambdaQueryWrapper shopActiveGoodsLambdaQueryWrapper = new LambdaQueryWrapper<>(); - shopActiveGoodsLambdaQueryWrapper.eq(ShopActiveGoods::getSiteId, RequestUtils.siteId()) - .eq(ShopActiveGoods::getActiveClass, ActiveClassEnum.NEWCOMER_DISCOUNT.getType()); - List shopActiveGoods = shopActiveGoodsMapper.selectList(shopActiveGoodsLambdaQueryWrapper); - - Set activeGoodsIds = CollStreamUtil.toSet(shopActiveGoods, ShopActiveGoods::getGoodsId); - Set activeSkuIds = CollStreamUtil.toSet(shopActiveGoods, ShopActiveGoods::getSkuId); - - LambdaQueryWrapper shopGoodsLambdaQueryWrapper = new LambdaQueryWrapper<>(); - shopGoodsLambdaQueryWrapper.eq(ShopGoods::getSiteId, RequestUtils.siteId()) - .orderByDesc(ShopGoods::getSort) - .orderByDesc(ShopGoods::getCreateTime); - - if (ObjectUtil.isNotEmpty(param.getGoodsCategory())) { - shopGoodsLambdaQueryWrapper.eq(ShopGoods::getGoodsCategory, param.getGoodsCategory()); - } - if (ObjectUtil.isNotEmpty(param.getGoodsType())) { - shopGoodsLambdaQueryWrapper.eq(ShopGoods::getGoodsType, param.getGoodsType()); - } - if (ObjectUtil.isNotEmpty(param.getKeyword())) { - shopGoodsLambdaQueryWrapper.and(wrapper -> - wrapper.like(ShopGoods::getGoodsName, param.getKeyword()).or().like(ShopGoods::getSubTitle, param.getKeyword())); - } - - switch (param.getSelectType()) { - case "all": - shopGoodsLambdaQueryWrapper.gt(ShopGoods::getStock, 0) - .eq(ShopGoods::getStatus, 1); - if (ObjectUtil.isNotEmpty(activeGoodsIds)) { - shopGoodsLambdaQueryWrapper.in(ShopGoods::getGoodsId, activeGoodsIds); - } - break; - case "selected": - shopGoodsLambdaQueryWrapper.in(ShopGoods::getGoodsId, ObjectUtil.isEmpty(param.getGoodsIds()) ? List.of(-1) : param.getGoodsIds()); - break; - } - - Page iPage = shopGoodsMapper.selectPage(new Page<>(page, limit), shopGoodsLambdaQueryWrapper); - Set goodsIds = CollStreamUtil.toSet(iPage.getRecords(), ShopGoods::getGoodsId); - - LambdaQueryWrapper shopGoodsSkuLambdaQueryWrapper = new LambdaQueryWrapper<>(); - shopGoodsSkuLambdaQueryWrapper.eq(ShopGoodsSku::getIsDefault, 1); - if (ObjectUtil.isNotEmpty(activeGoodsIds)) { - shopGoodsSkuLambdaQueryWrapper.in(ShopGoodsSku::getSkuId, activeSkuIds); - } - - if (ObjectUtil.isNotEmpty(goodsIds)) { - shopGoodsSkuLambdaQueryWrapper.in(ShopGoodsSku::getGoodsId, goodsIds); - } - - Map> skuMap = shopGoodsSkuMapper.selectList(shopGoodsSkuLambdaQueryWrapper) - .stream() - .collect(Collectors.groupingBy(ShopGoodsSku::getGoodsId)); - - Map activeGoodsMap = shopActiveGoods - .stream() - .collect(Collectors.toMap(ShopActiveGoods::getSkuId, e -> e)); - - List voList = new ArrayList<>(iPage.getRecords().size()); - for (ShopGoods record : iPage.getRecords()) { - ShopNewcomerShopGoodsVo vo = new ShopNewcomerShopGoodsVo(); - BeanUtils.copyProperties(record, vo); - List skus = skuMap.getOrDefault(record.getGoodsId(), new ArrayList<>()); - if (ObjectUtil.isEmpty(skus)) { - continue; - } - - List skuList = new ArrayList<>(skus.size()); - for (ShopGoodsSku sku : skus) { - ShopActiveGoods activeGoods = activeGoodsMap.get(sku.getSkuId()); - if (activeGoods == null) { - continue; - } - - ShopNewcomerShopGoodsVo.GoodsSku skuVo = new ShopNewcomerShopGoodsVo.GoodsSku(); - BeanUtils.copyProperties(sku, skuVo); - JSONObject activeGoodsValue = JSON.parseObject(activeGoods.getActiveGoodsValue()); - BigDecimal newcomerPrice = Optional.ofNullable(activeGoodsValue.getBigDecimal("newcomer_price")).orElse(BigDecimal.ZERO); - skuVo.setNewcomerPrice(newcomerPrice); - skuList.add(skuVo); - - if (sku.getIsDefault() == 1) { - if (!activeSkuIds.contains(sku.getSkuId())) { - skuVo.setNewcomerPrice(skuList.get(0).getNewcomerPrice()); - } - - vo.setGoodsSku(skuVo); - } - } - - vo.setSkuList(skuList); - - String small = coreUploadService.thumb(RequestUtils.siteId(), vo.getGoodsCover(), UploadThumbTypeEnum.SMALL.getType()).getDataMap().get(UploadThumbTypeEnum.SMALL.getType()); - String mid = coreUploadService.thumb(RequestUtils.siteId(), vo.getGoodsCover(), UploadThumbTypeEnum.MID.getType()).getDataMap().get(UploadThumbTypeEnum.MID.getType()); - vo.setGoodsCoverThumbSmall(small); - vo.setGoodsCoverThumbMid(mid); - - voList.add(vo); - } - - List verifyGoodsId = Collections.emptyList(); - if (ObjectUtil.isAllNotEmpty(param.getVerifyGoodsIds(), activeGoodsIds)) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.in(ShopGoods::getGoodsId, param.getVerifyGoodsIds()) - .eq(ShopGoods::getStatus, 1); - verifyGoodsId = shopGoodsMapper.selectList(queryWrapper) - .stream() - .map(ShopGoods::getGoodsId) - .filter(activeGoodsIds::contains) - .collect(Collectors.toList()); - } - - List verifySkuIds = Collections.emptyList(); - if (ObjectUtil.isAllNotEmpty(param.getVerifySkuIds(), activeSkuIds)) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.in(ShopGoodsSku::getSkuId, param.getVerifySkuIds()); - verifySkuIds = shopGoodsSkuMapper.selectList(queryWrapper) - .stream() - .map(ShopGoodsSku::getSkuId) - .filter(activeSkuIds::contains) - .collect(Collectors.toList()); - } - - ShopNewcomerSelectPageVo vo = new ShopNewcomerSelectPageVo<>(iPage, voList); - return vo.setVerifyGoodsIds(verifyGoodsId) - .setVerifySkuIds(verifySkuIds); - } - - @Override - public List getSelectSku(ShopNewcomerSelectSkuParam param) { - LambdaQueryWrapper shopActiveGoodsLambdaQueryWrapper = new LambdaQueryWrapper<>(); - shopActiveGoodsLambdaQueryWrapper.eq(ShopActiveGoods::getSiteId, RequestUtils.siteId()) - .eq(ShopActiveGoods::getActiveClass, ActiveClassEnum.NEWCOMER_DISCOUNT.getType()) - .eq(ShopActiveGoods::getActiveGoodsStatus, ActiveStatusEnum.ACTIVE.getStatus()); - List shopActiveGoods = shopActiveGoodsMapper.selectList(shopActiveGoodsLambdaQueryWrapper); - - Set activeGoodsIds = CollStreamUtil.toSet(shopActiveGoods, ShopActiveGoods::getGoodsId); - Set activeSkuIds = CollStreamUtil.toSet(shopActiveGoods, ShopActiveGoods::getSkuId); - - // 检测商品id集合是否存在,移除不存在的商品id,纠正数据准确性 - List list = new LinkedList<>(); - if (ObjectUtil.isAllNotEmpty(param.getVerifyGoodsIds(), activeGoodsIds)) { - LambdaQueryWrapper shopGoodsLambdaQueryWrapper = new LambdaQueryWrapper<>(); - shopGoodsLambdaQueryWrapper.in(ShopGoods::getGoodsId, param.getVerifyGoodsIds()) - .eq(ShopGoods::getStatus, 1); - List verifyGoodsIds = shopGoodsMapper.selectList(shopGoodsLambdaQueryWrapper) - .stream() - .map(ShopGoods::getGoodsId) - .filter(activeGoodsIds::contains) - .collect(Collectors.toList()); - - shopGoodsLambdaQueryWrapper.clear(); - shopGoodsLambdaQueryWrapper.in(ShopGoods::getGoodsId, verifyGoodsIds) - .orderByDesc(ShopGoods::getSort) - .orderByDesc(ShopGoods::getCreateTime); - List shopGoods = shopGoodsMapper.selectList(shopGoodsLambdaQueryWrapper); - Set goodsIds = CollStreamUtil.toSet(shopGoods, ShopGoods::getGoodsId); - - LambdaQueryWrapper shopGoodsSkuLambdaQueryWrapper = new LambdaQueryWrapper<>(); - shopGoodsSkuLambdaQueryWrapper.in(ShopGoodsSku::getGoodsId, goodsIds); - - Map> skuMap = shopGoodsSkuMapper.selectList(shopGoodsSkuLambdaQueryWrapper) - .stream() - .collect(Collectors.groupingBy(ShopGoodsSku::getGoodsId)); - - for (ShopGoods shopGood : shopGoods) { - ShopNewcomerSelectSkuVo vo = new ShopNewcomerSelectSkuVo(); - BeanUtils.copyProperties(shopGood, vo); - vo.setGoodsTypeName(GoodsTypeEnum.getNameByType(shopGood.getGoodsType())); - vo.setGoodsCoverThumbSmall(coreUploadService.thumb(RequestUtils.siteId(), shopGood.getGoodsCover(), UploadThumbTypeEnum.SMALL.getType()).getDataMap().get(UploadThumbTypeEnum.SMALL.getType())); - vo.setGoodsCoverThumbMid(coreUploadService.thumb(RequestUtils.siteId(), shopGood.getGoodsCover(), UploadThumbTypeEnum.MID.getType()).getDataMap().get(UploadThumbTypeEnum.MID.getType())); - List shopGoodsSkuList = skuMap.getOrDefault(shopGood.getGoodsId(), new ArrayList<>()); - - List skuList = new ArrayList<>(shopGoodsSkuList.size()); - for (ShopGoodsSku sku : shopGoodsSkuList) { - ShopNewcomerSelectSkuVo.Sku skuVo = new ShopNewcomerSelectSkuVo.Sku(); - BeanUtils.copyProperties(sku, skuVo); - JSONObject activeGoodsValue = JSON.parseObject(shopActiveGoods.get(sku.getSkuId()).getActiveGoodsValue()); - skuVo.setNewcomerPrice(Optional.ofNullable(activeGoodsValue.getBigDecimal("newcomer_price")).orElse(BigDecimal.ZERO)); - - if (sku.getIsDefault() == 1) { - if (!activeSkuIds.contains(sku.getSkuId())) { - skuVo.setNewcomerPrice(skuList.get(0).getNewcomerPrice()); - } - - vo.setGoodsSku(skuVo); - } - - skuList.add(skuVo); - } - list.add(vo); - } - } - - // 检测商品id集合是否存在,移除不存在的商品id,纠正数据准确性 - if (ObjectUtil.isAllNotEmpty(param.getVerifySkuIds(), activeSkuIds)) { - LambdaQueryWrapper shopGoodsSkuLambdaQueryWrapper = new LambdaQueryWrapper<>(); - shopGoodsSkuLambdaQueryWrapper.in(ShopGoodsSku::getSkuId, param.getVerifySkuIds()); - List skus = shopGoodsSkuMapper.selectList(shopGoodsSkuLambdaQueryWrapper) - .stream() - .filter(sku -> activeSkuIds.contains(sku.getSkuId())) - .collect(Collectors.toList()); - - Set skuIds = CollStreamUtil.toSet(skus, ShopGoodsSku::getSkuId); - - shopGoodsSkuLambdaQueryWrapper.clear(); - shopGoodsSkuLambdaQueryWrapper.in(ShopGoodsSku::getSkuId, skuIds); - Set goodsIds = shopGoodsSkuMapper.selectList(shopGoodsSkuLambdaQueryWrapper) - .stream() - .map(ShopGoodsSku::getGoodsId) - .collect(Collectors.toSet()); - - LambdaQueryWrapper shopGoodsLambdaQueryWrapper = new LambdaQueryWrapper<>(); - shopGoodsLambdaQueryWrapper.in(ShopGoods::getGoodsId, goodsIds) - .orderByDesc(ShopGoods::getSort) - .orderByDesc(ShopGoods::getCreateTime); - List shopGoods = shopGoodsMapper.selectList(shopGoodsLambdaQueryWrapper); - - shopGoodsSkuLambdaQueryWrapper.clear(); - shopGoodsSkuLambdaQueryWrapper.in(ShopGoodsSku::getSkuId, skuIds) - .in(ShopGoodsSku::getGoodsId, CollStreamUtil.toSet(shopGoods, ShopGoods::getGoodsId)); - Map> goodsSkuMap = shopGoodsSkuMapper.selectList(shopGoodsSkuLambdaQueryWrapper) - .stream() - .collect(Collectors.groupingBy(ShopGoodsSku::getGoodsId)); - - Map shopActiveGoodsMap = shopActiveGoods.stream().collect(Collectors.toMap(ShopActiveGoods::getSkuId, e -> e)); - - for (ShopGoods shopGood : shopGoods) { - ShopNewcomerSelectSkuVo vo = new ShopNewcomerSelectSkuVo(); - BeanUtils.copyProperties(shopGood, vo); - List skuList = goodsSkuMap.get(shopGood.getGoodsId()); - if (ObjectUtil.hasEmpty(skus, shopActiveGoods)) { - continue; - } - - List skuVoList = new ArrayList<>(skuList.size()); - for (ShopGoodsSku sku : skuList) { - ShopNewcomerSelectSkuVo.Sku skuVo = new ShopNewcomerSelectSkuVo.Sku(); - BeanUtils.copyProperties(sku, skuVo); - ShopActiveGoods activeGoods = shopActiveGoodsMap.get(sku.getSkuId()); - JSONObject activeGoodsValue = JSON.parseObject(activeGoods.getActiveGoodsValue()); - skuVo.setNewcomerPrice(Optional.ofNullable(activeGoodsValue.getBigDecimal("newcomer_price")).orElse(BigDecimal.ZERO)); - - if (sku.getIsDefault() == 1) { - skuVo.setNewcomerPrice(skuVoList.get(0).getNewcomerPrice()); - } - - skuVoList.add(skuVo); - } - - list.add(vo); - } - } - - return list; - } - - private void checkGoods(List goodsData) { - if (ObjectUtil.isEmpty(goodsData)) { - throw new RuntimeException("请选择参与活动商品"); - } - for (ShopManjianGoodsData goods : goodsData) { - if (ObjectUtil.isEmpty(goods)) { - throw new RuntimeException("商品规格不能为空"); - } - if (ObjectUtil.isEmpty(goods.getNewcomerPrice())) { - throw new RuntimeException("新人价不能为空"); - } - } - } -} diff --git a/webroot/addon/shop/src/main/java/com/niu/shop/service/admin/marketing/vo/ShopNewcomerSelectPageVo.java b/webroot/addon/shop/src/main/java/com/niu/shop/service/admin/marketing/vo/ShopNewcomerSelectPageVo.java deleted file mode 100644 index b8399fb5..00000000 --- a/webroot/addon/shop/src/main/java/com/niu/shop/service/admin/marketing/vo/ShopNewcomerSelectPageVo.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.niu.shop.service.admin.marketing.vo; - -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.niu.core.common.domain.PageResult; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - -import java.util.List; - -@Data -@Accessors(chain = true) -@EqualsAndHashCode(callSuper = true) -public class ShopNewcomerSelectPageVo extends PageResult { - private List verifyGoodsIds; - private List verifySkuIds; - - public ShopNewcomerSelectPageVo(Page page, List list) { - super(page.getCurrent(), page.getSize(), page.getTotal(), list); - } -}