lidongze пре 2 година
родитељ
комит
8a5337a263
1 измењених фајлова са 43 додато и 16 уклоњено
  1. 43 16
      src/main/java/com/izouma/nineth/service/MetaTaskToUserNewService.java

+ 43 - 16
src/main/java/com/izouma/nineth/service/MetaTaskToUserNewService.java

@@ -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();