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 ee79d8d..8c1446d 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 @@ -24,7 +24,7 @@ public class TaskTemplate extends Entity { @ApiModelProperty("任务群体") private TaskGroupEnum taskGroup; - @ApiModelProperty("任务类型(1-每日任务,2-每周任务,2-每月任务)") + @ApiModelProperty("任务类型(1-每日任务,2-每周任务,3-每月任务)") private TaskTypeEnum taskType; @ApiModelProperty("关联阶段编码(1-首月,2-次月,3-第三月+)") diff --git a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/udtp/entity/UserDailyTaskProgress.java b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/udtp/entity/UserDailyTaskProgress.java new file mode 100644 index 0000000..cf51452 --- /dev/null +++ b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/udtp/entity/UserDailyTaskProgress.java @@ -0,0 +1,54 @@ +package com.qniao.dam.domain.aggregate.udtp.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.qniao.dam.domian.aggregate.tasktemplate.constant.SubTaskTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import com.qniao.domain.Entity; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Objects; + +/** + * 用户每日任务进度 + * + * @date 2026/02/26 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("da_user_daily_task_progress") +public class UserDailyTaskProgress extends Entity { + + @ApiModelProperty("用户ID") + private Long userId; + + @ApiModelProperty("进度日期") + private LocalDate progressDate; + + @ApiModelProperty("子任务类型") + private SubTaskTypeEnum subTaskType; + + @ApiModelProperty("完成次数") + private Integer completeCount; + + public static UserDailyTaskProgress build(Long userId, + LocalDate progressDate, + SubTaskTypeEnum subTaskType, + Integer completeCount) { + UserDailyTaskProgress userDailyTaskProgress = new UserDailyTaskProgress(); + userDailyTaskProgress.setUserId(userId); + userDailyTaskProgress.setProgressDate(progressDate); + userDailyTaskProgress.setSubTaskType(subTaskType); + userDailyTaskProgress.setCompleteCount(completeCount); + return userDailyTaskProgress; + } + + public void commit(Integer commitCount) { + if (Objects.isNull(this.completeCount)) { + this.completeCount = 0; + } + this.completeCount += commitCount; + } +} diff --git a/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/udtp/event/UserDailyTaskProgressCommittedEvent.java b/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/udtp/event/UserDailyTaskProgressCommittedEvent.java new file mode 100644 index 0000000..c907670 --- /dev/null +++ b/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/udtp/event/UserDailyTaskProgressCommittedEvent.java @@ -0,0 +1,15 @@ +package com.qniao.dam.domian.aggregate.udtp.event; + +import com.qniao.domain.BaseDomainEvent; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class UserDailyTaskProgressCommittedEvent extends BaseDomainEvent { + + private Long userId; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/udtp/user/UserDailyTaskProgressUserCommandController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/udtp/user/UserDailyTaskProgressUserCommandController.java new file mode 100644 index 0000000..eb8a813 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/udtp/user/UserDailyTaskProgressUserCommandController.java @@ -0,0 +1,40 @@ +package com.qniao.dam.api.command.udtp.user; + +import com.qniao.dam.api.command.udtp.user.request.*; +import com.qniao.dam.application.service.udtp.UserDailyTaskProgressApplicationService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +@Api(tags = "用户每日任务进度") +@RestController +@RequestMapping("user") +public class UserDailyTaskProgressUserCommandController { + + @Resource + private UserDailyTaskProgressApplicationService userDailyTaskProgressApplicationService; + + @ApiOperation("用户创建用户每日任务进度") + @PostMapping("create/user-daily-task-progress") + public void userCreateUserDailyTaskProgress(@RequestBody @Valid UserCreateUserDailyTaskProgressDto dto, + @RequestParam("userId") Long userId) { + userDailyTaskProgressApplicationService.create(dto.trans2Domain()); + } + + @ApiOperation("用户编辑用户每日任务进度") + @PostMapping("edit/user-daily-task-progress") + public void userEditUserDailyTaskProgress(@RequestBody @Valid UserEditUserDailyTaskProgressDto dto, + @RequestParam("userId") Long userId) { + userDailyTaskProgressApplicationService.edit(dto.trans2Domain()); + } + + @ApiOperation("用户删除用户每日任务进度") + @PostMapping("delete/user-daily-task-progress") + public void userDeleteUserDailyTaskProgress(@RequestBody @Valid UserDeleteUserDailyTaskProgressDto dto, + @RequestParam("userId") Long userId) { + userDailyTaskProgressApplicationService.delete(dto.getId()); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/udtp/user/request/UserCreateUserDailyTaskProgressDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/udtp/user/request/UserCreateUserDailyTaskProgressDto.java new file mode 100644 index 0000000..b602513 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/udtp/user/request/UserCreateUserDailyTaskProgressDto.java @@ -0,0 +1,29 @@ +package com.qniao.dam.api.command.udtp.user.request; + +import com.qniao.dam.domain.aggregate.udtp.entity.UserDailyTaskProgress; +import com.qniao.domain.Trans2DomainAssembler; +import io.swagger.annotations.ApiModelProperty; +import com.qniao.framework.utils.TypeConvertUtils; +import lombok.Data; + +@Data +public class UserCreateUserDailyTaskProgressDto implements Trans2DomainAssembler { + + + @ApiModelProperty("用户ID") + private Long userId; + + @ApiModelProperty("进度日期") + private LocalDateTime progressDate; + + @ApiModelProperty("子任务类型") + private Byte subTaskType; + + @ApiModelProperty("完成次数") + private Integer completeCount; + + @Override + public UserDailyTaskProgress trans2Domain() { + return TypeConvertUtils.convert(this, UserDailyTaskProgress.class); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/udtp/user/request/UserDeleteUserDailyTaskProgressDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/udtp/user/request/UserDeleteUserDailyTaskProgressDto.java new file mode 100644 index 0000000..f7264d7 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/udtp/user/request/UserDeleteUserDailyTaskProgressDto.java @@ -0,0 +1,12 @@ +package com.qniao.dam.api.command.udtp.user.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class UserDeleteUserDailyTaskProgressDto { + + @ApiModelProperty("唯一标识") + private Long id; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/udtp/user/request/UserEditUserDailyTaskProgressDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/udtp/user/request/UserEditUserDailyTaskProgressDto.java new file mode 100644 index 0000000..75c8cdb --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/udtp/user/request/UserEditUserDailyTaskProgressDto.java @@ -0,0 +1,32 @@ +package com.qniao.dam.api.command.udtp.user.request; + +import com.qniao.dam.domain.aggregate.udtp.entity.UserDailyTaskProgress; +import com.qniao.domain.Trans2DomainAssembler; +import io.swagger.annotations.ApiModelProperty; +import com.qniao.framework.utils.TypeConvertUtils; +import lombok.Data; + +@Data +public class UserEditUserDailyTaskProgressDto implements Trans2DomainAssembler { + + + @ApiModelProperty("唯一标识") + private Long id; + + @ApiModelProperty("用户ID") + private Long userId; + + @ApiModelProperty("进度日期") + private LocalDateTime progressDate; + + @ApiModelProperty("子任务类型") + private Byte subTaskType; + + @ApiModelProperty("完成次数") + private Integer completeCount; + + @Override + public UserDailyTaskProgress trans2Domain() { + return TypeConvertUtils.convert(this, UserDailyTaskProgress.class); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/utc/UserTaskCompleteEventHandler.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/utc/UserTaskCompleteEventHandler.java index d803834..ab8587d 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/utc/UserTaskCompleteEventHandler.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/utc/UserTaskCompleteEventHandler.java @@ -5,6 +5,8 @@ import cn.hutool.core.lang.Tuple; import com.google.common.eventbus.Subscribe; import com.qniao.dam.domain.aggregate.tasktemplate.entity.SubTaskTemplate; import com.qniao.dam.domain.aggregate.tasktemplate.entity.TaskTemplate; +import com.qniao.dam.domain.aggregate.udtp.UserDailyTaskProgressAggregate; +import com.qniao.dam.domain.aggregate.udtp.entity.UserDailyTaskProgress; import com.qniao.dam.domain.aggregate.utc.UserTaskCompleteAggregate; import com.qniao.dam.domain.aggregate.utc.entity.UserSubTaskComplete; import com.qniao.dam.domain.aggregate.utc.entity.UserTaskComplete; @@ -27,6 +29,7 @@ import com.qniao.dam.infrastructure.persistent.dao.tasktemplate.TaskTemplateDao; import com.qniao.dam.infrastructure.persistent.dao.utc.UserTaskCompleteDao; import com.qniao.dam.query.livematchmaker.LiveMatchmakerQueryService; import com.qniao.dam.query.tasktemplate.TaskTemplateQueryService; +import com.qniao.dam.query.udtp.UserDailyTaskProgressQueryService; import com.qniao.dam.query.utc.UserTaskCompleteQueryService; import com.qniao.dam.query.walletaccount.WalletAccountQueryService; import com.qniao.dau.domain.aggregate.livematchmaker.entity.LiveMatchmaker; @@ -38,11 +41,11 @@ import org.springframework.amqp.rabbit.annotation.Exchange; import org.springframework.amqp.rabbit.annotation.Queue; import org.springframework.amqp.rabbit.annotation.QueueBinding; import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.Collections; import java.util.List; import java.util.Objects; @@ -67,6 +70,11 @@ public class UserTaskCompleteEventHandler extends BaseApplicationService { private TaskTemplateDao taskTemplateDao; @Resource private CompleteUserTaskCompleteDomainService completeUserTaskCompleteDomainService; + @Resource + private UserDailyTaskProgressQueryService userDailyTaskProgressQueryService; + @Resource + private UserDailyTaskProgressAggregate userDailyTaskProgressAggregate; + @RabbitListener(bindings = @QueueBinding(value = @Queue(MqQueue.EFFECTIVE_LIVE_DURATION_COMMITTED), exchange = @Exchange(value = MqExchange.EFFECTIVE_LIVE_DURATION_COMMITTED, @@ -112,7 +120,7 @@ public class UserTaskCompleteEventHandler extends BaseApplicationService { Integer commitCount) { LiveMatchmaker liveMatchmaker = liveMatchmakerQueryService.queryByUserId(userId); if (Objects.nonNull(liveMatchmaker)) { - Tuple tuple = taskTemplateQueryService.getTaskDate(TaskTypeEnum.DAILY_TASK); + Tuple tuple = taskTemplateQueryService.getTaskDate(TaskTypeEnum.DAILY_TASK, liveMatchmaker.getCreateTime()); UserTaskComplete userTaskComplete = userTaskCompleteQueryService.queryBy(userId, tuple.get(0), tuple.get(1)); TaskTemplate taskTemplate = null; if (Objects.isNull(userTaskComplete)) { @@ -161,6 +169,21 @@ public class UserTaskCompleteEventHandler extends BaseApplicationService { } } + private void commitDailyTaskTaskComplete2(Long userId, + SubTaskTypeEnum subTaskType, + Integer commitCount) { + LiveMatchmaker liveMatchmaker = liveMatchmakerQueryService.queryByUserId(userId); + if (Objects.nonNull(liveMatchmaker)) { + UserDailyTaskProgress progress = userDailyTaskProgressQueryService.queryBy(userId, LocalDate.now(), subTaskType); + if (Objects.isNull(progress)) { + progress = UserDailyTaskProgress.build(userId, LocalDate.now(), subTaskType, 0); + } + progress.commit(commitCount); + BaseDomainEvent event = userDailyTaskProgressAggregate.commit(progress); + this.sendEvent(event); + } + } + @Subscribe private void handle(UserTaskCompleteCommittedEvent event) { try { diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/udtp/UserDailyTaskProgressApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/udtp/UserDailyTaskProgressApplicationService.java new file mode 100644 index 0000000..6630c35 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/udtp/UserDailyTaskProgressApplicationService.java @@ -0,0 +1,26 @@ +package com.qniao.dam.application.service.udtp; + +import com.qniao.dam.domain.aggregate.udtp.UserDailyTaskProgressAggregate; +import com.qniao.dam.domain.aggregate.udtp.entity.UserDailyTaskProgress; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class UserDailyTaskProgressApplicationService { + + @Resource + private UserDailyTaskProgressAggregate userDailyTaskProgressAggregate; + + public void create(UserDailyTaskProgress userDailyTaskProgress) { + userDailyTaskProgressAggregate.create(userDailyTaskProgress); + } + + public void edit(UserDailyTaskProgress userDailyTaskProgress) { + userDailyTaskProgressAggregate.edit(userDailyTaskProgress); + } + + public void delete(Long id) { + userDailyTaskProgressAggregate.delete(id); + } +} \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/udtp/UserDailyTaskProgressAggregate.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/udtp/UserDailyTaskProgressAggregate.java new file mode 100644 index 0000000..ff5aa95 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/udtp/UserDailyTaskProgressAggregate.java @@ -0,0 +1,38 @@ +package com.qniao.dam.domain.aggregate.udtp; + +import com.qniao.dam.domain.aggregate.udtp.entity.UserDailyTaskProgress; +import com.qniao.dam.domain.aggregate.udtp.repository.UserDailyTaskProgressRepository; +import com.qniao.dam.domian.aggregate.udtp.event.UserDailyTaskProgressCommittedEvent; +import com.qniao.domain.BaseDomainEvent; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * 用户每日任务进度 + * + * @date 2026/02/26 + */ +@Service +public class UserDailyTaskProgressAggregate { + + @Resource + private UserDailyTaskProgressRepository repository; + + public void create(UserDailyTaskProgress entity) { + repository.save(entity); + } + + public void edit(UserDailyTaskProgress entity) { + repository.save(entity); + } + + public void delete(Long id) { + repository.delete(id); + } + + public BaseDomainEvent commit(UserDailyTaskProgress entity) { + repository.save(entity); + return new UserDailyTaskProgressCommittedEvent(entity.getUserId()); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/udtp/repository/UserDailyTaskProgressRepository.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/udtp/repository/UserDailyTaskProgressRepository.java new file mode 100644 index 0000000..4e4b1c0 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/udtp/repository/UserDailyTaskProgressRepository.java @@ -0,0 +1,12 @@ +package com.qniao.dam.domain.aggregate.udtp.repository; + +import com.qniao.dam.domain.aggregate.udtp.entity.UserDailyTaskProgress; +import com.qniao.domain.Repository; + +/** + * 用户每日任务进度 + * + * @date 2026/02/26 + */ +public interface UserDailyTaskProgressRepository extends Repository { +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/udtp/UserDailyTaskProgressDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/udtp/UserDailyTaskProgressDao.java new file mode 100644 index 0000000..8641f83 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/udtp/UserDailyTaskProgressDao.java @@ -0,0 +1,12 @@ +package com.qniao.dam.infrastructure.persistent.dao.udtp; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qniao.dam.domain.aggregate.udtp.entity.UserDailyTaskProgress; + +/** + * 用户每日任务进度 + * + * @date 2026/02/26 + */ +public interface UserDailyTaskProgressDao extends BaseMapper { +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/UserDailyTaskProgressRepositoryImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/UserDailyTaskProgressRepositoryImpl.java new file mode 100644 index 0000000..e2de970 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/UserDailyTaskProgressRepositoryImpl.java @@ -0,0 +1,41 @@ +package com.qniao.dam.infrastructure.persistent.repository.impl; + +import com.qniao.dam.domain.aggregate.udtp.entity.UserDailyTaskProgress; +import com.qniao.dam.domain.aggregate.udtp.repository.UserDailyTaskProgressRepository; +import com.qniao.dam.infrastructure.persistent.dao.udtp.UserDailyTaskProgressDao; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Objects; + +/** + * 用户每日任务进度 + * + * @date 2026/02/26 + */ +@Service +public class UserDailyTaskProgressRepositoryImpl implements UserDailyTaskProgressRepository { + + @Resource + private UserDailyTaskProgressDao dao; + + @Override + public UserDailyTaskProgress load(Long id) { + return dao.selectById(id); + } + + @Override + public Long save(UserDailyTaskProgress entity) { + if (Objects.isNull(entity) || Objects.isNull(dao.selectById(entity.getId()))) { + dao.insert(entity); + } else { + dao.updateById(entity); + } + return entity.getId(); + } + + @Override + public void delete(Long id) { + dao.deleteById(id); + } +} 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 2232808..a5eb846 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 @@ -8,11 +8,12 @@ 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 java.time.LocalDateTime; import java.util.List; public interface TaskTemplateQueryService { - Tuple getTaskDate(TaskTypeEnum taskTypeEnum); + Tuple getTaskDate(TaskTypeEnum taskTypeEnum, LocalDateTime createTime); TaskTemplate queryBy(TaskGroupEnum taskGroup, TaskTypeEnum taskType, 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 556d959..5943264 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 @@ -18,8 +18,8 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.DayOfWeek; import java.time.LocalDate; +import java.time.LocalDateTime; import java.time.temporal.TemporalAdjusters; -import java.util.Collections; import java.util.List; import java.util.Objects; @@ -35,10 +35,11 @@ public class TaskTemplateQueryServiceImpl implements TaskTemplateQueryService { * 计算任务的起始时间 * * @param taskType + * @param createTime * @return */ @Override - public Tuple getTaskDate(TaskTypeEnum taskType) { + public Tuple getTaskDate(TaskTypeEnum taskType, LocalDateTime createTime) { LocalDate taskStartDate = null; LocalDate taskEndDate = null; switch (taskType) { diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/udtp/UserDailyTaskProgressQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/udtp/UserDailyTaskProgressQueryService.java new file mode 100644 index 0000000..68b3f08 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/udtp/UserDailyTaskProgressQueryService.java @@ -0,0 +1,11 @@ +package com.qniao.dam.query.udtp; + +import com.qniao.dam.domain.aggregate.udtp.entity.UserDailyTaskProgress; +import com.qniao.dam.domian.aggregate.tasktemplate.constant.SubTaskTypeEnum; + +import java.time.LocalDate; + +public interface UserDailyTaskProgressQueryService { + + UserDailyTaskProgress queryBy(Long userId, LocalDate progressDate, SubTaskTypeEnum subTaskType); +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/udtp/impl/UserDailyTaskProgressQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/udtp/impl/UserDailyTaskProgressQueryServiceImpl.java new file mode 100644 index 0000000..317977f --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/udtp/impl/UserDailyTaskProgressQueryServiceImpl.java @@ -0,0 +1,27 @@ +package com.qniao.dam.query.udtp.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qniao.dam.domain.aggregate.udtp.entity.UserDailyTaskProgress; +import com.qniao.dam.domian.aggregate.tasktemplate.constant.SubTaskTypeEnum; +import com.qniao.dam.infrastructure.persistent.dao.udtp.UserDailyTaskProgressDao; +import com.qniao.dam.query.udtp.UserDailyTaskProgressQueryService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.LocalDate; + +@Service +public class UserDailyTaskProgressQueryServiceImpl implements UserDailyTaskProgressQueryService { + + @Resource + private UserDailyTaskProgressDao userDailyTaskProgressDao; + + @Override + public UserDailyTaskProgress queryBy(Long userId, LocalDate progressDate, SubTaskTypeEnum subTaskType) { + return userDailyTaskProgressDao.selectOne(new LambdaQueryWrapper() + .eq(UserDailyTaskProgress::getUserId, userId) + .eq(UserDailyTaskProgress::getProgressDate, progressDate) + .eq(UserDailyTaskProgress::getSubTaskType, subTaskType) + .last("limit 1")); + } +} \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/utc/impl/UserTaskCompleteQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/utc/impl/UserTaskCompleteQueryServiceImpl.java index b2e41a6..8b7f604 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/utc/impl/UserTaskCompleteQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/utc/impl/UserTaskCompleteQueryServiceImpl.java @@ -45,7 +45,7 @@ public class UserTaskCompleteQueryServiceImpl implements UserTaskCompleteQuerySe LiveMatchmaker liveMatchmaker = liveMatchmakerQueryService.queryByUserId(queryParams.getQueryUserId()); if (Objects.nonNull(liveMatchmaker)) { TaskTypeEnum taskType = TaskTypeEnum.get(queryParams.getTaskType()); - Tuple tuple = taskTemplateQueryService.getTaskDate(taskType); + Tuple tuple = taskTemplateQueryService.getTaskDate(taskType,liveMatchmaker.getCreateTime()); UserTaskComplete userTaskComplete = queryBy(queryParams.getQueryUserId(), tuple.get(0), tuple.get(1)); TaskStageEnum stageCode = TaskStageEnum.count(liveMatchmaker.getCreateTime().toLocalDate()); if (Objects.isNull(userTaskComplete)) {