大营销-更新日志
12.06
- 2.0版本部署成功
- 增加分库分表,支持分布式部署
- 完善用户抽奖功能
12.16
3.0版本部署成功,网址http://117.72.108.9:3000/?userId=xxx&activityId=100301
- 实现积分功能
- 积分兑换抽奖次数
- 积分查询
- sku产品列表
- 实现积分功能
TODOLIST
- 分布式架构的引入
- 抽奖10次接口
- 滚动播放排:xxx抽中了xxx
12.23
- 引入dubbo+nacos配置
12.30
- 引入降级策略和限流策略
TODO
达到权重值之后,可选择消耗幸运值阶梯次数,来实现保底抽奖
思路:
- 首先,在数据库中添加两个字段,我想着是把他添加到
raffle_activity_account
表格中,
之前查询抽奖次数使用的是这个函数:1
2
3
4
5
6
7
8
9
10
11// 1. 查询用户抽奖总次数
Integer userActivityAccountTotalUseCount = raffleActivityAccountQuotaService.queryActivityAccountPartakeCount(userId,activityId);
public Integer queryActivityAccountPartakeCount(String userId, Long activityId) {
RaffleActivityAccount raffleActivityAccount = accountDao.queryActivityAccountByUserIdAndActivityId(RaffleActivityAccount.builder()
.activityId(activityId)
.userId(userId)
.build());
return raffleActivityAccount.getTotalCount()-raffleActivityAccount.getTotalCountSurplus();
}
是将总Count减去getTotalCountSurplus得到的。
- 步骤1:添加字段
- 现在我想加入两个字段,1个是
total_raffled_count
,代表该用户已经抽过多少次的奖了,1个是available_raffled_count
,代表用户当前可使用在保底抽奖上的抽奖次数。 - 在用户抽奖,更新
raffle_activity_account
的时候,可以同步更新total_raffled_count
为raffleActivityAccount.getTotalCount()-raffleActivityAccount.getTotalCountSurplus();
- 同时更新
available_raffled_count = available_raffled_count + 1
(这个1即抽奖次数,但是未来可能会开发10连抽功能,因此这个1需要修改的,参考raffle_activity_sku
的做法)
- 步骤2:改变查询方法
1 |
|
同时,在责任链节点中,由于也需要查询抽奖次数,因此也要做相应的修改
1 |
|
- 消耗已抽奖的次数,兑换保底抽奖机会
当用户消耗抽奖次数兑换保底的时候,会扣减available_raffled_count
的值,同时走规则树策略,抽保底。
- 需要喜修改draw 这个 api,传入参数是:抽奖阶梯的id,用户id,是否需要开启保底抽奖的判断flag
- api的功能:根据抽奖阶梯id,从
raffle_activity_account
中,扣去available_raffled_count次数,再保底抽奖,走责任链rule weight节点。如果不点击保底抽奖,那么就不需要走责任链rule weight节点。
使用异步线程增加10连抽的功能
- 系统配置一套活动、规则,发奖部分增加再来一次的奖品发放
- 监控系统
- 订单ID,引用了hutool包的雪花算法加redis自增Id作为wokerId同时把用户分库分表放在后缀,这样可以通过订单直接查询,就是太长25位(弃用了)