Browse Source

任务接口调整

sunkean 3 years ago
parent
commit
86c1dd948a

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

@@ -121,7 +121,7 @@ public class MetaTaskToUserService {
                     metaTaskToUser.setProcess(errMsg);
                     break;
                 }
-                String[] split = value.split(",");
+                String[] split = value.split(" ");
                 if (MetaTaskStatus.PROGRESS.equals(status)) {
                     List<MetaUserTaskProgress> metaUserTaskProgresses = metaUserTaskProgressRepo.findAllByMetaTaskToUserIdAndDel(metaTaskToUser.getId(), false);
                     if (CollectionUtils.isEmpty(metaUserTaskProgresses)) {

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

@@ -84,7 +84,7 @@ public class MetaUserTaskProgressService {
             if (StringUtils.isBlank(value)) {
                 return MetaRestResult.returnError("该任务未配置藏品id");
             }
-            String[] split = value.split(",");
+            String[] split = value.split(" ");
             List<String> all = Arrays.asList(split);
             if (!all.contains(metaUserTaskProgress.getRemark())) {
                 return MetaRestResult.returnError("不在任务规定藏品内");
@@ -145,7 +145,7 @@ public class MetaUserTaskProgressService {
         // 是否完成任务
         switch (metaTaskToUser.getTaskType()) {
             case COLLECT_COLLECTION:
-                String[] split = value.split(",");
+                String[] split = value.split(" ");
                 List<String> all = Arrays.asList(split);
                 List<String> completed = metaUserTaskProgresses.stream().map(MetaUserTaskProgress::getRemark).collect(Collectors.toList());
                 if (new HashSet<>(completed).containsAll(all)) {

+ 12 - 1
src/main/java/com/izouma/nineth/web/MetaTaskController.java

@@ -3,7 +3,9 @@ package com.izouma.nineth.web;
 import com.izouma.nineth.domain.MetaTask;
 import com.izouma.nineth.dto.MetaRestResult;
 import com.izouma.nineth.dto.PageQuery;
+import com.izouma.nineth.enums.MetaTaskType;
 import com.izouma.nineth.exception.BusinessException;
+import com.izouma.nineth.repo.CollectionRepo;
 import com.izouma.nineth.repo.MetaTaskRepo;
 import com.izouma.nineth.repo.MetaTaskToUserRepo;
 import com.izouma.nineth.service.MetaTaskService;
@@ -15,6 +17,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 
@@ -27,9 +30,17 @@ public class MetaTaskController extends BaseController {
 
     private MetaTaskToUserRepo metaTaskToUserRepo;
 
+    private CollectionRepo collectionRepo;
+
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
     public MetaTask save(@RequestBody MetaTask record) {
+        if (record.getType().equals(MetaTaskType.COLLECT_COLLECTION)) {
+            String[] split = record.getValue().split(" ");
+            Arrays.stream(split).forEach(collectionId -> {
+                collectionRepo.findByIdAndDelFalse(Long.parseLong(collectionId)).orElseThrow(new BusinessException(String.format("不存在collectionId[%S]的藏品", collectionId)));
+            });
+        }
         if (record.getId() != null) {
             MetaTask orig = metaTaskRepo.findById(record.getId()).orElseThrow(new BusinessException("无记录"));
             ObjUtils.merge(orig, record);
@@ -78,7 +89,7 @@ public class MetaTaskController extends BaseController {
         metaTaskRepo.save(metaTask);
 
         // 将用户领取记录改为结束
-         metaTaskToUserRepo.updateStatus(id);
+        metaTaskToUserRepo.updateStatus(id);
     }
 
 }

+ 2 - 1
src/main/vue/src/views/MetaTaskEdit.vue

@@ -64,7 +64,8 @@
 							</el-date-picker>
 						</el-form-item>
 						<el-form-item prop="value" label="藏品id" v-if="formData.type === 'COLLECT_COLLECTION'">
-							<el-input v-model="formData.value" placeholder="指定藏品id,多个用'','隔开"> </el-input>
+							<el-input v-model="formData.value" placeholder="请输入定藏品id"> </el-input>
+							<div class="tip">多个藏品id请用空格隔开 例如 111 222 333</div>
 						</el-form-item>
 						<el-form-item prop="value" label="次数" v-if="formData.type === 'ACCUMULATE'">
 							<el-input-number v-model="formData.value" :min="0"> </el-input-number>