Explorar el Código

优化订单流程

wang hace 1 semana
padre
commit
c08d813a98

+ 2 - 4
yami-shop-api/src/main/java/com/yami/shop/api/controller/OrderController.java

@@ -240,16 +240,14 @@ public class OrderController {
     @PostMapping("/submit")
     @ApiOperation(value = "提交订单,返回支付流水号", notes = "根据传入的参数判断是否为购物车提交订单,同时对购物车进行删除,用户开始进行支付")
     public ResponseEntity<OrderNumbersDto> submitOrders(@Valid @RequestBody SubmitOrderParam submitOrderParam) {
-        //TODO wangjian 扣减积分
+        //TODO wangjian 扣减积分,先获取当前用户的所以积分,计算扣除之后是否还需要微信支付
         String userId = SecurityUtils.getUser().getUserId();
         ShopCartOrderMergerDto mergerOrder = orderService.getConfirmOrderCache(userId + submitOrderParam.getUuid());
 
         if (mergerOrder == null) {
             throw new GlobalException("订单已过期,请重新下单");
         }
-
         List<OrderShopParam> orderShopParams = submitOrderParam.getOrderShopParam();
-
         List<ShopCartOrderDto> shopCartOrders = mergerOrder.getShopCartOrders();
         // 设置备注
         if (CollectionUtil.isNotEmpty(orderShopParams)) {
@@ -289,7 +287,7 @@ public class OrderController {
             basketService.removeShopCartItemsCacheByUserId(userId);
         }
         orderService.removeConfirmOrderCache(userId + submitOrderParam.getUuid());
-        return ResponseEntity.ok(new OrderNumbersDto(orderNumbers.toString()));
+        return ResponseEntity.ok(new OrderNumbersDto(orderNumbers.toString(),false));
     }
 
 

+ 47 - 22
yami-shop-api/src/main/java/com/yami/shop/api/controller/ShopCartController.java

@@ -73,12 +73,41 @@ public class ShopCartController {
         // 拿到购物车的所有item
         List<ShopCartItemDto> shopCartItems = basketService.getShopCartItems(userId);
         List<Long> prodIds = new ArrayList<>();
-        for (ShopCartItemDto shopCartItemDto:shopCartItems){
+        for (ShopCartItemDto shopCartItemDto : shopCartItems) {
+            prodIds.add(shopCartItemDto.getProdId());
+        }
+        Long shopId = 0L;
+        if (!shopCartParams.isEmpty()) shopId = shopCartParams.get(0).getShopId();
+        return ResponseEntity.ok(basketService.getShopCarts(shopCartItems, shopId));
+
+    }
+
+    /**
+     * 获取用户购物车信息
+     *
+     * @param shopCartParams 购物车参数对象列表
+     * @return
+     */
+    @PostMapping("/info/{platform}")
+    @ApiOperation(value = "获取用户购物车信息", notes = "获取用户购物车信息,参数为用户选中的活动项数组")
+    public ResponseEntity<List<ShopCartDto>> infoByPlatform(@RequestBody List<ShopCartParam> shopCartParams, @PathVariable("platform") Integer platform) {
+        String userId = SecurityUtils.getUser().getUserId();
+//        String userId = "5e31932043984353beb4c1a2622f5182";
+
+        // 更新购物车信息,
+        if (CollectionUtil.isNotEmpty(shopCartParams)) {
+            basketService.updateBasketByShopCartParam(userId, shopCartParams);
+        }
+
+        // 拿到购物车的所有item
+        List<ShopCartItemDto> shopCartItems = basketService.getShopCartItems(userId, platform);
+        List<Long> prodIds = new ArrayList<>();
+        for (ShopCartItemDto shopCartItemDto : shopCartItems) {
             prodIds.add(shopCartItemDto.getProdId());
         }
         Long shopId = 0L;
         if (!shopCartParams.isEmpty()) shopId = shopCartParams.get(0).getShopId();
-        return ResponseEntity.ok(basketService.getShopCarts(shopCartItems,shopId));
+        return ResponseEntity.ok(basketService.getShopCarts(shopCartItems, shopId));
 
     }
 
@@ -108,9 +137,9 @@ public class ShopCartController {
         }
 
         String userId = SecurityUtils.getUser().getUserId();
-        List<ShopCartItemDto> shopCartItems = basketService.getShopCartItems(userId);
+        List<ShopCartItemDto> shopCartItems = basketService.getShopCartItems(userId, param.getPlatform());
         Product prodParam = productService.getProductByProdId(param.getProdId());
-        Sku skuParam = skuService.getSkuBySkuId(param.getSkuId());
+        Sku skuParam = skuService.getSkuBySkuId(param.getSkuId(), param.getPlatform(), param.getShopId());
 
         // 当商品状态不正常时,不能添加到购物车
         if (prodParam.getStatus() != 1 || skuParam.getStatus() != 1) {
@@ -123,7 +152,7 @@ public class ShopCartController {
                 basket.setUserId(userId);
                 basket.setBasketCount(param.getCount() + shopCartItemDto.getProdCount());
                 basket.setBasketId(shopCartItemDto.getBasketId());
-                if (skuParam.getStocks() < basket.getBasketCount() && param.getCount() > 0){
+                if (skuParam.getActualStocks() < basket.getBasketCount() && param.getCount() > 0) {
                     throw new GlobalException("商品库存不足");
                 }
                 // 防止购物车变成负数
@@ -132,7 +161,7 @@ public class ShopCartController {
                     return ResponseEntity.ok().build();
                 }
                 // 当sku实际库存不足时,不能添加到购物车
-                if (skuParam.getStocks() < basket.getBasketCount() && shopCartItemDto.getProdCount() > 0) {
+                if (skuParam.getActualStocks() < basket.getBasketCount() && shopCartItemDto.getProdCount() > 0) {
                     return ResponseEntity.badRequest().body("库存不足");
                 }
                 basketService.updateShopCartItem(basket);
@@ -144,15 +173,11 @@ public class ShopCartController {
         if (param.getCount() < 0) {
             return ResponseEntity.badRequest().body("商品已从购物车移除");
         }
-        // 当sku实际库存不足时,不能添加到购物车
-        if (skuParam.getStocks() < param.getCount()) {
-            return ResponseEntity.badRequest().body("库存不足");
-        }
-        if (skuParam.getStocks() <  param.getCount()){
+        if (skuParam.getActualStocks() < param.getCount()) {
             throw new GlobalException("商品库存不足");
         }
         // 所有都正常时
-        basketService.addShopCartItem(param,userId);
+        basketService.addShopCartItem(param, userId);
         return ResponseEntity.ok("添加成功");
     }
 
@@ -210,16 +235,16 @@ public class ShopCartController {
         List<ShopCartItemDto> dbShopCartItems = basketService.getShopCartItems(SecurityUtils.getUser().getUserId());
 
         List<ShopCartItemDto> chooseShopCartItems = dbShopCartItems
-                                                        .stream()
-                                                        .filter(shopCartItemDto -> {
-                                                            for (Long basketId : basketIds) {
-                                                                if (Objects.equals(basketId,shopCartItemDto.getBasketId())) {
-                                                                    return  true;
-                                                                }
-                                                            }
-                                                            return false;
-                                                        })
-                                                        .collect(Collectors.toList());
+                .stream()
+                .filter(shopCartItemDto -> {
+                    for (Long basketId : basketIds) {
+                        if (Objects.equals(basketId, shopCartItemDto.getBasketId())) {
+                            return true;
+                        }
+                    }
+                    return false;
+                })
+                .collect(Collectors.toList());
 
         // 根据店铺ID划分item
         Map<Long, List<ShopCartItemDto>> shopCartMap = chooseShopCartItems.stream().collect(Collectors.groupingBy(ShopCartItemDto::getShopId));

+ 52 - 26
yami-shop-api/src/main/java/com/yami/shop/api/listener/SubmitOrderListener.java

@@ -102,7 +102,7 @@ public class SubmitOrderListener {
         // 订单地址id
         Long addrOrderId = userAddrOrder.getAddrOrderId();
 
-        if(CollectionUtils.isNotEmpty(shopCartOrders)) {
+        if (CollectionUtils.isNotEmpty(shopCartOrders)) {
             // 每个店铺生成一个订单
             for (ShopCartOrderDto shopCartOrderDto : shopCartOrders) {
                 Double sumPlatformAmount = 0.0;
@@ -114,14 +114,12 @@ public class SubmitOrderListener {
 
                 // 订单商品名称
                 StringBuilder orderProdName = new StringBuilder(100);
-
                 List<OrderItem> orderItems = new ArrayList<>();
-
                 List<ShopCartItemDiscountDto> shopCartItemDiscounts = shopCartOrderDto.getShopCartItemDiscounts();
                 for (ShopCartItemDiscountDto shopCartItemDiscount : shopCartItemDiscounts) {
                     List<ShopCartItemDto> shopCartItems = shopCartItemDiscount.getShopCartItems();
                     for (ShopCartItemDto shopCartItem : shopCartItems) {
-                        Sku sku = checkAndGetSku(shopCartItem.getSkuId(), shopCartItem, skuStocksMap);
+                        Sku sku = checkAndGetSku(shopCartItem.getSkuId(), mergerOrder.getPlatform(), shopCartItem, skuStocksMap);
                         Product product = checkAndGetProd(shopCartItem.getProdId(), shopCartItem, prodStocksMap);
                         OrderItem orderItem = new OrderItem();
                         orderItem.setShopId(shopId);
@@ -141,6 +139,7 @@ public class SubmitOrderListener {
                         //平台的补贴优惠金额
                         orderItem.setPlatformShareReduce(shopCartItem.getPlatformShareReduce());
                         // 实际订单项支付金额
+                        //TODO wangjian 根据platform来计算是否优先扣减积分抵扣
                         orderItem.setActualTotal(shopCartItem.getActualTotal());
                         // 分摊优惠金额
                         orderItem.setShareReduce(shopCartItem.getShareReduce());
@@ -175,6 +174,7 @@ public class SubmitOrderListener {
                 // 商品总额
                 order.setTotal(shopCartOrderDto.getTotal());
                 // 实际总额
+                //TODO wangjian 根据platform来计算是否优先扣减积分抵扣
                 order.setActualTotal(shopCartOrderDto.getActualTotal());
                 order.setStatus(OrderStatus.UNPAY.value());
                 order.setChannelId(Long.valueOf(mergerOrder.getPlatform()));
@@ -205,7 +205,7 @@ public class SubmitOrderListener {
                 orderSettlement.setVersion(0);
                 orderSettlement.setPayScore(0);
                 //如果用使用积分,结算表将积分价格插入
-                if(mergerOrder.getIsScorePay() != null && mergerOrder.getIsScorePay() == 1){
+                if (mergerOrder.getIsScorePay() != null && mergerOrder.getIsScorePay() == 1) {
                     orderSettlement.setPayScore(shopCartOrderDto.getUseScore());
                 }
                 orderSettlementMapper.insert(orderSettlement);
@@ -218,24 +218,24 @@ public class SubmitOrderListener {
         }
 
 //TODO wangjia 修改本地库存
-        // 更新sku库存
-        skuStocksMap.forEach((key, sku) -> {
-
-            if (skuMapper.updateStocks(sku) == 0) {
-                skuService.removeSkuCacheBySkuId(key, sku.getProdId());
-                productService.removeProductCacheByProdId(sku.getProdId());
-                throw new GlobalException("商品:[" + sku.getProdName() + "]库存不足");
-            }
-        });
-
-//         更新商品库存
-        prodStocksMap.forEach((prodId, prod) -> {
-
-            if (productMapper.updateStocks(prod) == 0) {
-                productService.removeProductCacheByProdId(prodId);
-                throw new GlobalException("商品:[" + prod.getProdName() + "]库存不足");
-            }
-        });
+//        // 更新sku库存
+//        skuStocksMap.forEach((key, sku) -> {
+//
+//            if (skuMapper.updateStocks(sku) == 0) {
+//                skuService.removeSkuCacheBySkuId(key, sku.getProdId());
+//                productService.removeProductCacheByProdId(sku.getProdId());
+//                throw new GlobalException("商品:[" + sku.getProdName() + "]库存不足");
+//            }
+//        });
+//
+////         更新商品库存
+//        prodStocksMap.forEach((prodId, prod) -> {
+//
+//            if (productMapper.updateStocks(prod) == 0) {
+//                productService.removeProductCacheByProdId(prodId);
+//                throw new GlobalException("商品:[" + prod.getProdName() + "]库存不足");
+//            }
+//        });
 
     }
 
@@ -276,10 +276,36 @@ public class SubmitOrderListener {
 
     @SuppressWarnings({"Duplicates"})
     private Sku checkAndGetSku(Long skuId, ShopCartItemDto shopCartItem, Map<Long, Sku> skuStocksMap) {
-        //TODO wangjian 先让接口正常 shopCartItem
-        shopCartItem.setProdCount(9);
         // 获取sku信息
-        Sku sku = skuService.getSkuBySkuId(skuId,1,158L);
+        Sku sku = skuService.getSkuBySkuId(skuId);
+        if (sku == null) {
+            throw new GlobalException("购物车包含无法识别的商品");
+        }
+
+        if (sku.getStatus() != 1) {
+            throw new GlobalException("商品[" + sku.getProdName() + "]已下架");
+        }
+        // -1为无限库存
+        if (sku.getActualStocks() != -1 && shopCartItem.getProdCount() > sku.getActualStocks()) {
+            throw new GlobalException("商品:[" + sku.getProdName() + "]库存不足");
+        }
+
+        if (sku.getActualStocks() != -1) {
+            Sku mapSku = new Sku();
+            mapSku.setProdId(sku.getProdId());
+            // 这里的库存是改变的库存
+            mapSku.setStocks(shopCartItem.getProdCount());
+            mapSku.setSkuId(sku.getSkuId());
+            mapSku.setProdName(sku.getProdName());
+            skuStocksMap.put(sku.getSkuId(), mapSku);
+        }
+        return sku;
+    }
+
+    @SuppressWarnings({"Duplicates"})
+    private Sku checkAndGetSku(Long skuId, Integer platform, ShopCartItemDto shopCartItem, Map<Long, Sku> skuStocksMap) {
+        // 获取sku信息
+        Sku sku = skuService.getSkuBySkuId(skuId, platform, shopCartItem.getShopId());
         if (sku == null) {
             throw new GlobalException("购物车包含无法识别的商品");
         }

+ 12 - 5
yami-shop-bean/src/main/java/com/yami/shop/bean/app/dto/OrderNumbersDto.java

@@ -11,15 +11,22 @@
 package com.yami.shop.bean.app.dto;
 
 import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
 import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.checkerframework.checker.units.qual.A;
 
 @Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
 public class OrderNumbersDto {
 
-	@ApiModelProperty(value = "多个订单号拼接的字符串",required=true)
-	private String orderNumbers;
+    @ApiModelProperty(value = "多个订单号拼接的字符串", required = true)
+    private String orderNumbers;
+
+    @ApiModelProperty(value = "是否需要继续微信支付")
+    private Boolean nextPay;
 
-	public OrderNumbersDto(String orderNumbers) {
-		this.orderNumbers = orderNumbers;
-	}
 }

+ 2 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/app/param/ChangeShopCartParam.java

@@ -42,4 +42,6 @@ public class ChangeShopCartParam {
 
     @ApiModelProperty(value = "分销推广人卡号")
     private String distributionCardNo;
+    @ApiModelProperty(value = "渠道id")
+    private Integer platform;
 }

+ 1 - 1
yami-shop-groupbuy/yami-shop-groupbuy-api/src/main/java/com/yami/shop/groupbuy/api/controller/GroupOrderController.java

@@ -216,7 +216,7 @@ public class GroupOrderController {
         productService.removeProductCacheByProdId(hadConfirmOrder.getProdId());
         skuService.removeSkuCacheBySkuId(hadConfirmOrder.getSkuId(), hadConfirmOrder.getProdId());
         groupOrderService.removeConfirmOrderCache(userId);
-        return ResponseEntity.ok(new OrderNumbersDto(orderNumber));
+        return ResponseEntity.ok(new OrderNumbersDto(orderNumber,false));
     }
 
 }

+ 5 - 3
yami-shop-service/src/main/java/com/yami/shop/dao/BasketMapper.java

@@ -28,6 +28,8 @@ public interface BasketMapper extends BaseMapper<Basket> {
 
     List<ShopCartItemDto> getShopCartItems(@Param("userId") String userId);
 
+    List<ShopCartItemDto> getShopCartItemsByPlatform(@Param("userId") String userId, @Param("platform") Integer platform);
+
     void deleteShopCartItemsByBasketIds(@Param("userId") String userId, @Param("basketIds") List<Long> basketIds);
 
     void deleteAllShopCartItems(@Param("userId") String userId);
@@ -36,10 +38,10 @@ public interface BasketMapper extends BaseMapper<Basket> {
 
     void cleanExpiryProdList(@Param("userId") String userId);
 
-    List<ShopCartItemDto> shopCartItemDtoList(@Param("basketIdList")List<Long> basketIdList);
+    List<ShopCartItemDto> shopCartItemDtoList(@Param("basketIdList") List<Long> basketIdList);
 
-    void updateDiscountItemId(@Param("userId")String userId, @Param("shopCartParams")List<ShopCartParam> shopCartParams);
+    void updateDiscountItemId(@Param("userId") String userId, @Param("shopCartParams") List<ShopCartParam> shopCartParams);
 
-    List<String> listUserIdByProdId(@Param("prodId")Long prodId);
+    List<String> listUserIdByProdId(@Param("prodId") Long prodId);
 
 }

+ 2 - 1
yami-shop-service/src/main/java/com/yami/shop/dao/SkuMapper.java

@@ -34,7 +34,8 @@ public interface SkuMapper extends BaseMapper<Sku> {
 
     List<Sku> listByProdIdAndPlatform(@Param("prodId") Long prodId, @Param("platform") Integer platform, @Param("shopId") Long shopId);
 
-    Sku listBySukIdAndPlatform(@Param("skuId") Long skuId, @Param("platform") Integer platform, @Param("shopId") Long shopId);
+    Sku listBySukIdAndPlatformShop(@Param("skuId") Long skuId, @Param("platform") Integer platform, @Param("shopId") Long shopId);
+    Sku listBySukIdAndPlatform(@Param("skuId") Long skuId, @Param("platform") Integer platform);
 
     int updateStocks(@Param("sku") Sku sku);
 

+ 2 - 0
yami-shop-service/src/main/java/com/yami/shop/service/BasketService.java

@@ -19,6 +19,7 @@ import com.yami.shop.bean.app.param.ChangeShopCartParam;
 import com.yami.shop.bean.app.param.OrderItemParam;
 import com.yami.shop.bean.app.param.ShopCartParam;
 import com.yami.shop.bean.model.Basket;
+import io.swagger.models.auth.In;
 
 /**
  * @author lgh on 2018/10/18.
@@ -34,6 +35,7 @@ public interface BasketService extends IService<Basket> {
     void deleteAllShopCartItems(String userId);
 
     List<ShopCartItemDto> getShopCartItems(String userId);
+    List<ShopCartItemDto> getShopCartItems(String userId, Integer platform);
 
     List<ShopCartItemDto> getShopCartExpiryItems(String userId);
 

+ 10 - 0
yami-shop-service/src/main/java/com/yami/shop/service/SkuService.java

@@ -28,6 +28,7 @@ public interface SkuService extends IService<Sku> {
      * @return sku列表
      */
     List<Sku> listByProdId(Long prodId, Integer platform, Long shopId);
+
     /**
      * 根据商品id获取商品中的sku列表(将会被缓存起来)
      *
@@ -43,6 +44,7 @@ public interface SkuService extends IService<Sku> {
      * @return
      */
     Sku getSkuBySkuId(Long skuId);
+
     /**
      * 根据skuId获取sku信息(将会被缓存起来)
      *
@@ -51,5 +53,13 @@ public interface SkuService extends IService<Sku> {
      */
     Sku getSkuBySkuId(Long skuId, Integer platform, Long shopId);
 
+    /**
+     * 根据skuId获取sku信息(将会被缓存起来)
+     *
+     * @param skuId
+     * @return
+     */
+    Sku getSkuBySkuId(Long skuId, Integer platform);
+
     void removeSkuCacheBySkuId(Long skuId, Long prodId);
 }

+ 21 - 4
yami-shop-service/src/main/java/com/yami/shop/service/impl/BasketServiceImpl.java

@@ -97,7 +97,7 @@ public class BasketServiceImpl extends ServiceImpl<BasketMapper, Basket> impleme
     public List<ShopCartItemDto> getShopCartItems(String userId) {
         // 在这个类里面要调用这里的缓存信息,并没有使用aop,所以不使用注解
         List<ShopCartItemDto> shopCartItemDtoList = cacheManagerUtil.getCache("ShopCartItems", userId);
-        if(ObjectUtils.isNotEmpty(shopCartItemDtoList)){
+        if (ObjectUtils.isNotEmpty(shopCartItemDtoList)) {
             return shopCartItemDtoList;
         }
         shopCartItemDtoList = basketMapper.getShopCartItems(userId);
@@ -110,6 +110,23 @@ public class BasketServiceImpl extends ServiceImpl<BasketMapper, Basket> impleme
         return shopCartItemDtoList;
     }
 
+    @Override
+    public List<ShopCartItemDto> getShopCartItems(String userId, Integer platform) {
+        // 在这个类里面要调用这里的缓存信息,并没有使用aop,所以不使用注解
+        List<ShopCartItemDto> shopCartItemDtoList = cacheManagerUtil.getCache("ShopCartItems", userId);
+        if (ObjectUtils.isNotEmpty(shopCartItemDtoList)) {
+            return shopCartItemDtoList;
+        }
+        shopCartItemDtoList = basketMapper.getShopCartItemsByPlatform(userId, platform);
+        for (ShopCartItemDto shopCartItemDto : shopCartItemDtoList) {
+            shopCartItemDto.setProductTotalAmount(Arith.mul(shopCartItemDto.getProdCount(), shopCartItemDto.getPrice()));
+            shopCartItemDto.setWeight(shopCartItemDto.getWeight());
+            shopCartItemDto.setWeightUnit(shopCartItemDto.getWeightUnit());
+        }
+        cacheManagerUtil.putCache("ShopCartItems", userId, shopCartItemDtoList);
+        return shopCartItemDtoList;
+    }
+
     @Override
     public List<ShopCartItemDto> getShopCartExpiryItems(String userId) {
         return basketMapper.getShopCartExpiryItems(userId);
@@ -142,11 +159,11 @@ public class BasketServiceImpl extends ServiceImpl<BasketMapper, Basket> impleme
     public List<ShopCartDto> getShopCarts(List<ShopCartItemDto> shopCartItems, Long shopId1) {
         // 根据店铺ID划分item
         Map<Long, List<ShopCartItemDto>> shopCartMap = shopCartItems.stream().collect(Collectors.groupingBy(ShopCartItemDto::getShopId));
-        if(shopId1 != null && shopId1 > 0){
+        if (shopId1 != null && shopId1 > 0) {
             List<ShopCartDto> shopCartDtos2 = Lists.newArrayList();
             //获取店铺的所有商品项
             List<ShopCartItemDto> shopCartItemDtoList2 = shopCartMap.get(shopId1);
-            if(shopCartItemDtoList2 != null){
+            if (shopCartItemDtoList2 != null) {
                 // 构建每个店铺的购物车信息
                 ShopCartDto shopCart2 = new ShopCartDto();
                 //店铺信息
@@ -207,7 +224,7 @@ public class BasketServiceImpl extends ServiceImpl<BasketMapper, Basket> impleme
     @Override
     public ShopCartItemDto getShopCartItem(OrderItemParam orderItem) {
         //Integer platform, Long shopId
-        Sku sku = skuService.getSkuBySkuId(orderItem.getSkuId(),orderItem.getPlatform(),orderItem.getShopId());
+        Sku sku = skuService.getSkuBySkuId(orderItem.getSkuId(), orderItem.getPlatform(), orderItem.getShopId());
         if (sku == null) {
             throw new RuntimeException("订单包含无法识别的商品");
         }

+ 6 - 1
yami-shop-service/src/main/java/com/yami/shop/service/impl/SkuServiceImpl.java

@@ -50,7 +50,12 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements SkuSe
 
     @Override
     public Sku getSkuBySkuId(Long skuId, Integer platform, Long shopId) {
-        return skuMapper.listBySukIdAndPlatform(skuId, platform, shopId);
+        return skuMapper.listBySukIdAndPlatformShop(skuId, platform, shopId);
+    }
+
+    @Override
+    public Sku getSkuBySkuId(Long skuId, Integer platform) {
+        return skuMapper.listBySukIdAndPlatform(skuId, platform);
     }
 
     @Override

+ 34 - 0
yami-shop-service/src/main/resources/mapper/BasketMapper.xml

@@ -25,6 +25,40 @@
         LEFT JOIN tz_user_collection uc ON uc.prod_id = tp.prod_id AND tb.user_id = uc.user_id
         WHERE tp.status = 1 AND ts.status =1 AND tb.user_id = #{userId}
         ORDER BY tb.`basket_id` DESC
+
+  </select>
+    <select id="getShopCartItemsByPlatform" resultType="com.yami.shop.bean.app.dto.ShopCartItemDto">
+        SELECT
+            tb.*,
+            tb.basket_count AS prod_count,
+            tsd.shop_name,
+            tp.category_id,
+            IFNULL( ts.pic, tp.pic ) AS pic,
+            tcp.channel_prod_price AS price,
+            ts.ori_price,
+            tp.brief,
+            ts.properties,
+            ts.prod_name,
+            ts.sku_name,
+            ts.weight,
+            ts.weight_unit,
+            IF
+            ( uc.id, TRUE, FALSE ) AS is_collection
+        FROM
+            tz_basket tb
+                LEFT JOIN tz_shop_detail tsd ON tb.shop_id = tsd.shop_id
+                LEFT JOIN tz_prod tp ON tb.prod_id = tp.prod_id
+                LEFT JOIN tz_sku ts ON tb.sku_id = ts.sku_id
+                LEFT JOIN tz_user_collection uc ON (uc.prod_id = tp.prod_id AND tb.user_id = uc.user_id )
+                LEFT JOIN tz_channel_prod tcp ON (tb.sku_id=tcp.sku_id AND tb.shop_id=tcp.shop_id)
+        WHERE
+            tp.STATUS = 1
+          AND ts.STATUS = 1
+          AND tb.user_id = #{userId}
+          AND tcp.channel_id=#{platform}
+          AND tcp.is_delete=0
+        ORDER BY
+            tb.`basket_id` DESC
   </select>
 
 

+ 35 - 1
yami-shop-service/src/main/resources/mapper/SkuMapper.xml

@@ -81,7 +81,7 @@
           AND tcp.channel_id = #{platform}
     </select>
 
-    <select id="listBySukIdAndPlatform" resultType="com.yami.shop.bean.model.Sku">
+    <select id="listBySukIdAndPlatformShop" resultType="com.yami.shop.bean.model.Sku">
         SELECT ts.sku_id,
                ts.prod_id,
                ts.sku_name,
@@ -117,6 +117,40 @@
           AND tcp.channel_id = #{platform}
         LIMIT 1
     </select>
+    <select id="listBySukIdAndPlatform" resultType="com.yami.shop.bean.model.Sku">
+        SELECT ts.sku_id,
+               ts.prod_id,
+               ts.sku_name,
+               ts.prod_name,
+               ts.ori_price,
+               tcp.channel_prod_price AS price,
+               ts.sku_score,
+               ts.properties,
+               ts.stocks,
+               tss.shop_sku_stocks    AS actual_stocks,
+               ts.update_time,
+               ts.rec_time,
+               ts.party_code,
+               ts.model_id,
+               ts.pic,
+               ts.version,
+               ts.weight,
+               ts.volume,
+               ts.`status`,
+               ts.is_delete,
+               ts.weight_unit,
+               ts.sku_code,
+               ts.hb_spu_id,
+               ts.hb_sku_id
+        FROM tz_sku AS ts
+                 LEFT JOIN tz_shop_sku AS tss ON ts.sku_id = tss.sku_id
+                 LEFT JOIN tz_channel_prod AS tcp ON ts.sku_id = tcp.sku_id
+        WHERE ts.sku_id = #{skuId}
+          AND ts.is_delete = 0
+          AND tcp.is_delete = 0
+          AND ts.`status` = 1
+          AND tcp.channel_id = #{platform} LIMIT 1
+    </select>
     <select id="selectByHbSkuId" resultType="com.yami.shop.bean.model.Sku">
         select *
         from tz_sku

+ 1 - 1
yami-shop-user/yami-shop-user-api/src/main/java/com/yami/shop/user/api/controller/ScoreOrderController.java

@@ -140,7 +140,7 @@ public class ScoreOrderController {
         skuService.removeSkuCacheBySkuId(mergerOrder.getProductItemDto().getSkuId(),mergerOrder.getProductItemDto().getProdId());
         productService.removeProductCacheByProdId(mergerOrder.getProductItemDto().getProdId());
         scoreOrderService.removeConfirmScoreOrderCache(userId);
-        return ResponseEntity.ok(new OrderNumbersDto(orderNumbers.toString()));
+        return ResponseEntity.ok(new OrderNumbersDto(orderNumbers.toString(),false));
     }
 
 //    /**