|
|
@@ -38,7 +38,8 @@ public class MetaTaskToUserNewService {
|
|
|
private MetaUserTaskProgressNewRepo metaUserTaskProgressNewRepo;
|
|
|
|
|
|
public Page<MetaTaskToUserNew> all(PageQuery pageQuery) {
|
|
|
- return metaTaskToUserNewRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaTaskToUserNew.class), JpaUtils.toPageRequest(pageQuery));
|
|
|
+ return metaTaskToUserNewRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaTaskToUserNew.class), JpaUtils
|
|
|
+ .toPageRequest(pageQuery));
|
|
|
}
|
|
|
|
|
|
@Transactional
|
|
|
@@ -52,19 +53,22 @@ public class MetaTaskToUserNewService {
|
|
|
metaTaskToUserNew.setTaskId(metaTaskNew.getId());
|
|
|
// 设置主动领取第一个索引的基础任务
|
|
|
if (MetaTaskType.MAIN_LINE.equals(metaTaskNew.getType())) {
|
|
|
- Long atomTaskId = metaTaskBindRepo.findAtomTaskId(metaTaskNew.getId(), MetaTaskType.NODE.toString());
|
|
|
+ Long atomTaskId = metaTaskBindRepo
|
|
|
+ .findAtomTaskId(metaTaskNew.getId(), MetaTaskType.NODE.toString());
|
|
|
if (Objects.nonNull(atomTaskId)) {
|
|
|
metaTaskToUserNew.setAtomTaskId(atomTaskId);
|
|
|
}
|
|
|
}
|
|
|
if (MetaTaskType.BRANCH_LINE.equals(metaTaskNew.getType())) {
|
|
|
- Long atomTaskId = metaTaskBindRepo.findAtomTaskId(metaTaskNew.getId(), MetaTaskType.BRANCH_LINE.toString());
|
|
|
+ Long atomTaskId = metaTaskBindRepo
|
|
|
+ .findAtomTaskId(metaTaskNew.getId(), MetaTaskType.BRANCH_LINE.toString());
|
|
|
if (Objects.nonNull(atomTaskId)) {
|
|
|
metaTaskToUserNew.setAtomTaskId(atomTaskId);
|
|
|
}
|
|
|
}
|
|
|
if (MetaTaskType.DAILY.equals(metaTaskNew.getType())) {
|
|
|
- Long atomTaskId = metaTaskBindRepo.findAtomTaskId(metaTaskNew.getId(), MetaTaskType.DAILY.toString());
|
|
|
+ Long atomTaskId = metaTaskBindRepo
|
|
|
+ .findAtomTaskId(metaTaskNew.getId(), MetaTaskType.DAILY.toString());
|
|
|
if (Objects.nonNull(atomTaskId)) {
|
|
|
metaTaskToUserNew.setAtomTaskId(atomTaskId);
|
|
|
}
|
|
|
@@ -107,7 +111,9 @@ public class MetaTaskToUserNewService {
|
|
|
return MetaRestResult.returnError(buildMetaPropResult.getMessage());
|
|
|
}
|
|
|
// 判断当前玩家是否领取过基础任务
|
|
|
- MetaTaskToUserNew dbMetaTaskToUserNew = metaTaskToUserNewRepo.findByUserIdAndTaskIdAndAtomTaskIdAndDel(metaTaskToUserNew.getUserId(), metaTaskToUserNew.getTaskId(), metaTaskToUserNew.getAtomTaskId(), false);
|
|
|
+ MetaTaskToUserNew dbMetaTaskToUserNew = metaTaskToUserNewRepo
|
|
|
+ .findByUserIdAndTaskIdAndAtomTaskIdAndDel(metaTaskToUserNew.getUserId(), metaTaskToUserNew
|
|
|
+ .getTaskId(), metaTaskToUserNew.getAtomTaskId(), false);
|
|
|
if (Objects.nonNull(dbMetaTaskToUserNew)) {
|
|
|
return MetaRestResult.returnError(String.format("当前用户已在[%S]领取过该任务", dbMetaTaskToUserNew.getGetTime()));
|
|
|
}
|
|
|
@@ -117,7 +123,8 @@ public class MetaTaskToUserNewService {
|
|
|
if (MetaAwardTypeEnum.META_PROP.equals(metaAtomTask.getAwardType())) {
|
|
|
MetaProp metaProp = metaPropRepo.findByIdAndDel(Long.parseLong(metaAtomTask.getAwardConfig()), false);
|
|
|
if (Objects.isNull(metaProp)) {
|
|
|
- return MetaRestResult.returnError(String.format("基础任务[%S]奖励配置的道具不存在", metaTaskToUserNew.getAtomTaskId()));
|
|
|
+ return MetaRestResult
|
|
|
+ .returnError(String.format("基础任务[%S]奖励配置的道具不存在", metaTaskToUserNew.getAtomTaskId()));
|
|
|
}
|
|
|
metaTaskToUserNew.setMetaProp(metaProp);
|
|
|
}
|
|
|
@@ -134,8 +141,18 @@ public class MetaTaskToUserNewService {
|
|
|
}
|
|
|
|
|
|
public MetaRestResult<List<MetaTaskToUserNew>> findByStatus(Long userId, Long channelId, MetaTaskStatus status) {
|
|
|
- List<MetaTaskToUserNew> metaTaskToUsers = metaTaskToUserNewRepo.findAllByUserIdAndChannelIdAndStatusAndDel(userId, channelId, status, false);
|
|
|
- metaTaskToUsers.forEach(this::setSingleProgress);
|
|
|
+ List<MetaTaskToUserNew> metaTaskToUsers = metaTaskToUserNewRepo
|
|
|
+ .findAllByUserIdAndChannelIdAndStatusAndDel(userId, channelId, status, false);
|
|
|
+ try {
|
|
|
+ metaTaskToUsers.forEach(metaTaskToUserNew -> {
|
|
|
+ MetaRestResult<MetaTaskToUserNew> result = setSingleProgress(metaTaskToUserNew);
|
|
|
+ if (result.getCode() != Constants.MetaRestCode.success) {
|
|
|
+ throw new BusinessException(result.getMessage());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } catch (Exception e) {
|
|
|
+ return MetaRestResult.returnError(e.getMessage());
|
|
|
+ }
|
|
|
return MetaRestResult.returnSuccess(metaTaskToUsers);
|
|
|
}
|
|
|
|
|
|
@@ -168,8 +185,11 @@ public class MetaTaskToUserNewService {
|
|
|
private void setProgress(MetaTaskToUserNew metaTaskToUserNew) {
|
|
|
MetaAtomTask metaAtomTask = metaTaskToUserNew.getMetaAtomTask();
|
|
|
List<Long> atomTaskIds = metaTaskBindRepo.findAtomTaskIds(metaTaskToUserNew.getTaskId());
|
|
|
- List<MetaTaskToUserNew> completed = metaTaskToUserNewRepo.findAllByUserIdAndStatusAndDelAndAtomTaskIdIn(metaTaskToUserNew.getUserId(), MetaTaskStatus.COMPLETION, false, atomTaskIds);
|
|
|
- metaTaskToUserNew.setProcess(String.valueOf(completed.size()).concat("/").concat(String.valueOf(atomTaskIds.size())));
|
|
|
+ List<MetaTaskToUserNew> completed = metaTaskToUserNewRepo
|
|
|
+ .findAllByUserIdAndStatusAndDelAndAtomTaskIdIn(metaTaskToUserNew
|
|
|
+ .getUserId(), MetaTaskStatus.COMPLETION, false, atomTaskIds);
|
|
|
+ metaTaskToUserNew
|
|
|
+ .setProcess(String.valueOf(completed.size()).concat("/").concat(String.valueOf(atomTaskIds.size())));
|
|
|
String value = metaAtomTask.getTargetConfig();
|
|
|
String PREFIX = "0/";
|
|
|
switch (metaAtomTask.getTargetType()) {
|
|
|
@@ -181,12 +201,14 @@ public class MetaTaskToUserNewService {
|
|
|
break;
|
|
|
}
|
|
|
String[] split = value.split(" ");
|
|
|
- List<MetaUserTaskProgressNew> collectCollection = metaUserTaskProgressNewRepo.findAllByMetaTaskToUserNewIdAndDel(metaTaskToUserNew.getId(), false);
|
|
|
+ List<MetaUserTaskProgressNew> collectCollection = metaUserTaskProgressNewRepo
|
|
|
+ .findAllByMetaTaskToUserNewIdAndDel(metaTaskToUserNew.getId(), false);
|
|
|
if (CollectionUtils.isEmpty(collectCollection)) {
|
|
|
metaTaskToUserNew.setAtomTaskProcess(PREFIX.concat(String.valueOf(split.length)));
|
|
|
break;
|
|
|
}
|
|
|
- metaTaskToUserNew.setAtomTaskProcess(String.valueOf(collectCollection.size()).concat("/").concat(String.valueOf(split.length)));
|
|
|
+ metaTaskToUserNew.setAtomTaskProcess(String.valueOf(collectCollection.size()).concat("/")
|
|
|
+ .concat(String.valueOf(split.length)));
|
|
|
break;
|
|
|
case ON_LINE_TIME_DAILY:
|
|
|
if (StringUtils.isBlank(value)) {
|
|
|
@@ -195,7 +217,9 @@ public class MetaTaskToUserNewService {
|
|
|
metaTaskToUserNew.setAtomTaskProcess(errMsg);
|
|
|
break;
|
|
|
}
|
|
|
- MetaUserTaskProgressNew onLineTimeDaily = metaUserTaskProgressNewRepo.findByMetaTaskToUserNewIdAndDelAndCreatedAtAfter(metaTaskToUserNew.getId(), false, LocalDateTime.now().withHour(0).withMinute(0).withSecond(0));
|
|
|
+ MetaUserTaskProgressNew onLineTimeDaily = metaUserTaskProgressNewRepo
|
|
|
+ .findByMetaTaskToUserNewIdAndDelAndCreatedAtAfter(metaTaskToUserNew
|
|
|
+ .getId(), false, LocalDateTime.now().withHour(0).withMinute(0).withSecond(0));
|
|
|
if (Objects.isNull(onLineTimeDaily)) {
|
|
|
metaTaskToUserNew.setAtomTaskProcess(PREFIX.concat(value));
|
|
|
break;
|
|
|
@@ -209,7 +233,8 @@ public class MetaTaskToUserNewService {
|
|
|
metaTaskToUserNew.setAtomTaskProcess(errMsg);
|
|
|
break;
|
|
|
}
|
|
|
- List<MetaUserTaskProgressNew> accumulate = metaUserTaskProgressNewRepo.findAllByMetaTaskToUserNewIdAndDel(metaTaskToUserNew.getId(), false);
|
|
|
+ List<MetaUserTaskProgressNew> accumulate = metaUserTaskProgressNewRepo
|
|
|
+ .findAllByMetaTaskToUserNewIdAndDel(metaTaskToUserNew.getId(), false);
|
|
|
if (CollectionUtils.isEmpty(accumulate)) {
|
|
|
metaTaskToUserNew.setAtomTaskProcess(PREFIX.concat(value));
|
|
|
break;
|
|
|
@@ -290,9 +315,11 @@ public class MetaTaskToUserNewService {
|
|
|
if (!MetaAwardTypeEnum.META_PROP.equals(metaTaskToUserNew.getMetaAtomTask().getAwardType())) {
|
|
|
return MetaServiceResult.returnSuccess();
|
|
|
}
|
|
|
- MetaProp metaProp = metaPropRepo.findByIdAndDel(Long.parseLong(metaTaskToUserNew.getMetaAtomTask().getAwardConfig()), false);
|
|
|
+ MetaProp metaProp = metaPropRepo
|
|
|
+ .findByIdAndDel(Long.parseLong(metaTaskToUserNew.getMetaAtomTask().getAwardConfig()), false);
|
|
|
if (Objects.isNull(metaProp)) {
|
|
|
- return MetaServiceResult.returnError(String.format("基础任务[%S]道具奖励 道具信息为空", metaTaskToUserNew.getMetaAtomTask().getId()));
|
|
|
+ return MetaServiceResult
|
|
|
+ .returnError(String.format("基础任务[%S]道具奖励 道具信息为空", metaTaskToUserNew.getMetaAtomTask().getId()));
|
|
|
}
|
|
|
metaTaskToUserNew.setMetaProp(metaProp);
|
|
|
return MetaServiceResult.returnSuccess();
|