|
|
@@ -262,6 +262,17 @@ public class PointUserActivityTaskCompletionServiceImpl extends ServiceImpl<Poin
|
|
|
StartTime = DateUtil.beginOfDay(new Date());
|
|
|
} else if (typeEnum == PointActivityTypeEnum.MONTHLY_ACTIVITY) {
|
|
|
StartTime = DateUtil.beginOfMonth(new Date());
|
|
|
+ } else if (typeEnum == PointActivityTypeEnum.NEW_USER_ACTIVITY) {
|
|
|
+ // 获取正在进行中的新手活动
|
|
|
+ LambdaQueryWrapper<PointActivity> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(PointActivity::getActivityType, PointActivityTypeEnum.NEW_USER_ACTIVITY.getCode())
|
|
|
+ .eq(PointActivity::getStatus, 0)
|
|
|
+ .orderByDesc(PointActivity::getStartTime)
|
|
|
+ .last("limit 1");
|
|
|
+ PointActivity activity = this.pointActivityService.getOne(queryWrapper);
|
|
|
+ if (ObjectUtil.isNotNull(activity)) {
|
|
|
+ StartTime = activity.getStartTime();
|
|
|
+ }
|
|
|
}
|
|
|
return StartTime;
|
|
|
}
|
|
|
@@ -379,16 +390,16 @@ public class PointUserActivityTaskCompletionServiceImpl extends ServiceImpl<Poin
|
|
|
}
|
|
|
|
|
|
// 3. 防重复领取:利用 TaskLimitTimesEnum 策略模式校验
|
|
|
- PointUserActivityTaskCompletion record = getTaskRecordInPeriod(openId, activity.getId(), task.getId(), taskTypeEnum.getCode(), queryTime);
|
|
|
+ PointUserActivityTaskCompletion record = getTaskRecordInPeriod(openId, activity.getId(), task.getId(), ActivityCompletionTaskTypeEnum.ACTIVITY.getCode(), queryTime);
|
|
|
int completedCount = (record != null) ? record.getCompletedCount() : 0;
|
|
|
if (!limitEnum.executeCheck(completedCount)) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
// 4. 完成任务 + 发放积分
|
|
|
- completeTask(openId, activity.getId(), task.getId(), taskTypeEnum.getCode());
|
|
|
+ completeTask(openId, activity.getId(), task.getId(), ActivityCompletionTaskTypeEnum.ACTIVITY.getCode());
|
|
|
pointAccountService.addPoints(openId, task.getRewardPoints().intValue(), activity.getName(),
|
|
|
- null, activity.getId(), task.getId(), taskTypeEnum.getCode(), activityNameEnum.getInfo());
|
|
|
+ null, activity.getId(), task.getId(), ActivityCompletionTaskTypeEnum.ACTIVITY.getCode(), activityNameEnum.getInfo());
|
|
|
return true;
|
|
|
} catch (ServiceException e) {
|
|
|
if (!e.getMessage().contains("已完成") && !e.getMessage().contains("已领取")) {
|