## 调换货物校验,校验订单原订单价格和调换完货之后的价格不相同不进行换货

This commit is contained in:
zhangheng 2025-09-10 10:21:36 +08:00 committed by cabbage
parent 2ec57ba215
commit 370565b694
2 changed files with 16 additions and 36 deletions

View File

@ -575,12 +575,12 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
// 查询订单信息
SaOrderExt saOrder = iSaOrderService.queryOrderByCode(orderCode, pkCountry);
if (null == saOrder) {
return TransactionUtils.getContent(CommonMsgConstants.OPERATION_FAILED) + "" + orderCode + SaOrderMsgConstants.ORDER_NOT_EXIST;
return CommonMsgConstants.OPERATION_FAILED + "" + orderCode + SaOrderMsgConstants.ORDER_NOT_EXIST;
}
// 订单支付日期 < 当前日期-7天
Date beforeDate = DateUtils.addDate(DateUtils.getStartTime(nowDate), -7);
if (beforeDate.compareTo(saOrder.getPayTime()) > 0) {
return TransactionUtils.getContent(DocumentMsgConstants.DOCUMENT_ORDER_SETTLED);
return DocumentMsgConstants.DOCUMENT_ORDER_SETTLED;
}
// 操作日志内容
@ -646,16 +646,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 CommonMsgConstants.OPERATION_FAILED + "" + param.getOrderCode() + SaOrderMsgConstants.PRODUCT_CONFIRM_PRICE;
}
if (iSaOrderChargeLogService.save(saOrderChargeLog)) {
@ -664,13 +661,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()) {
@ -703,12 +694,12 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
// 查询订单收货地址信息
SaOrderExt saOrder = iSaOrderService.queryOrderByCode(orderCode, pkCountry);
if (null == saOrder) {
return TransactionUtils.getContent(CommonMsgConstants.OPERATION_FAILED) + "" + orderCode + SaOrderMsgConstants.ORDER_NOT_EXIST;
return CommonMsgConstants.OPERATION_FAILED + "" + orderCode + SaOrderMsgConstants.ORDER_NOT_EXIST;
}
// 订单支付日期 < 当前日期-7天
Date beforeDate = DateUtils.addDate(DateUtils.getStartTime(nowDate), -7);
if (beforeDate.compareTo(saOrder.getPayTime()) > 0) {
return TransactionUtils.getContent(DocumentMsgConstants.DOCUMENT_ORDER_SETTLED);
return DocumentMsgConstants.DOCUMENT_ORDER_SETTLED;
}
// 涉及会员ID列表
@ -754,25 +745,9 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
;
// 修改后的订单金额 + 邮费
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 CommonMsgConstants.OPERATION_FAILED + "" + param.getOrderCode() + SaOrderMsgConstants.PRODUCT_CONFIRM_PRICE;
}
if (iSaOrderChargeLogService.save(saOrderChargeLog)) {
@ -786,7 +761,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
}
return submitStr;
}
return TransactionUtils.getContent(CommonMsgConstants.OPERATION_FAILED);
return CommonMsgConstants.OPERATION_FAILED;
}
@Transactional(rollbackFor = Exception.class)

View File

@ -169,5 +169,10 @@ public class SaOrderMsgConstants {
* 会员续约 -- 已终止会员不允许报单
*/
public static final String TERMINATED_NOT_DECLARATION = "已终止会员不允许报单";
/**
* 原订单价格和调换完货之后的价格不相同 -- 不允许货物调换
*/
public static final String PRODUCT_CONFIRM_PRICE = "原订单价格和调换完货之后的价格不相同";
}