forked from angelo/java-retail-app
## 调换货物进行校验,原订单价格和调换完货之后的价格不相同,就不让进行换货
This commit is contained in:
parent
a356b55823
commit
933be1d4ca
|
@ -648,16 +648,13 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
|
|||
return "订单已经发货,不能进行调换货物";
|
||||
}
|
||||
|
||||
// 是否扣款
|
||||
boolean orderCostFlag = false;
|
||||
// 修改前的订单金额 + 邮费
|
||||
BigDecimal beforeAmount = saOrder.getOrderAmount().add(saOrder.getPostage()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||
// 修改后的订单金额 + 邮费
|
||||
BigDecimal afterAmount = afterData.getOrderAmount().add(param.getPostage()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||
// 对比修改前后订单价格处理是否补差价
|
||||
// 校验订单原订单价格和调换完货之后的价格不相同不进行换货
|
||||
if (beforeAmount.compareTo(afterAmount) != 0) {
|
||||
// 修改前后金额不相同则进行处理
|
||||
orderCostFlag = true;
|
||||
return TransactionUtils.getContent(CommonMsgConstants.OPERATION_FAILED) + ":" + param.getOrderCode() + SaOrderMsgConstants.PRODUCT_CONFIRM_PRICE;
|
||||
}
|
||||
|
||||
if (iSaOrderChargeLogService.save(saOrderChargeLog)) {
|
||||
|
@ -666,13 +663,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
|
|||
changeIdList, noChangeIdList,
|
||||
userId, pkCountry, nowDate);
|
||||
|
||||
if (orderCostFlag) {
|
||||
// 订单调换货物扣费处理
|
||||
R resultR = iMemberAccountServiceApi.orderChangeProduct(saOrder, updateOrder, userId, dto);
|
||||
if (!resultR.isSuccess()) {
|
||||
throw new BaseException(resultR.getMsg());
|
||||
}
|
||||
} else if (null != dto) {
|
||||
if (null != dto) {
|
||||
// 订单总价未变化,但是需要手续费
|
||||
R resultR = iMemberAccountServiceApi.orderChangeProduct(null, null, userId, dto);
|
||||
if (!resultR.isSuccess()) {
|
||||
|
@ -755,24 +746,9 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
|
|||
BigDecimal beforeAmount = saOrder.getOrderAmount().add(saOrder.getPostage()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||
// 修改后的订单金额 + 邮费
|
||||
BigDecimal afterAmount = afterData.getOrderAmount().add(param.getPostage()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||
// 对比修改前后订单价格处理是否补差价
|
||||
if (beforeAmount.compareTo(afterAmount) < 0) {
|
||||
// 存在差额
|
||||
// 封装订单数据
|
||||
SaOrder updateOrder = BeanUtil.copyProperties(saOrder, SaOrder.class);
|
||||
updateOrder.setPkId(saOrder.getPkId());
|
||||
updateOrder.setOrderAmount(afterData.getOrderAmount());
|
||||
updateOrder.setOrderAchieve(afterData.getOrderAchieve());
|
||||
updateOrder.setOrderAssAchieve(afterData.getOrderAssAchieve());
|
||||
updateOrder.setPostage(param.getPostage());
|
||||
updateOrder.setPkModified(userId);
|
||||
updateOrder.setModifiedTime(nowDate);
|
||||
|
||||
// 校验订单支付金额是否足够
|
||||
R resultR = iMemberAccountServiceApi.orderChangeProductPre(saOrder, updateOrder);
|
||||
if (!resultR.isSuccess()) {
|
||||
return resultR.getMsg();
|
||||
}
|
||||
//校验订单原订单价格和调换完货之后的价格不相同不进行换货
|
||||
if (beforeAmount.compareTo(afterAmount) != 0) {
|
||||
return TransactionUtils.getContent(CommonMsgConstants.OPERATION_FAILED) + ":" + param.getOrderCode() + SaOrderMsgConstants.PRODUCT_CONFIRM_PRICE;
|
||||
}
|
||||
|
||||
if (iSaOrderChargeLogService.save(saOrderChargeLog)) {
|
||||
|
@ -2015,7 +1991,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
|
|||
BigDecimal afterOrderAssAchieve = BigDecimal.ZERO;
|
||||
// 修改后明细数据
|
||||
List<OrderChangeProductDetailDTO> afterDetailList = new ArrayList<>();
|
||||
|
||||
// 产品ID列表
|
||||
List<Integer> productIdList = param.getItemList().stream().map(OrderProductDetailParam::getPkProduct).collect(Collectors.toList());
|
||||
// 查询产品列表
|
||||
|
|
|
@ -163,4 +163,9 @@ public class SaOrderMsgConstants {
|
|||
*/
|
||||
public static final String CHECK_MEMBER_LOWER_EXIST = "该会员推荐存在会员不能撤单";
|
||||
|
||||
/**
|
||||
* 原订单价格和调换完货之后的价格不相同 -- 不允许货物调换
|
||||
*/
|
||||
public static final String PRODUCT_CONFIRM_PRICE = "原订单价格和调换完货之后的价格不相同";
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue