瀏覽代碼

任务相关调整

sunkean 2 年之前
父節點
當前提交
4e53219802

+ 33 - 0
src/main/java/com/izouma/nineth/domain/MetaAtomTask.java

@@ -3,6 +3,7 @@ package com.izouma.nineth.domain;
 
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.izouma.nineth.annotations.Searchable;
+import com.izouma.nineth.dto.MetaServiceResult;
 import com.izouma.nineth.enums.MetaAwardTypeEnum;
 import com.izouma.nineth.enums.MetaTaskTarget;
 import io.swagger.annotations.ApiModel;
@@ -10,11 +11,13 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.EnumType;
 import javax.persistence.Enumerated;
+import java.util.Objects;
 
 @Data
 @AllArgsConstructor
@@ -51,4 +54,34 @@ public class MetaAtomTask extends BaseEntity {
     @ExcelProperty("奖励配置")
     private String awardConfig;
 
+    /**
+     * 校验基础任务
+     *
+     * @param metaAtomTask 基础任务
+     * @return result
+     */
+    public static MetaServiceResult checkMetaAtomTask(MetaAtomTask metaAtomTask) {
+        if (Objects.isNull(metaAtomTask)) {
+            return MetaServiceResult.returnError("基础任务不存在");
+        }
+        if (StringUtils.isBlank(metaAtomTask.getName())) {
+            return MetaServiceResult.returnError(String.format("基础任务[%S]缺少任务名称", metaAtomTask.getId()));
+        }
+        if (Objects.isNull(metaAtomTask.getDetail())) {
+            return MetaServiceResult.returnError(String.format("基础任务[%S]缺少任务详情", metaAtomTask.getId()));
+        }
+        if (Objects.isNull(metaAtomTask.getTargetType())) {
+            return MetaServiceResult.returnError(String.format("基础任务[%S]缺少目标", metaAtomTask.getId()));
+        }
+        if (StringUtils.isBlank(metaAtomTask.getTargetConfig())) {
+            return MetaServiceResult.returnError(String.format("基础任务[%S]缺少目标配置", metaAtomTask.getId()));
+        }
+        if (Objects.isNull(metaAtomTask.getAwardType())) {
+            return MetaServiceResult.returnError(String.format("基础任务[%S]缺少奖励类型", metaAtomTask.getId()));
+        }
+        if (!metaAtomTask.getAwardType().equals(MetaAwardTypeEnum.NULL) && StringUtils.isBlank(metaAtomTask.getAwardConfig())) {
+            return MetaServiceResult.returnError(String.format("基础任务[%S]缺少奖励配置", metaAtomTask.getId()));
+        }
+        return MetaServiceResult.returnSuccess();
+    }
 }

+ 30 - 0
src/main/java/com/izouma/nineth/domain/MetaTaskNew.java

@@ -2,15 +2,18 @@ package com.izouma.nineth.domain;
 
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.izouma.nineth.annotations.Searchable;
+import com.izouma.nineth.dto.MetaServiceResult;
 import com.izouma.nineth.enums.MetaTaskType;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 
 import javax.persistence.*;
 import java.util.List;
+import java.util.Objects;
 
 @Data
 @AllArgsConstructor
@@ -56,4 +59,31 @@ public class MetaTaskNew extends BaseEntity {
     @Transient
     private List<MetaTaskBind> metaDailyTask;
 
+    /**
+     * 校验任务
+     *
+     * @param metaTaskNew 任务信息
+     * @return result
+     */
+    public static MetaServiceResult checkMetaTaskNew(MetaTaskNew metaTaskNew) {
+        if (Objects.isNull(metaTaskNew)) {
+            return MetaServiceResult.returnError("任务不存在");
+        }
+        if (!metaTaskNew.isPublish()) {
+            return MetaServiceResult.returnError("status error : task has not been published");
+        }
+        if (StringUtils.isBlank(metaTaskNew.getName())) {
+            return MetaServiceResult.returnError(String.format("任务[%S]缺少任务名称", metaTaskNew.getId()));
+        }
+        if (Objects.isNull(metaTaskNew.getDetail())) {
+            return MetaServiceResult.returnError(String.format("任务[%S]缺少任务详情", metaTaskNew.getId()));
+        }
+        if (Objects.isNull(metaTaskNew.getType())) {
+            return MetaServiceResult.returnError(String.format("任务[%S]缺少任务类型", metaTaskNew.getId()));
+        }
+        if (Objects.isNull(metaTaskNew.getChannelId())) {
+            return MetaServiceResult.returnError(String.format("任务[%S]缺少频道id", metaTaskNew.getId()));
+        }
+        return MetaServiceResult.returnSuccess();
+    }
 }

+ 2 - 2
src/main/java/com/izouma/nineth/repo/MetaTaskToUserNewRepo.java

@@ -13,7 +13,7 @@ import java.util.List;
 
 public interface MetaTaskToUserNewRepo extends JpaRepository<MetaTaskToUserNew, Long>, JpaSpecificationExecutor<MetaTaskToUserNew> {
 
-    MetaTaskToUserNew findByUserIdAndTaskIdAndAtomTaskIdAndDel(Long userId, Long taskId, Long atomTaskId, boolean del);
+    MetaTaskToUserNew findByUserIdAndTaskIdAndAtomTaskIdAndChannelIdAndDel(Long userId, Long taskId, Long atomTaskId, Long channelId, boolean del);
 
     List<MetaTaskToUserNew> findAllByUserIdAndStatusAndDelAndAtomTaskIdIn(Long userId, MetaTaskStatus status, boolean del, List<Long> atomTaskIds);
 
@@ -24,5 +24,5 @@ public interface MetaTaskToUserNewRepo extends JpaRepository<MetaTaskToUserNew,
     @Query("update MetaTaskToUserNew m set m.status = ?1 where m.taskId in ?2")
     @Modifying
     @Transactional
-    void updateStatus(MetaTaskStatus status, List<Long> taskIds) ;
+    void updateStatus(MetaTaskStatus status, List<Long> taskIds);
 }

+ 9 - 62
src/main/java/com/izouma/nineth/service/MetaTaskToUserNewService.java

@@ -98,13 +98,13 @@ public class MetaTaskToUserNewService {
             return MetaRestResult.returnError("Illegal parameter : atomTaskId can not be null");
         }
         MetaTaskNew metaTaskNew = metaTaskNewRepo.findByIdAndDel(metaTaskToUserNew.getTaskId(), false);
-        MetaServiceResult checkMetaTaskNewResult = checkMetaTaskNew(metaTaskNew);
+        MetaServiceResult checkMetaTaskNewResult = MetaTaskNew.checkMetaTaskNew(metaTaskNew);
         if (!checkMetaTaskNewResult.isSuccess()) {
             return MetaRestResult.returnError(checkMetaTaskNewResult.getMessage());
         }
         metaTaskToUserNew.setMetaTaskNew(metaTaskNew);
         MetaAtomTask metaAtomTask = metaAtomTaskRepo.findByIdAndDel(metaTaskToUserNew.getAtomTaskId(), false);
-        MetaServiceResult checkMetaAtomTaskResult = checkMetaAtomTask(metaAtomTask);
+        MetaServiceResult checkMetaAtomTaskResult = MetaAtomTask.checkMetaAtomTask(metaAtomTask);
         if (!checkMetaAtomTaskResult.isSuccess()) {
             return MetaRestResult.returnError(checkMetaAtomTaskResult.getMessage());
         }
@@ -115,8 +115,8 @@ public class MetaTaskToUserNewService {
         }
         // 判断当前玩家是否领取过基础任务
         MetaTaskToUserNew dbMetaTaskToUserNew = metaTaskToUserNewRepo
-                .findByUserIdAndTaskIdAndAtomTaskIdAndDel(metaTaskToUserNew.getUserId(), metaTaskToUserNew
-                        .getTaskId(), metaTaskToUserNew.getAtomTaskId(), false);
+                .findByUserIdAndTaskIdAndAtomTaskIdAndChannelIdAndDel(metaTaskToUserNew.getUserId(), metaTaskToUserNew
+                        .getTaskId(), metaTaskToUserNew.getAtomTaskId(), metaTaskNew.getChannelId(), false);
         if (Objects.nonNull(dbMetaTaskToUserNew)) {
             return MetaRestResult.returnError(String.format("当前用户已在[%S]领取过该任务", dbMetaTaskToUserNew.getGetTime()));
         }
@@ -163,13 +163,13 @@ public class MetaTaskToUserNewService {
 
     public MetaRestResult<MetaTaskToUserNew> setSingleProgress(MetaTaskToUserNew metaTaskToUserNew) {
         MetaAtomTask metaAtomTask = metaAtomTaskRepo.findByIdAndDel(metaTaskToUserNew.getAtomTaskId(), false);
-        MetaServiceResult checkMetaAtomTaskResult = checkMetaAtomTask(metaAtomTask);
+        MetaServiceResult checkMetaAtomTaskResult = MetaAtomTask.checkMetaAtomTask(metaAtomTask);
         if (!checkMetaAtomTaskResult.isSuccess()) {
             return MetaRestResult.returnError(checkMetaAtomTaskResult.getMessage());
         }
         metaTaskToUserNew.setMetaAtomTask(metaAtomTask);
         MetaTaskNew metaTaskNew = metaTaskNewRepo.findByIdAndDel(metaTaskToUserNew.getTaskId(), false);
-        MetaServiceResult checkMetaTaskNewResult = checkMetaTaskNew(metaTaskNew);
+        MetaServiceResult checkMetaTaskNewResult = MetaTaskNew.checkMetaTaskNew(metaTaskNew);
         if (!checkMetaTaskNewResult.isSuccess()) {
             return MetaRestResult.returnError(checkMetaTaskNewResult.getMessage());
         }
@@ -258,62 +258,6 @@ public class MetaTaskToUserNewService {
         }
     }
 
-    /**
-     * 校验基础任务
-     *
-     * @param metaAtomTask 基础任务
-     * @return result
-     */
-    private MetaServiceResult checkMetaAtomTask(MetaAtomTask metaAtomTask) {
-        if (Objects.isNull(metaAtomTask)) {
-            return MetaServiceResult.returnError("基础任务不存在");
-        }
-        if (StringUtils.isBlank(metaAtomTask.getName())) {
-            return MetaServiceResult.returnError(String.format("基础任务[%S]缺少任务名称", metaAtomTask.getId()));
-        }
-        if (Objects.isNull(metaAtomTask.getDetail())) {
-            return MetaServiceResult.returnError(String.format("基础任务[%S]缺少任务详情", metaAtomTask.getId()));
-        }
-        if (Objects.isNull(metaAtomTask.getTargetType())) {
-            return MetaServiceResult.returnError(String.format("基础任务[%S]缺少目标", metaAtomTask.getId()));
-        }
-        if (StringUtils.isBlank(metaAtomTask.getTargetConfig())) {
-            return MetaServiceResult.returnError(String.format("基础任务[%S]缺少目标配置", metaAtomTask.getId()));
-        }
-        if (Objects.isNull(metaAtomTask.getAwardType())) {
-            return MetaServiceResult.returnError(String.format("基础任务[%S]缺少奖励类型", metaAtomTask.getId()));
-        }
-        if (!metaAtomTask.getAwardType().equals(MetaAwardTypeEnum.NULL) && StringUtils.isBlank(metaAtomTask.getAwardConfig())) {
-            return MetaServiceResult.returnError(String.format("基础任务[%S]缺少奖励配置", metaAtomTask.getId()));
-        }
-        return MetaServiceResult.returnSuccess();
-    }
-
-    /**
-     * 校验任务
-     *
-     * @param metaTaskNew 任务信息
-     * @return result
-     */
-    public MetaServiceResult checkMetaTaskNew(MetaTaskNew metaTaskNew) {
-        if (Objects.isNull(metaTaskNew)) {
-            return MetaServiceResult.returnError("任务不存在");
-        }
-        if (!metaTaskNew.isPublish()) {
-            return MetaServiceResult.returnError("status error : task has not been published");
-        }
-        if (StringUtils.isBlank(metaTaskNew.getName())) {
-            return MetaServiceResult.returnError(String.format("任务[%S]缺少任务名称", metaTaskNew.getId()));
-        }
-        if (Objects.isNull(metaTaskNew.getDetail())) {
-            return MetaServiceResult.returnError(String.format("任务[%S]缺少任务详情", metaTaskNew.getId()));
-        }
-        if (Objects.isNull(metaTaskNew.getType())) {
-            return MetaServiceResult.returnError(String.format("任务[%S]缺少任务类型", metaTaskNew.getId()));
-        }
-        return MetaServiceResult.returnSuccess();
-    }
-
     /**
      * 道具奖励 构建道具信息
      *
@@ -334,6 +278,9 @@ public class MetaTaskToUserNewService {
         return MetaServiceResult.returnSuccess();
     }
 
+    /**
+     * 每天凌晨刷新日常任务状态为执行中
+     */
     @Scheduled(cron = "0 0 0 * * *")
     @Transactional
     public void handleDailyTask() {

+ 13 - 4
src/main/java/com/izouma/nineth/service/MetaUserTaskAwardReceivedRecordNewService.java

@@ -1,6 +1,7 @@
 package com.izouma.nineth.service;
 
 import com.izouma.nineth.domain.MetaAtomTask;
+import com.izouma.nineth.domain.MetaTaskNew;
 import com.izouma.nineth.domain.MetaTaskToUserNew;
 import com.izouma.nineth.domain.MetaUserTaskAwardReceivedRecordNew;
 import com.izouma.nineth.dto.MetaAwardReceiveDTO;
@@ -10,6 +11,7 @@ import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.enums.MetaTaskStatus;
 import com.izouma.nineth.enums.MetaTaskTarget;
 import com.izouma.nineth.repo.MetaAtomTaskRepo;
+import com.izouma.nineth.repo.MetaTaskNewRepo;
 import com.izouma.nineth.repo.MetaTaskToUserNewRepo;
 import com.izouma.nineth.repo.MetaUserTaskAwardReceivedRecordNewRepo;
 import com.izouma.nineth.utils.JpaUtils;
@@ -29,6 +31,7 @@ public class MetaUserTaskAwardReceivedRecordNewService {
     private MetaUserTaskAwardReceivedRecordNewRepo metaUserTaskAwardReceivedRecordNewRepo;
     private MetaTaskToUserNewRepo                  metaTaskToUserNewRepo;
     private MetaAtomTaskRepo                       metaAtomTaskRepo;
+    private MetaTaskNewRepo                        metaTaskNewRepo;
     private MetaAwardReceiveService                metaAwardReceiveService;
 
     public Page<MetaUserTaskAwardReceivedRecordNew> all(PageQuery pageQuery) {
@@ -38,13 +41,19 @@ public class MetaUserTaskAwardReceivedRecordNewService {
     @Transactional
     public MetaRestResult<Void> receiveAward(Long taskId, Long atomTaskId) {
         Long userId = SecurityUtils.getAuthenticatedUser().getId();
+        MetaTaskNew metaTaskNew = metaTaskNewRepo.findByIdAndDel(taskId, false);
+        MetaServiceResult checkMetaTaskNewResult = MetaTaskNew.checkMetaTaskNew(metaTaskNew);
+        if (!checkMetaTaskNewResult.isSuccess()) {
+            return MetaRestResult.returnError(checkMetaTaskNewResult.getMessage());
+        }
         MetaAtomTask metaAtomTask = metaAtomTaskRepo.findByIdAndDel(atomTaskId, false);
-        if (Objects.isNull(metaAtomTask)) {
-            return MetaRestResult.returnError("奖励领取失败:基础任务不存在!");
+        MetaServiceResult checkMetaAtomTaskResult = MetaAtomTask.checkMetaAtomTask(metaAtomTask);
+        if (!checkMetaAtomTaskResult.isSuccess()) {
+            return MetaRestResult.returnError(checkMetaAtomTaskResult.getMessage());
         }
-        MetaTaskToUserNew metaTaskToUserNew = metaTaskToUserNewRepo.findByUserIdAndTaskIdAndAtomTaskIdAndDel(userId, taskId, atomTaskId, false);
+        MetaTaskToUserNew metaTaskToUserNew = metaTaskToUserNewRepo.findByUserIdAndTaskIdAndAtomTaskIdAndChannelIdAndDel(userId, taskId, atomTaskId, metaTaskNew.getChannelId(), false);
         if (Objects.isNull(metaTaskToUserNew)) {
-            return MetaRestResult.returnError("奖励领取失败:用户未领取过该任务!");
+            return MetaRestResult.returnError(String.format("奖励领取失败:用户[%S]在频道[%S]下未领取过该任务!", userId, metaTaskNew.getChannelId()));
         }
         if (MetaTaskStatus.PROGRESS.equals(metaTaskToUserNew.getStatus()) || MetaTaskStatus.FINISH.equals(metaTaskToUserNew.getStatus())) {
             return MetaRestResult.returnError(String.format("奖励领取失败:当前任务状态为[%S]", metaTaskToUserNew.getStatus().getDescription()));

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

@@ -56,7 +56,7 @@ public class MetaUserTaskProgressNewService {
         }
         // 校验任务
         MetaTaskNew metaTaskNew = metaTaskNewRepo.findByIdAndDel(metaTaskToUserNew.getTaskId(), false);
-        MetaServiceResult checkMetaTaskNewResult = metaTaskToUserNewService.checkMetaTaskNew(metaTaskNew);
+        MetaServiceResult checkMetaTaskNewResult = MetaTaskNew.checkMetaTaskNew(metaTaskNew);
         if (!checkMetaTaskNewResult.isSuccess()) {
             return MetaRestResult.returnError(checkMetaTaskNewResult.getMessage());
         }

+ 5 - 4
src/main/java/com/izouma/nineth/web/MetaTaskToUserNewController.java

@@ -40,11 +40,12 @@ public class MetaTaskToUserNewController {
         return metaTaskToUserNewService.receiveTask(metaTaskToUserNew, true);
     }
 
-    @GetMapping("/{taskId}/{atomTaskId}/findProgress")
-    public MetaRestResult<MetaTaskToUserNew> findProgress(@PathVariable Long taskId, @PathVariable Long atomTaskId) {
-        MetaTaskToUserNew metaTaskToUserNew = metaTaskToUserNewRepo.findByUserIdAndTaskIdAndAtomTaskIdAndDel(SecurityUtils.getAuthenticatedUser().getId(), taskId, atomTaskId, false);
+    @GetMapping("/{taskId}/{atomTaskId}/{channelId}/findProgress")
+    public MetaRestResult<MetaTaskToUserNew> findProgress(@PathVariable Long taskId, @PathVariable Long atomTaskId, @PathVariable Long channelId) {
+        Long userId = SecurityUtils.getAuthenticatedUser().getId();
+        MetaTaskToUserNew metaTaskToUserNew = metaTaskToUserNewRepo.findByUserIdAndTaskIdAndAtomTaskIdAndChannelIdAndDel(userId, taskId, atomTaskId, channelId, false);
         if (Objects.isNull(metaTaskToUserNew)) {
-            return MetaRestResult.returnError(String.format("根据任务id[%S]+基础任务id[%S]查询不到用户领取记录", taskId, atomTaskId));
+            return MetaRestResult.returnError(String.format("根据任务id[%S]+基础任务id[%S]查询不到用户[%S]在频道[%S]下的领取记录", taskId, atomTaskId, userId, channelId));
         }
         return metaTaskToUserNewService.setSingleProgress(metaTaskToUserNew);
     }