Commit a55ca877097c5ad9e2587072048cb36180c5c256

Authored by YunaiV
1 parent cf6f3eaa

【代码修复】MALL:秒杀活动的商品拼接不正确的问题

Showing 8 changed files with 13 additions and 13 deletions
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/SeckillActivityController.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi; 6 import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi;
7 import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO; 7 import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO;
8 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.*; 8 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.*;
9 -import cn.iocoder.yudao.module.promotion.convert.seckill.seckillactivity.SeckillActivityConvert; 9 +import cn.iocoder.yudao.module.promotion.convert.seckill.SeckillActivityConvert;
10 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillActivityDO; 10 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillActivityDO;
11 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillProductDO; 11 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillProductDO;
12 import cn.iocoder.yudao.module.promotion.service.seckill.SeckillActivityService; 12 import cn.iocoder.yudao.module.promotion.service.seckill.SeckillActivityService;
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/seckill/SeckillConfigController.java
@@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; @@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.*; 6 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.*;
7 -import cn.iocoder.yudao.module.promotion.convert.seckill.seckillconfig.SeckillConfigConvert; 7 +import cn.iocoder.yudao.module.promotion.convert.seckill.SeckillConfigConvert;
8 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillConfigDO; 8 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillConfigDO;
9 import cn.iocoder.yudao.module.promotion.service.seckill.SeckillConfigService; 9 import cn.iocoder.yudao.module.promotion.service.seckill.SeckillConfigService;
10 import io.swagger.v3.oas.annotations.Operation; 10 import io.swagger.v3.oas.annotations.Operation;
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/AppSeckillActivityController.java
@@ -12,7 +12,7 @@ import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppS @@ -12,7 +12,7 @@ import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppS
12 import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppSeckillActivityNowRespVO; 12 import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppSeckillActivityNowRespVO;
13 import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppSeckillActivityPageReqVO; 13 import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppSeckillActivityPageReqVO;
14 import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppSeckillActivityRespVO; 14 import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppSeckillActivityRespVO;
15 -import cn.iocoder.yudao.module.promotion.convert.seckill.seckillactivity.SeckillActivityConvert; 15 +import cn.iocoder.yudao.module.promotion.convert.seckill.SeckillActivityConvert;
16 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillActivityDO; 16 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillActivityDO;
17 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillConfigDO; 17 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillConfigDO;
18 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillProductDO; 18 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillProductDO;
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/seckill/AppSeckillConfigController.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.promotion.controller.app.seckill; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.promotion.controller.app.seckill;
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5 import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.config.AppSeckillConfigRespVO; 5 import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.config.AppSeckillConfigRespVO;
6 -import cn.iocoder.yudao.module.promotion.convert.seckill.seckillconfig.SeckillConfigConvert; 6 +import cn.iocoder.yudao.module.promotion.convert.seckill.SeckillConfigConvert;
7 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillConfigDO; 7 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillConfigDO;
8 import cn.iocoder.yudao.module.promotion.service.seckill.SeckillConfigService; 8 import cn.iocoder.yudao.module.promotion.service.seckill.SeckillConfigService;
9 import io.swagger.v3.oas.annotations.Operation; 9 import io.swagger.v3.oas.annotations.Operation;
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/seckillactivity/SeckillActivityConvert.java renamed to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/SeckillActivityConvert.java
1 -package cn.iocoder.yudao.module.promotion.convert.seckill.seckillactivity; 1 +package cn.iocoder.yudao.module.promotion.convert.seckill;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 4 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
@@ -14,7 +14,6 @@ import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.product.Sec @@ -14,7 +14,6 @@ import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.product.Sec
14 import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppSeckillActivityDetailRespVO; 14 import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppSeckillActivityDetailRespVO;
15 import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppSeckillActivityNowRespVO; 15 import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppSeckillActivityNowRespVO;
16 import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppSeckillActivityRespVO; 16 import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppSeckillActivityRespVO;
17 -import cn.iocoder.yudao.module.promotion.convert.seckill.seckillconfig.SeckillConfigConvert;  
18 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillActivityDO; 17 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillActivityDO;
19 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillConfigDO; 18 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillConfigDO;
20 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillProductDO; 19 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillProductDO;
@@ -56,10 +55,11 @@ public interface SeckillActivityConvert { @@ -56,10 +55,11 @@ public interface SeckillActivityConvert {
56 PageResult<SeckillActivityRespVO> pageResult = convertPage(page); 55 PageResult<SeckillActivityRespVO> pageResult = convertPage(page);
57 // 拼接商品 56 // 拼接商品
58 Map<Long, ProductSpuRespDTO> spuMap = CollectionUtils.convertMap(spuList, ProductSpuRespDTO::getId); 57 Map<Long, ProductSpuRespDTO> spuMap = CollectionUtils.convertMap(spuList, ProductSpuRespDTO::getId);
59 - pageResult.getList().forEach(item -> {  
60 - item.setProducts(convertList2(seckillProducts));  
61 - MapUtils.findAndThen(spuMap, item.getSpuId(),  
62 - spu -> item.setSpuName(spu.getName()).setPicUrl(spu.getPicUrl()).setMarketPrice(spu.getMarketPrice())); 58 + Map<Long, List<SeckillProductDO>> productMap = convertMultiMap(seckillProducts, SeckillProductDO::getActivityId);
  59 + pageResult.getList().forEach(activity -> {
  60 + activity.setProducts(convertList2(productMap.get(activity.getId())));
  61 + MapUtils.findAndThen(spuMap, activity.getSpuId(),
  62 + spu -> activity.setSpuName(spu.getName()).setPicUrl(spu.getPicUrl()).setMarketPrice(spu.getMarketPrice()));
63 }); 63 });
64 return pageResult; 64 return pageResult;
65 } 65 }
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/seckillconfig/SeckillConfigConvert.java renamed to yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/SeckillConfigConvert.java
1 -package cn.iocoder.yudao.module.promotion.convert.seckill.seckillconfig; 1 +package cn.iocoder.yudao.module.promotion.convert.seckill;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigCreateReqVO; 4 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigCreateReqVO;
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/SeckillActivityServiceImpl.java
@@ -17,7 +17,7 @@ import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.Se @@ -17,7 +17,7 @@ import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.Se
17 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityUpdateReqVO; 17 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityUpdateReqVO;
18 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.product.SeckillProductBaseVO; 18 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.product.SeckillProductBaseVO;
19 import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppSeckillActivityPageReqVO; 19 import cn.iocoder.yudao.module.promotion.controller.app.seckill.vo.activity.AppSeckillActivityPageReqVO;
20 -import cn.iocoder.yudao.module.promotion.convert.seckill.seckillactivity.SeckillActivityConvert; 20 +import cn.iocoder.yudao.module.promotion.convert.seckill.SeckillActivityConvert;
21 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillActivityDO; 21 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillActivityDO;
22 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillConfigDO; 22 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillConfigDO;
23 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillProductDO; 23 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillProductDO;
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/seckill/SeckillConfigServiceImpl.java
@@ -8,7 +8,7 @@ import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils; @@ -8,7 +8,7 @@ import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils;
8 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigCreateReqVO; 8 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigCreateReqVO;
9 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigPageReqVO; 9 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigPageReqVO;
10 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigUpdateReqVO; 10 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.config.SeckillConfigUpdateReqVO;
11 -import cn.iocoder.yudao.module.promotion.convert.seckill.seckillconfig.SeckillConfigConvert; 11 +import cn.iocoder.yudao.module.promotion.convert.seckill.SeckillConfigConvert;
12 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillConfigDO; 12 import cn.iocoder.yudao.module.promotion.dal.dataobject.seckill.SeckillConfigDO;
13 import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillconfig.SeckillConfigMapper; 13 import cn.iocoder.yudao.module.promotion.dal.mysql.seckill.seckillconfig.SeckillConfigMapper;
14 import org.springframework.stereotype.Service; 14 import org.springframework.stereotype.Service;