rankingActivity活动定时任务处理
This commit is contained in:
parent
ad095d0b6b
commit
766be4ec80
@ -100,6 +100,13 @@ public interface SysActivityConfigClientApi {
|
||||
ResultResponse<ActivityConfigDTO> effectiveActivityConf(
|
||||
@RequestBody @Validated ActivityConfigBackQryCmd query);
|
||||
|
||||
/**
|
||||
* 查询有效的活动配置.
|
||||
*/
|
||||
@PostMapping("/conf/bytemplate")
|
||||
ResultResponse<ActivityConfigDTO> effectiveActivityByTemplate(
|
||||
@RequestParam Long templateId, @RequestParam String activityType);
|
||||
|
||||
|
||||
/**
|
||||
* 获取模版信息.
|
||||
|
||||
@ -44,6 +44,11 @@ public class ActivityConfigDTO extends DTO {
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long templateId;
|
||||
|
||||
/**
|
||||
* 活动类型
|
||||
*/
|
||||
private String activityType;
|
||||
|
||||
/**
|
||||
* 开始时间.
|
||||
*/
|
||||
|
||||
@ -192,10 +192,10 @@ public class WeeklyRewardsSentManager {
|
||||
}
|
||||
|
||||
|
||||
public void sendLastRankingActivity(Long templateId) {
|
||||
public void sendLastRankingActivity(Long templateId, String activityType) {
|
||||
try {
|
||||
// 1. 获取活动配置信息
|
||||
ActivityConfigDTO activityConfigDTO = getActivityConfig(templateId);
|
||||
ActivityConfigDTO activityConfigDTO = getActivityConfig(templateId, activityType);
|
||||
// 国王皇后活动单独发放。
|
||||
long kingQueenTemplateId = getKingQueenTemplateId();
|
||||
if (activityConfigDTO == null || activityConfigDTO.getTemplateId() == kingQueenTemplateId) {
|
||||
@ -214,13 +214,12 @@ public class WeeklyRewardsSentManager {
|
||||
|
||||
String sysOrigin = SysOriginPlatformEnum.LIKEI.name();
|
||||
// 获取枚举
|
||||
RankingActivityType activityType = RankingActivityType.HEROES_DAY;
|
||||
RankingCycleType cycleType = RankingCycleType.WEEKLY;
|
||||
// 4. 获取奖励配置并更新
|
||||
List<ActivityConfigRewardsDTO> kingRewardList = activityConfigDTO.getButOneRewards();
|
||||
List<RankingActivityRecord> records = rankingActivityGateway.getRankingList(
|
||||
sysOrigin,
|
||||
activityType,
|
||||
RankingActivityType.valueOf(activityType),
|
||||
cycleType,
|
||||
lastWeekDate,
|
||||
null,
|
||||
@ -276,12 +275,12 @@ public class WeeklyRewardsSentManager {
|
||||
/**
|
||||
* 获取活动配置信息
|
||||
*/
|
||||
private ActivityConfigDTO getActivityConfig(Long templateId) {
|
||||
private ActivityConfigDTO getActivityConfig(Long templateId, String activityType) {
|
||||
try {
|
||||
ActivityConfigBackQryCmd query = new ActivityConfigBackQryCmd();
|
||||
query.setSysOrigin(SysOriginPlatformEnum.LIKEI.name());
|
||||
query.setTemplateId(templateId);
|
||||
return ResponseAssert.requiredSuccess(sysActivityConfigClient.effectiveActivityConf(query));
|
||||
return ResponseAssert.requiredSuccess(sysActivityConfigClient.effectiveActivityByTemplate(templateId, activityType));
|
||||
} catch (Exception e) {
|
||||
log.error("[KingQueen] 获取活动配置失败, 错误信息: {}", e.getMessage(), e);
|
||||
return null;
|
||||
|
||||
@ -27,7 +27,7 @@ public class RankingActivityRewardTask {
|
||||
/**
|
||||
* 每周一 0点0分执行.
|
||||
*/
|
||||
// @Scheduled(cron = "0 0 0 ? * MON", zone = "Asia/Riyadh")
|
||||
@Scheduled(cron = "0 0 0 ? * MON", zone = "Asia/Riyadh")
|
||||
@TaskCacheLock(key = "RANKING_ACTIVITY_REWARD_TASK", expireSecond = 86400)
|
||||
public void sendRankingActivityReward() {
|
||||
long startTime = System.currentTimeMillis();
|
||||
@ -39,7 +39,7 @@ public class RankingActivityRewardTask {
|
||||
List<ActivityConfig> lastWeekActivities =
|
||||
activityConfigService.listRecentlyEndedActivities("LIKEI", 10);
|
||||
lastWeekActivities.forEach(activityConfig -> {
|
||||
weeklyRewardsSentManager.sendLastRankingActivity(activityConfig.getTemplateId());
|
||||
weeklyRewardsSentManager.sendLastRankingActivity(activityConfig.getTemplateId(), activityConfig.getActivityType());
|
||||
});
|
||||
|
||||
log.warn("========== rankingActivity 活动奖励发放定时任务完成,耗时:{} ms ==========",
|
||||
|
||||
@ -43,6 +43,11 @@ public class ActivityConfig implements Serializable {
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long templateId;
|
||||
|
||||
/**
|
||||
* 活动类型
|
||||
*/
|
||||
private String activityType;
|
||||
|
||||
/**
|
||||
* 开始时间.
|
||||
*/
|
||||
|
||||
@ -69,5 +69,7 @@ public interface ActivityConfigService {
|
||||
*/
|
||||
ActivityConfig getEffectiveActivityConf(ActivityConfigBackQryCmd query);
|
||||
|
||||
ActivityConfig getShowcaseActivityConf(Long templateId, String activityType);
|
||||
|
||||
List<ActivityConfig> listRecentlyEndedActivities(String sysOrigin, Integer limit);
|
||||
}
|
||||
|
||||
@ -239,12 +239,23 @@ public class ActivityConfigServiceImpl implements ActivityConfigService {
|
||||
, ActivityConfig.class);
|
||||
}
|
||||
|
||||
public ActivityConfig getShowcaseActivityConf(Long templateId, String activityType) {
|
||||
Criteria criteria = Criteria.where("showcase").is(true);
|
||||
criteria.and("templateId").is(templateId);
|
||||
criteria.and("activityType").is(activityType);
|
||||
|
||||
return mongoTemplate.findOne(Query.query(criteria)
|
||||
.with(Sort.by(Sort.Order.desc("id")))
|
||||
.limit(1)
|
||||
, ActivityConfig.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ActivityConfig> listRecentlyEndedActivities(String sysOrigin, Integer limit) {
|
||||
Date now = TimestampUtils.now();
|
||||
|
||||
Criteria criteria = Criteria.where("sysOrigin").is(sysOrigin)
|
||||
.and("showcase").is(true)
|
||||
// .and("showcase").is(true)
|
||||
.and("startTime").lte(now);
|
||||
|
||||
return mongoTemplate.find(
|
||||
|
||||
@ -19,6 +19,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
@ -96,6 +97,11 @@ public class SysActivityConfigClientEndpoint implements SysActivityConfigClientA
|
||||
return ResultResponse.success(sysActivityConfigClientService.getEffectiveActivityConf(query));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultResponse<ActivityConfigDTO> effectiveActivityByTemplate(Long templateId, String activityType) {
|
||||
return ResultResponse.success(sysActivityConfigClientService.getShowcaseActivityConf(templateId, activityType));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultResponse<Map<Long, ActivityTemplateValueDTO>> mapByIds(Set<Long> collect) {
|
||||
return ResultResponse.success(sysActivityConfigClientService.mapByIds(collect));
|
||||
|
||||
@ -72,6 +72,8 @@ public interface SysActivityConfigClientService {
|
||||
*/
|
||||
ActivityConfigDTO getEffectiveActivityConf(ActivityConfigBackQryCmd query);
|
||||
|
||||
ActivityConfigDTO getShowcaseActivityConf(Long templateId, String activityType);
|
||||
|
||||
/**
|
||||
* 获取模版信息.
|
||||
*/
|
||||
|
||||
@ -96,6 +96,11 @@ public class SysActivityConfigClientServiceImpl implements SysActivityConfigClie
|
||||
return sysActivityConfigInnerConvertor.toActivityConfigDTO(activityConfigService.getEffectiveActivityConf(query));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActivityConfigDTO getShowcaseActivityConf(Long templateId, String activityType) {
|
||||
return sysActivityConfigInnerConvertor.toActivityConfigDTO(activityConfigService.getShowcaseActivityConf(templateId, activityType));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Long, ActivityTemplateValueDTO> mapByIds(Set<Long> collect) {
|
||||
return sysActivityConfigInnerConvertor.toMapActivityTemplateValueDTO(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user