diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/utc/UserTaskCompleteQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/utc/UserTaskCompleteQueryService.java index 5fe1c85..5d77c62 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/utc/UserTaskCompleteQueryService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/utc/UserTaskCompleteQueryService.java @@ -12,7 +12,6 @@ public interface UserTaskCompleteQueryService { UserGetUserTaskCompleteVo getUserTaskCompleteVo(UserGetUserTaskCompleteQueryParams queryParams); UserTaskComplete queryBy(Long userId, - Long taskTemplateId, LocalDate taskStartDate, LocalDate taskEndDate); 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 20145eb..a991197 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 @@ -41,37 +41,42 @@ public class UserTaskCompleteQueryServiceImpl implements UserTaskCompleteQuerySe //任务群体处理 LiveMatchmaker liveMatchmaker = liveMatchmakerQueryService.queryByUserId(queryParams.getQueryUserId()); if (Objects.nonNull(liveMatchmaker)) { - TaskGroupEnum taskGroup = liveMatchmakerQueryService.getTaskGroup(liveMatchmaker); - TaskStageEnum stageCode = TaskStageEnum.count(liveMatchmaker.getCreateTime().toLocalDate()); TaskTypeEnum taskType = TaskTypeEnum.get(queryParams.getTaskType()); Tuple tuple = taskTemplateQueryService.getTaskDate(taskType); - TaskTemplate taskTemplate = taskTemplateQueryService.queryBy(taskGroup, taskType, stageCode); - if (Objects.nonNull(taskTemplate)) { - vo = TypeConvertUtils.convert(taskTemplate, UserGetUserTaskCompleteVo.class); - vo.setTaskTemplateId(taskTemplate.getId()); + UserTaskComplete userTaskComplete = queryBy(queryParams.getQueryUserId(), tuple.get(0), tuple.get(1)); + if (Objects.isNull(userTaskComplete)) { + TaskGroupEnum taskGroup = liveMatchmakerQueryService.getTaskGroup(liveMatchmaker); + TaskStageEnum stageCode = TaskStageEnum.count(liveMatchmaker.getCreateTime().toLocalDate()); + TaskTemplate taskTemplate = taskTemplateQueryService.queryBy(taskGroup, taskType, stageCode); + if (Objects.nonNull(taskTemplate)) { + vo = TypeConvertUtils.convert(taskTemplate, UserGetUserTaskCompleteVo.class); + vo.setTaskTemplateId(taskTemplate.getId()); + vo.setTaskStartDate(tuple.get(0)); + vo.setTaskEndDate(tuple.get(1)); + } + } else { + vo = new UserGetUserTaskCompleteVo(); + vo.setTaskTemplateId(userTaskComplete.getTaskTemplateId()); vo.setTaskStartDate(tuple.get(0)); vo.setTaskEndDate(tuple.get(1)); - UserTaskComplete userTaskComplete = queryBy(queryParams.getQueryUserId(), taskTemplate.getId(), tuple.get(0), tuple.get(1)); - if (Objects.nonNull(userTaskComplete)) { - vo.setUserTaskCompleteId(userTaskComplete.getId()); - vo.setCompleteStatus(userTaskComplete.getCompleteStatus()); - vo.setRewardReceiveStatus(userTaskComplete.getRewardReceiveStatus()); - vo.setCompleteTime(userTaskComplete.getCompleteTime()); - } + vo.setUserTaskCompleteId(userTaskComplete.getId()); + vo.setCompleteStatus(userTaskComplete.getCompleteStatus()); + vo.setRewardReceiveStatus(userTaskComplete.getRewardReceiveStatus()); + vo.setCompleteTime(userTaskComplete.getCompleteTime()); + } + if (Objects.nonNull(vo)) { //补充子任务进度 - vo.setSubList(userTaskCompleteDao.listSubVo(taskTemplate.getId(), vo.getUserTaskCompleteId())); + vo.setSubList(userTaskCompleteDao.listSubVo(vo.getTaskTemplateId(), vo.getUserTaskCompleteId())); } } return vo; } public UserTaskComplete queryBy(Long userId, - Long taskTemplateId, LocalDate taskStartDate, LocalDate taskEndDate) { return userTaskCompleteDao.selectOne(new LambdaQueryWrapper() .eq(UserTaskComplete::getUserId, userId) - .eq(UserTaskComplete::getTaskTemplateId, taskTemplateId) .eq(UserTaskComplete::getTaskStartDate, taskStartDate) .eq(UserTaskComplete::getTaskEndDate, taskEndDate) .last("LIMIT 1"));