sunkean пре 3 година
родитељ
комит
6eb5bf9a52

+ 3 - 3
src/main/java/com/izouma/nineth/enums/MetaTaskType.java

@@ -3,9 +3,9 @@ package com.izouma.nineth.enums;
 
 public enum MetaTaskType {
 
-    SIGN_IN_SINGLE_DAY("单日签到"),
-
-    SIGN_IN_CONTINUOUS("连续多日签到"),
+//    SIGN_IN_SINGLE_DAY("单日签到"),
+//
+//    SIGN_IN_CONTINUOUS("连续多日签到"),
 
     COLLECT_COLLECTION("收集藏品"),
 

+ 4 - 0
src/main/java/com/izouma/nineth/repo/MetaUserTaskAwardReceivedRecordRepo.java

@@ -4,8 +4,12 @@ import com.izouma.nineth.domain.MetaUserTaskAwardReceivedRecord;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 
+import java.time.LocalDateTime;
+
 public interface MetaUserTaskAwardReceivedRecordRepo extends JpaRepository<MetaUserTaskAwardReceivedRecord, Long>, JpaSpecificationExecutor<MetaUserTaskAwardReceivedRecord> {
 
     MetaUserTaskAwardReceivedRecord findByUserIdAndMetaTaskIdAndDel(Long userId, Long metaTaskId, boolean del);
 
+    MetaUserTaskAwardReceivedRecord findByUserIdAndMetaTaskIdAndDelAndCreatedAtAfter(Long userId, Long metaTaskId, boolean del, LocalDateTime createdAt);
+
 }

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

@@ -120,18 +120,18 @@ public class MetaTaskToUserService {
         }
         String value = metaTask.getValue();
         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 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配置";

+ 13 - 3
src/main/java/com/izouma/nineth/service/MetaUserTaskAwardReceivedRecordService.java

@@ -7,6 +7,7 @@ import com.izouma.nineth.dto.MetaAwardReceiveDTO;
 import com.izouma.nineth.dto.MetaRestResult;
 import com.izouma.nineth.dto.MetaServiceResult;
 import com.izouma.nineth.enums.MetaTaskStatus;
+import com.izouma.nineth.enums.MetaTaskType;
 import com.izouma.nineth.repo.MetaTaskRepo;
 import com.izouma.nineth.repo.MetaTaskToUserRepo;
 import com.izouma.nineth.repo.MetaUserTaskAwardReceivedRecordRepo;
@@ -15,6 +16,7 @@ import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
 import javax.transaction.Transactional;
+import java.time.LocalDateTime;
 import java.util.Objects;
 
 @Service
@@ -43,9 +45,17 @@ public class MetaUserTaskAwardReceivedRecordService {
         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("奖励领取失败:用户已经领取过该任务奖励,不可重复领取!");
+        if (MetaTaskType.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)) {
+                return MetaRestResult.returnError("奖励领取失败:用户今天已经领取过该任务奖励,不可重复领取!");
+            }
+        }
+        if (!MetaTaskType.ON_LINE_TIME_DAILY.equals(metaTask.getType())) {
+            MetaUserTaskAwardReceivedRecord metaUserTaskAwardReceivedRecord = metaUserTaskAwardReceivedRecordRepo.findByUserIdAndMetaTaskIdAndDel(userId, metaTaskId, false);
+            if (Objects.nonNull(metaUserTaskAwardReceivedRecord)) {
+                return MetaRestResult.returnError("奖励领取失败:用户已经领取过该任务奖励,不可重复领取!");
+            }
         }
         MetaAwardReceiveDTO metaAwardReceiveDTO = new MetaAwardReceiveDTO();
         metaAwardReceiveDTO.setUserId(userId);

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

@@ -13,15 +13,12 @@ import com.izouma.nineth.repo.MetaTaskToUserRepo;
 import com.izouma.nineth.repo.MetaUserTaskProgressRepo;
 import com.izouma.nineth.utils.JpaUtils;
 import lombok.AllArgsConstructor;
-import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Service;
 
 import javax.transaction.Transactional;
-import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
@@ -97,20 +94,20 @@ public class MetaUserTaskProgressService {
             }
         }
         // 单日签到任务
-        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("该签到任务已经签到过,不允许重复签到");
-            }
-        }
+//        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(MetaTaskType.ON_LINE_TIME_DAILY)) {
             MetaUserTaskProgress dbMetaUserTaskProgress = metaUserTaskProgressRepo.findByMetaTaskToUserIdAndDelAndCreatedAtAfter(metaTaskToUser.getId(), false, LocalDateTime.now().withHour(0).withMinute(0).withSecond(0));
@@ -125,20 +122,20 @@ public class MetaUserTaskProgressService {
             return MetaRestResult.returnSuccess(false);
         }
         // 连续签到任务 每天只允许签到一次。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);
-        }
+//        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);
@@ -153,10 +150,10 @@ public class MetaUserTaskProgressService {
                     return MetaRestResult.returnSuccess(true);
                 }
                 return MetaRestResult.returnSuccess(false);
-            case SIGN_IN_SINGLE_DAY:
-                // 单日登陆任务签到成功后直接完成
-                completeTask(metaTaskToUser);
-                return MetaRestResult.returnSuccess(true);
+//            case SIGN_IN_SINGLE_DAY:
+//                // 单日登陆任务签到成功后直接完成
+//                completeTask(metaTaskToUser);
+//                return MetaRestResult.returnSuccess(true);
             case ACCUMULATE:
                 if (metaUserTaskProgresses.size() >= Integer.parseInt(value)) {
                     completeTask(metaTaskToUser);

+ 1 - 4
src/main/java/com/izouma/nineth/web/MetaResourcesController.java

@@ -1,18 +1,15 @@
 package com.izouma.nineth.web;
 
-import com.izouma.nineth.config.MetaConstants;
-import com.izouma.nineth.domain.MetaResourceVersion;
 import com.izouma.nineth.domain.MetaResources;
 import com.izouma.nineth.dto.MetaRestResult;
-import com.izouma.nineth.service.MetaResourcesService;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.MetaResourcesRepo;
+import com.izouma.nineth.service.MetaResourcesService;
 import com.izouma.nineth.utils.ObjUtils;
 import com.izouma.nineth.utils.excel.ExcelUtils;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;

+ 1 - 1
src/main/vue/src/views/MetaLuckyDrawAwardReceiveRecordList.vue

@@ -38,7 +38,7 @@
 			<el-table-column prop="userId" align="center" label="用户id"> </el-table-column>
 			<el-table-column prop="metaLuckyDrawId" align="center" label="抽奖活动id"> </el-table-column>
 			<el-table-column prop="metaLuckDrawAwardName" align="center" label="奖励名称"> </el-table-column>
-			<el-table-column prop="finishTime" align="center" label="奖励获得时间"> </el-table-column>
+			<el-table-column prop="receiveTime" align="center" label="奖励获得时间"> </el-table-column>
 		</el-table>
 		<div class="pagination-wrapper">
 			<el-pagination

+ 4 - 4
src/main/vue/src/views/MetaTaskEdit.vue

@@ -83,7 +83,7 @@
                         </el-select>
                     </el-form-item>
                     <template v-if="formData.type">
-                        <el-form-item v-if="formData.type === 'SIGN_IN_SINGLE_DAY'" prop="value" label="签到日期">
+                        <!-- <el-form-item v-if="formData.type === 'SIGN_IN_SINGLE_DAY'" prop="value" label="签到日期">
                             <el-date-picker
                                 v-model="formData.value"
                                 type="date"
@@ -100,7 +100,7 @@
                                 placeholder="指定开始日期"
                             >
                             </el-date-picker>
-                        </el-form-item>
+                        </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>
                             <div class="tip">多个藏品id请用空格隔开 例如 111 222 333</div>
@@ -228,8 +228,8 @@ export default {
                 ]
             },
             typeOptions: [
-                { label: '单日签到', value: 'SIGN_IN_SINGLE_DAY' },
-                { label: '连续多日签到', value: 'SIGN_IN_CONTINUOUS' },
+                // { label: '单日签到', value: 'SIGN_IN_SINGLE_DAY' },
+                // { label: '连续多日签到', value: 'SIGN_IN_CONTINUOUS' },
                 { label: '收集藏品', value: 'COLLECT_COLLECTION' },
                 { label: '每日在线时长', value: 'ON_LINE_TIME_DAILY' },
                 { label: '累计', value: 'ACCUMULATE' }

+ 2 - 2
src/main/vue/src/views/MetaTaskList.vue

@@ -124,8 +124,8 @@ export default {
             url: '/metaTask/all',
             downloading: false,
             typeOptions: [
-                { label: '单日签到', value: 'SIGN_IN_SINGLE_DAY' },
-                { label: '连续多日签到', value: 'SIGN_IN_CONTINUOUS' },
+                // { label: '单日签到', value: 'SIGN_IN_SINGLE_DAY' },
+                // { label: '连续多日签到', value: 'SIGN_IN_CONTINUOUS' },
                 { label: '收集藏品', value: 'COLLECT_COLLECTION' },
                 { label: '每日在线时长', value: 'ON_LINE_TIME_DAILY' },
                 { label: '累计', value: 'ACCUMULATE' }

+ 2 - 2
src/main/vue/src/views/MetaTaskToUserList.vue

@@ -84,8 +84,8 @@ export default {
             url: '/metaTaskToUser/all',
             downloading: false,
             taskTypeOptions: [
-                { label: '单日签到', value: 'SIGN_IN_SINGLE_DAY' },
-                { label: '连续多日签到', value: 'SIGN_IN_CONTINUOUS' },
+                // { label: '单日签到', value: 'SIGN_IN_SINGLE_DAY' },
+                // { label: '连续多日签到', value: 'SIGN_IN_CONTINUOUS' },
                 { label: '收集藏品', value: 'COLLECT_COLLECTION' },
                 { label: '每日在线时长', value: 'ON_LINE_TIME_DAILY' },
                 { label: '累计', value: 'ACCUMULATE' }

+ 2 - 2
src/main/vue/src/views/MetaUserTaskProgressList.vue

@@ -70,8 +70,8 @@ export default {
             url: '/metaUserTaskProgress/all',
             downloading: false,
             taskTypeOptions: [
-                { label: '单日签到', value: 'SIGN_IN_SINGLE_DAY' },
-                { label: '连续多日签到', value: 'SIGN_IN_CONTINUOUS' },
+                // { label: '单日签到', value: 'SIGN_IN_SINGLE_DAY' },
+                // { label: '连续多日签到', value: 'SIGN_IN_CONTINUOUS' },
                 { label: '收集藏品', value: 'COLLECT_COLLECTION' },
                 { label: '每日在线时长', value: 'ON_LINE_TIME_DAILY' },
                 { label: '累计', value: 'ACCUMULATE' }