|
@@ -19,6 +19,10 @@ import cn.newfeifan.mall.module.pay.api.order.dto.PayOrderRespDTO;
|
|
import cn.newfeifan.mall.module.pay.enums.order.PayOrderStatusEnum;
|
|
import cn.newfeifan.mall.module.pay.enums.order.PayOrderStatusEnum;
|
|
import cn.newfeifan.mall.module.product.api.comment.ProductCommentApi;
|
|
import cn.newfeifan.mall.module.product.api.comment.ProductCommentApi;
|
|
import cn.newfeifan.mall.module.product.api.comment.dto.ProductCommentCreateReqDTO;
|
|
import cn.newfeifan.mall.module.product.api.comment.dto.ProductCommentCreateReqDTO;
|
|
|
|
+import cn.newfeifan.mall.module.product.dal.dataobject.sku.ProductSkuDO;
|
|
|
|
+import cn.newfeifan.mall.module.product.dal.mysql.sku.ProductSkuMapper;
|
|
|
|
+import cn.newfeifan.mall.module.sale.dal.dataobject.shop.ShopDO;
|
|
|
|
+import cn.newfeifan.mall.module.sale.dal.mysql.shop.ShopMapper;
|
|
import cn.newfeifan.mall.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO;
|
|
import cn.newfeifan.mall.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO;
|
|
import cn.newfeifan.mall.module.trade.controller.admin.order.vo.TradeOrderRemarkReqVO;
|
|
import cn.newfeifan.mall.module.trade.controller.admin.order.vo.TradeOrderRemarkReqVO;
|
|
import cn.newfeifan.mall.module.trade.controller.admin.order.vo.TradeOrderUpdateAddressReqVO;
|
|
import cn.newfeifan.mall.module.trade.controller.admin.order.vo.TradeOrderUpdateAddressReqVO;
|
|
@@ -50,16 +54,14 @@ import cn.newfeifan.mall.module.trade.service.price.bo.TradePriceCalculateReqBO;
|
|
import cn.newfeifan.mall.module.trade.service.price.bo.TradePriceCalculateRespBO;
|
|
import cn.newfeifan.mall.module.trade.service.price.bo.TradePriceCalculateRespBO;
|
|
import cn.newfeifan.mall.module.trade.service.price.calculator.TradePriceCalculatorHelper;
|
|
import cn.newfeifan.mall.module.trade.service.price.calculator.TradePriceCalculatorHelper;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
+import org.ehcache.shadow.org.terracotta.offheapstore.HashingMap;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Objects;
|
|
|
|
-import java.util.Set;
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
import static cn.newfeifan.mall.framework.common.util.collection.CollectionUtils.*;
|
|
import static cn.newfeifan.mall.framework.common.util.collection.CollectionUtils.*;
|
|
@@ -78,6 +80,12 @@ import static cn.newfeifan.mall.module.trade.enums.ErrorCodeConstants.*;
|
|
@Slf4j
|
|
@Slf4j
|
|
public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ private ProductSkuMapper productSkuMapper;//add by ben 20240314
|
|
|
|
+
|
|
|
|
+ @Resource
|
|
|
|
+ private ShopMapper shopMapper;//add by ben 20240314
|
|
|
|
+
|
|
@Resource
|
|
@Resource
|
|
private TradeOrderMapper tradeOrderMapper;
|
|
private TradeOrderMapper tradeOrderMapper;
|
|
@Resource
|
|
@Resource
|
|
@@ -121,7 +129,49 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
TradePriceCalculateRespBO calculateRespBO = calculatePrice(userId, settlementReqVO);
|
|
TradePriceCalculateRespBO calculateRespBO = calculatePrice(userId, settlementReqVO);
|
|
|
|
|
|
// 3. 拼接返回
|
|
// 3. 拼接返回
|
|
- return TradeOrderConvert.INSTANCE.convert(calculateRespBO, address);
|
|
|
|
|
|
+ AppTradeOrderSettlementRespVO respVO = TradeOrderConvert.INSTANCE.convert(calculateRespBO, address);
|
|
|
|
+
|
|
|
|
+ // add by Ben 20240314
|
|
|
|
+ // 4. 查询每个sku对应的店铺ID,并传回页面
|
|
|
|
+ List<AppTradeOrderSettlementReqVO.Item> productSkuList = settlementReqVO.getItems();
|
|
|
|
+ List<Long> productSkuIdList = new ArrayList<>();
|
|
|
|
+ for(AppTradeOrderSettlementReqVO.Item skuItem : productSkuList){
|
|
|
|
+ productSkuIdList.add(skuItem.getSkuId());
|
|
|
|
+ }
|
|
|
|
+ // 查询每个skuid对应的sku对象
|
|
|
|
+ List<ProductSkuDO> productSkuDOList = productSkuMapper.selectListBySKuId(productSkuIdList);
|
|
|
|
+
|
|
|
|
+ //key为店铺ID,value为skuid的List
|
|
|
|
+ Map<Long,List<Long>> shopSkuIds = new HashMap<Long, List<Long>>();
|
|
|
|
+ for(ProductSkuDO sku:productSkuDOList){//把sku根据店聚合放到map中
|
|
|
|
+ Long skuId = sku.getId();
|
|
|
|
+ Long shopId = sku.getShopId();
|
|
|
|
+ List<Long> shopSkuList = shopSkuIds.get(shopId);
|
|
|
|
+ if(shopSkuList==null) {
|
|
|
|
+ shopSkuList = new ArrayList<Long>();
|
|
|
|
+ shopSkuIds.put(shopId,shopSkuList);
|
|
|
|
+ }
|
|
|
|
+ shopSkuList.add(skuId);//把sku根据店聚合放到map中
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ respVO.setShopSkuIds(shopSkuIds);//把sku根据店聚合放到map中
|
|
|
|
+
|
|
|
|
+ //把店铺id和店铺名称查出来放到map中
|
|
|
|
+ List<Long> shopIds = new ArrayList<Long>();
|
|
|
|
+ for (Long shopid : shopSkuIds.keySet()) {
|
|
|
|
+ shopIds.add(shopid);
|
|
|
|
+ }
|
|
|
|
+ List<ShopDO> shopDOList = shopMapper.selectListById(shopIds);
|
|
|
|
+ Map<Long,String> shopNameMap = new HashMap<Long,String>();//key为店铺id,value为店铺名
|
|
|
|
+ for (ShopDO shopDO : shopDOList) {
|
|
|
|
+ shopNameMap.put(shopDO.getId(),shopDO.getName());
|
|
|
|
+ }
|
|
|
|
+ respVO.setShopNameMap(shopNameMap);
|
|
|
|
+
|
|
|
|
+ System.out.println("shopSkuIds@@@@@@@@"+shopSkuIds);
|
|
|
|
+ System.out.println("shopNameMap@@@@@@@@"+shopNameMap);
|
|
|
|
+
|
|
|
|
+ return respVO;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|