fix:【MALL】修复 addBrokerage 创建分销记录时,每个订单项,生成分销记录
This commit is contained in:
parent
3395a3d86b
commit
ec76c1ae6e
|
@ -5,6 +5,9 @@ import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuUpdateStockReqDTO;
|
|||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
|
||||
|
||||
/**
|
||||
* 商品 SKU API 接口
|
||||
|
@ -30,6 +33,16 @@ public interface ProductSkuApi {
|
|||
*/
|
||||
List<ProductSkuRespDTO> getSkuList(Collection<Long> ids);
|
||||
|
||||
/**
|
||||
* 批量查询 SKU MAP
|
||||
*
|
||||
* @param ids SKU 编号列表
|
||||
* @return SKU MAP
|
||||
*/
|
||||
default Map<Long, ProductSkuRespDTO> getSkuMap(Collection<Long> ids) {
|
||||
return convertMap(getSkuList(ids), ProductSkuRespDTO::getId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量查询 SKU 数组
|
||||
*
|
||||
|
|
|
@ -30,7 +30,7 @@ public interface ProductSpuApi {
|
|||
* @param ids SPU 编号列表
|
||||
* @return SPU MAP
|
||||
*/
|
||||
default Map<Long, ProductSpuRespDTO> getSpusMap(Collection<Long> ids) {
|
||||
default Map<Long, ProductSpuRespDTO> getSpuMap(Collection<Long> ids) {
|
||||
return convertMap(getSpuList(ids), ProductSpuRespDTO::getId);
|
||||
}
|
||||
|
||||
|
|
|
@ -124,7 +124,7 @@ public class PointActivityController {
|
|||
List<PointProductDO> products = pointActivityService.getPointProductListByActivityIds(
|
||||
convertSet(activityList, PointActivityDO::getId));
|
||||
Map<Long, List<PointProductDO>> productsMap = convertMultiMap(products, PointProductDO::getActivityId);
|
||||
Map<Long, ProductSpuRespDTO> spuMap = productSpuApi.getSpusMap(
|
||||
Map<Long, ProductSpuRespDTO> spuMap = productSpuApi.getSpuMap(
|
||||
convertSet(activityList, PointActivityDO::getSpuId));
|
||||
List<PointActivityRespVO> result = BeanUtils.toBean(activityList, PointActivityRespVO.class);
|
||||
result.forEach(activity -> {
|
||||
|
|
|
@ -104,7 +104,7 @@ public class AppPointActivityController {
|
|||
List<PointProductDO> products = pointActivityService.getPointProductListByActivityIds(
|
||||
convertSet(activityList, PointActivityDO::getId));
|
||||
Map<Long, List<PointProductDO>> productsMap = convertMultiMap(products, PointProductDO::getActivityId);
|
||||
Map<Long, ProductSpuRespDTO> spuMap = productSpuApi.getSpusMap(
|
||||
Map<Long, ProductSpuRespDTO> spuMap = productSpuApi.getSpuMap(
|
||||
convertSet(activityList, PointActivityDO::getSpuId));
|
||||
List<AppPointActivityRespVO> result = BeanUtils.toBean(activityList, AppPointActivityRespVO.class);
|
||||
result.forEach(activity -> {
|
||||
|
|
|
@ -20,6 +20,7 @@ import org.springframework.stereotype.Component;
|
|||
|
||||
import jakarta.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
|
||||
|
||||
|
@ -101,13 +102,17 @@ public class TradeBrokerageOrderHandler implements TradeOrderHandler {
|
|||
protected void addBrokerage(Long userId, List<TradeOrderItemDO> orderItems) {
|
||||
MemberUserRespDTO user = memberUserApi.getUser(userId);
|
||||
Assert.notNull(user);
|
||||
ProductSpuRespDTO spu = productSpuApi.getSpu(orderItems.get(0).getSpuId());
|
||||
Assert.notNull(spu);
|
||||
ProductSkuRespDTO sku = productSkuApi.getSku(orderItems.get(0).getSkuId());
|
||||
Map<Long, ProductSpuRespDTO> spusMap = productSpuApi.getSpuMap(convertList(orderItems, TradeOrderItemDO::getSpuId));
|
||||
Map<Long, ProductSkuRespDTO> skusMap = productSkuApi.getSkuMap(convertList(orderItems, TradeOrderItemDO::getSkuId));
|
||||
|
||||
// 每一个订单项,都会去生成分销记录
|
||||
List<BrokerageAddReqBO> addList = convertList(orderItems,
|
||||
item -> TradeOrderConvert.INSTANCE.convert(user, item, spu, sku));
|
||||
List<BrokerageAddReqBO> addList = convertList(orderItems, item -> {
|
||||
ProductSpuRespDTO spu = spusMap.get(item.getSpuId());
|
||||
Assert.notNull(spu);
|
||||
ProductSkuRespDTO sku = skusMap.get(item.getSkuId());
|
||||
Assert.notNull(sku);
|
||||
return TradeOrderConvert.INSTANCE.convert(user, item, spu, sku);
|
||||
});
|
||||
brokerageRecordService.addBrokerage(userId, BrokerageRecordBizTypeEnum.ORDER, addList);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue