zhuyifan

refactor(settlement): improve settlement order detail processing logic

...@@ -873,9 +873,13 @@ public class SettlementServiceImpl implements SettlementService { ...@@ -873,9 +873,13 @@ public class SettlementServiceImpl implements SettlementService {
873 // 1. 先处理加餐 873 // 1. 先处理加餐
874 if (addOriginalDetailMap.containsKey(orderDetail.getId()) 874 if (addOriginalDetailMap.containsKey(orderDetail.getId())
875 && addOriginalDetailMap.get(orderDetail.getId()).getCount() != orderDetail.getCount()) { 875 && addOriginalDetailMap.get(orderDetail.getId()).getCount() != orderDetail.getCount()) {
876 - SettlementDTO.SettlementOrderDetail addRecord = buildSettlementOrderDetail( 876 + final var orderDetailBO = addOriginalDetailMap.get(orderDetail.getId());
877 + SettlementDTO.SettlementOrderDetail beforeChange = buildSettlementOrderDetail(
878 + order, orderDetail.getMenuDetailId(), orderDetail.getSkuId(), orderDetailBO.getCount(), orderDetail.getPrice(), "加餐", menuName, customerName, hisCustomerNo, menuDetailMap, mealMap, skuMap);
879 + classifyOrders.add(beforeChange);
880 + SettlementDTO.SettlementOrderDetail afterChange = buildSettlementOrderDetail(
877 order, orderDetail.getMenuDetailId(), orderDetail.getSkuId(), orderDetail.getCount(), orderDetail.getPrice(), "加餐", menuName, customerName, hisCustomerNo, menuDetailMap, mealMap, skuMap); 881 order, orderDetail.getMenuDetailId(), orderDetail.getSkuId(), orderDetail.getCount(), orderDetail.getPrice(), "加餐", menuName, customerName, hisCustomerNo, menuDetailMap, mealMap, skuMap);
878 - classifyOrders.add(addRecord); 882 + classifyOrders.add(afterChange);
879 } 883 }
880 884
881 // 2. 再处理换菜 885 // 2. 再处理换菜
...@@ -885,7 +889,6 @@ public class SettlementServiceImpl implements SettlementService { ...@@ -885,7 +889,6 @@ public class SettlementServiceImpl implements SettlementService {
885 SettlementDTO.SettlementOrderDetail beforeChange = buildSettlementOrderDetail( 889 SettlementDTO.SettlementOrderDetail beforeChange = buildSettlementOrderDetail(
886 order, orderDetail.getMenuDetailId(), orderDetailBO.getSkuId(), orderDetailBO.getCount(), orderDetailBO.getPrice(), "换菜前", menuName, customerName, hisCustomerNo, menuDetailMap, mealMap, skuMap); 890 order, orderDetail.getMenuDetailId(), orderDetailBO.getSkuId(), orderDetailBO.getCount(), orderDetailBO.getPrice(), "换菜前", menuName, customerName, hisCustomerNo, menuDetailMap, mealMap, skuMap);
887 classifyOrders.add(beforeChange); 891 classifyOrders.add(beforeChange);
888 -
889 SettlementDTO.SettlementOrderDetail afterChange = buildSettlementOrderDetail( 892 SettlementDTO.SettlementOrderDetail afterChange = buildSettlementOrderDetail(
890 order, orderDetail.getMenuDetailId(), orderDetail.getSkuId(), orderDetail.getCount(), orderDetail.getPrice(), "换菜后", menuName, customerName, hisCustomerNo, menuDetailMap, mealMap, skuMap); 893 order, orderDetail.getMenuDetailId(), orderDetail.getSkuId(), orderDetail.getCount(), orderDetail.getPrice(), "换菜后", menuName, customerName, hisCustomerNo, menuDetailMap, mealMap, skuMap);
891 classifyOrders.add(afterChange); 894 classifyOrders.add(afterChange);
...@@ -893,9 +896,12 @@ public class SettlementServiceImpl implements SettlementService { ...@@ -893,9 +896,12 @@ public class SettlementServiceImpl implements SettlementService {
893 896
894 // 3. 判断已退款 897 // 3. 判断已退款
895 if (orderDetail.getServeStatus() == ServeStatusEnum.SERVE_REJECT) { 898 if (orderDetail.getServeStatus() == ServeStatusEnum.SERVE_REJECT) {
896 - SettlementDTO.SettlementOrderDetail refundRecord = buildSettlementOrderDetail( 899 + SettlementDTO.SettlementOrderDetail refundRecord1 = buildSettlementOrderDetail(
900 + order, orderDetail.getMenuDetailId(), orderDetail.getSkuId(), -orderDetail.getCount(), orderDetail.getPrice(), "已退款", menuName, customerName, hisCustomerNo, menuDetailMap, mealMap, skuMap);
901 + classifyOrders.add(refundRecord1);
902 + SettlementDTO.SettlementOrderDetail refundRecord2 = buildSettlementOrderDetail(
897 order, orderDetail.getMenuDetailId(), orderDetail.getSkuId(), orderDetail.getCount(), orderDetail.getPrice(), "已退款", menuName, customerName, hisCustomerNo, menuDetailMap, mealMap, skuMap); 903 order, orderDetail.getMenuDetailId(), orderDetail.getSkuId(), orderDetail.getCount(), orderDetail.getPrice(), "已退款", menuName, customerName, hisCustomerNo, menuDetailMap, mealMap, skuMap);
898 - classifyOrders.add(refundRecord); 904 + classifyOrders.add(refundRecord2);
899 } 905 }
900 906
901 // 4. 如果既不是加餐,也不是换菜,也不是退款,才记录“订餐” 907 // 4. 如果既不是加餐,也不是换菜,也不是退款,才记录“订餐”
......