枚举

mapper.xml里的使用
and go.state = '${@com.cmiinv.shp.model.order.GroupOrderState@JOINABLE.code}'
<if test="targetState == @com.cmiinv.shp.model.order.OrderState@CONFIRMED.code">
   confirm_time = now()
</if>
 程序里的使用
groupOrder.setState(GroupOrderState.OPENED.getCode());

package com.cmiinv.shp.model.order;

import com.cmiinv.shp.model.Code;
import com.fasterxml.jackson.annotation.JsonCreator;
import lombok.Getter;

import java.util.Arrays;

/**
 * @author LiuQi
 */
public enum OrderState implements Code {
	/**
	 * 01: 待支付
	 */
	APPENDING,
	/**
	 * 02: 预支付中
	 */
	PRE_PAYING,
	/**
	 * 03: 支付中
	 */
	PAYING,
	/**
	 * 04: 已支付
	 */
	PAYED,
	/**
	 * 05: 已消费/已收货
	 */
	CONFIRMED,
	/**
	 * 06: 已评价/已完成
	 */
	FINISHED,
	/**
	 * 07: 已超时未支付
	 */
	EXPIRED,
	/**
	 * 08: 已申请退款
	 */
	REFUND_APPLIED,
	/**
	 * 09: 退款中
	 */
	REFUNDING,
	/**
	 * 10: 已退款
	 */
	REFUND,
	/**
	 * 11: 团订单已失效
	 */
	GROUP_EXPIRED,
	/**
	 * 99: 已关闭
	 */
	CLOSED("99");

	@Getter
	private String code;

	OrderState() {
		this.code = String.format("%02d", this.ordinal() + 1);
	}

	OrderState(String code) {
		this.code = code;
	}

	@JsonCreator
	public static OrderState fromCode(String code) {
		return Arrays.stream(OrderState.values())
				.filter(state -> state.code.equalsIgnoreCase(code))
				.findFirst()
				.orElse(null);
	}

}
package com.cmiinv.shp.model;

import com.fasterxml.jackson.annotation.JsonValue;

/**
 * @author LiuQi
 */
@FunctionalInterface
public interface Code {

	@JsonValue
	String getCode();

}

 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值