Browse Source

运费模板

huangzhiguo 1 year ago
parent
commit
e726836395

+ 14 - 28
src/main/java/com/caimei365/order/components/OrderCommonService.java

@@ -83,9 +83,9 @@ public class OrderCommonService {
             // 冷链商品判定
             List<Integer> collect = orderProductList.stream().map(OrderProductVo::getProductId).collect(Collectors.toList());
             collect.removeIf(c -> c == 999);
-            if (collect.stream().allMatch(c -> c == 7881)) {
+            if (collect.stream().allMatch(c -> c == 7578)) {
                 arrList.add(1);
-            } else if (!collect.contains(7881)) {
+            } else if (!collect.contains(7578)) {
                 arrList.add(2);
             } else {
                 arrList.add(3);
@@ -293,16 +293,13 @@ public class OrderCommonService {
             // 冷链商品判定
             List<Integer> collect = orderProductList.stream().map(OrderProductVo::getProductId).collect(Collectors.toList());
             collect.removeIf(c -> c == 999);
-            if (collect.stream().allMatch(c -> c == 7881)) {
+            if (collect.stream().allMatch(c -> c == 7578)) {
                 arrList.add(1);
-            } else if (!collect.contains(7881)) {
+            } else if (!collect.contains(7578)) {
                 arrList.add(2);
             } else {
                 arrList.add(3);
             }
-            // 是否有到付商品, 默认没有到付商品
-            shopOrder.setPayment(0);
-            AtomicInteger count = new AtomicInteger(0);
             // 是否有分帐号
             AtomicBoolean isSplit = new AtomicBoolean(true);
             orderProductList.forEach(orderProduct -> {
@@ -343,21 +340,10 @@ public class OrderCommonService {
                 if (StringUtils.isEmpty(orderProduct.getSplitCode())) {
                     isSplit.set(false);
                 }
-                // 老数据处理 子订单商品与子订单运费状态相同
-                if (null == orderProduct.getFreightFlag()) {
-                    orderProduct.setFreightFlag(shopOrder.getShopPostFlag());
-                }
-                // 是否含有到付商品
-                if (null != orderProduct.getFreightFlag() && 2 == orderProduct.getFreightFlag()) {
-                    count.updateAndGet( c -> c + 1);
-                }
             });
-            if (count.get() >= 1) {
-                shopOrder.setPayment(1);
-            }
             // 冷链运输费
             if (null != shopOrder.getIsColdChina() && 1 == shopOrder.getIsColdChina()) {
-                shopOrder.setColdChina(700.00d);
+                shopOrder.setColdChina(baseMapper.getFreightAmount(7578));
             } else {
                 shopOrder.setColdChina(0.00d);
             }
@@ -377,13 +363,13 @@ public class OrderCommonService {
                 }
                 if (2 == shopOrder.getShopPostFlag()) {
                     // 到付
-                    shopOrder.setPostageInfo("¥" + MathUtil.add(shopOrder.getShopPostFee(), shopOrder.getColdChina()).doubleValue() + open +(shopOrder.getIsColdChina()==1?"冷链费: ¥" + shopOrder.getColdChina().doubleValue():"") + (arrList.stream().allMatch(c -> c == 1)?"":" 其他: 到付")+close);
+                    shopOrder.setPostageInfo("¥" + shopOrder.getShopPostFee() + open +(shopOrder.getIsColdChina()==1?"冷链费: ¥" + shopOrder.getColdChina().doubleValue():"") + (arrList.stream().allMatch(c -> c == 1)?"":" 其他: 到付")+close);
                 } else if (0 == shopOrder.getShopPostFlag()) {
                     // 包邮
-                    shopOrder.setPostageInfo("¥" + MathUtil.add(shopOrder.getShopPostFee(), shopOrder.getColdChina()).doubleValue() + open +(shopOrder.getIsColdChina()==1?"冷链费: ¥" + shopOrder.getColdChina().doubleValue():"") + (arrList.stream().allMatch(c -> c == 1)?"":" 其他: 包邮")+close);
+                    shopOrder.setPostageInfo("¥" + shopOrder.getShopPostFee() + open +(shopOrder.getIsColdChina()==1?"冷链费: ¥" + shopOrder.getColdChina().doubleValue():"") + (arrList.stream().allMatch(c -> c == 1)?"":" 其他: 包邮")+close);
                 } else {
                     // 有运费
-                    shopOrder.setPostageInfo("¥" + MathUtil.add(shopOrder.getShopPostFee(), shopOrder.getColdChina()).doubleValue() + open +(shopOrder.getIsColdChina()==1?"冷链费: ¥" + shopOrder.getColdChina().doubleValue():"") + ((shopOrder.getShopPostFee() != null && shopOrder.getShopPostFee() != 0d)?" 其他: ¥" + shopOrder.getShopPostFee():"") + close);
+                    shopOrder.setPostageInfo("¥" + shopOrder.getShopPostFee() + open +(shopOrder.getIsColdChina()==1?"冷链费: ¥" + shopOrder.getColdChina().doubleValue():"") + ((shopOrder.getShopPostFee() != null && shopOrder.getShopPostFee() != 0d)?" 其他: ¥" + MathUtil.sub(shopOrder.getShopPostFee(), shopOrder.getColdChina()):"") + close);
                 }
             } else {
                 shopOrder.setPostageInfo(shopOrder.getShopPostFlag() == 2 ?"到付":shopOrder.getShopPostFlag() == 0?"包邮":"¥" + shopOrder.getShopPostFee());
@@ -472,16 +458,16 @@ public class OrderCommonService {
         // 冷链商品判定
         List<Integer> collect = orderProductList.stream().map(OrderProductVo::getProductId).collect(Collectors.toList());
         collect.removeIf(c -> c == 999);
-        if (collect.stream().allMatch(c -> c == 7881)) {
+        if (collect.stream().allMatch(c -> c == 7578)) {
             arrList.add(1);
-        } else if (!collect.contains(7881)) {
+        } else if (!collect.contains(7578)) {
             arrList.add(2);
         } else {
             arrList.add(3);
         }
         // 冷链运输费 -- 联合丽格
         if (null != shopOrder.getIsColdChina() && 1 == shopOrder.getIsColdChina()) {
-            shopOrder.setColdChina(700.00d);
+            shopOrder.setColdChina(baseMapper.getFreightAmount(7578));
         } else {
             shopOrder.setColdChina(0.00d);
         }
@@ -501,13 +487,13 @@ public class OrderCommonService {
             }
             if (2 == shopOrder.getShopPostFlag()) {
                 // 到付
-                shopOrder.setPostageInfo("¥" + MathUtil.add(shopOrder.getShopPostFee(), shopOrder.getColdChina()).doubleValue() + open +(shopOrder.getIsColdChina()==1?"冷链费: ¥" + shopOrder.getColdChina().doubleValue():"") + (arrList.stream().allMatch(c -> c == 1)?"":" 其他: 到付")+close);
+                shopOrder.setPostageInfo("¥" + shopOrder.getShopPostFee() + open +(shopOrder.getIsColdChina()==1?"冷链费: ¥" + shopOrder.getColdChina().doubleValue():"") + (arrList.stream().allMatch(c -> c == 1)?"":" 其他: 到付")+close);
             } else if (0 == shopOrder.getShopPostFlag()) {
                 // 包邮
-                shopOrder.setPostageInfo("¥" + MathUtil.add(shopOrder.getShopPostFee(), shopOrder.getColdChina()).doubleValue() + open +(shopOrder.getIsColdChina()==1?"冷链费: ¥" + shopOrder.getColdChina().doubleValue():"") + (arrList.stream().allMatch(c -> c == 1)?"":" 其他: 包邮")+close);
+                shopOrder.setPostageInfo("¥" + shopOrder.getShopPostFee() + open +(shopOrder.getIsColdChina()==1?"冷链费: ¥" + shopOrder.getColdChina().doubleValue():"") + (arrList.stream().allMatch(c -> c == 1)?"":" 其他: 包邮")+close);
             } else {
                 // 有运费
-                shopOrder.setPostageInfo("¥" + MathUtil.add(shopOrder.getShopPostFee(), shopOrder.getColdChina()).doubleValue() + open +(shopOrder.getIsColdChina()==1?"冷链费: ¥" + shopOrder.getColdChina().doubleValue():"") + ((shopOrder.getShopPostFee() != null && shopOrder.getShopPostFee() != 0d)?" 其他: ¥" + shopOrder.getShopPostFee():"") + close);
+                shopOrder.setPostageInfo("¥" + shopOrder.getShopPostFee() + open +(shopOrder.getIsColdChina()==1?"冷链费: ¥" + shopOrder.getColdChina().doubleValue():"") + ((shopOrder.getShopPostFee() != null && shopOrder.getShopPostFee() != 0d)?" 其他: ¥" + MathUtil.sub(shopOrder.getShopPostFee(), shopOrder.getColdChina()):"") + close);
             }
         } else {
             shopOrder.setPostageInfo(shopOrder.getShopPostFlag() == 2?"到付":shopOrder.getShopPostFlag() == 0?"包邮":"¥" + shopOrder.getShopPostFee());

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

@@ -223,12 +223,14 @@ public class ProductService {
             for (ProductPostageVo postageVo : postageFlagList) {
                 if (null != postageVo) {
                     // 是否是仪器 或 设置了运费到付
-                    if (null != postageVo.getPostageFlag() && 0 == postageVo.getPostageFlag()) {
-                        // 包邮
-                        postageFlag = 0;
-                    } else if (null != postageVo.getPostageFlag() && 2 == postageVo.getPostageFlag()) {
+                    // 偏远地区到付
+                    if ((null != postageVo.getPostageFlag() && 2 == postageVo.getPostageFlag())
+                            || (null != postageVo.getCommodityType() && 2 == postageVo.getCommodityType())) {
                         // 到付
                         postageFlag = 2;
+                    } else if (null != postageVo.getPostageFlag() && 0 == postageVo.getPostageFlag()) {
+                        // 包邮
+                        postageFlag = 0;
                     } else {
                         // 使用运费模板
                         postageFlag = 1;
@@ -271,6 +273,23 @@ public class ProductService {
                 }
             }
         }
+        // 是否首单(统计订单数)
+        Integer count = null;
+        if (0 == organizeId) {
+            // 采美
+            count = baseMapper.countUserOrder(userId);
+        } else {
+            // 组织 -- 联合丽格无首单优惠
+            count = -1;
+        }
+        // 包邮条件:首单 或 包邮(上一步未被设置成不包邮)
+        boolean freeFlag = ((null != count && count == 0) || postageFlag == 0);
+        if (freeFlag) {
+            // 包邮
+            postageFlag = 0;
+            postage.set(0d);
+
+        }
         postageMap.put("postageFlag", postageFlag);
         postageMap.put("postage", postage.get());
         return postageMap;

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

@@ -202,19 +202,19 @@ public class CartClubApi {
     @ApiOperation("购物车结算(旧:/order/confirm)")
     @ApiImplicitParams({
             @ApiImplicitParam(required = false, name = "userId", value = "用户Id"),
-            @ApiImplicitParam(required = false, name = "townId", value = "地址"),
+            @ApiImplicitParam(required = false, name = "cityId", value = "地址"),
             @ApiImplicitParam(required = false, name = "skuIds", value = "skuIds,逗号隔开"),
             @ApiImplicitParam(required = false, name = "source", value = "来源 : 1 网站 ; 2 小程序")
     })
     @GetMapping("/cart/settlement")
-    public ResponseJson<Map<String, Object>> settlementShoppingCart(Integer userId, Integer townId, String skuIds, Integer source) {
+    public ResponseJson<Map<String, Object>> settlementShoppingCart(Integer userId, Integer cityId, String skuIds, Integer source) {
         if (null == userId) {
             return ResponseJson.error("用户Id不能为空!", null);
         }
         if (StringUtils.isEmpty(skuIds)) {
             return ResponseJson.error("skuId集合不能为空!", null);
         }
-        return cartClubService.settlementShoppingCart(userId, townId, skuIds, source);
+        return cartClubService.settlementShoppingCart(userId, cityId, skuIds, source);
     }
 
     /**
@@ -254,14 +254,14 @@ public class CartClubApi {
             @ApiImplicitParam(required = false, name = "productInfo", value = "组合商品信息:Json字符串格式[{\"id\":4351,\"count\":1,\"skuId\":123},{}]"),
             @ApiImplicitParam(required = false, name = "source", value = "来源 : 1 网站 ; 2 小程序")
     })
-    public ResponseJson<Map<String, Object>> MultipleBuyNow(Integer userId, Integer townId, String productInfo, Integer source) {
+    public ResponseJson<Map<String, Object>> MultipleBuyNow(Integer userId, Integer cityId, String productInfo, Integer source) {
         if (null == userId) {
             return ResponseJson.error("用户Id不能为空!", null);
         }
         if (StringUtils.isEmpty(productInfo)) {
             return ResponseJson.error("组合商品信息不能为空!", null);
         }
-        return cartClubService.MultipleBuyNow(userId, townId, productInfo, source);
+        return cartClubService.MultipleBuyNow(userId, cityId, productInfo, source);
     }
 
     /**
@@ -274,17 +274,17 @@ public class CartClubApi {
             @ApiImplicitParam(required = false, name = "townId", value = "地区Id")
     })
     @GetMapping("/postage")
-    public ResponseJson<Map<String, Object>> orderPostage(Integer userId, String skuIds, Integer townId) {
+    public ResponseJson<Map<String, Object>> orderPostage(Integer userId, String skuIds, Integer cityId) {
         if (null == userId) {
             return ResponseJson.error("用户Id不能为空!", null);
         }
         if (StringUtils.isEmpty(skuIds)) {
             return ResponseJson.error("skuId集合不能为空!", null);
         }
-        if (null == townId) {
+        if (null == cityId) {
             return ResponseJson.error("地区Id不能为空!", null);
         }
-        return cartClubService.getProductsPostage(userId, skuIds, townId);
+        return cartClubService.getProductsPostage(userId, skuIds, cityId);
     }
 
     /**

+ 2 - 2
src/main/java/com/caimei365/order/controller/CartSellerApi.java

@@ -209,7 +209,7 @@ public class CartSellerApi {
             @ApiImplicitParam(required = false, name = "skuIds", value = "skuIds,逗号隔开")
     })
     @GetMapping("/cart/settlement")
-    public ResponseJson<Map<String, Object>> settlementSellerCart(Integer serviceProviderId, Integer townId, Integer clubId, String skuIds) {
+    public ResponseJson<Map<String, Object>> settlementSellerCart(Integer serviceProviderId, Integer cityId, Integer clubId, String skuIds) {
         if (null == serviceProviderId) {
             return ResponseJson.error("协销Id不能为空!", null);
         }
@@ -219,7 +219,7 @@ public class CartSellerApi {
         if (StringUtils.isEmpty(skuIds)) {
             return ResponseJson.error("skuId集合不能为空!", null);
         }
-        return cartSellerService.settlementSellerCart(serviceProviderId, townId, clubId, skuIds);
+        return cartSellerService.settlementSellerCart(serviceProviderId, cityId, clubId, skuIds);
     }
 
     /**

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

@@ -180,6 +180,13 @@ public interface BaseMapper {
      */
     List<ProductPostageVo> getPostageFlagOrganizeList(@Param("skuIds") List<String> skuIds);
 
+    /**
+     * 指定商品的运费
+     * @param productId
+     * @return
+     */
+    Double getFreightAmount(@Param("productId") Integer productId);
+
     /**
      * 获取模板信息
      * @param freightId

+ 0 - 4
src/main/java/com/caimei365/order/model/vo/CartShopVo.java

@@ -90,10 +90,6 @@ public class CartShopVo implements Serializable {
      * 运费
      */
     private Double postage;
-    /**
-     * 总运费
-     */
-    private Double allPostage;
     /**
      * 可用采美豆
      */

+ 0 - 4
src/main/java/com/caimei365/order/model/vo/OrderProductVo.java

@@ -260,10 +260,6 @@ public class OrderProductVo implements Serializable {
      * 超级会员价格标签
      */
     private String svipPriceTag;
-    /**
-     * 物流方式 0 包邮、1 有运费、2 到付
-     */
-    private Integer freightFlag;
     /**
      * 能否退货  1 能 2不能
      */

+ 0 - 4
src/main/java/com/caimei365/order/model/vo/ShopOrderVo.java

@@ -94,10 +94,6 @@ public class ShopOrderVo implements Serializable {
      * 运费--联合丽格
      */
     private String postageInfo;
-    /**
-     * 是否含有到付商品 0 无 1 有
-     */
-    private Integer payment;
     /**
      * 订单编号
      */

+ 5 - 5
src/main/java/com/caimei365/order/service/CartClubService.java

@@ -80,11 +80,11 @@ public interface CartClubService {
      * 购物车结算
      *
      * @param userId 用户ID
-     * @param townId 地址
+     * @param cityId 地址
      * @param skuIds skuIds,逗号隔开
      * @param source 来源 : 1 网站 ; 2 小程序
      */
-    ResponseJson<Map<String, Object>> settlementShoppingCart(Integer userId, Integer townId, String skuIds, Integer source);
+    ResponseJson<Map<String, Object>> settlementShoppingCart(Integer userId, Integer cityId, String skuIds, Integer source);
 
     /**
      * 立即购买
@@ -103,9 +103,9 @@ public interface CartClubService {
      *
      * @param userId     用户ID
      * @param productIds 商品ids,逗号隔开
-     * @param townId     地区Id
+     * @param cityId     地区Id
      */
-    ResponseJson<Map<String, Object>> getProductsPostage(Integer userId, String productIds, Integer townId);
+    ResponseJson<Map<String, Object>> getProductsPostage(Integer userId, String productIds, Integer cityId);
 
     /**
      * 获取用户发票信息
@@ -175,7 +175,7 @@ public interface CartClubService {
      * @param
      * @return
      */
-    ResponseJson<Map<String, Object>> MultipleBuyNow(Integer userId, Integer townId, String productInfo, Integer source);
+    ResponseJson<Map<String, Object>> MultipleBuyNow(Integer userId, Integer cityId, String productInfo, Integer source);
 
     ResponseJson checkSkuId(Integer userId, Integer oldSkuId, Integer newSkuId, Integer count);
 }

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

@@ -83,7 +83,7 @@ public interface CartSellerService {
      * @param clubId            机构Id
      * @param skuIds            skuIds
      */
-    ResponseJson<Map<String, Object>> settlementSellerCart(Integer serviceProviderId, Integer townId, Integer clubId, String skuIds);
+    ResponseJson<Map<String, Object>> settlementSellerCart(Integer serviceProviderId, Integer cityId, Integer clubId, String skuIds);
 
     /**
      * 协销二手商品立即购买

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

@@ -1041,9 +1041,9 @@ public class CartClubServiceImpl implements CartClubService {
                         }
                         // 是否包含需要冷链运输商品
                         List<Integer> collect = productList.stream().map(CartItemVo::getProductId).collect(Collectors.toList());
-                        if (collect.stream().allMatch(c -> c == 7881)) {
+                        if (collect.stream().allMatch(c -> c == 7578)) {
                             shop.setDesignatedFlag(1);
-                        } else if (!collect.contains(7881)) {
+                        } else if (!collect.contains(7578)) {
                             shop.setDesignatedFlag(2);
                         } else {
                             shop.setDesignatedFlag(3);
@@ -1053,11 +1053,11 @@ public class CartClubServiceImpl implements CartClubService {
                         // 迭代器设置商品信息
                         for (CartItemVo cartItemVo : productList) {
                             // 设置商品运费
-                            if (7881 == cartItemVo.getProductId()) {
+                            if (7578 == cartItemVo.getProductId()) {
                                 if (cartItemVo.getNumber() >= 100) {
                                     coldChain = 0d;
                                 } else {
-                                    coldChain = 700d;
+                                    coldChain = baseMapper.getFreightAmount(cartItemVo.getProductId());
                                     shop.setPostageFlag(1);
                                 }
                             }
@@ -1169,7 +1169,7 @@ public class CartClubServiceImpl implements CartClubService {
                                 } else {
                                     Double postage = (Double) postageMap.get("postage");
                                     shopPostage.set(MathUtil.add(shopPostage.get(), postage).doubleValue());
-
+                                    log.info("shopPostage.get()======"+shopPostage.get());
                                 }
                                 shop.setUserBeans((Integer) postageMap.get("userBeans"));
                             }
@@ -1188,23 +1188,16 @@ public class CartClubServiceImpl implements CartClubService {
                         }
                         shop.setPostage(shopPostage.get());
                         shop.setColdChain(coldChain);
-                        if (700 == coldChain) {
+                        if (0 != coldChain) {
                             shop.setIsColdChina(true);
                         } else {
                             shop.setIsColdChina(false);
                         }
-                        // 总费用 + 冷链费
-                        // shopPrice.set(MathUtil.add(shopPrice.get(), coldChain).doubleValue());
-                        // 只有冷链费商品 运费为0
-                        /*if (null != townId) {
-                            if (1 == shop.getDesignatedFlag()) {
-                                shop.setPostage(0d);
-                            }
-                        }*/
-                        // 总运费
-                        shop.setAllPostage(MathUtil.add(shop.getPostage(),coldChain).doubleValue());
+                        // 运费
+                        shop.setPostage(MathUtil.sub(shop.getPostage(), coldChain).doubleValue());
+                        log.info("shop.getPostage()******"+shop.getPostage());
                         // 供应商总金额
-                        shopPrice.set(MathUtil.add(shopPrice.get(), shop.getAllPostage()).doubleValue());
+                        shopPrice.set(MathUtil.add(MathUtil.add(shopPrice.get(), shop.getPostage()),coldChain).doubleValue());
                         if (shopKindCount.get() > 0) {
                             // 店铺促销
                             if (null != shopPromotion) {
@@ -1371,11 +1364,11 @@ public class CartClubServiceImpl implements CartClubService {
             double coldChain = 0.00d;
             if (null != totalProductList) {
                 for (CartItemVo cart :totalProductList) {
-                    if (7881 == cart.getProductId()) {
+                    if (7578 == cart.getProductId()) {
                         if (cart.getNumber() >= 100) {
                             coldChain = 0.00d;
                         } else {
-                            coldChain = 700.00d;
+                            coldChain = baseMapper.getFreightAmount(cart.getProductId());
                         }
                         break;
                     } else {
@@ -1519,9 +1512,9 @@ public class CartClubServiceImpl implements CartClubService {
                     if (null != productList && productList.size() > 0) {
                         // 是否包含需要冷链运输商品
                         List<Integer> collect = productList.stream().map(CartItemVo::getProductId).collect(Collectors.toList());
-                        if (collect.stream().allMatch(c -> c == 7881)) {
+                        if (collect.stream().allMatch(c -> c == 7578)) {
                             shop.setDesignatedFlag(1);
-                        } else if (!collect.contains(7881)) {
+                        } else if (!collect.contains(7578)) {
                             shop.setDesignatedFlag(2);
                         } else {
                             shop.setDesignatedFlag(3);
@@ -1539,11 +1532,11 @@ public class CartClubServiceImpl implements CartClubService {
                         for (CartItemVo cartItemVo : productList) {
                             // 设置商品运费
                             if (null != cityId) {
-                                if (7881 == cartItemVo.getProductId()) {
+                                if (7578 == cartItemVo.getProductId()) {
                                     if (cartItemVo.getNumber() >= 100) {
                                         coldChain = 0d;
                                     } else {
-                                        coldChain = 700d;
+                                        coldChain = baseMapper.getFreightAmount(cartItemVo.getProductId());
                                         shop.setPostageFlag(1);
                                     }
                                 }
@@ -1679,9 +1672,9 @@ public class CartClubServiceImpl implements CartClubService {
                             }
                         }*/
                         // 总运费
-                        shop.setAllPostage(MathUtil.add(shop.getPostage(),coldChain).doubleValue());
+                        shop.setPostage(MathUtil.sub(shop.getPostage(),coldChain).doubleValue());
                         // 供应商总金额
-                        shopPrice.set(MathUtil.add(shopPrice.get(), shop.getAllPostage()).doubleValue());
+                        shopPrice.set(MathUtil.add(MathUtil.add(shopPrice.get(), shop.getPostage()),coldChain).doubleValue());
                         if (shopKindCount.get() > 0) {
                             // 店铺促销
                             if (null != shopPromotion) {
@@ -2040,7 +2033,7 @@ public class CartClubServiceImpl implements CartClubService {
         Double coldChain = 0d;
         if (null != cartDto.getCityId()) {
             // 是否包含需要冷链运输商品 1 冷链费商品 2 不含冷链费商品 3 包含冷链费商品
-            if (cartDto.getProductId() == 7881) {
+            if (cartDto.getProductId() == 7578) {
                 shop.setDesignatedFlag(1);
             } else {
                 shop.setDesignatedFlag(2);
@@ -2057,11 +2050,11 @@ public class CartClubServiceImpl implements CartClubService {
                 shop.setUserBeans((Integer) postageMap.get("userBeans"));
             }
 
-            if (7881 == cartItemVo.getProductId()) {
+            if (7578 == cartItemVo.getProductId()) {
                 if (cartItemVo.getNumber() >= 100) {
                     coldChain = 0d;
                 } else {
-                    coldChain = 700d;
+                    coldChain = baseMapper.getFreightAmount(cartItemVo.getProductId());
                     shop.setPostageFlag(1);
                     // totalPrice.set(MathUtil.add(totalPrice.get(), coldChain).doubleValue());
                     shop.setIsColdChina(true);
@@ -2078,9 +2071,9 @@ public class CartClubServiceImpl implements CartClubService {
             }
         }*/
         // 总运费
-        shop.setAllPostage(MathUtil.add(shop.getPostage(),coldChain).doubleValue());
+        shop.setPostage(MathUtil.sub(shop.getPostage(), coldChain).doubleValue());
         // 供应商总金额
-        totalPrice.set(MathUtil.add(totalPrice.get(), shop.getAllPostage()).doubleValue());
+        totalPrice.set(MathUtil.add(MathUtil.add(totalPrice.get(), shop.getPostage()), coldChain).doubleValue());
         // 商品总金额累加
         originalPrice.set(MathUtil.mul(cartItemVo.getNumber(), cartItemVo.getOriginalPrice()).doubleValue());
         totalPrice.set(MathUtil.add(totalPrice.get(), MathUtil.mul(cartItemVo.getNumber(), cartItemVo.getPrice())).doubleValue());
@@ -2252,7 +2245,7 @@ public class CartClubServiceImpl implements CartClubService {
      * @param townId 地区Id
      */
     @Override
-    public ResponseJson<Map<String, Object>> getProductsPostage(Integer userId, String skuIds, Integer townId) {
+    public ResponseJson<Map<String, Object>> getProductsPostage(Integer userId, String skuIds, Integer cityId) {
         // 商品Id信息
         List<String> skuIdList = new ArrayList<>();
         if (skuIds.contains(",")) {
@@ -2261,7 +2254,7 @@ public class CartClubServiceImpl implements CartClubService {
             skuIdList.add(skuIds);
         }
         // 计算运费
-        Map<String, Object> resultMap = productService.computePostage(userId, townId, 0, 0d, skuIdList);
+        Map<String, Object> resultMap = productService.computePostage(userId, cityId, 0, 0d, skuIdList);
         return ResponseJson.success(resultMap);
     }
 

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

@@ -586,19 +586,19 @@ public class CartSellerServiceImpl implements CartSellerService {
                 if (null != productList && productList.size() > 0) {
                     // 是否包含需要冷链运输商品
                     List<Integer> collect = productList.stream().map(CartItemVo::getProductId).collect(Collectors.toList());
-                    if (collect.stream().allMatch(c -> c == 7881)) {
+                    if (collect.stream().allMatch(c -> c == 7578)) {
                         shop.setDesignatedFlag(1);
-                    } else if (!collect.contains(7881)) {
+                    } else if (!collect.contains(7578)) {
                         shop.setDesignatedFlag(2);
                     } else {
                         shop.setDesignatedFlag(3);
                     }
                     for (CartItemVo cartItemVo : productList) {
-                        if (7881 == cartItemVo.getProductId()) {
+                        if (7578 == cartItemVo.getProductId()) {
                             if (cartItemVo.getNumber() >= 100) {
                                 coldChain.set(0);
                             } else {
-                                coldChain.set(700);
+                                coldChain.set(baseMapper.getFreightAmount(cartItemVo.getProductId()));
                                 shop.setPostageFlag(1);
                             }
                         }
@@ -724,7 +724,7 @@ public class CartSellerServiceImpl implements CartSellerService {
                     }
                     shop.setPostage(shopPostage.get());
                     shop.setColdChain(coldChain.get());
-                    if (700 == coldChain.get()) {
+                    if (0 != coldChain.get()) {
                         shop.setIsColdChina(true);
                     } else {
                         shop.setIsColdChina(false);
@@ -736,9 +736,9 @@ public class CartSellerServiceImpl implements CartSellerService {
                         }
                     }*/
                     // 总运费
-                    shop.setAllPostage(MathUtil.add(shop.getPostage(),coldChain.get()).doubleValue());
+                    shop.setPostage(MathUtil.sub(shop.getPostage(), coldChain.get()).doubleValue());
                     // 供应商总金额
-                    shopPrice.set(MathUtil.add(shopPrice.get(), shop.getAllPostage()).doubleValue());
+                    shopPrice.set(MathUtil.add(MathUtil.add(shopPrice.get(), shop.getPostage()), coldChain.get()).doubleValue());
                     if (shopKindCount.get() > 0) {
                         // 店铺促销
                         if (null != shopPromotion) {
@@ -799,7 +799,7 @@ public class CartSellerServiceImpl implements CartSellerService {
                         // 供应商总超级会员优惠
                         shop.setSvipReducedPrice(shopSvipReducedPrice.get());
                         // 供应商划线价
-                        shop.setOriginalPrice(MathUtil.sub(MathUtil.add(shopPrice.get(), shopReduction), shop.getAllPostage()).doubleValue());
+                        shop.setOriginalPrice(MathUtil.sub(MathUtil.add(shopPrice.get(), shopReduction), shop.getPostage()).doubleValue());
 
                         // 添加供应商Id集合
                         shopIds.add(shop.getShopId());

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

@@ -458,8 +458,6 @@ public class SubmitServiceImpl implements SubmitService {
         AtomicDouble balancePayFee = new AtomicDouble(0);
         // 总运费
         AtomicDouble postageFee = new AtomicDouble(0);
-        // 冷链运输费
-        AtomicDouble isColdChina = new AtomicDouble(0);
         // 统计销量用
         JSONArray salesInfo = new JSONArray();
 
@@ -547,8 +545,6 @@ public class SubmitServiceImpl implements SubmitService {
             AtomicDouble shopAmount = new AtomicDouble(0);
             // 付供应商 商品费
             AtomicDouble shopProductAmount = new AtomicDouble(0);
-            // 冷链运输费
-            AtomicDouble shopIsColdChina = new AtomicDouble(0);
             // 付供应商税费
             AtomicDouble shopTaxFee = new AtomicDouble(0);
             // 店铺促销活动状态
@@ -593,18 +589,7 @@ public class SubmitServiceImpl implements SubmitService {
                 if (null == product) {
                     return ResponseJson.error("订单商品不存在!", null);
                 }
-                // 联合丽格冷链费商品
-                if (1 == isColdChinaShop) {
-                    if (7881 == product.getProductId()) {
-                        if (productNum >= 100) {
-                            shopIsColdChina.set(0.00d);
-                        } else {
-                            shopIsColdChina.set(700.00d);
-                        }
-                    }
-                } else {
-                    shopIsColdChina.set(0.00d);
-                }
+
                 // 是否二手商品
                 if (null != product.getProductCategory() && 2 == product.getProductCategory()) {
                     secondHandOrderFlag = true;
@@ -938,8 +923,6 @@ public class SubmitServiceImpl implements SubmitService {
                 log.info("shopProductAmount.get()" + shopProductAmount.get());
                 log.info("product.getShopProductAmount()" + product.getShopProductAmount());
                 shopProductAmount.set(MathUtil.add(shopProductAmount.get(), product.getShopProductAmount()).doubleValue());
-                // 付供应商 商品费=成本价*(购买数量  + 赠品数量) + 冷链费
-                shopOrder.setShopProductAmount(MathUtil.add(shopProductAmount.get(), isColdChina.get()).doubleValue());
                 // 付供应商税费
                 shopTaxFee.set(MathUtil.add(shopTaxFee.get(), product.getShouldPayTotalTax()).doubleValue());
                 // 成本 | 佣金比例  商城sku 成本 | 配置比例
@@ -970,17 +953,13 @@ public class SubmitServiceImpl implements SubmitService {
                 skuIdList.add(product.getSkuId().toString());
             }
             // 设置运费
-            if ((1 == postageFlag && 0 == mainOrder.getUserBeans()) || (0 == postageFlag && isColdChina.get() > 0.00d && 0 != organizeId) || (-1 == postageFlag && isColdChina.get() > 0.00d && 0 != organizeId)) {
+            if (1 == postageFlag && 0 == mainOrder.getUserBeans()) {
                 // postage = MathUtil.add(shopIsColdChina.get(), postage).doubleValue();
                 shopOrder.setShopPostFee(postage);
             }
             // 需要支付金额 shouldPayFee +运费
             needPayAmount.set(MathUtil.add(needPayAmount.get(), postage).doubleValue());
             log.info("postage=-***====" + postage);
-            isColdChina.set(MathUtil.add(isColdChina.get(), shopIsColdChina.get()).doubleValue());
-            log.info("shopIsColdChina.get()=------=-=-====" + shopIsColdChina.get());
-            // 需要支付金额 shouldPayFee + 冷链费
-            needPayAmount.set(MathUtil.add(needPayAmount.get(), shopIsColdChina.get()).doubleValue());
             // 统计总运费
             postageFee.set(MathUtil.add(postageFee.get(), postage).doubleValue());
             log.info("统计总运费+--+-+-" + postageFee.get());
@@ -1042,8 +1021,8 @@ public class SubmitServiceImpl implements SubmitService {
             shopOrder.setItemCount(shopProductCount.get());
             // 超级会员优惠金额
             shopOrder.setSvipShopReduction(svipShopReduction.get());
-            // 总价(含税) = totalFee + 冷链
-            shopOrder.setTotalAmount(MathUtil.add(MathUtil.add(shopProductFee.get(), postage).doubleValue(), shopIsColdChina.get()).doubleValue());
+            // 总价(含税) = totalFee + 
+            shopOrder.setTotalAmount(MathUtil.add(shopProductFee.get(), postage).doubleValue());
             // 总金额 = 订单商品totalAmount
             shopOrder.setProductAmount(shopAmount.get());
             // 需要支付金额 shouldPayFee +运费
@@ -1054,9 +1033,9 @@ public class SubmitServiceImpl implements SubmitService {
             shopOrder.setShopProductAmount(shopProductAmount.get());
             // 付给供应商税费
             shopOrder.setShopTaxFee(shopTaxFee.get());
-            // 付供应商 = 商品费 + 运费  + 冷链费
+            // 付供应商 = 商品费 + 运费
             // 版本不加 税费
-            shopOrder.setShouldPayShopAmount(MathUtil.add(MathUtil.add(shopProductAmount.get(), postageFee.get()).doubleValue(), shopIsColdChina.get()).doubleValue());
+            shopOrder.setShouldPayShopAmount(MathUtil.add(shopProductAmount.get(), postageFee.get()).doubleValue());
             // 付给供应商运费
             // shopOrder.setShopPostFee(0d);
             // 已付供应商金额
@@ -1200,9 +1179,6 @@ public class SubmitServiceImpl implements SubmitService {
         // 订单总额 = 商品费 + 运费
         log.info("总运费" + postageFee.get());
         payTotalFee.set(MathUtil.add(productTotalFee.get(), postageFee.get()).doubleValue());
-        // 总金额 + 冷链运输费
-        log.info("isColdChina.get()=------=-=-====" + isColdChina.get());
-        payTotalFee.set(MathUtil.add(payTotalFee.get(), isColdChina.get()).doubleValue());
         log.info("payTotalFee.get()=------=-=-====" + payTotalFee.get());
         // 运费标志:0包邮 -1到付 1遵循运费规则
         // mainOrder.setPostageFlag(orderParamBo.getPostageFlag());
@@ -1275,7 +1251,7 @@ public class SubmitServiceImpl implements SubmitService {
         }
         // 余额支付金额
         mainOrder.setBalancePayFee(balancePayFee.get());
-        // 实际支付金额(商品金额+运费-余额抵扣) + 冷链费用
+        // 实际支付金额(商品金额+运费-余额抵扣)
         mainOrder.setPayableAmount(payableAmount.get());
 
         // 是否返佣订单
@@ -2056,8 +2032,6 @@ public class SubmitServiceImpl implements SubmitService {
             AtomicDouble shopTaxFee = new AtomicDouble(0);
             // 商品费
             AtomicDouble shopProductFee = new AtomicDouble(0);
-            // 冷链费
-            AtomicDouble isColdChina = new AtomicDouble(0);
             // 该供应商下该分帐号的商品
             List<OrderProductPo> shopProducts = orderProductList.stream().filter(po -> po.getSplitCode().equals(shop.getSplitCode()) && po.getShopId().equals(shop.getShopId())).collect(Collectors.toList());
             // 遍历所有商品
@@ -2073,10 +2047,7 @@ public class SubmitServiceImpl implements SubmitService {
                 needPayAmount.set(MathUtil.add(needPayAmount.get(), product.getRealProductFee()).doubleValue());
                 // 统计 总金额 包括税费
                 shopProductFee.set(MathUtil.add(shopProductFee.get(), product.getRealProductFee()).doubleValue());
-                // 再勾选冷链费时
-                if (1 == oldShop.get(0).getIsColdChina() && product.getProductId() == 7881) {
-                    isColdChina.set(MathUtil.add(isColdChina.get(), 700).doubleValue());
-                }
+
                 // 商品总金额
                 shopAmount.set(MathUtil.add(shopAmount.get(), product.getTotalAmount()).doubleValue());
                 // 付供应商 商品费
@@ -2084,12 +2055,6 @@ public class SubmitServiceImpl implements SubmitService {
                 // 付供应商税费
                 shopTaxFee.set(MathUtil.add(shopTaxFee.get(), product.getShouldPayTotalTax()).doubleValue());
             }
-            // 需要支付金额 需支付金额 + 冷链费
-            needPayAmount.set(MathUtil.add(needPayAmount.get(), isColdChina.get()).doubleValue());
-            // 总金额 + 冷链费
-            shopProductFee.set(MathUtil.add(shopProductFee.get(), isColdChina.get()).doubleValue());
-            // 付供应商 + 冷链费
-            shopProductAmount.set(MathUtil.add(shopProductAmount.get(), isColdChina.get()).doubleValue());
             // 需要支付金额 需支付金额 + 运费
             needPayAmount.set(MathUtil.add(needPayAmount.get(), oldShop.get(0).getShopPostFee()).doubleValue());
             // 总金额 + 运费
@@ -2110,9 +2075,9 @@ public class SubmitServiceImpl implements SubmitService {
             shopOrder.setShopProductAmount(shopProductAmount.get());
             // 付给供应商税费
             shopOrder.setShopTaxFee(shopTaxFee.get());
-            // 付供应商 = 商品费 + 运费 + 冷链费
+            // 付供应商 = 商品费 + 运费
             // 暂时不加 税费
-            shopOrder.setShouldPayShopAmount(MathUtil.add(MathUtil.add(shopProductAmount.get(), oldShop.get(0).getShopPostFee()).doubleValue(), isColdChina.get()).doubleValue());
+            shopOrder.setShouldPayShopAmount(MathUtil.add(shopProductAmount.get(), oldShop.get(0).getShopPostFee()).doubleValue());
             // 付给供应商运费
             shopOrder.setShopPostFee(oldShop.get(0).getShopPostFee());
             // 运费类型

+ 11 - 3
src/main/resources/mapper/BaseMapper.xml

@@ -273,16 +273,24 @@
         </foreach>
     </select>
 
+    <select id="getFreightAmount" resultType="java.lang.Double">
+        SELECT SUM(cfr.freightAmount)
+        FROM cm_freight_rule cfr
+                 LEFT JOIN cm_freight_template cft ON cft.id = cfr.freightId
+                 LEFT JOIN product p ON p.freightTemplateId = cft.id
+        WHERE productId = #{productId}
+    </select>
+
     <select id="getFreightTemplate" resultType="java.lang.Integer">
-        select id from cm_freight_template where id = #{freightId}
+        select id from cm_freight_template where id = #{freightId} and delFlag = 0
     </select>
 
     <select id="getFreightRule" resultType="com.caimei365.order.model.vo.FreightRuleVo">
-        select id, freightId, freightAmount, areaTax, freeType, freeCondition, productNum, allAmount
+        select distinct cfr.id, cfr.freightId, cfr.freightAmount, cfr.areaTax, cfr.freeType, cfr.freeCondition, cfr.productNum, cfr.allAmount
         from cm_freight_rule cfr
         left join cm_freight_template cft on cfr.freightId = cft.id
         left join cm_freight_area cfa on cfr.id = cfa.ruleId
-        where cft.id = #{freightId} and cfa.cityId = #{cityId}
+        where cft.id = #{freightId} and cfa.cityId = #{cityId} and cft.delFlag = 0
     </select>
 
     <select id="getCart" resultType="com.caimei365.order.model.po.CartPo">

+ 0 - 1
src/main/resources/mapper/OrderCommonMapper.xml

@@ -206,7 +206,6 @@
                cop.svipPriceFlag,
                cop.svipPriceType,
                cop.svipDiscount,
-               cop.freightFlag,
                p.productCategory  as productCategory,
                p.productType,
                p.productCode,