diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/utc/user/request/PageUserTaskCompleteByOperatorQueryParams.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/utc/user/request/PageUserTaskCompleteByOperatorQueryParams.java index 526a3f7..3f15b50 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/utc/user/request/PageUserTaskCompleteByOperatorQueryParams.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/utc/user/request/PageUserTaskCompleteByOperatorQueryParams.java @@ -1,5 +1,6 @@ package com.qniao.dam.api.query.utc.user.request; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -8,4 +9,21 @@ import lombok.Data; */ @Data public class PageUserTaskCompleteByOperatorQueryParams { + + @ApiModelProperty("昵称") + private String nickName; + + @ApiModelProperty("昵称") + private String phone; + + @ApiModelProperty("任务类型(1-每日任务,2-每周任务,3-每月任务)") + private Integer taskType; + + @ApiModelProperty("红娘类型") + private Integer liveMatchmakerType; + + @ApiModelProperty("完成状态") + private Boolean completeStatus; + + } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/utc/user/response/PageUserTaskCompleteByOperatorVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/utc/user/response/PageUserTaskCompleteByOperatorVo.java index 55f8dc2..3e4c919 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/utc/user/response/PageUserTaskCompleteByOperatorVo.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/utc/user/response/PageUserTaskCompleteByOperatorVo.java @@ -8,6 +8,7 @@ import com.qniao.dau.domian.aggregate.lmar.constant.LiveMatchmakerTypeEnum; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.time.LocalDate; import java.util.List; @@ -28,6 +29,10 @@ public class PageUserTaskCompleteByOperatorVo { @ApiModelProperty("昵称") private String phone; + @ApiModelProperty("任务模板ID") + @JsonSerialize(using = ToStringSerializer.class) + private Long taskTemplateId; + @ApiModelProperty("任务类型(1-每日任务,2-每周任务,3-每月任务)") private TaskTypeEnum taskType; @@ -45,5 +50,8 @@ public class PageUserTaskCompleteByOperatorVo { @ApiModelProperty("完成状态") private Boolean completeStatus; - private List itemList; + @ApiModelProperty("任务进度百分比") + private BigDecimal taskProgressPct = BigDecimal.ZERO; + + private List subList; } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/utc/UserSubTaskCompleteDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/utc/UserSubTaskCompleteDao.java index 56bdb74..4898910 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/utc/UserSubTaskCompleteDao.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/utc/UserSubTaskCompleteDao.java @@ -4,4 +4,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.qniao.dam.domain.aggregate.utc.entity.UserSubTaskComplete; public interface UserSubTaskCompleteDao extends BaseMapper { + } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/utc/UserTaskCompleteDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/utc/UserTaskCompleteDao.java index e557631..511f020 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/utc/UserTaskCompleteDao.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/utc/UserTaskCompleteDao.java @@ -1,7 +1,11 @@ package com.qniao.dam.infrastructure.persistent.dao.utc; 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.utc.user.request.PageUserTaskCompleteByOperatorQueryParams; import com.qniao.dam.api.query.utc.user.request.UserGetUserTaskCompleteQueryParams; +import com.qniao.dam.api.query.utc.user.response.PageUserTaskCompleteByOperatorVo; import com.qniao.dam.api.query.utc.user.response.UserGetUserSubTaskCompleteVo; import com.qniao.dam.api.query.utc.user.response.UserGetUserTaskCompleteVo; import com.qniao.dam.domain.aggregate.utc.entity.UserTaskComplete; @@ -19,4 +23,6 @@ public interface UserTaskCompleteDao extends BaseMapper { List listSubVo(@Param("taskTemplateId") Long taskTemplateId, @Param("userTaskCompleteId") Long userTaskCompleteId); + IPage pageByOperator(Page pageWithoutOrders, + @Param("queryParams") PageUserTaskCompleteByOperatorQueryParams queryParams); } 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 d3ea847..5aa640a 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 @@ -28,6 +28,8 @@ import com.qniao.framework.utils.TypeConvertUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; @@ -119,6 +121,39 @@ public class UserTaskCompleteQueryServiceImpl implements UserTaskCompleteQuerySe @Override public IPage pageByOperator(PageUtil pageUtil, PageUserTaskCompleteByOperatorQueryParams queryParams) { - return null; + IPage page = userTaskCompleteDao.pageByOperator(pageUtil.toPageWithoutOrders(), queryParams); + if (page.getRecords().size() > 0) { + page.getRecords().forEach(record -> { + List subTaskTemplateList = taskTemplateQueryService.getSubList(record.getTaskTemplateId()); + if (CollUtil.isNotEmpty(subTaskTemplateList)) { + List subList = new ArrayList<>(); + for (SubTaskTemplate subTaskTemplate : subTaskTemplateList) { + UserGetUserSubTaskCompleteVo subTaskCompleteVo = TypeConvertUtils.convert(subTaskTemplate, UserGetUserSubTaskCompleteVo.class); + int completeCount = userDailyTaskProgressQueryService.count(record.getUserId(), subTaskTemplate.getSubTaskType(), record.getTaskStartDate(), record.getTaskEndDate()); + subTaskCompleteVo.setCompleteCount(completeCount); + subTaskCompleteVo.setCompleteStatus(completeCount >= subTaskTemplate.getRequiredCount()); + subList.add(subTaskCompleteVo); + } + record.setSubList(subList); + //计算任务进度百分比 + if (record.getCompleteStatus()) { + record.setTaskProgressPct(BigDecimal.valueOf(100)); + } else { + if (CollUtil.isNotEmpty(subList)) { + BigDecimal completeCount = BigDecimal.ZERO; + for (UserGetUserSubTaskCompleteVo subTaskVo : subList) { + if (subTaskVo.getCompleteStatus()) { + completeCount = completeCount.add(BigDecimal.valueOf(100)); + } else { + completeCount = completeCount.add(BigDecimal.valueOf(subTaskVo.getCompleteCount()).divide(BigDecimal.valueOf(subTaskVo.getRequiredCount() * 100), 2, RoundingMode.HALF_UP)); + } + } + record.setTaskProgressPct(completeCount.divide(BigDecimal.valueOf(subList.size()), 0, RoundingMode.HALF_UP)); + } + } + } + }); + } + return page; } } \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/resources/mapper/utc/PurchaseProductRecordQueryService.xml b/dating-agency-mall-server/src/main/resources/mapper/utc/PurchaseProductRecordQueryService.xml deleted file mode 100644 index dcffa4e..0000000 --- a/dating-agency-mall-server/src/main/resources/mapper/utc/PurchaseProductRecordQueryService.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/resources/mapper/utc/UserTaskCompleteDao.xml b/dating-agency-mall-server/src/main/resources/mapper/utc/UserTaskCompleteDao.xml new file mode 100644 index 0000000..d085e2c --- /dev/null +++ b/dating-agency-mall-server/src/main/resources/mapper/utc/UserTaskCompleteDao.xml @@ -0,0 +1,61 @@ + + + + + + + + + + \ No newline at end of file