| | |
| | | if (nowTime.compareTo(activityStartTime) < 0) { |
| | | activity.setActivityStatus(0); |
| | | } else { |
| | | throw new ServiceException(AppErrorConstant.ACTIVITY_TIME_ERROR); |
| | | activity.setActivityStatus(1); |
| | | |
| | | } |
| | | // 设置活动信息 |
| | | activity.setActivityName(mgtActivityEditDto.getActivityName()); |
| | |
| | | long currentTimeMillis = System.currentTimeMillis(); |
| | | long startTimeDifference = activityStartTime.getTime() - currentTimeMillis; |
| | | long endTimeDifference = activityEndTime.getTime() - currentTimeMillis; |
| | | // 查询延时任务 |
| | | DelayTask startDelayTask = remoteConfigService.getDelayTask(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId).getData(); |
| | | // 如果延时任务为空,创建延时任务控制活动定时开始和结束 |
| | | if (startDelayTask == null) { |
| | | redisService.setCacheObject(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId, activityStartTime, startTimeDifference, TimeUnit.MILLISECONDS); |
| | | startDelayTask = new DelayTask(); |
| | | startDelayTask.setDelFlag(0); |
| | | startDelayTask.setCreateTime(new Date()); |
| | | startDelayTask.setEndTime(activityStartTime); |
| | | startDelayTask.setRedisKey(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId); |
| | | remoteConfigService.addDelayTask(startDelayTask); |
| | | //判断任务是否已经开始,已经开始则3秒后立即开始 |
| | | if(nowTime.compareTo(activityStartTime) > 0){ |
| | | // 查询延时任务 |
| | | DelayTask startDelayTask = remoteConfigService.getDelayTask(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId).getData(); |
| | | // 如果延时任务为空,创建延时任务控制活动定时开始和结束 |
| | | if (startDelayTask == null) { |
| | | redisService.setCacheObject(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId, activityStartTime, 3L, TimeUnit.SECONDS); |
| | | startDelayTask = new DelayTask(); |
| | | startDelayTask.setDelFlag(0); |
| | | startDelayTask.setCreateTime(new Date()); |
| | | startDelayTask.setEndTime(DateUtils.addSeconds(new Date(),3)); |
| | | startDelayTask.setRedisKey(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId); |
| | | remoteConfigService.addDelayTask(startDelayTask); |
| | | }else{ |
| | | if(startDelayTask.getEndTime().compareTo(activityStartTime)!=0){ |
| | | remoteConfigService.deleteDelayTask(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId); |
| | | redisService.deleteObject(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId); |
| | | redisService.setCacheObject(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId, activityStartTime, 3L, TimeUnit.SECONDS); |
| | | startDelayTask = new DelayTask(); |
| | | startDelayTask.setDelFlag(0); |
| | | startDelayTask.setCreateTime(new Date()); |
| | | startDelayTask.setEndTime(DateUtils.addSeconds(new Date(),3)); |
| | | startDelayTask.setRedisKey(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId); |
| | | remoteConfigService.addDelayTask(startDelayTask); |
| | | } |
| | | } |
| | | }else{ |
| | | if(startDelayTask.getEndTime().compareTo(activityStartTime)!=0){ |
| | | remoteConfigService.deleteDelayTask(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId); |
| | | redisService.deleteObject(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId); |
| | | // 查询延时任务 |
| | | DelayTask startDelayTask = remoteConfigService.getDelayTask(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId).getData(); |
| | | // 如果延时任务为空,创建延时任务控制活动定时开始和结束 |
| | | if (startDelayTask == null) { |
| | | redisService.setCacheObject(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId, activityStartTime, startTimeDifference, TimeUnit.MILLISECONDS); |
| | | startDelayTask = new DelayTask(); |
| | | startDelayTask.setDelFlag(0); |
| | |
| | | startDelayTask.setEndTime(activityStartTime); |
| | | startDelayTask.setRedisKey(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId); |
| | | remoteConfigService.addDelayTask(startDelayTask); |
| | | }else{ |
| | | if(startDelayTask.getEndTime().compareTo(activityStartTime)!=0){ |
| | | remoteConfigService.deleteDelayTask(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId); |
| | | redisService.deleteObject(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId); |
| | | redisService.setCacheObject(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId, activityStartTime, startTimeDifference, TimeUnit.MILLISECONDS); |
| | | startDelayTask = new DelayTask(); |
| | | startDelayTask.setDelFlag(0); |
| | | startDelayTask.setCreateTime(new Date()); |
| | | startDelayTask.setEndTime(activityStartTime); |
| | | startDelayTask.setRedisKey(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId); |
| | | remoteConfigService.addDelayTask(startDelayTask); |
| | | } |
| | | } |
| | | } |
| | | // 查询延时任务 |
| | |
| | | remoteConfigService.addDelayTask(startDelayTask); |
| | | } |
| | | // 查询延时任务 |
| | | DelayTask endDelayTask = remoteConfigService.getDelayTask(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId).getData(); |
| | | DelayTask endDelayTask = remoteConfigService.getDelayTask(DelayTaskEnum.ACTIVITY_END_TASK.getCode() + "-" + activityId).getData(); |
| | | // 如果延时任务为空,创建延时任务控制活动定时开始和结束 |
| | | if (endDelayTask == null) { |
| | | redisService.setCacheObject(DelayTaskEnum.ACTIVITY_END_TASK.getCode() + "-" + activityId, activityEndTime, endTimeDifference, TimeUnit.MILLISECONDS); |