开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 14 天,点击查看活动详情
1.新增constant包
2.新增三个枚举类型(产品线枚举,分发对象枚举,优惠券分类枚举)
- 产品线枚举
@Getter
@AllArgsConstructor
public enum ProductLine {
DAMAO("大猫", 1),
DABAO("大宝", 2);
/** 产品线描述 */
private String description;
/** 产品线编码 */
private Integer code;
}
代码说明:
DAMAO("大猫", 1):一般优惠券有对应的产品线,比如说针对新人的产品线,针对老客的产品线,这边的DAMAO只是举一个例子而已
- 分发对象枚举
@Getter
@AllArgsConstructor
public enum DistributeTarget {
SINGLE("单用户", 1),
MULTI("多用户", 2);
/** 分发目标描述 */
}
代码说明:
- SINGLE:单用户对象指的是用户主动去领取优惠券
- MULTI:指的是平台批量发放优惠券给用户
- 优惠券分类枚举
代码:
public enum CouponCategory {
MANJIAN("满减券", "001"),
ZHEKOU("折扣券", "002"),
LIJIAN("立减券", "003");
/** 优惠券描述(分类) */
private String description;
/** 优惠券分类编码 */
private String code;
public static CouponCategory of(String code) {
Objects.requireNonNull(code);
return Stream.of(values())
.filter(bean -> bean.code.equals(code))
.findAny()
.orElseThrow(() -> new IllegalArgumentException(code + " not exists!"));
}
}
代码说明:
- 优惠券存在多种类型,我们举例三种常见的类型;
- 满减券,比如说我们电商网站经常看到的是满200-10元,满100-5的类型;
- 折扣券:比如说总价打85折扣;
- 立减券:比如说无门槛立减五元
- CouponCategory of(String code):用来判断折扣编码是否存在
源码如下:
- Objects.requireNonNull(code):判断对象是否为空,如果为空,则会报异常,如果非空则会返回该对象
- Stream.of(values()) .filter(bean -> bean.code.equals(code)) .findAny() .orElseThrow(() -> new IllegalArgumentException(code + " not exists!"))
- 查找任意code,如果不存在这返回异常,
- bean -> bean.code.equals(code):用来判断code是否相同
- fandAny:查找任意code;
- orElseThrow:如果不存在,这提示异常