|
|
@@ -32,10 +32,8 @@ import java.util.stream.Collectors;
|
|
|
public class MetaUserTaskProgressService {
|
|
|
|
|
|
private MetaUserTaskProgressRepo metaUserTaskProgressRepo;
|
|
|
-
|
|
|
- private MetaTaskToUserRepo metaTaskToUserRepo;
|
|
|
-
|
|
|
- private MetaTaskRepo metaTaskRepo;
|
|
|
+ private MetaTaskToUserRepo metaTaskToUserRepo;
|
|
|
+ private MetaTaskRepo metaTaskRepo;
|
|
|
|
|
|
public Page<MetaUserTaskProgress> all(PageQuery pageQuery) {
|
|
|
return metaUserTaskProgressRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaUserTaskProgress.class), JpaUtils.toPageRequest(pageQuery));
|
|
|
@@ -74,10 +72,10 @@ public class MetaUserTaskProgressService {
|
|
|
if (!metaTaskToUser.getStatus().equals(MetaTaskStatus.PROGRESS)) {
|
|
|
return MetaRestResult.returnError(String.format("状态错误:当前任务状态为[%S]", metaTaskToUser.getStatus().getDescription()));
|
|
|
}
|
|
|
- // 收集藏品类型任务 remark为藏品id 不可为空
|
|
|
- if (metaTaskToUser.getTaskType().equals(MetaTaskTarget.COLLECT_COLLECTION)) {
|
|
|
+ // 收集藏品,每日在线时常 类型任务 remark为藏品id 不可为空
|
|
|
+ if (metaTaskToUser.getTaskType().equals(MetaTaskTarget.COLLECT_COLLECTION) || metaTaskToUser.getTaskType().equals(MetaTaskTarget.ON_LINE_TIME_DAILY)) {
|
|
|
if (StringUtils.isBlank(metaUserTaskProgress.getRemark())) {
|
|
|
- return MetaRestResult.returnError(String.format("类型[%S]的任务状态 remark不可为空", metaTaskToUser.getTaskType().getDescription()));
|
|
|
+ return MetaRestResult.returnError(String.format("类型[%S]的任务 remark不可为空", metaTaskToUser.getTaskType().getDescription()));
|
|
|
}
|
|
|
}
|
|
|
MetaTask metaTask = metaTaskRepo.findByIdAndDel(metaTaskToUser.getTaskId(), false);
|
|
|
@@ -99,49 +97,21 @@ public class MetaUserTaskProgressService {
|
|
|
return MetaRestResult.returnError("该任务未配置达标次数");
|
|
|
}
|
|
|
}
|
|
|
- // 单日签到任务
|
|
|
-// if (metaTaskToUser.getTaskType().equals(MetaTaskType.SIGN_IN_SINGLE_DAY)) {
|
|
|
-// if (StringUtils.isBlank(value)) {
|
|
|
-// return MetaRestResult.returnError("单日签到任务未配置签到日期");
|
|
|
-// }
|
|
|
-// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
-// LocalDateTime startTime = LocalDate.parse(value, formatter).atStartOfDay();
|
|
|
-// if (!startTime.format(formatter).equals(LocalDateTime.now().format(formatter))) {
|
|
|
-// return MetaRestResult.returnError("当前日期不允许签到");
|
|
|
-// }
|
|
|
-// List<MetaUserTaskProgress> metaUserTaskProgresses = metaUserTaskProgressRepo.findAllByMetaTaskToUserIdAndDel(metaTaskToUser.getId(), false);
|
|
|
-// if (CollectionUtils.isNotEmpty(metaUserTaskProgresses)) {
|
|
|
-// return MetaRestResult.returnError("该签到任务已经签到过,不允许重复签到");
|
|
|
-// }
|
|
|
-// }
|
|
|
// 在线时长任务 如记录存在则更新remark(每日在线时长) 如不存在则每日首次触发该任务
|
|
|
if (metaTaskToUser.getTaskType().equals(MetaTaskTarget.ON_LINE_TIME_DAILY)) {
|
|
|
+ if (StringUtils.isBlank(value)) {
|
|
|
+ return MetaRestResult.returnError("在线时长任务未配置达标时间");
|
|
|
+ }
|
|
|
MetaUserTaskProgress dbMetaUserTaskProgress = metaUserTaskProgressRepo.findByMetaTaskToUserIdAndDelAndCreatedAtAfter(metaTaskToUser.getId(), false, LocalDateTime.now().withHour(0).withMinute(0).withSecond(0));
|
|
|
if (Objects.isNull(dbMetaUserTaskProgress)) {
|
|
|
save(metaUserTaskProgress, metaTaskToUser);
|
|
|
- // 该类型任务不存在完成
|
|
|
- return MetaRestResult.returnSuccess(false);
|
|
|
+ return MetaRestResult.returnSuccess(Integer.parseInt(metaUserTaskProgress.getRemark()) >= Integer.parseInt(value));
|
|
|
}
|
|
|
int remark = Integer.parseInt(metaUserTaskProgress.getRemark()) + Integer.parseInt(dbMetaUserTaskProgress.getRemark());
|
|
|
dbMetaUserTaskProgress.setRemark(String.valueOf(remark));
|
|
|
metaUserTaskProgressRepo.save(dbMetaUserTaskProgress);
|
|
|
- return MetaRestResult.returnSuccess(false);
|
|
|
+ return MetaRestResult.returnSuccess(remark >= Integer.parseInt(value));
|
|
|
}
|
|
|
- // 连续签到任务 每天只允许签到一次。remark可为每天签到时间也可以为空,具体判定以记录创建时间为准
|
|
|
-// if (metaTaskToUser.getTaskType().equals(MetaTaskType.SIGN_IN_CONTINUOUS)) {
|
|
|
-// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
-// LocalDateTime startTime = LocalDate.parse(value, formatter).atStartOfDay();
|
|
|
-// if (startTime.isAfter(LocalDateTime.now())) {
|
|
|
-// return MetaRestResult.returnError("未到开始日期");
|
|
|
-// }
|
|
|
-// MetaUserTaskProgress dbMetaUserTaskProgress = metaUserTaskProgressRepo.findByMetaTaskToUserIdAndDelAndCreatedAtAfter(metaTaskToUser.getId(), false, LocalDateTime.now().withHour(0).withMinute(0).withSecond(0));
|
|
|
-// if (Objects.nonNull(dbMetaUserTaskProgress)) {
|
|
|
-// return MetaRestResult.returnError("当日已经存在签到记录,不可重复签到");
|
|
|
-// }
|
|
|
-// save(metaUserTaskProgress, metaTaskToUser);
|
|
|
-// // 该类型任务不存在完成
|
|
|
-// return MetaRestResult.returnSuccess(false);
|
|
|
-// }
|
|
|
// 保存进度
|
|
|
save(metaUserTaskProgress, metaTaskToUser);
|
|
|
List<MetaUserTaskProgress> metaUserTaskProgresses = metaUserTaskProgressRepo.findAllByMetaTaskToUserIdAndDel(metaTaskToUser.getId(), false);
|
|
|
@@ -156,10 +126,6 @@ public class MetaUserTaskProgressService {
|
|
|
return MetaRestResult.returnSuccess(true);
|
|
|
}
|
|
|
return MetaRestResult.returnSuccess(false);
|
|
|
-// case SIGN_IN_SINGLE_DAY:
|
|
|
-// // 单日登陆任务签到成功后直接完成
|
|
|
-// completeTask(metaTaskToUser);
|
|
|
-// return MetaRestResult.returnSuccess(true);
|
|
|
case ACCUMULATE:
|
|
|
if (metaUserTaskProgresses.size() >= Integer.parseInt(value)) {
|
|
|
completeTask(metaTaskToUser);
|