forked from sfms3.0/sfms3.0
2 changed files with 109 additions and 0 deletions
@ -0,0 +1,39 @@ |
|||
package com.win.module.wms.enums.order; |
|||
|
|||
/** |
|||
* 订单状态枚举 |
|||
*/ |
|||
public enum OrderStatusEnum { |
|||
|
|||
CREATED(1), // 待支付
|
|||
PAID(2), // 已支付
|
|||
SHIPPED(3), // 已发货
|
|||
COMPLETED(4), // 已完成
|
|||
CANCELLING(5), // 取消中
|
|||
CANCELLED(6); // 已取消
|
|||
|
|||
private final Integer code; |
|||
|
|||
OrderStatusEnum(int code) { |
|||
this.code = code; |
|||
} |
|||
|
|||
public int getCode() { |
|||
return code; |
|||
} |
|||
|
|||
/** |
|||
* 用状态值获取枚举 |
|||
* @param status |
|||
* @return |
|||
*/ |
|||
static OrderStatusEnum getOrderStatusEnum(int status) { |
|||
for (OrderStatusEnum orderStatusEnum : values()) { |
|||
if (orderStatusEnum.getCode() == status) { |
|||
return orderStatusEnum; |
|||
} |
|||
} |
|||
return CREATED; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,70 @@ |
|||
package com.win.module.wms.enums.order; |
|||
|
|||
/** |
|||
* 订单状态机 |
|||
*/ |
|||
public class OrderStatusState { |
|||
|
|||
/** |
|||
* 当前状态枚举 |
|||
*/ |
|||
private OrderStatusEnum orderStatusEnum; |
|||
|
|||
/** |
|||
* 构造函数,默认创建 |
|||
*/ |
|||
public OrderStatusState() { |
|||
this.orderStatusEnum = OrderStatusEnum.CREATED; |
|||
} |
|||
|
|||
/** |
|||
* 构造函数,当前状态 |
|||
* @param status |
|||
*/ |
|||
public OrderStatusState(int status) { |
|||
this.orderStatusEnum = OrderStatusEnum.getOrderStatusEnum(status); |
|||
} |
|||
|
|||
/** |
|||
* 构造函数,当前状态枚举 |
|||
* @param orderStatusEnum |
|||
*/ |
|||
public OrderStatusState(OrderStatusEnum orderStatusEnum) { |
|||
this.orderStatusEnum = orderStatusEnum; |
|||
} |
|||
|
|||
/** |
|||
* 当前状态是否允许支付 |
|||
* @return |
|||
*/ |
|||
public boolean pay() { |
|||
if(this.orderStatusEnum.getCode() == OrderStatusEnum.CREATED.getCode()) { |
|||
this.orderStatusEnum = OrderStatusEnum.PAID; |
|||
return Boolean.TRUE; |
|||
} else { |
|||
return Boolean.FALSE; |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 当前状态是否允许发货 |
|||
* @return |
|||
*/ |
|||
public boolean ship() { |
|||
if(this.orderStatusEnum.getCode() == OrderStatusEnum.PAID.getCode()) { |
|||
this.orderStatusEnum = OrderStatusEnum.SHIPPED; |
|||
return Boolean.TRUE; |
|||
} else { |
|||
return Boolean.FALSE; |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 获取可执行的状态机 |
|||
* @return |
|||
*/ |
|||
public OrderStatusEnum getState() { |
|||
return orderStatusEnum; |
|||
} |
|||
|
|||
} |
Loading…
Reference in new issue