sunkean 3 роки тому
батько
коміт
d7ba939745

+ 6 - 12
src/main/java/com/izouma/nineth/service/MetaTaskToUserNewService.java

@@ -30,20 +30,13 @@ import java.util.Objects;
 @Slf4j
 public class MetaTaskToUserNewService {
 
-    private MetaTaskToUserNewRepo metaTaskToUserNewRepo;
-
-    private MetaAtomTaskRepo metaAtomTaskRepo;
-
-    private MetaTaskNewRepo metaTaskNewRepo;
-
-    private MetaPropRepo metaPropRepo;
-
-    private MetaTaskBindRepo metaTaskBindRepo;
-
+    private MetaTaskToUserNewRepo       metaTaskToUserNewRepo;
+    private MetaAtomTaskRepo            metaAtomTaskRepo;
+    private MetaTaskNewRepo             metaTaskNewRepo;
+    private MetaPropRepo                metaPropRepo;
+    private MetaTaskBindRepo            metaTaskBindRepo;
     private MetaUserTaskProgressNewRepo metaUserTaskProgressNewRepo;
 
-    private final String PREFIX = "0/";
-
     public Page<MetaTaskToUserNew> all(PageQuery pageQuery) {
         return metaTaskToUserNewRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaTaskToUserNew.class), JpaUtils.toPageRequest(pageQuery));
     }
@@ -178,6 +171,7 @@ public class MetaTaskToUserNewService {
         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()) {
             case COLLECT_COLLECTION:
                 if (StringUtils.isBlank(value)) {

+ 4 - 20
src/main/java/com/izouma/nineth/service/MetaTaskToUserService.java

@@ -30,15 +30,10 @@ import java.util.Objects;
 @Slf4j
 public class MetaTaskToUserService {
 
-    private MetaTaskToUserRepo metaTaskToUserRepo;
-
-    private MetaTaskRepo metaTaskRepo;
-
+    private MetaTaskToUserRepo       metaTaskToUserRepo;
+    private MetaTaskRepo             metaTaskRepo;
     private MetaUserTaskProgressRepo metaUserTaskProgressRepo;
-
-    private final String PREFIX = "0/";
-
-    private MetaPropRepo metaPropRepo;
+    private MetaPropRepo             metaPropRepo;
 
     public Page<MetaTaskToUser> all(PageQuery pageQuery) {
         return metaTaskToUserRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaTaskToUser.class), JpaUtils.toPageRequest(pageQuery));
@@ -136,19 +131,8 @@ public class MetaTaskToUserService {
             log.error("任务信息为空");
         }
         String value = metaTask.getValue();
+        String PREFIX = "0/";
         switch (metaTaskToUser.getTaskType()) {
-//            case SIGN_IN_SINGLE_DAY:
-//                List<MetaUserTaskProgress> signInSingleDay = metaUserTaskProgressRepo.findAllByMetaTaskToUserIdAndDel(metaTaskToUser.getId(), false);
-//                if (CollectionUtils.isEmpty(signInSingleDay)) {
-//                    metaTaskToUser.setProcess(PREFIX.concat("1"));
-//                    break;
-//                }
-//                metaTaskToUser.setProcess(String.valueOf(signInSingleDay.size()).concat("/1"));
-//                break;
-//            case SIGN_IN_CONTINUOUS:
-//                int num = countSignIn(value, metaTaskToUser.getId());
-//                metaTaskToUser.setProcess(String.valueOf(num).concat("/7"));
-//                break;
             case COLLECT_COLLECTION:
                 if (StringUtils.isBlank(value)) {
                     String errMsg = "任务进度显示异常,缺少藏品id配置";

+ 6 - 9
src/main/java/com/izouma/nineth/service/MetaUserTaskAwardReceivedRecordNewService.java

@@ -27,12 +27,9 @@ import java.util.Objects;
 public class MetaUserTaskAwardReceivedRecordNewService {
 
     private MetaUserTaskAwardReceivedRecordNewRepo metaUserTaskAwardReceivedRecordNewRepo;
-
-    private MetaTaskToUserNewRepo metaTaskToUserNewRepo;
-
-    private MetaAtomTaskRepo metaAtomTaskRepo;
-
-    private MetaAwardReceiveService metaAwardReceiveService;
+    private MetaTaskToUserNewRepo                  metaTaskToUserNewRepo;
+    private MetaAtomTaskRepo                       metaAtomTaskRepo;
+    private MetaAwardReceiveService                metaAwardReceiveService;
 
     public Page<MetaUserTaskAwardReceivedRecordNew> all(PageQuery pageQuery) {
         return metaUserTaskAwardReceivedRecordNewRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaUserTaskAwardReceivedRecordNew.class), JpaUtils.toPageRequest(pageQuery));
@@ -49,9 +46,6 @@ public class MetaUserTaskAwardReceivedRecordNewService {
         if (Objects.isNull(metaTaskToUserNew)) {
             return MetaRestResult.returnError("奖励领取失败:用户未领取过该任务!");
         }
-        if (MetaTaskStatus.PROGRESS.equals(metaTaskToUserNew.getStatus()) || MetaTaskStatus.FINISH.equals(metaTaskToUserNew.getStatus())) {
-            return MetaRestResult.returnError(String.format("奖励领取失败:当前任务状态为[%S]", metaTaskToUserNew.getStatus().getDescription()));
-        }
         if (MetaTaskTarget.ON_LINE_TIME_DAILY.equals(metaAtomTask.getTargetType())) {
             MetaUserTaskAwardReceivedRecordNew metaUserTaskAwardReceivedRecordNew = metaUserTaskAwardReceivedRecordNewRepo.findByUserIdAndTaskIdAndAtomTaskIdAndDelAndReceivedTimeAfter(userId, taskId, atomTaskId, false, LocalDateTime.now().withHour(0).withMinute(0).withSecond(0));
             if (Objects.nonNull(metaUserTaskAwardReceivedRecordNew)) {
@@ -59,6 +53,9 @@ public class MetaUserTaskAwardReceivedRecordNewService {
             }
         }
         if (!MetaTaskTarget.ON_LINE_TIME_DAILY.equals(metaAtomTask.getTargetType())) {
+            if (MetaTaskStatus.PROGRESS.equals(metaTaskToUserNew.getStatus()) || MetaTaskStatus.FINISH.equals(metaTaskToUserNew.getStatus())) {
+                return MetaRestResult.returnError(String.format("奖励领取失败:当前任务状态为[%S]", metaTaskToUserNew.getStatus().getDescription()));
+            }
             MetaUserTaskAwardReceivedRecordNew metaUserTaskAwardReceivedRecordNew = metaUserTaskAwardReceivedRecordNewRepo.findByUserIdAndTaskIdAndAtomTaskIdAndDel(userId, taskId, atomTaskId, false);
             if (Objects.nonNull(metaUserTaskAwardReceivedRecordNew)) {
                 return MetaRestResult.returnError("奖励领取失败:用户已经领取过该任务奖励,不可重复领取!");

+ 6 - 9
src/main/java/com/izouma/nineth/service/MetaUserTaskAwardReceivedRecordService.java

@@ -23,12 +23,9 @@ import java.util.Objects;
 @AllArgsConstructor
 public class MetaUserTaskAwardReceivedRecordService {
 
-    private MetaTaskToUserRepo metaTaskToUserRepo;
-
-    private MetaTaskRepo metaTaskRepo;
-
-    private MetaAwardReceiveService metaAwardReceiveService;
-
+    private MetaTaskToUserRepo                  metaTaskToUserRepo;
+    private MetaTaskRepo                        metaTaskRepo;
+    private MetaAwardReceiveService             metaAwardReceiveService;
     private MetaUserTaskAwardReceivedRecordRepo metaUserTaskAwardReceivedRecordRepo;
 
     @Transactional
@@ -42,9 +39,6 @@ public class MetaUserTaskAwardReceivedRecordService {
         if (Objects.isNull(metaTaskToUser)) {
             return MetaRestResult.returnError("奖励领取失败:用户未领取过该任务!");
         }
-        if (MetaTaskStatus.PROGRESS.equals(metaTaskToUser.getStatus()) || MetaTaskStatus.FINISH.equals(metaTaskToUser.getStatus())) {
-            return MetaRestResult.returnError(String.format("奖励领取失败:当前任务状态为[%S]", metaTaskToUser.getStatus().getDescription()));
-        }
         if (MetaTaskTarget.ON_LINE_TIME_DAILY.equals(metaTask.getType())) {
             MetaUserTaskAwardReceivedRecord metaUserTaskAwardReceivedRecord = metaUserTaskAwardReceivedRecordRepo.findByUserIdAndMetaTaskIdAndDelAndCreatedAtAfter(userId, metaTaskId, false, LocalDateTime.now().withHour(0).withMinute(0).withSecond(0));
             if (Objects.nonNull(metaUserTaskAwardReceivedRecord)) {
@@ -52,6 +46,9 @@ public class MetaUserTaskAwardReceivedRecordService {
             }
         }
         if (!MetaTaskTarget.ON_LINE_TIME_DAILY.equals(metaTask.getType())) {
+            if (MetaTaskStatus.PROGRESS.equals(metaTaskToUser.getStatus()) || MetaTaskStatus.FINISH.equals(metaTaskToUser.getStatus())) {
+                return MetaRestResult.returnError(String.format("奖励领取失败:当前任务状态为[%S]", metaTaskToUser.getStatus().getDescription()));
+            }
             MetaUserTaskAwardReceivedRecord metaUserTaskAwardReceivedRecord = metaUserTaskAwardReceivedRecordRepo.findByUserIdAndMetaTaskIdAndDel(userId, metaTaskId, false);
             if (Objects.nonNull(metaUserTaskAwardReceivedRecord)) {
                 return MetaRestResult.returnError("奖励领取失败:用户已经领取过该任务奖励,不可重复领取!");

+ 10 - 11
src/main/java/com/izouma/nineth/service/MetaUserTaskProgressNewService.java

@@ -29,14 +29,10 @@ import java.util.stream.Collectors;
 public class MetaUserTaskProgressNewService {
 
     private MetaUserTaskProgressNewRepo metaUserTaskProgressNewRepo;
-
-    private MetaTaskToUserNewRepo metaTaskToUserNewRepo;
-
-    private MetaAtomTaskRepo metaAtomTaskRepo;
-
-    private MetaTaskToUserNewService metaTaskToUserNewService;
-
-    private MetaTaskBindRepo metaTaskBindRepo;
+    private MetaTaskToUserNewRepo       metaTaskToUserNewRepo;
+    private MetaAtomTaskRepo            metaAtomTaskRepo;
+    private MetaTaskToUserNewService    metaTaskToUserNewService;
+    private MetaTaskBindRepo            metaTaskBindRepo;
 
     public Page<MetaUserTaskProgressNew> all(PageQuery pageQuery) {
         return metaUserTaskProgressNewRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaUserTaskProgressNew.class), JpaUtils.toPageRequest(pageQuery));
@@ -63,7 +59,7 @@ public class MetaUserTaskProgressNewService {
             return MetaRestResult.returnError("基础任务信息为空");
         }
         // 收集藏品类型任务 remark为藏品id 不可为空
-        if (metaAtomTask.getTargetType().equals(MetaTaskTarget.COLLECT_COLLECTION)) {
+        if (metaAtomTask.getTargetType().equals(MetaTaskTarget.COLLECT_COLLECTION) || metaAtomTask.getTargetType().equals(MetaTaskTarget.ON_LINE_TIME_DAILY)) {
             if (StringUtils.isBlank(metaUserTaskProgressNew.getRemark())) {
                 return MetaRestResult.returnError(String.format("类型[%S]的任务 remark不可为空", metaAtomTask.getTargetType().getDescription()));
             }
@@ -89,17 +85,20 @@ public class MetaUserTaskProgressNewService {
         metaUserTaskProgressNew.setProgressTime(LocalDateTime.now());
         // 在线时长任务 如记录存在则更新remark(每日在线时长) 如不存在则每日首次触发该任务
         if (metaAtomTask.getTargetType().equals(MetaTaskTarget.ON_LINE_TIME_DAILY)) {
+            if (StringUtils.isBlank(value)) {
+                return MetaRestResult.returnError("在线时长任务未配置达标时间");
+            }
             MetaUserTaskProgressNew dbMetaUserTaskProgressNew = metaUserTaskProgressNewRepo.findByMetaTaskToUserNewIdAndDelAndCreatedAtAfter(metaUserTaskProgressNew.getMetaTaskToUserNewId(), false, LocalDateTime.now().withHour(0).withMinute(0).withSecond(0));
             if (Objects.isNull(dbMetaUserTaskProgressNew)) {
                 metaUserTaskProgressNewRepo.save(metaUserTaskProgressNew);
                 // 该类型任务不存在完成
-                return MetaRestResult.returnSuccess(false);
+                return MetaRestResult.returnSuccess(Integer.parseInt(metaUserTaskProgressNew.getRemark()) >= Integer.parseInt(value));
             }
             int remark = Integer.parseInt(metaUserTaskProgressNew.getRemark()) + Integer.parseInt(dbMetaUserTaskProgressNew.getRemark());
             dbMetaUserTaskProgressNew.setRemark(String.valueOf(remark));
             dbMetaUserTaskProgressNew.setProgressTime(LocalDateTime.now());
             metaUserTaskProgressNewRepo.save(dbMetaUserTaskProgressNew);
-            return MetaRestResult.returnSuccess(false);
+            return MetaRestResult.returnSuccess(Integer.parseInt(metaUserTaskProgressNew.getRemark()) >= Integer.parseInt(value));
         }
         // 保存进度
         metaUserTaskProgressNewRepo.save(metaUserTaskProgressNew);

+ 10 - 44
src/main/java/com/izouma/nineth/service/MetaUserTaskProgressService.java

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

+ 1 - 2
src/main/java/com/izouma/nineth/web/MetaTaskToUserNewController.java

@@ -22,8 +22,7 @@ import java.util.Objects;
 public class MetaTaskToUserNewController {
 
     private MetaTaskToUserNewService metaTaskToUserNewService;
-
-    private MetaTaskToUserNewRepo metaTaskToUserNewRepo;
+    private MetaTaskToUserNewRepo    metaTaskToUserNewRepo;
 
     @PostMapping("/all")
     public Page<MetaTaskToUserNew> all(@RequestBody PageQuery pageQuery) {