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<Short> orderStatus(Integer showType) {
|
// 全部订单
|
if (showType == 0) {
|
return null;
|
}
|
|
List<Short> status = new ArrayList<Short>(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();
|
}
|
|
}
|