From 5a63c1a7f301cc96ede6d5fb7929fff70e3a7dd7 Mon Sep 17 00:00:00 2001 From: Derran Date: Wed, 15 Apr 2026 18:14:07 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=A2=E5=A8=98=E7=9B=B4=E6=92=AD=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constant/TaskCategoryEnum.java | 38 ++++++++++++++ .../constant/TaskTemplateStatus.java | 49 +++++++++++++++++++ .../tasktemplate/constant/TaskTypeEnum.java | 6 ++- .../tasktemplate/entity/TaskTemplate.java | 17 +++++-- .../impl/TaskTemplateQueryServiceImpl.java | 41 +++++++++------- 5 files changed, 130 insertions(+), 21 deletions(-) create mode 100644 dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/tasktemplate/constant/TaskCategoryEnum.java create mode 100644 dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/tasktemplate/constant/TaskTemplateStatus.java diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/tasktemplate/constant/TaskCategoryEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/tasktemplate/constant/TaskCategoryEnum.java new file mode 100644 index 0000000..ce5133b --- /dev/null +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/tasktemplate/constant/TaskCategoryEnum.java @@ -0,0 +1,38 @@ +package com.qniao.dam.domian.aggregate.tasktemplate.constant; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.Getter; + +@Getter +@JsonFormat(shape = JsonFormat.Shape.OBJECT) +public enum TaskCategoryEnum { + + NORMAL_TASK(1, "常规任务"), + + NEWCOMER_TASK(2, "新手任务"); + + @EnumValue + @JsonValue + private final Integer value; + + private final String desc; + + TaskCategoryEnum(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + @JsonCreator + public static TaskCategoryEnum get(Integer v) { + + for (TaskCategoryEnum e : TaskCategoryEnum.values()) { + if (e.getValue().equals(v)) { + return e; + } + } + return null; + } +} \ No newline at end of file diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/tasktemplate/constant/TaskTemplateStatus.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/tasktemplate/constant/TaskTemplateStatus.java new file mode 100644 index 0000000..f35f274 --- /dev/null +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/tasktemplate/constant/TaskTemplateStatus.java @@ -0,0 +1,49 @@ +package com.qniao.dam.domian.aggregate.tasktemplate.constant; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.Getter; + +@Getter +@JsonFormat(shape = JsonFormat.Shape.OBJECT) +public enum TaskTemplateStatus { + + /** + * 未生效(未到开始时间) + */ + NOT_EFFECTIVE(1, "未生效"), + + /** + * 已生效(进行中) + */ + EFFECTIVE(2, "已生效"), + + /** + * 已结束(已过期/已完成) + */ + FINISHED(3, "已结束"); + + @EnumValue + @JsonValue + private final Integer value; + + private final String desc; + + TaskTemplateStatus(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + @JsonCreator + public static TaskTemplateStatus get(Integer v) { + + for (TaskTemplateStatus e : TaskTemplateStatus.values()) { + if (e.getValue().equals(v)) { + return e; + } + } + return null; + } +} \ No newline at end of file diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/tasktemplate/constant/TaskTypeEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/tasktemplate/constant/TaskTypeEnum.java index 7c4ecb2..1e18ba7 100644 --- a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/tasktemplate/constant/TaskTypeEnum.java +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/tasktemplate/constant/TaskTypeEnum.java @@ -14,7 +14,11 @@ public enum TaskTypeEnum { WEEKLY_TASK(2, "每周任务"), - MONTHLY_TASK(3, "每月任务"); + MONTHLY_TASK(3, "每月任务"), + + NEWCOMER_SEVEN_DAY_TASK(4, "7日新手任务"), + + NEWCOMER_THIRTY_DAY_TASK(5, "30日新手任务"); @EnumValue @JsonValue diff --git a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/tasktemplate/entity/TaskTemplate.java b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/tasktemplate/entity/TaskTemplate.java index 8c1446d..1f12a86 100644 --- a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/tasktemplate/entity/TaskTemplate.java +++ b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/tasktemplate/entity/TaskTemplate.java @@ -1,14 +1,13 @@ package com.qniao.dam.domain.aggregate.tasktemplate.entity; import com.baomidou.mybatisplus.annotation.TableName; -import com.qniao.dam.domian.aggregate.tasktemplate.constant.TaskGroupEnum; -import com.qniao.dam.domian.aggregate.tasktemplate.constant.TaskStageEnum; -import com.qniao.dam.domian.aggregate.tasktemplate.constant.TaskTypeEnum; +import com.qniao.dam.domian.aggregate.tasktemplate.constant.*; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import com.qniao.domain.Entity; +import java.time.LocalDateTime; import java.util.List; /** @@ -24,6 +23,9 @@ public class TaskTemplate extends Entity { @ApiModelProperty("任务群体") private TaskGroupEnum taskGroup; + @ApiModelProperty("任务种类") + private TaskCategoryEnum taskCategory; + @ApiModelProperty("任务类型(1-每日任务,2-每周任务,3-每月任务)") private TaskTypeEnum taskType; @@ -39,6 +41,15 @@ public class TaskTemplate extends Entity { @ApiModelProperty("奖励") private String rewardValue; + @ApiModelProperty("状态") + private TaskTemplateStatus status; + + @ApiModelProperty("开始时间") + private LocalDateTime startTime; + + @ApiModelProperty("结束时间") + private LocalDateTime endTime; + @ApiModelProperty("子任务模板列表") private transient List subList; diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/tasktemplate/impl/TaskTemplateQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/tasktemplate/impl/TaskTemplateQueryServiceImpl.java index d0d5850..42e60bb 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/tasktemplate/impl/TaskTemplateQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/tasktemplate/impl/TaskTemplateQueryServiceImpl.java @@ -59,18 +59,6 @@ public class TaskTemplateQueryServiceImpl implements TaskTemplateQueryService { stageCode = TaskStageEnum.THIRD_MONTH_AND_AFTER; } break; - case WEEKLY_TASK: - //暂时只有首周 - //taskStartDate = LocalDate.now().with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)); - //taskEndDate = LocalDate.now().with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY)); - taskStartDate = createTime.toLocalDate(); - taskEndDate = taskStartDate.plusDays(6); - if (taskEndDate.isBefore(now)) { - taskStartDate = null; - taskEndDate = null; - } - stageCode = TaskStageEnum.FIRST_MONTH; - break; case MONTHLY_TASK: taskStartDate = createTime.toLocalDate(); taskEndDate = taskStartDate.plusDays(29); @@ -93,6 +81,22 @@ public class TaskTemplateQueryServiceImpl implements TaskTemplateQueryService { } } break; + case NEWCOMER_SEVEN_DAY_TASK: + taskStartDate = createTime.toLocalDate(); + taskEndDate = taskStartDate.plusDays(6); + if (taskEndDate.isBefore(now)) { + taskStartDate = null; + taskEndDate = null; + } + break; + case NEWCOMER_THIRTY_DAY_TASK: + taskStartDate = createTime.toLocalDate(); + taskEndDate = taskStartDate.plusDays(29); + if (taskEndDate.isBefore(now)) { + taskStartDate = null; + taskEndDate = null; + } + break; } return new Tuple(taskStartDate, taskEndDate, stageCode); } @@ -101,11 +105,14 @@ public class TaskTemplateQueryServiceImpl implements TaskTemplateQueryService { public TaskTemplate queryBy(TaskGroupEnum taskGroup, TaskTypeEnum taskType, TaskStageEnum stageCode) { - return taskTemplateDao.selectOne(new LambdaQueryWrapper() - .eq(TaskTemplate::getTaskGroup, taskGroup) - .eq(TaskTemplate::getTaskType, taskType) - .eq(TaskTemplate::getStageCode, stageCode) - .last("LIMIT 1")); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); + wrapper.eq(TaskTemplate::getTaskGroup, taskGroup); + wrapper.eq(TaskTemplate::getTaskType, taskType); + if (Objects.nonNull(stageCode)) { + wrapper.eq(TaskTemplate::getStageCode, stageCode); + } + wrapper.last("LIMIT 1"); + return taskTemplateDao.selectOne(wrapper); } @Override