forked from sfms3.0/sfms3.0
4 changed files with 119 additions and 1 deletions
@ -0,0 +1,45 @@ |
|||
package com.win.module.wms.enums.order; |
|||
|
|||
/** |
|||
* 订单状态枚举 |
|||
*/ |
|||
public enum OrderStatusEnum { |
|||
|
|||
CREATED(1, "待支付"), |
|||
PAID(2, "已支付"), |
|||
SHIPPED(3, "已发货"), |
|||
COMPLETED(4, "已完成"), |
|||
CANCELLING(5, "取消中"), |
|||
CANCELLED(6, "已取消"); |
|||
|
|||
private final int code; |
|||
private final String info; |
|||
|
|||
OrderStatusEnum(int code, String info) { |
|||
this.code = code; |
|||
this.info = info; |
|||
} |
|||
|
|||
public int getCode() { |
|||
return code; |
|||
} |
|||
|
|||
public String getInfo() { |
|||
return info; |
|||
} |
|||
|
|||
/** |
|||
* 用状态值获取枚举 |
|||
* @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; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,4 @@ |
|||
/** |
|||
* System API 包,定义暴露给其它模块的 API |
|||
*/ |
|||
package com.win.module.wms.enums; |
Loading…
Reference in new issue