|
@@ -2787,8 +2787,10 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
// 订单金额
|
|
// 订单金额
|
|
|
TradeOrderTotalVO summary = createVO.getSummary();
|
|
TradeOrderTotalVO summary = createVO.getSummary();
|
|
|
BigDecimal orderMoney = ObjectUtil.defaultIfNull(summary.getOrderMoney(), BigDecimal.ZERO);
|
|
BigDecimal orderMoney = ObjectUtil.defaultIfNull(summary.getOrderMoney(), BigDecimal.ZERO);
|
|
|
|
|
+ BigDecimal oldPayAmount = ObjectUtil.defaultIfNull(tradeOrderDO.getPayAmount(), BigDecimal.ZERO);
|
|
|
|
|
+ BigDecimal oldFreeAmount = ObjectUtil.defaultIfNull(tradeOrderDO.getFreeAmount(), BigDecimal.ZERO);
|
|
|
BigDecimal policyAmount = policyList == null
|
|
BigDecimal policyAmount = policyList == null
|
|
|
- ? ObjectUtil.defaultIfNull(tradeOrderDO.getFreeAmount(), BigDecimal.ZERO)
|
|
|
|
|
|
|
+ ? oldFreeAmount
|
|
|
: policyList.stream()
|
|
: policyList.stream()
|
|
|
.map(TradeOrderPolicyReqVO::getAmount)
|
|
.map(TradeOrderPolicyReqVO::getAmount)
|
|
|
.filter(Objects::nonNull)
|
|
.filter(Objects::nonNull)
|
|
@@ -2798,10 +2800,10 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
BigDecimal realAmount = orderMoney.subtract(effectivePolicyAmount);
|
|
BigDecimal realAmount = orderMoney.subtract(effectivePolicyAmount);
|
|
|
Long discountId = summary.getDiscountId();
|
|
Long discountId = summary.getDiscountId();
|
|
|
shipTradeOrderCreateReqVO.setAmount(orderMoney);
|
|
shipTradeOrderCreateReqVO.setAmount(orderMoney);
|
|
|
- BigDecimal oldPayAmount = ObjectUtil.defaultIfNull(tradeOrderDO.getPayAmount(), BigDecimal.ZERO);
|
|
|
|
|
- BigDecimal oldFreeAmount = ObjectUtil.defaultIfNull(tradeOrderDO.getFreeAmount(), BigDecimal.ZERO);
|
|
|
|
|
- // 修改订单时只保存待审核的政策,不提前修改优惠金额和实际金额
|
|
|
|
|
- shipTradeOrderCreateReqVO.setPayAmount(oldPayAmount);
|
|
|
|
|
|
|
+ // 普通订单金额修改沿用原逻辑立即生效;仅新营销政策的优惠金额等待审核通过后生效
|
|
|
|
|
+ BigDecimal approvedPolicyAmount = oldFreeAmount.max(BigDecimal.ZERO)
|
|
|
|
|
+ .min(orderMoney.max(BigDecimal.ZERO));
|
|
|
|
|
+ shipTradeOrderCreateReqVO.setPayAmount(orderMoney.subtract(approvedPolicyAmount));
|
|
|
shipTradeOrderCreateReqVO.setFreeAmount(oldFreeAmount);
|
|
shipTradeOrderCreateReqVO.setFreeAmount(oldFreeAmount);
|
|
|
BigDecimal oldOrderDeposi = ObjectUtil.defaultIfNull(tradeOrderDO.getDeposi(), BigDecimal.ZERO);
|
|
BigDecimal oldOrderDeposi = ObjectUtil.defaultIfNull(tradeOrderDO.getDeposi(), BigDecimal.ZERO);
|
|
|
if (createVO.getSummary().getDeposi() != null
|
|
if (createVO.getSummary().getDeposi() != null
|
|
@@ -2920,8 +2922,8 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
shipTradeOrderCreateReqVO.setOldtradeOrderTotalDO(oldTradeOrderTotal);
|
|
shipTradeOrderCreateReqVO.setOldtradeOrderTotalDO(oldTradeOrderTotal);
|
|
|
// 构建新的订单汇总信息
|
|
// 构建新的订单汇总信息
|
|
|
TradeOrderTotalDO tradeOrderTotalDO = BeanUtils.toBean(summary, TradeOrderTotalDO.class);
|
|
TradeOrderTotalDO tradeOrderTotalDO = BeanUtils.toBean(summary, TradeOrderTotalDO.class);
|
|
|
- // 实际金额在最终审核通过后,按订单总金额和最新营销政策统一计算
|
|
|
|
|
- tradeOrderTotalDO.setRealMoney(oldTradeOrderTotal.getRealMoney());
|
|
|
|
|
|
|
+ // 汇总实际金额同步本次已落库金额;待审核政策金额在最终审核通过后再统一计算
|
|
|
|
|
+ tradeOrderTotalDO.setRealMoney(shipTradeOrderCreateReqVO.getPayAmount());
|
|
|
if(tradeOrderTotalDO.getUpFloorTotalMoney()==null){
|
|
if(tradeOrderTotalDO.getUpFloorTotalMoney()==null){
|
|
|
tradeOrderTotalDO.setUpFloorTotalMoney(BigDecimal.ZERO);
|
|
tradeOrderTotalDO.setUpFloorTotalMoney(BigDecimal.ZERO);
|
|
|
}
|
|
}
|
|
@@ -2997,9 +2999,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
auditType = 3;
|
|
auditType = 3;
|
|
|
desc = "平台修改定金金额,订单进入三级审核,"+oldDeposi+"->"+newDeposi;
|
|
desc = "平台修改定金金额,订单进入三级审核,"+oldDeposi+"->"+newDeposi;
|
|
|
}
|
|
}
|
|
|
- if (realAmount.compareTo(tradeOrderDO.getPayAmount())!=0 && loginUser.getDistributorId() == null) {
|
|
|
|
|
|
|
+ if (shipTradeOrderCreateReqVO.getPayAmount().compareTo(tradeOrderDO.getPayAmount())!=0 && loginUser.getDistributorId() == null) {
|
|
|
auditType = 4;
|
|
auditType = 4;
|
|
|
- desc = "平台修改实际金额,订单进入四级审核,"+tradeOrderDO.getPayAmount()+"->"+realAmount;
|
|
|
|
|
|
|
+ desc = "平台修改实际金额,订单进入四级审核,"+tradeOrderDO.getPayAmount()+"->"+shipTradeOrderCreateReqVO.getPayAmount();
|
|
|
}
|
|
}
|
|
|
if (oldleaderAmount.compareTo(leaderAmount)!=0 || oldwithAmount.compareTo(withAmount)!=0 || oldotherMoney.compareTo(otherMoney)!=0) {
|
|
if (oldleaderAmount.compareTo(leaderAmount)!=0 || oldwithAmount.compareTo(withAmount)!=0 || oldotherMoney.compareTo(otherMoney)!=0) {
|
|
|
auditType = 4;
|
|
auditType = 4;
|
|
@@ -3009,9 +3011,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
auditType = 4;
|
|
auditType = 4;
|
|
|
desc = "分销商修改订单金额,订单进入四级审核,"+tradeOrderDO.getAmount()+"->"+shipTradeOrderCreateReqVO.getAmount();
|
|
desc = "分销商修改订单金额,订单进入四级审核,"+tradeOrderDO.getAmount()+"->"+shipTradeOrderCreateReqVO.getAmount();
|
|
|
}
|
|
}
|
|
|
- if (realAmount.compareTo(tradeOrderDO.getPayAmount())!=0 && loginUser.getDistributorId() != null) {
|
|
|
|
|
|
|
+ if (shipTradeOrderCreateReqVO.getPayAmount().compareTo(tradeOrderDO.getPayAmount())!=0 && loginUser.getDistributorId() != null) {
|
|
|
auditType = 4;
|
|
auditType = 4;
|
|
|
- desc = "分销商修改实际金额,订单进入四级审核,"+tradeOrderDO.getPayAmount()+"->"+realAmount;
|
|
|
|
|
|
|
+ desc = "分销商修改实际金额,订单进入四级审核,"+tradeOrderDO.getPayAmount()+"->"+shipTradeOrderCreateReqVO.getPayAmount();
|
|
|
}
|
|
}
|
|
|
CommonResult<TradeOrderRespDTO> result = doShipModifyOrder(loginUser, shipTradeOrderCreateReqVO);
|
|
CommonResult<TradeOrderRespDTO> result = doShipModifyOrder(loginUser, shipTradeOrderCreateReqVO);
|
|
|
if (result.isError()) {
|
|
if (result.isError()) {
|