package order;
import lombok.NoArgsConstructor;
import lombok.RequiredArgsConstructor;
import lombok.Value;
import org.hibernate.validator.constraints.Length;
import org.jmolecules.architecture.cqrs.annotation.Command;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 订单登録
*
* @author Xiao Xi
*/
@Command
@Value
@NoArgsConstructor
@RequiredArgsConstructor
public class CreateOrderCommand {
/** 订单名称 */
@NotNull
@Length(min = 1, max = 100)
private String orderNo;
/** 订单详细 */
@Valid
private List<OrderLineVO> lines;
}
package order;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
import javax.validation.constraints.Digits;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* 订单详情
*
* @author Xiao Xi
*/
@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class OrderLineVO {
/** 订单详细金额 */
@NotNull
@Field(type = FieldType.Float)
@Digits(integer = 4, fraction = 2, message = "整数四位,小数两位;例如:7777.22")
private BigDecimal amount;
}
需要在订单详细上添加 @Valid 注解,这时 OrderLineVO 中的属性校验才有效