Browse Source

委托服务费用

master
张彭杰 2 weeks ago
parent
commit
31681c65fa
7 changed files with 131 additions and 25 deletions
  1. 18
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/utc/user/request/PageUserTaskCompleteByOperatorQueryParams.java
  2. 10
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/utc/user/response/PageUserTaskCompleteByOperatorVo.java
  3. 1
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/utc/UserSubTaskCompleteDao.java
  4. 6
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/utc/UserTaskCompleteDao.java
  5. 37
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/utc/impl/UserTaskCompleteQueryServiceImpl.java
  6. 23
      dating-agency-mall-server/src/main/resources/mapper/utc/PurchaseProductRecordQueryService.xml
  7. 61
      dating-agency-mall-server/src/main/resources/mapper/utc/UserTaskCompleteDao.xml

18
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;
}

10
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<UserGetUserSubTaskCompleteVo> itemList;
@ApiModelProperty("任务进度百分比")
private BigDecimal taskProgressPct = BigDecimal.ZERO;
private List<UserGetUserSubTaskCompleteVo> subList;
}

1
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<UserSubTaskComplete> {
}

6
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<UserTaskComplete> {
List<UserGetUserSubTaskCompleteVo> listSubVo(@Param("taskTemplateId") Long taskTemplateId,
@Param("userTaskCompleteId") Long userTaskCompleteId);
IPage<PageUserTaskCompleteByOperatorVo> pageByOperator(Page<Object> pageWithoutOrders,
@Param("queryParams") PageUserTaskCompleteByOperatorQueryParams queryParams);
}

37
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<PageUserTaskCompleteByOperatorVo> pageByOperator(PageUtil pageUtil,
PageUserTaskCompleteByOperatorQueryParams queryParams) {
return null;
IPage<PageUserTaskCompleteByOperatorVo> page = userTaskCompleteDao.pageByOperator(pageUtil.toPageWithoutOrders(), queryParams);
if (page.getRecords().size() > 0) {
page.getRecords().forEach(record -> {
List<SubTaskTemplate> subTaskTemplateList = taskTemplateQueryService.getSubList(record.getTaskTemplateId());
if (CollUtil.isNotEmpty(subTaskTemplateList)) {
List<UserGetUserSubTaskCompleteVo> 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;
}
}

23
dating-agency-mall-server/src/main/resources/mapper/utc/PurchaseProductRecordQueryService.xml

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qniao.dam.infrastructure.persistent.dao.utc.UserTaskCompleteDao">
<select id="listSubVo" resultType="com.qniao.dam.api.query.utc.user.response.UserGetUserSubTaskCompleteVo">
SELECT dastt.sub_task_name,
dastt.sub_task_type,
dastt.sub_task_desc,
dastt.required_count,
IFNULL(daustc.complete_count,0) as completeCount,
IFNULL(daustc.complete_status,0) as completeStatus,
daustc.complete_time,
dastt.sort
from da_sub_task_template as dastt
LEFT JOIN da_user_sub_task_complete as daustc
on daustc.is_delete = 0 and dastt.id = daustc.sub_task_template_id and
daustc.user_task_complete_id = #{userTaskCompleteId}
where dastt.is_delete = 0
and dastt.task_template_id = #{taskTemplateId}
ORDER BY dastt.sort ASC
</select>
</mapper>

61
dating-agency-mall-server/src/main/resources/mapper/utc/UserTaskCompleteDao.xml

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qniao.dam.infrastructure.persistent.dao.utc.UserTaskCompleteDao">
<select id="listSubVo" resultType="com.qniao.dam.api.query.utc.user.response.UserGetUserSubTaskCompleteVo">
SELECT dastt.sub_task_name,
dastt.sub_task_type,
dastt.sub_task_desc,
dastt.required_count,
IFNULL(daustc.complete_count,0) as completeCount,
IFNULL(daustc.complete_status,0) as completeStatus,
daustc.complete_time,
dastt.sort
from da_sub_task_template as dastt
LEFT JOIN da_user_sub_task_complete as daustc
on daustc.is_delete = 0 and dastt.id = daustc.sub_task_template_id and
daustc.user_task_complete_id = #{userTaskCompleteId}
where dastt.is_delete = 0
and dastt.task_template_id = #{taskTemplateId}
ORDER BY dastt.sort ASC
</select>
<select id="pageByOperator"
resultType="com.qniao.dam.api.query.utc.user.response.PageUserTaskCompleteByOperatorVo">
SELECT
dautc.user_id,
dami.nick_name,
daa.tid as phone,
dautc.task_type,
dautc.task_template_id,
dalm.type as liveMatchmakerType,
dautc.task_start_date,
dautc.task_end_date,
dautc.complete_status
from da_user_task_complete as dautc
LEFT JOIN da_live_matchmaker as dalm on dalm.is_delete=0 and dalm.user_id=dautc.user_id
LEFT JOIN da_account as daa on daa.is_delete=0 and daa.type=2 and daa.user_id=dautc.user_id
LEFT JOIN da_user_marriage_information as daumi on daumi.is_delete=0 and daumi.user_id=dautc.user_id and
daumi.type=1
LEFT JOIN da_marriage_information as dami on dami.id=daumi.mi_id
where dautc.is_delete=0
<if test="queryParams.taskType != null">
and dautc.task_type = #{queryParams.taskType}
</if>
<if test="queryParams.liveMatchmakerType != null">
and dalm.type = #{queryParams.liveMatchmakerType}
</if>
<if test="queryParams.completeStatus != null">
and dautc.complete_status = #{queryParams.completeStatus}
</if>
<if test="queryParams.nickName != null and queryParams.nickName != '' ">
AND dami.nick_name LIKE CONCAT('%', TRIM(#{queryParams.nickName}), '%')
</if>
<if test="queryParams.phone != null and queryParams.phone != '' ">
AND daa.tid LIKE CONCAT('%', TRIM(#{queryParams.phone}), '%')
</if>
ORDER BY dautc.create_time desc
</select>
</mapper>
Loading…
Cancel
Save