package com.ltkj.mall.mallOrderUtils; import com.ltkj.mall.domain.MallOrder; import java.util.ArrayList; import java.util.List; /* * 订单流程:下单成功-》支付订单-》发货-》收货 * 订单状态: * 101 订单生成,未支付; * 102,下单未支付用户取消; * 103,下单未支付超期系统自动取消 * 201 支付完成,商家未发货; * 202,订单生产,已付款未发货,用户申请退款; * 203,管理员执行退款操作,确认退款成功; * 301 商家发货,用户未确认; * 401 用户确认收货,订单结束; * 402 用户没有确认收货,但是快递反馈已收货后,超过一定时间,系统自动确认收货,订单结束。 * * 当101用户未付款时,此时用户可以进行的操作是取消或者付款 * 当201支付完成而商家未发货时,此时用户可以退款 * 当301商家已发货时,此时用户可以有确认收货 * 当401用户确认收货以后,此时用户可以进行的操作是退货、删除、去评价或者再次购买 * 当402系统自动确认收货以后,此时用户可以删除、去评价、或者再次购买 */ public class OrderConstants { //未付款 public static final Short STATUS_CREATE = 101; //已取消 public static final Short STATUS_CANCEL = 102; //已取消(系统自动) public static final Short STATUS_AUTO_CANCEL = 103; //已取消(管理员操作) public static final Short STATUS_ADMIN_CANCEL = 104; //已付款 public static final Short STATUS_PAY = 201; //订单取消,退款中 public static final Short STATUS_REFUND = 202; // 售后审核通过,已核销,退款中 public static final Short STATUS_REFUND_VERIFY = 207; //已退款 public static final Short STATUS_REFUND_CONFIRM = 203; //已核销,订单完成 public static final Short STATUS_SHIP = 301; public static String orderStatusText(MallOrder order) { int status = order.getOrderStatus().intValue(); if (status == 101) { return "未付款"; } if (status == 102) { return "已取消"; } if (status == 103) { return "已取消(系统)"; } if (status == 201) { return "已付款"; } if (status == 202) { return "订单取消,退款中"; } if (status == 203) { return "已退款"; } if (status == 301) { return "已核销"; } throw new IllegalStateException("orderStatus不支持"); } public static OrderHandleOption build(MallOrder order) { int status = order.getOrderStatus().intValue(); OrderHandleOption handleOption = new OrderHandleOption(); if (status == 101) { // 如果订单没有被取消,且没有支付,则可支付,可取消 handleOption.setCancel(true); handleOption.setPay(true); } else if (status == 102 || status == 103) { // 如果订单已经取消或是已完成,则可删除 handleOption.setDelete(true); } else if (status == 201) { // 如果订单已付款,没有发货,则可退款,可发货 handleOption.setCanship(true); handleOption.setRefund(true); } else if (status == 202 || status == 204) { // 如果订单申请退款中,没有相关操作 } else if (status == 203) { // 如果订单已经退款,则可删除 handleOption.setDelete(true); } else if (status == 301) { // 如果订单已经核销则可删除和再次购买 // 此时不能取消订单 handleOption.setConfirm(true); } else if (status == 207) { // 如果订单已核销,则可删除和再次购买 handleOption.setDelete(true); handleOption.setRebuy(true); handleOption.setAftersale(true); } else { throw new IllegalStateException("status不支持"); } return handleOption; } public static List orderStatus(Integer showType) { // 全部订单 if (showType == 0) { return null; } List status = new ArrayList(2); if (showType.equals(1)) { // 待付款订单 status.add((short) 101); } else if (showType.equals(2)) { // 待发货订单 status.add((short) 201); } else if (showType.equals(3)) { // 待收货订单 status.add((short) 301); } else { return null; } return status; } public static boolean isCreateStatus(MallOrder MallOrder) { return OrderConstants.STATUS_CREATE == MallOrder.getOrderStatus().shortValue(); } public static boolean hasPayed(MallOrder order) { return OrderConstants.STATUS_CREATE != order.getOrderStatus().shortValue() && OrderConstants.STATUS_CANCEL != order.getOrderStatus().shortValue() && OrderConstants.STATUS_AUTO_CANCEL != order.getOrderStatus().shortValue(); } public static boolean isPayStatus(MallOrder MallOrder) { return OrderConstants.STATUS_PAY == MallOrder.getOrderStatus().shortValue(); } public static boolean isShipStatus(MallOrder MallOrder) { return OrderConstants.STATUS_SHIP == MallOrder.getOrderStatus().shortValue(); } public static boolean isCancelStatus(MallOrder MallOrder) { return OrderConstants.STATUS_CANCEL == MallOrder.getOrderStatus().shortValue(); } public static boolean isAutoCancelStatus(MallOrder MallOrder) { return OrderConstants.STATUS_AUTO_CANCEL == MallOrder.getOrderStatus().shortValue(); } public static boolean isRefundStatus(MallOrder MallOrder) { return OrderConstants.STATUS_REFUND == MallOrder.getOrderStatus().shortValue(); } public static boolean isRefundVerify(MallOrder MallOrder) { return OrderConstants.STATUS_REFUND_VERIFY == MallOrder.getOrderStatus().shortValue(); } public static boolean isRefundConfirmStatus(MallOrder MallOrder) { return OrderConstants.STATUS_REFUND_CONFIRM == MallOrder.getOrderStatus().shortValue(); } public static boolean isAdminCancel(MallOrder mallOrder) { return OrderUtil.STATUS_ADMIN_CANCEL == mallOrder.getOrderStatus().shortValue(); } }