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