|
@@ -1,6 +1,7 @@
|
|
|
package com.fs.store.service.impl;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.nio.charset.Charset;
|
|
|
import java.sql.Timestamp;
|
|
|
import java.text.ParseException;
|
|
@@ -1196,7 +1197,13 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
|
|
|
@Override
|
|
|
public R confirmPackageOrder(long uid, FsStoreConfirmPackageIdOrderParam param) {
|
|
|
- FsUserAddress address= userAddressMapper.selectFsUserAddressByDefaultAddress(uid);
|
|
|
+ FsUserAddress address;
|
|
|
+ if(ObjectUtil.isNull(param.getUserAddressId())){
|
|
|
+ address= userAddressMapper.selectFsUserAddressByDefaultAddress(uid);
|
|
|
+ } else {
|
|
|
+ address = userAddressMapper.selectFsUserAddressById(param.getUserAddressId());
|
|
|
+ }
|
|
|
+ Asserts.notNull(address,"用户收货地址不能为空!");
|
|
|
FsStoreProductPackage storeProductPackage=productPackageService.selectFsStoreProductPackageById(param.getPackageId());
|
|
|
String uuid = IdUtil.randomUUID();
|
|
|
BigDecimal totalMoney=storeProductPackage.getPayMoney();
|
|
@@ -1219,11 +1226,11 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
return R.ok().put("orderKey",uuid)
|
|
|
.put("address",address)
|
|
|
.put("package",storeProductPackage)
|
|
|
- .put("totalMoney",totalMoney.add(postMoney))
|
|
|
- .put("postMoney",postMoney);
|
|
|
+ .put("totalMoney",totalMoney.add(postMoney).setScale(2, RoundingMode.HALF_UP))
|
|
|
+ .put("postMoney",postMoney.setScale(2, RoundingMode.HALF_UP));
|
|
|
}
|
|
|
|
|
|
- private BigDecimal calPostMoney(FsStoreProductPackage storeProductPackage, FsUserAddress address) {
|
|
|
+ public BigDecimal calPostMoney(FsStoreProductPackage storeProductPackage, FsUserAddress address) {
|
|
|
BigDecimal postMoney = BigDecimal.ZERO;
|
|
|
// 计算套餐邮费
|
|
|
if(ObjectUtil.isNotNull(storeProductPackage.getTemplateId())){
|
|
@@ -1405,13 +1412,13 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
storeOrder.setStatus(0);
|
|
|
storeOrder.setOrderCreateType(2);
|
|
|
storeOrder.setPayType(storeProductPackage.getPayType().toString());
|
|
|
- storeOrder.setPayPrice(totalMoney);
|
|
|
+ storeOrder.setPayPrice(totalMoney.add(postMoney));
|
|
|
storeOrder.setIsPackage(1);
|
|
|
FsStoreProductPackage productPackage=new FsStoreProductPackage();
|
|
|
productPackage.setTitle(storeProductPackage.getTitle());
|
|
|
productPackage.setImgUrl(storeProductPackage.getImgUrl());
|
|
|
productPackage.setDescs(storeProductPackage.getDescs());
|
|
|
- productPackage.setPayMoney(storeOrder.getPayMoney());
|
|
|
+ productPackage.setPayMoney(storeOrder.getPayMoney().add(postMoney));
|
|
|
productPackage.setPackageId(storeProductPackage.getPackageId());
|
|
|
storeOrder.setPackageJson(JSONUtil.toJsonStr(productPackage));
|
|
|
storeOrder.setPackageId(storeProductPackage.getPackageId());
|
|
@@ -1583,6 +1590,10 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
paymentService.updateFsStorePayment(storePaymentMap);
|
|
|
order=fsStoreOrderMapper.selectFsStoreOrderById(storePayment.getOrderId());
|
|
|
|
|
|
+ if(order == null){
|
|
|
+ logger.info("当前订单不存在! 可能为收款类型");
|
|
|
+ return "";
|
|
|
+ }
|
|
|
if(order!=null&&!order.getPaid().equals(0)){
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return "";
|
|
@@ -1634,8 +1645,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
}
|
|
|
}
|
|
|
catch (Exception e){
|
|
|
- logger.info("payConfirm:"+e.getMessage());
|
|
|
- logger.info("payConfirm:"+e.getLocalizedMessage());
|
|
|
+ logger.error("payConfirm: {} ",e.getMessage(),e);
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return "";
|
|
|
}
|
|
@@ -3107,7 +3117,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
}
|
|
|
order.setUserPhone(ParseUtils.parsePhone(order.getUserPhone()));
|
|
|
order.setUserAddress(ParseUtils.parseIdCard(order.getUserAddress()));
|
|
|
-
|
|
|
String json=configService.selectConfigByKey("store.config");
|
|
|
StoreConfig config=JSONUtil.toBean(json,StoreConfig.class);
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
@@ -3116,6 +3125,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
|
|
|
String payLimitTime = DateUtil.format(calendar.getTime(),"yyyy-MM-dd HH:mm:ss");
|
|
|
FsStoreProductPackage productPackage=null;
|
|
|
if(order.getIsPackage()!=null&&order.getIsPackage()==1){
|
|
|
+
|
|
|
productPackage= productPackageService.selectFsStoreProductPackageById(order.getPackageId());
|
|
|
}
|
|
|
return R.ok().put("order",order).put("productPackage",productPackage).put("payLimitTime",payLimitTime);
|