zhuyifan

refactor(settlement): improve settlement order detail processing logic

......@@ -873,9 +873,13 @@ public class SettlementServiceImpl implements SettlementService {
// 1. 先处理加餐
if (addOriginalDetailMap.containsKey(orderDetail.getId())
&& addOriginalDetailMap.get(orderDetail.getId()).getCount() != orderDetail.getCount()) {
SettlementDTO.SettlementOrderDetail addRecord = buildSettlementOrderDetail(
final var orderDetailBO = addOriginalDetailMap.get(orderDetail.getId());
SettlementDTO.SettlementOrderDetail beforeChange = buildSettlementOrderDetail(
order, orderDetail.getMenuDetailId(), orderDetail.getSkuId(), orderDetailBO.getCount(), orderDetail.getPrice(), "加餐", menuName, customerName, hisCustomerNo, menuDetailMap, mealMap, skuMap);
classifyOrders.add(beforeChange);
SettlementDTO.SettlementOrderDetail afterChange = buildSettlementOrderDetail(
order, orderDetail.getMenuDetailId(), orderDetail.getSkuId(), orderDetail.getCount(), orderDetail.getPrice(), "加餐", menuName, customerName, hisCustomerNo, menuDetailMap, mealMap, skuMap);
classifyOrders.add(addRecord);
classifyOrders.add(afterChange);
}
// 2. 再处理换菜
......@@ -885,7 +889,6 @@ public class SettlementServiceImpl implements SettlementService {
SettlementDTO.SettlementOrderDetail beforeChange = buildSettlementOrderDetail(
order, orderDetail.getMenuDetailId(), orderDetailBO.getSkuId(), orderDetailBO.getCount(), orderDetailBO.getPrice(), "换菜前", menuName, customerName, hisCustomerNo, menuDetailMap, mealMap, skuMap);
classifyOrders.add(beforeChange);
SettlementDTO.SettlementOrderDetail afterChange = buildSettlementOrderDetail(
order, orderDetail.getMenuDetailId(), orderDetail.getSkuId(), orderDetail.getCount(), orderDetail.getPrice(), "换菜后", menuName, customerName, hisCustomerNo, menuDetailMap, mealMap, skuMap);
classifyOrders.add(afterChange);
......@@ -893,9 +896,12 @@ public class SettlementServiceImpl implements SettlementService {
// 3. 判断已退款
if (orderDetail.getServeStatus() == ServeStatusEnum.SERVE_REJECT) {
SettlementDTO.SettlementOrderDetail refundRecord = buildSettlementOrderDetail(
SettlementDTO.SettlementOrderDetail refundRecord1 = buildSettlementOrderDetail(
order, orderDetail.getMenuDetailId(), orderDetail.getSkuId(), -orderDetail.getCount(), orderDetail.getPrice(), "已退款", menuName, customerName, hisCustomerNo, menuDetailMap, mealMap, skuMap);
classifyOrders.add(refundRecord1);
SettlementDTO.SettlementOrderDetail refundRecord2 = buildSettlementOrderDetail(
order, orderDetail.getMenuDetailId(), orderDetail.getSkuId(), orderDetail.getCount(), orderDetail.getPrice(), "已退款", menuName, customerName, hisCustomerNo, menuDetailMap, mealMap, skuMap);
classifyOrders.add(refundRecord);
classifyOrders.add(refundRecord2);
}
// 4. 如果既不是加餐,也不是换菜,也不是退款,才记录“订餐”
......