瀏覽代碼

采美sku bugfix

zhijiezhao 2 年之前
父節點
當前提交
e682f71a7b

+ 3 - 3
src/main/java/com/caimei365/order/components/ProductService.java

@@ -176,9 +176,9 @@ public class ProductService {
      *
      * @param userId        用户ID
      * @param townId        地区Id
-     * @param productIdList 商品Id列表
+     * @param skuIdList     商品Id列表
      */
-    public Map<String, Object> computePostage(Integer userId, Integer townId, List<String> productIdList) {
+    public Map<String, Object> computePostage(Integer userId, Integer townId, List<String> skuIdList) {
         // 返回数据初始化
         Map<String, Object> postageMap = new HashMap<>(3);
         // 运费标志:0包邮 -1到付 1遵循运费规则
@@ -197,7 +197,7 @@ public class ProductService {
             return postageMap;
         }
         // 获取商品运费 (商品数据库 0包邮 1到付 2默认(遵循运费规则))
-        List<ProductPostageVo> postageFlagList = baseMapper.getPostageFlagList(productIdList);
+        List<ProductPostageVo> postageFlagList = baseMapper.getPostageFlagList(skuIdList);
         if (null != postageFlagList && postageFlagList.size() > 0) {
             for (ProductPostageVo postageVo : postageFlagList) {
                 if (null != postageVo) {

+ 5 - 5
src/main/java/com/caimei365/order/controller/CartClubApi.java

@@ -254,21 +254,21 @@ public class CartClubApi {
     @ApiOperation("计算运费(旧:/order/postage)")
     @ApiImplicitParams({
             @ApiImplicitParam(required = false, name = "userId", value = "用户Id"),
-            @ApiImplicitParam(required = false, name = "productIds", value = "商品ids,逗号隔开"),
+            @ApiImplicitParam(required = false, name = "skuIds", value = "商品ids,逗号隔开"),
             @ApiImplicitParam(required = false, name = "townId", value = "地区Id")
     })
     @GetMapping("/postage")
-    public ResponseJson<Map<String, Object>> orderPostage(Integer userId, String productIds, Integer townId) {
+    public ResponseJson<Map<String, Object>> orderPostage(Integer userId, String skuIds, Integer townId) {
         if (null == userId) {
             return ResponseJson.error("用户Id不能为空!", null);
         }
-        if (StringUtils.isEmpty(productIds)) {
-            return ResponseJson.error("商品Id集合不能为空!", null);
+        if (StringUtils.isEmpty(skuIds)) {
+            return ResponseJson.error("skuId集合不能为空!", null);
         }
         if (null == townId) {
             return ResponseJson.error("地区Id不能为空!", null);
         }
-        return cartClubService.getProductsPostage(userId, productIds, townId);
+        return cartClubService.getProductsPostage(userId, skuIds, townId);
     }
 
     /**

+ 2 - 2
src/main/java/com/caimei365/order/mapper/BaseMapper.java

@@ -99,9 +99,9 @@ public interface BaseMapper {
     Integer getUserBeans(Integer userId);
     /**
      * 获取商品运费 (0包邮 1到付 2默认(遵循运费规则))
-     * @param productIds 商品Id列表
+     * @param skuIds    skuId列表
      */
-    List<ProductPostageVo> getPostageFlagList(@Param("productIds") List<String> productIds);
+    List<ProductPostageVo> getPostageFlagList(@Param("skuIds") List<String> skuIds);
     /**
      * 统计用户订单数
      * @param userId 用户Id

+ 2 - 0
src/main/java/com/caimei365/order/mapper/SubmitMapper.java

@@ -150,4 +150,6 @@ public interface SubmitMapper {
     List<OrderShopPo> findShops(List<String> productIdList);
 
     Integer findSplitResult(List<String> productIdList);
+
+    OrderProductPo getRechargeProductDetails(Integer productId);
 }

+ 7 - 7
src/main/java/com/caimei365/order/service/impl/CartClubServiceImpl.java

@@ -1875,20 +1875,20 @@ public class CartClubServiceImpl implements CartClubService {
      * 获取结算商品运费
      *
      * @param userId     用户ID
-     * @param productIds 商品ids,逗号隔开
+     * @param skuIds     skuIds,逗号隔开
      * @param townId     地区Id
      */
     @Override
-    public ResponseJson<Map<String, Object>> getProductsPostage(Integer userId, String productIds, Integer townId) {
+    public ResponseJson<Map<String, Object>> getProductsPostage(Integer userId, String skuIds, Integer townId) {
         // 商品Id信息
-        List<String> productIdList = new ArrayList<>();
-        if (productIds.contains(",")) {
-            productIdList = Stream.of(productIds.split(",")).collect(Collectors.toList());
+        List<String> skuIdList = new ArrayList<>();
+        if (skuIds.contains(",")) {
+            skuIdList = Stream.of(skuIds.split(",")).collect(Collectors.toList());
         } else {
-            productIdList.add(productIds);
+            skuIdList.add(skuIds);
         }
         // 计算运费
-        Map<String, Object> resultMap = productService.computePostage(userId, townId, productIdList);
+        Map<String, Object> resultMap = productService.computePostage(userId, townId, skuIdList);
         return ResponseJson.success(resultMap);
     }
 

+ 5 - 1
src/main/java/com/caimei365/order/service/impl/CartSellerServiceImpl.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.caimei365.order.components.ProductService;
 import com.caimei365.order.mapper.BaseMapper;
 import com.caimei365.order.mapper.CartSellerMapper;
+import com.caimei365.order.mapper.OrderClubMapper;
 import com.caimei365.order.mapper.OrderCommonMapper;
 import com.caimei365.order.model.ResponseJson;
 import com.caimei365.order.model.dto.AgainBuyDto;
@@ -52,7 +53,8 @@ public class CartSellerServiceImpl implements CartSellerService {
     private OrderCommonMapper orderCommonMapper;
     @Resource
     private ProductService productService;
-
+    @Resource
+    private OrderClubMapper orderClubMapper;
     /**
      * 协销购物车列表数据
      *
@@ -118,6 +120,8 @@ public class CartSellerServiceImpl implements CartSellerService {
                     CartItemVo cartItemVo = productIterator.next();
                     // 默认所有商品未选中状态(前端要求)
                     cartItemVo.setIsChecked(false);
+                    // 设置skus
+                    cartItemVo.setSkus(orderClubMapper.findSkus(cartItemVo.getProductId()));
                     if (cartItemVo.getValidFlag() == 0) {
                         // 后台逻辑删除,已停售
                         cartItemVo.setStatus(1);

+ 1 - 1
src/main/java/com/caimei365/order/service/impl/SubmitServiceImpl.java

@@ -1866,7 +1866,7 @@ public class SubmitServiceImpl implements SubmitService {
         submitMapper.insertMainOrder(mainOrder);
         log.info("【提交充值订单】>>>>>>>>>>>>>>>>>>>>>>>>>>新增主订单(insert[cm_order])orderId:" + mainOrder.getOrderId());
         // 获取数据库商品信息
-        OrderProductPo rechargeProduct = submitMapper.getProductDetails(6060);
+        OrderProductPo rechargeProduct = submitMapper.getRechargeProductDetails(6060);
         // 供应商名称
         String shopName = baseMapper.getShopNameById(rechargeProduct.getShopId());
         /*

+ 6 - 5
src/main/resources/mapper/BaseMapper.xml

@@ -200,14 +200,15 @@
     </select>
     <select id="getPostageFlagList" resultType="com.caimei365.order.model.vo.ProductPostageVo">
         SELECT
-        productID AS productId,
+        p.productID AS productId,
         freePostFlag AS postageFlag,
         commodityType,
         productType
-        FROM product
-        WHERE validFlag='2' AND productID in
-        <foreach collection="productIds" open="(" separator="," close=")" item="productId">
-            #{productId}
+        FROM product p
+        left join cm_sku cs on p.productID=cs.productId
+        WHERE validFlag='2' AND cs.skuId in
+        <foreach collection="skuIds" open="(" separator="," close=")" item="skuId">
+            #{skuId}
         </foreach>
     </select>
     <select id="countUserOrder" resultType="java.lang.Integer">

+ 5 - 5
src/main/resources/mapper/CartClubMapper.xml

@@ -64,7 +64,7 @@
                cs.unit                       AS unit,
                cs.stock                      AS stock,
                p.step                        AS step,
-               cs.minBuyNumber               AS min,
+               ifnull(cs.minBuyNumber,(select buyNum from product_ladder_price where skuId=c.skuId order by buyNum asc limit 1)) AS min,
                p.priceFlag,
                ifnull(cs.ladderPriceFlag, 0) AS ladderFlag,
                p.includedTax                 AS includedTax,
@@ -99,9 +99,9 @@
         cs.price,
         cs.price AS originalPrice,
         cs.unit AS unit,
-        cs.stock AS stock,
+        ifnull(cs.stock,0) AS stock,
         p.step AS step,
-        cs.minBuyNumber AS min,
+        ifnull(cs.minBuyNumber,(select buyNum from product_ladder_price where skuId=c.skuId order by buyNum asc limit 1))AS min,
         p.priceFlag,
         cs.ladderPriceFlag AS ladderFlag,
         p.includedTax AS includedTax,
@@ -298,9 +298,9 @@
                cs.price,
                cs.price                     AS originalPrice,
                cs.unit                      AS unit,
-               cs.stock                     AS stock,
+               ifnull(cs.stock,0)           AS stock,
                p.step                       AS step,
-               cs.minBuyNumber              AS min,
+               ifnull(cs.minBuyNumber,(select buyNum from product_ladder_price where skuId=cs.skuId order by buyNum asc limit 1)) AS min,
                p.priceFlag,
                cs.ladderPriceFlag           AS ladderFlag,
                p.includedTax                AS includedTax,

+ 2 - 2
src/main/resources/mapper/CartSellerMapper.xml

@@ -3,7 +3,6 @@
 <mapper namespace="com.caimei365.order.mapper.CartSellerMapper">
     <select id="getSellerCartShops" resultType="com.caimei365.order.model.vo.CartShopVo">
         SELECT DISTINCT c.shopId,
-                        c.skuId,
                         s.name AS shopName,
                         s.logo AS shopLogo
         FROM bp_order_product_cart c
@@ -159,7 +158,8 @@
         ORDER BY c.id DESC
     </select>
     <select id="getSecondByProductId" resultType="com.caimei365.order.model.vo.CartItemVo">
-        SELECT p.productId,
+        SELECT cs.skuId,
+               p.productId,
                p.shopId,
                p.`name`           AS `name`,
                p.mainImage        AS image,

+ 23 - 0
src/main/resources/mapper/SubmitMapper.xml

@@ -267,4 +267,27 @@
         </foreach>
         AND (splitcode IS NULL OR splitcode ='')
     </select>
+    <select id="getRechargeProductDetails" resultType="com.caimei365.order.model.po.OrderProductPo">
+        SELECT cs.skuId                   AS skuId,
+               p.productID                AS productId,
+               p.shopID                   AS shopId,
+               p.`name`                   AS `name`,
+               p.mainImage                AS image,
+               cs.price,
+               cs.costPrice,
+               IFNULL(cs.costCheckFlag, 1) AS costCheckFlag,
+               cs.costProportional,
+               p.productCategory,
+               cs.ladderPriceFlag,
+               p.includedTax,
+               p.invoiceType,
+               p.taxPoint                 AS taxRate,
+               cs.unit                     AS productUnit,
+               cs.normalPrice,
+               p.supplierTaxPoint         AS shopTaxRate,
+               p.splitCode as splitCode
+        FROM product p
+                 LEFT JOIN cm_sku cs on p.productID = cs.productId
+        WHERE cs.productId = #{productId}
+    </select>
 </mapper>