//获取当天完成2次任务以上的用户 //日期格式化 String now = queryDateTime(); String starTime = now + " 00:00:00"; String endTime = now + " 23:59:59"; //日期格式化 List<TaskCompletedDTO> taskCompleted = taskCompletedService.selectUserByNow(starTime, endTime); for (TaskCompletedDTO dto : taskCompleted) { String taskGroupCode = dto.getTaskGroupCode(); //获取当前任务是签到还是阅读文章 String taskCode = dto.getTaskCode(); List<TaskRuleDetail> primaryData = taskRuleDetailMapper.selectTaskGroupListCode(taskGroupCode, taskCode); Map<String, Object> ruleDetail = getRuleDetail(taskCode, primaryData); //如果是签到那么为重复领取 //当天可完成次数 Object dayCompleteTaskMax = ruleDetail.get(CommonBusinessEnum.RuleDetailDataFieldEnum.DAY_COMPLETE_TASK_MAX.getValue()); Object checkInAttribute = ruleDetail.get(CommonBusinessEnum.RuleDetailDataFieldEnum.CHECK_IN_ATTRIBUTE.getValue()); Object shareGoodsCount = ruleDetail.get(CommonBusinessEnum.RuleDetailDataFieldEnum.SHARE_GOODS_COUNT.getValue()); Object readingArticle = ruleDetail.get(CommonBusinessEnum.RuleDetailDataFieldEnum.READING_ARTICLE_DURATION.getValue()); //分享商品和文章阅读判断当天完成次数 if (shareGoodsCount != null || readingArticle != null) { if (dayCompleteTaskMax != null) { Integer dayCompleteTaskMax1 = (Integer) dayCompleteTaskMax; if (dayCompleteTaskMax1.compareTo(dto.getFinishCount()) < 0) { log.info("文章阅读或分享商品达完成上限后再次完成"); return; } } } //签到(默认一天一次) if (checkInAttribute != null) { log.info("签到重复完成"); return; } }
时间: 2023-05-23 14:04:27 浏览: 168
Startime
这段代码的作用是获取当天完成了2次任务以上的用户。首先,它使用了当前日期作为开始时间和结束时间来查询完成任务的用户,然后对于每个用户,它会获取任务组代码和任务代码,并使用这些代码查询任务规则明细。接着,它会使用任务代码和任务规则明细获取任务的详细规则。
然后,它会判断当前任务是签到还是阅读文章或分享商品。如果是阅读文章或分享商品,则会检查当天可完成的任务次数,如果已经达到了最大值,则会返回;如果是签到,则会直接返回。
最后,如果一直执行到了最后,则意味着当天没有完成2次任务以上的用户。
阅读全文