diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/order/OrderStatusEnum.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/order/OrderStatusEnum.java new file mode 100644 index 00000000..6a4d4d0a --- /dev/null +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/order/OrderStatusEnum.java @@ -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; + } + +} diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/order/OrderStatusState.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/order/OrderStatusState.java new file mode 100644 index 00000000..12e72130 --- /dev/null +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/order/OrderStatusState.java @@ -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; + } + +}