打榜活动礼物处理
This commit is contained in:
parent
45f7d6199d
commit
b1e66d134c
@ -396,21 +396,37 @@ public class RankCountStrategy implements GiftStrategy {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 先查询上架且进行中的活动
|
||||||
|
List<ActivityConfig> ongoingActivities = activityConfigService.listOngoingActivities(runningWater.getSysOrigin());
|
||||||
|
if (CollectionUtils.isEmpty(ongoingActivities)) {
|
||||||
|
log.debug("没有进行中的活动,跳过排行榜累计");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// 生成本周周一的cycleKey(格式:yyyyMMdd)
|
// 生成本周周一的cycleKey(格式:yyyyMMdd)
|
||||||
String cycleKey = generateWeeklyCycleKey();
|
String cycleKey = generateWeeklyCycleKey();
|
||||||
|
|
||||||
// 计算实际金额
|
// 计算实际金额
|
||||||
Long actualAmount = getActualAmount(isLuckyGift, runningWater.getGiftValue().getActualAmount(), luckyGiftRatio);
|
Long actualAmount = getActualAmount(isLuckyGift, runningWater.getGiftValue().getActualAmount(), luckyGiftRatio);
|
||||||
|
|
||||||
String giftType = runningWater.getGiftValue().getGiftType();
|
// 遍历活动,找到对应的type再累计对应活动类型的数据
|
||||||
|
for (ActivityConfig activity : ongoingActivities) {
|
||||||
// 遍历所有排行榜活动类型
|
if (Objects.isNull(activity.getActivityType())) {
|
||||||
for (RankingActivityType activityType : RankingActivityType.values()) {
|
continue;
|
||||||
if (giftType.contains(activityType.name())) {
|
|
||||||
// 累计对应活动类型的数据
|
|
||||||
getDataUpdateCmd(runningWater, senderProfile.getUserSex(), cycleKey, actualAmount, activityType);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if (!activity.getGiftIds().contains(String.valueOf(runningWater.getGiftId()))) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将活动类型转换为RankingActivityType枚举
|
||||||
|
try {
|
||||||
|
RankingActivityType activityType = RankingActivityType.valueOf(activity.getActivityType());
|
||||||
|
// 累计对应活动类型的数据
|
||||||
|
getDataUpdateCmd(runningWater, senderProfile.getUserSex(), cycleKey, actualAmount, activityType);
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
log.warn("未识别的活动类型: {}, activityId={}", activity.getActivityType(), activity.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("累计新排行榜数据异常, runningWaterId={}", runningWater.getId(), e);
|
log.error("累计新排行榜数据异常, runningWaterId={}", runningWater.getId(), e);
|
||||||
|
|||||||
@ -72,4 +72,11 @@ public interface ActivityConfigService {
|
|||||||
ActivityConfig getShowcaseActivityConf(Long templateId, String activityType);
|
ActivityConfig getShowcaseActivityConf(Long templateId, String activityType);
|
||||||
|
|
||||||
List<ActivityConfig> listRecentlyEndedActivities(String sysOrigin, Integer limit);
|
List<ActivityConfig> listRecentlyEndedActivities(String sysOrigin, Integer limit);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询上架且进行中的活动
|
||||||
|
* @param sysOrigin 系统来源
|
||||||
|
* @return 活动配置列表
|
||||||
|
*/
|
||||||
|
List<ActivityConfig> listOngoingActivities(String sysOrigin);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -266,4 +266,18 @@ public class ActivityConfigServiceImpl implements ActivityConfigService {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ActivityConfig> listOngoingActivities(String sysOrigin) {
|
||||||
|
if (StringUtils.isBlank(sysOrigin)) {
|
||||||
|
return Lists.newArrayList();
|
||||||
|
}
|
||||||
|
Date now = TimestampUtils.now();
|
||||||
|
return mongoTemplate.find(
|
||||||
|
Query.query(Criteria.where("sysOrigin").is(sysOrigin)
|
||||||
|
.and("showcase").is(Boolean.TRUE)
|
||||||
|
.and("startTime").lte(now)
|
||||||
|
.and("endTime").gte(now)),
|
||||||
|
ActivityConfig.class);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user