瀏覽代碼

运费计算封装

xdd 2 月之前
父節點
當前提交
caeca725fc
共有 1 個文件被更改,包括 18 次插入8 次删除
  1. 18 8
      fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java

+ 18 - 8
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java

@@ -1209,6 +1209,18 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                 }
             }
         }
+        // 计算运费
+        BigDecimal postMoney = calPostMoney(storeProductPackage, address);
+
+        redisCache.setCacheObject("orderKey:"+uuid, storeProductPackage.getPackageId().toString(), 300, TimeUnit.SECONDS);
+        return R.ok().put("orderKey",uuid)
+                .put("address",address)
+                .put("package",storeProductPackage)
+                .put("totalMoney",totalMoney)
+                .put("postMoney",postMoney);
+    }
+
+    private BigDecimal calPostMoney(FsStoreProductPackage storeProductPackage, FsUserAddress address) {
         BigDecimal postMoney = BigDecimal.ZERO;
         // 计算套餐邮费
         if(ObjectUtil.isNotNull(storeProductPackage.getTemplateId())){
@@ -1240,14 +1252,10 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                     postMoney = bigDecimal;
                 }
             }
+        }else {
+            throw new IllegalArgumentException("当前套餐没有设置运费模板!");
         }
-
-        redisCache.setCacheObject("orderKey:"+uuid, storeProductPackage.getPackageId().toString(), 300, TimeUnit.SECONDS);
-        return R.ok().put("orderKey",uuid)
-                .put("address",address)
-                .put("package",storeProductPackage)
-                .put("totalMoney",totalMoney)
-                .put("postMoney",postMoney);
+        return postMoney;
     }
 
     private BigDecimal getProductSum(FsStoreProductPackage storeProductPackage,Integer type){
@@ -1377,8 +1385,10 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             storeOrder.setTotalNum(Long.parseLong(String.valueOf(goodsList.size())));
             storeOrder.setTotalPrice(storeProductPackage.getPayMoney());
             storeOrder.setTotalPostage(BigDecimal.ZERO);
+            // 计算运费
+            BigDecimal postMoney = calPostMoney(storeProductPackage, address);
+            storeOrder.setPayPostage(postMoney);
 
-            storeOrder.setPayPostage(BigDecimal.ZERO);
             storeOrder.setDeductionPrice(BigDecimal.ZERO);
             storeOrder.setPaid(0);
             storeOrder.setUseIntegral(BigDecimal.ZERO);