소스 검색

Merge branch 'dev-meta' of xiongzhu/raex_back into master

sunkean 2 년 전
부모
커밋
351890eb0d
1개의 변경된 파일31개의 추가작업 그리고 2개의 파일을 삭제
  1. 31 2
      src/main/java/com/izouma/nineth/service/MetaTaskToUserNewService.java

+ 31 - 2
src/main/java/com/izouma/nineth/service/MetaTaskToUserNewService.java

@@ -102,11 +102,17 @@ public class MetaTaskToUserNewService {
         if (!checkMetaTaskNewResult.isSuccess()) {
             return MetaRestResult.returnError(checkMetaTaskNewResult.getMessage());
         }
+        metaTaskToUserNew.setMetaTaskNew(metaTaskNew);
         MetaAtomTask metaAtomTask = metaAtomTaskRepo.findByIdAndDel(metaTaskToUserNew.getAtomTaskId(), false);
         MetaServiceResult checkMetaAtomTaskResult = checkMetaAtomTask(metaAtomTask);
         if (!checkMetaAtomTaskResult.isSuccess()) {
             return MetaRestResult.returnError(checkMetaAtomTaskResult.getMessage());
         }
+        metaTaskToUserNew.setMetaAtomTask(metaAtomTask);
+        MetaServiceResult buildMetaPropResult = buildMetaProp(metaTaskToUserNew);
+        if (!buildMetaPropResult.isSuccess()) {
+            return MetaRestResult.returnError(buildMetaPropResult.getMessage());
+        }
         // 判断当前玩家是否领取过基础任务
         MetaTaskToUserNew dbMetaTaskToUserNew = metaTaskToUserNewRepo.findByUserIdAndTaskIdAndAtomTaskIdAndDel(metaTaskToUserNew.getUserId(), metaTaskToUserNew.getTaskId(), metaTaskToUserNew.getAtomTaskId(), false);
         if (Objects.nonNull(dbMetaTaskToUserNew)) {
@@ -125,8 +131,9 @@ public class MetaTaskToUserNewService {
         metaTaskToUserNew.setMetaTaskNew(metaTaskNew);
         metaTaskToUserNew.setMetaAtomTask(metaAtomTask);
         MetaTaskToUserNew save = metaTaskToUserNewRepo.save(metaTaskToUserNew);
-        save.setMetaTaskNew(metaTaskNew);
-        save.setMetaAtomTask(metaAtomTask);
+        save.setMetaTaskNew(metaTaskToUserNew.getMetaTaskNew());
+        save.setMetaAtomTask(metaTaskToUserNew.getMetaAtomTask());
+        save.setMetaProp(metaTaskToUserNew.getMetaProp());
         if (progress) {
             setProgress(save);
         }
@@ -152,6 +159,10 @@ public class MetaTaskToUserNewService {
             return MetaRestResult.returnError(checkMetaTaskNewResult.getMessage());
         }
         metaTaskToUserNew.setMetaTaskNew(metaTaskNew);
+        MetaServiceResult buildMetaPropResult = buildMetaProp(metaTaskToUserNew);
+        if (!buildMetaPropResult.isSuccess()) {
+            return MetaRestResult.returnError(buildMetaPropResult.getMessage());
+        }
         setProgress(metaTaskToUserNew);
         return MetaRestResult.returnSuccess(metaTaskToUserNew);
     }
@@ -274,4 +285,22 @@ public class MetaTaskToUserNewService {
         }
         return MetaServiceResult.returnSuccess();
     }
+
+    /**
+     * 道具奖励 构建道具信息
+     *
+     * @param metaTaskToUserNew 任务领取信息
+     * @return result
+     */
+    private MetaServiceResult buildMetaProp(MetaTaskToUserNew metaTaskToUserNew) {
+        if (!MetaAwardTypeEnum.META_PROP.equals(metaTaskToUserNew.getMetaAtomTask().getAwardType())) {
+            return MetaServiceResult.returnSuccess();
+        }
+        MetaProp metaProp = metaPropRepo.findByIdAndDel(Long.parseLong(metaTaskToUserNew.getMetaAtomTask().getAwardConfig()), false);
+        if (Objects.isNull(metaProp)) {
+            return MetaServiceResult.returnError(String.format("基础任务[%S]道具奖励 道具信息为空", metaTaskToUserNew.getMetaAtomTask().getId()));
+        }
+        metaTaskToUserNew.setMetaProp(metaProp);
+        return MetaServiceResult.returnSuccess();
+    }
 }