背景
公司准备给参加活动的用户进行随机抽取对应的奖品,并根据三种奖品的数量形成各自的权重。考虑到,活动中礼品数量的占比可能会根据活动真实情况发生改变,故将各个奖项的产品数量改成读取配置文件的方式通过disconf配置方式进行配置,避免上线后因为修改礼品数量需要发布生产环境代码。
思路:
通过配置文件将奖品统一读取到封装好的RandomDiscountCardConfig实体对象中,并将参数写在springboot的yml文件中。废话不多说先上一部分代码
@Component
@ConfigurationProperties(prefix = "discount")
@Data
public class RandomDiscountCardConfig {
//实物奖品
private String bag;
//视频卡
private String card;
//优惠券
private String coupon;
//数量
private int cardTotal;
private int bagTotal;
private int couponTotal;
}
接下来是配置yml部分
discount:
#视频优惠券对应券规则
card: card
#实物包优惠券对应券规则
bag: bag
#现金优惠券对应券规则
coupon: disCoupon
#视频优惠券数量
cardTotal: 10
#实物包数量
bagTotal: 20
#现金优惠券数量
couponTotal: 60
然后编写一个DropRandomCouponUtils工具类,可以通过调用静态方法的方式获取想要