|
|
|
@ -13,6 +13,7 @@ public final class DaQuReceiptRenderUtil { |
|
|
|
private static final String LINE = "--------------------------------"; |
|
|
|
private static final String TIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; |
|
|
|
private static final String APPOINTMENT_TIME_PATTERN = "yyyy-MM-dd HH:mm"; |
|
|
|
private static final String TARGET_SOCIAL_DELIVERY_REGION_ID = "2110300467664916480"; |
|
|
|
|
|
|
|
private DaQuReceiptRenderUtil() { |
|
|
|
} |
|
|
|
@ -25,10 +26,14 @@ public final class DaQuReceiptRenderUtil { |
|
|
|
boolean forcedOrderPrint = isOrderEventPrint(printReason); |
|
|
|
boolean scanVerifyPrint = isScanVerifyPrint(printReason); |
|
|
|
boolean hasRefund = refundPrint && refunds != null && !refunds.isEmpty(); |
|
|
|
boolean targetSocialDeliveryOrder = isTargetSocialDeliveryOrder(order, delivery); |
|
|
|
|
|
|
|
centerLarge(sb, orderNo(order)); |
|
|
|
centerLarge(sb, orderTypeText(order, delivery, refundPrint, forcedOrderPrint, scanVerifyPrint)); |
|
|
|
if (delivery != null && Integer.valueOf(1).equals(delivery.getAppointmentDelivery())) { |
|
|
|
if (isSelfPickupAppointment(order)) { |
|
|
|
largeLeft(sb, "实际取餐时间:"); |
|
|
|
largeLeft(sb, formatAppointmentTime(order.getUserRequireMakeTime())); |
|
|
|
} else if (delivery != null && Integer.valueOf(1).equals(delivery.getAppointmentDelivery())) { |
|
|
|
largeLeft(sb, "要求送达时间:"); |
|
|
|
largeLeft(sb, formatAppointmentTime(delivery.getMustFinishTime())); |
|
|
|
} |
|
|
|
@ -38,14 +43,14 @@ public final class DaQuReceiptRenderUtil { |
|
|
|
left(sb, defaultString(order.getShopName())); |
|
|
|
left(sb, "下单时间:" + formatTime(order.getCreateTime())); |
|
|
|
if (!hasRefund) { |
|
|
|
if (Integer.valueOf(1).equals(order.getDeliveryType()) && !Integer.valueOf(1).equals(delivery.getAppointmentDelivery())) { |
|
|
|
if (Integer.valueOf(1).equals(order.getDeliveryType()) && (delivery == null || !Integer.valueOf(1).equals(delivery.getAppointmentDelivery()))) { |
|
|
|
left(sb, "预计送达时间:" + formatTime(delivery == null ? null : delivery.getMustFinishTime())); |
|
|
|
} else if (Integer.valueOf(1).equals(order.getUserRequireMake())) { |
|
|
|
left(sb, "核销时间:" + formatTime(order.getCreateTime())); |
|
|
|
} else if (Integer.valueOf(2).equals(order.getDeliveryType()) && Integer.valueOf(1).equals(order.getUserRequireMake())) { |
|
|
|
left(sb, "出餐方式:立即出餐"); |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (Integer.valueOf(1).equals(order.getUserRequireMake()) && Integer.valueOf(2).equals(order.getDeliveryType())) { |
|
|
|
left(sb, "核销时间:" + formatTime(order.getCreateTime())); |
|
|
|
left(sb, "出餐方式:立即出餐"); |
|
|
|
} |
|
|
|
left(sb, "申请退款时间:" + formatTime(refunds.get(0).getCreateTime())); |
|
|
|
} |
|
|
|
@ -54,9 +59,17 @@ public final class DaQuReceiptRenderUtil { |
|
|
|
if (shouldPrintDeliveryAddress(order, refundPrint, forcedOrderPrint)) { |
|
|
|
largeLeft(sb, delivery == null ? "" : delivery.getReceiverName()); |
|
|
|
} |
|
|
|
left(sb, "联系电话: " + maskPhoneLastFour(order.getReceiverPhone())); |
|
|
|
if (targetSocialDeliveryOrder) { |
|
|
|
largeLeft(sb, "联系电话: " + maskPhoneLastFour(order.getReceiverPhone())); |
|
|
|
} else { |
|
|
|
left(sb, "联系电话: " + maskPhoneLastFour(order.getReceiverPhone())); |
|
|
|
} |
|
|
|
if (shouldPrintDeliveryAddress(order, refundPrint, forcedOrderPrint)) { |
|
|
|
largeLeft(sb, "地址:" + (delivery == null ? "" : delivery.getReceiverAddress())); |
|
|
|
if (targetSocialDeliveryOrder) { |
|
|
|
left(sb, "地址:" + (delivery == null ? "" : delivery.getReceiverAddress())); |
|
|
|
} else { |
|
|
|
largeLeft(sb, "地址:" + (delivery == null ? "" : delivery.getReceiverAddress())); |
|
|
|
} |
|
|
|
} |
|
|
|
left(sb, "顾客电话已被隐藏,您可登录商家端或骑手端查看"); |
|
|
|
separator(sb); |
|
|
|
@ -65,7 +78,7 @@ public final class DaQuReceiptRenderUtil { |
|
|
|
for (MallOrderGoods goods : order.getGoodsList()) { |
|
|
|
largeLeft(sb, defaultString(goods.getProductName())); |
|
|
|
if (StringUtils.contains(goods.getSpecs(), ",")) { |
|
|
|
left(sb, delNode(goods.getSpecs())); |
|
|
|
boldLeft(sb, delNode(goods.getSpecs())); |
|
|
|
} |
|
|
|
largeLeft(sb, "¥" + amount(goods.getPrice()) + " X" + safeQuantity(goods.getQuantity())); |
|
|
|
} |
|
|
|
@ -114,7 +127,7 @@ public final class DaQuReceiptRenderUtil { |
|
|
|
for (MallReturnOrderGoods goods : refund.getItems()) { |
|
|
|
largeLeft(sb, defaultString(goods.getProductName())); |
|
|
|
if (StringUtils.contains(goods.getSpecs(), ",")) { |
|
|
|
left(sb, delNode(goods.getSpecs())); |
|
|
|
boldLeft(sb, delNode(goods.getSpecs())); |
|
|
|
} |
|
|
|
largeLeft(sb, "¥" + amount(goods.getPrice()) + " X" + safeQuantity(goods.getQuantity())); |
|
|
|
} |
|
|
|
@ -136,6 +149,14 @@ public final class DaQuReceiptRenderUtil { |
|
|
|
&& !Integer.valueOf(12).equals(status); |
|
|
|
} |
|
|
|
|
|
|
|
private static boolean isTargetSocialDeliveryOrder(MallOrderVO order, MallDeliveryOrder delivery) { |
|
|
|
if (order == null || !Integer.valueOf(1).equals(order.getDeliveryType())) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
return TARGET_SOCIAL_DELIVERY_REGION_ID.equals(order.getRegionId()) |
|
|
|
|| (delivery != null && TARGET_SOCIAL_DELIVERY_REGION_ID.equals(delivery.getRegionId())); |
|
|
|
} |
|
|
|
|
|
|
|
private static String orderNo(MallOrderVO order) { |
|
|
|
MallDeliveryOrder delivery = order.getDeliveryInfo(); |
|
|
|
if (isFaceToFaceDelivery(order) |
|
|
|
@ -148,6 +169,9 @@ public final class DaQuReceiptRenderUtil { |
|
|
|
|
|
|
|
private static String orderTypeText(MallOrderVO order, MallDeliveryOrder delivery, boolean refundPrint, boolean forcedOrderPrint, boolean scanVerifyPrint) { |
|
|
|
Integer status = order.getStatus(); |
|
|
|
if (isSelfPickupAppointment(order) && !refundPrint) { |
|
|
|
return "预约到店"; |
|
|
|
} |
|
|
|
if (delivery != null && Integer.valueOf(1).equals(delivery.getAppointmentDelivery()) |
|
|
|
&& !refundPrint) { |
|
|
|
return "预约单"; |
|
|
|
@ -167,7 +191,8 @@ public final class DaQuReceiptRenderUtil { |
|
|
|
return "申请退款"; |
|
|
|
} |
|
|
|
if (Integer.valueOf(3).equals(status) && Integer.valueOf(2).equals(order.getDeliveryType()) |
|
|
|
&& !Integer.valueOf(1).equals(order.getUserRequireMake())) { |
|
|
|
&& !Integer.valueOf(1).equals(order.getUserRequireMake()) |
|
|
|
&& !isSelfPickupAppointment(order)) { |
|
|
|
return "待消费"; |
|
|
|
} |
|
|
|
if (scanVerifyPrint) { |
|
|
|
@ -211,6 +236,12 @@ public final class DaQuReceiptRenderUtil { |
|
|
|
&& Integer.valueOf(3).equals(order.getOrderType()); |
|
|
|
} |
|
|
|
|
|
|
|
private static boolean isSelfPickupAppointment(MallOrderVO order) { |
|
|
|
return order != null |
|
|
|
&& Integer.valueOf(2).equals(order.getDeliveryType()) |
|
|
|
&& order.getUserRequireMakeTime() != null; |
|
|
|
} |
|
|
|
|
|
|
|
private static String amountLabel(MallOrderVO order, boolean hasRefund) { |
|
|
|
if (hasRefund && !Integer.valueOf(2).equals(order.getDeliveryType())) { |
|
|
|
return "实付金额:"; |
|
|
|
@ -220,7 +251,8 @@ public final class DaQuReceiptRenderUtil { |
|
|
|
|
|
|
|
private static boolean isOrderEventPrint(String printReason) { |
|
|
|
return StringUtils.containsIgnoreCase(printReason, "ACCEPT_ORDER") |
|
|
|
|| StringUtils.containsIgnoreCase(printReason, "SHOP_INSTANT_MAKE"); |
|
|
|
|| StringUtils.containsIgnoreCase(printReason, "SHOP_INSTANT_MAKE") |
|
|
|
|| StringUtils.containsIgnoreCase(printReason, "SHOP_APPOINTMENT_MAKE"); |
|
|
|
} |
|
|
|
|
|
|
|
private static String refundReason(MallRefundRecord refund) { |
|
|
|
@ -268,6 +300,10 @@ public final class DaQuReceiptRenderUtil { |
|
|
|
sb.append("<LEFT><FONT bolder=0 height=2 width=2>").append(clean(text)).append("</FONT></LEFT><BR>"); |
|
|
|
} |
|
|
|
|
|
|
|
private static void boldLeft(StringBuilder sb, String text) { |
|
|
|
sb.append("<LEFT><FONT bolder=1 height=1 width=1>").append(clean(text)).append("</FONT></LEFT><BR>"); |
|
|
|
} |
|
|
|
|
|
|
|
private static void center(StringBuilder sb, String text) { |
|
|
|
sb.append("<C>").append(clean(text)).append("</C><BR>"); |
|
|
|
} |
|
|
|
|