|
@@ -1203,7 +1203,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
} else {
|
|
|
address = userAddressMapper.selectFsUserAddressById(param.getUserAddressId());
|
|
|
}
|
|
|
- Asserts.notNull(address,"用户收货地址不能为空!");
|
|
|
FsStoreProductPackage storeProductPackage=productPackageService.selectFsStoreProductPackageById(param.getPackageId());
|
|
|
String uuid = IdUtil.randomUUID();
|
|
|
BigDecimal totalMoney=storeProductPackage.getPayMoney();
|
|
@@ -1217,7 +1216,11 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
}
|
|
|
}
|
|
|
// 计算运费
|
|
|
- BigDecimal postMoney = calPostMoney(storeProductPackage, address);
|
|
|
+ BigDecimal postMoney = BigDecimal.ZERO;
|
|
|
+ if(address != null){
|
|
|
+ postMoney = calPostMoney(storeProductPackage, address);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
redisCache.setCacheObject("orderKey:"+uuid, storeProductPackage.getPackageId().toString(), 300, TimeUnit.SECONDS);
|
|
|
|
|
@@ -1265,7 +1268,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
}else {
|
|
|
throw new IllegalArgumentException("当前套餐没有设置运费模板!");
|
|
|
}
|
|
|
- return postMoney;
|
|
|
+ return postMoney.setScale(2,RoundingMode.HALF_UP);
|
|
|
}
|
|
|
|
|
|
private BigDecimal getProductSum(FsStoreProductPackage storeProductPackage,Integer type){
|
|
@@ -1284,21 +1287,19 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
} else if(ObjectUtil.equal(ShippingTempEnum.TYPE_2.getValue(),type)){
|
|
|
FsStoreProductAttrValue fsStoreProductAttrValues
|
|
|
= fsStoreProductAttrValueService.selectFsStoreProductAttrValueById(id);
|
|
|
- sum = sum.add(fsStoreProductAttrValues.getWeight());
|
|
|
- sum = sum.multiply(BigDecimal.valueOf(count));
|
|
|
+ sum = sum.add(fsStoreProductAttrValues.getWeight().multiply(BigDecimal.valueOf(count)));
|
|
|
// 按体积
|
|
|
} else if(ObjectUtil.equal(ShippingTempEnum.TYPE_3.getValue(),type)){
|
|
|
FsStoreProductAttrValue fsStoreProductAttrValues
|
|
|
= fsStoreProductAttrValueService.selectFsStoreProductAttrValueById(id);
|
|
|
- sum = sum.add(fsStoreProductAttrValues.getVolume());
|
|
|
- sum = sum.multiply(BigDecimal.valueOf(count));
|
|
|
+ sum = sum.add(fsStoreProductAttrValues.getWeight().multiply(BigDecimal.valueOf(count)));
|
|
|
}
|
|
|
}
|
|
|
// 不满1kg按1kg计算
|
|
|
if(sum.compareTo(BigDecimal.ONE) < 0){
|
|
|
sum = BigDecimal.ONE;
|
|
|
}
|
|
|
- return sum;
|
|
|
+ return sum.setScale(0,RoundingMode.UP);
|
|
|
}
|
|
|
|
|
|
@Override
|