diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/tasktemplate/user/TaskTemplateUserQueryController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/tasktemplate/user/TaskTemplateUserQueryController.java index 78b59eb..dc29398 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/tasktemplate/user/TaskTemplateUserQueryController.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/tasktemplate/user/TaskTemplateUserQueryController.java @@ -1,7 +1,12 @@ package com.qniao.dam.api.query.tasktemplate.user; +import com.qniao.dam.api.query.tasktemplate.user.request.UserPageTaskTemplateQueryParams; +import com.qniao.dam.api.query.tasktemplate.user.response.UserPageTaskTemplateVo; import com.qniao.dam.api.query.tasktemplate.user.response.UserTaskTemplateDetailVo; +import com.qniao.dam.api.query.utc.user.response.PageUserTaskCompleteByOperatorVo; import com.qniao.dam.query.tasktemplate.TaskTemplateQueryService; +import com.qniao.domain.QnPage; +import com.qniao.framework.utils.PageUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.GetMapping; @@ -25,4 +30,11 @@ public class TaskTemplateUserQueryController { return taskTemplateQueryService.getDetail(id); } + @GetMapping("page/task-template") + @ApiOperation("获取任务模板分页") + public QnPage userPageTaskTemplate(PageUtil pageUtil, + UserPageTaskTemplateQueryParams queryParams) { + return PageUtil.convert(taskTemplateQueryService.pageTaskTemplate(pageUtil, queryParams), UserPageTaskTemplateVo.class); + } + } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/tasktemplate/user/request/UserPageTaskTemplateQueryParams.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/tasktemplate/user/request/UserPageTaskTemplateQueryParams.java new file mode 100644 index 0000000..619c0da --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/tasktemplate/user/request/UserPageTaskTemplateQueryParams.java @@ -0,0 +1,16 @@ +package com.qniao.dam.api.query.tasktemplate.user.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class UserPageTaskTemplateQueryParams { + + @ApiModelProperty("任务群体") + private Integer taskGroup; + + @ApiModelProperty("任务类型(1-每日任务,2-每周任务,3-每月任务)") + private Integer taskType; + + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/tasktemplate/user/response/UserPageTaskTemplateVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/tasktemplate/user/response/UserPageTaskTemplateVo.java new file mode 100644 index 0000000..abe3aec --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/tasktemplate/user/response/UserPageTaskTemplateVo.java @@ -0,0 +1,59 @@ +package com.qniao.dam.api.query.tasktemplate.user.response; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.qniao.dam.domian.aggregate.tasktemplate.constant.*; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +@Data +public class UserPageTaskTemplateVo { + + @ApiModelProperty("唯一标识") + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + @ApiModelProperty("任务群体") + private TaskGroupEnum taskGroup; + + @ApiModelProperty("任务种类") + private TaskCategoryEnum taskCategory; + + @ApiModelProperty("任务类型(1-每日任务,2-每周任务,2-每月任务)") + private TaskTypeEnum taskType; + + @ApiModelProperty("关联阶段编码(1-首月,2-次月,3-第三月+)") + private TaskStageEnum stageCode; + + @ApiModelProperty("任务名称") + private String taskName; + + @ApiModelProperty("任务描述") + private String taskDesc; + + @ApiModelProperty("奖励") + private String rewardValue; + + @ApiModelProperty("状态") + private TaskTemplateStatus status; + + @ApiModelProperty("开始时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startTime; + + @ApiModelProperty("结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; + + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ApiModelProperty("子任务模板列表") + private List subList; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/tasktemplate/user/response/UserTaskTemplateDetailVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/tasktemplate/user/response/UserTaskTemplateDetailVo.java index 1621d65..6b6d7b3 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/tasktemplate/user/response/UserTaskTemplateDetailVo.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/tasktemplate/user/response/UserTaskTemplateDetailVo.java @@ -1,14 +1,13 @@ package com.qniao.dam.api.query.tasktemplate.user.response; +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import com.qniao.dam.domain.aggregate.tasktemplate.entity.SubTaskTemplate; -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 java.time.LocalDateTime; import java.util.List; @Data @@ -21,6 +20,9 @@ public class UserTaskTemplateDetailVo { @ApiModelProperty("任务群体") private TaskGroupEnum taskGroup; + @ApiModelProperty("任务种类") + private TaskCategoryEnum taskCategory; + @ApiModelProperty("任务类型(1-每日任务,2-每周任务,2-每月任务)") private TaskTypeEnum taskType; @@ -36,6 +38,21 @@ public class UserTaskTemplateDetailVo { @ApiModelProperty("奖励") private String rewardValue; + @ApiModelProperty("状态") + private TaskTemplateStatus status; + + @ApiModelProperty("开始时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startTime; + + @ApiModelProperty("结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; + + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + @ApiModelProperty("子任务模板列表") private List subList; diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/tasktemplate/TaskTemplateDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/tasktemplate/TaskTemplateDao.java index cb64bf6..b3a56e4 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/tasktemplate/TaskTemplateDao.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/tasktemplate/TaskTemplateDao.java @@ -1,7 +1,12 @@ package com.qniao.dam.infrastructure.persistent.dao.tasktemplate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.qniao.dam.api.query.tasktemplate.user.request.UserPageTaskTemplateQueryParams; +import com.qniao.dam.api.query.tasktemplate.user.response.UserPageTaskTemplateVo; import com.qniao.dam.domain.aggregate.tasktemplate.entity.TaskTemplate; +import org.apache.ibatis.annotations.Param; /** * 任务模板表 @@ -9,4 +14,7 @@ import com.qniao.dam.domain.aggregate.tasktemplate.entity.TaskTemplate; * @date 2026/01/26 */ public interface TaskTemplateDao extends BaseMapper { + IPage pageTaskTemplate(Page pageWithoutOrders, + @Param("queryParams") UserPageTaskTemplateQueryParams queryParams); + } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/tasktemplate/TaskTemplateQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/tasktemplate/TaskTemplateQueryService.java index a5eb846..2324acf 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/tasktemplate/TaskTemplateQueryService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/tasktemplate/TaskTemplateQueryService.java @@ -1,12 +1,17 @@ package com.qniao.dam.query.tasktemplate; import cn.hutool.core.lang.Tuple; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.qniao.dam.api.query.tasktemplate.user.request.UserPageTaskTemplateQueryParams; +import com.qniao.dam.api.query.tasktemplate.user.response.UserPageTaskTemplateVo; import com.qniao.dam.api.query.tasktemplate.user.response.UserTaskTemplateDetailVo; import com.qniao.dam.domain.aggregate.tasktemplate.entity.SubTaskTemplate; import com.qniao.dam.domain.aggregate.tasktemplate.entity.TaskTemplate; 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.domain.QnPage; +import com.qniao.framework.utils.PageUtil; import java.time.LocalDateTime; import java.util.List; @@ -22,4 +27,6 @@ public interface TaskTemplateQueryService { List getSubList(Long taskTemplateId); UserTaskTemplateDetailVo getDetail(Long id); + + IPage pageTaskTemplate(PageUtil pageUtil, UserPageTaskTemplateQueryParams queryParams); } 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 428051c..606394b 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 @@ -2,7 +2,10 @@ package com.qniao.dam.query.tasktemplate.impl; import cn.hutool.core.lang.Tuple; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.qniao.dam.api.query.tasktemplate.user.request.UserPageTaskTemplateQueryParams; import com.qniao.dam.api.query.tasktemplate.user.response.SubTaskTemplateVo; +import com.qniao.dam.api.query.tasktemplate.user.response.UserPageTaskTemplateVo; import com.qniao.dam.api.query.tasktemplate.user.response.UserTaskTemplateDetailVo; import com.qniao.dam.domain.aggregate.tasktemplate.entity.SubTaskTemplate; import com.qniao.dam.domain.aggregate.tasktemplate.entity.TaskTemplate; @@ -13,6 +16,7 @@ import com.qniao.dam.domian.aggregate.tasktemplate.constant.TaskTypeEnum; import com.qniao.dam.infrastructure.persistent.dao.tasktemplate.SubTaskTemplateDao; import com.qniao.dam.infrastructure.persistent.dao.tasktemplate.TaskTemplateDao; import com.qniao.dam.query.tasktemplate.TaskTemplateQueryService; +import com.qniao.framework.utils.PageUtil; import com.qniao.framework.utils.TypeConvertUtils; import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ; import org.springframework.stereotype.Service; @@ -135,4 +139,17 @@ public class TaskTemplateQueryServiceImpl implements TaskTemplateQueryService { } return detailVo; } + + @Override + public IPage pageTaskTemplate(PageUtil pageUtil, + UserPageTaskTemplateQueryParams queryParams) { + IPage page = taskTemplateDao.pageTaskTemplate(pageUtil.toPageWithoutOrders(), queryParams); + if (page.getRecords().size() > 0) { + page.getRecords().forEach(record -> { + List subList = getSubList(record.getId()); + record.setSubList(TypeConvertUtils.convert(subList, SubTaskTemplateVo.class)); + }); + } + return page; + } } \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/resources/mapper/tasktemplate/TaskTemplateDao.xml b/dating-agency-mall-server/src/main/resources/mapper/tasktemplate/TaskTemplateDao.xml new file mode 100644 index 0000000..fcf3c67 --- /dev/null +++ b/dating-agency-mall-server/src/main/resources/mapper/tasktemplate/TaskTemplateDao.xml @@ -0,0 +1,32 @@ + + + + + + + + \ No newline at end of file