From 38945ce674e956f5ec2f7e7c8ed8cfd325441d72 Mon Sep 17 00:00:00 2001 From: Derran Date: Sat, 7 Mar 2026 17:28:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A7=94=E6=89=98=E6=9C=8D=E5=8A=A1=E8=B4=B9?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ntrustServiceOrderUserQueryController.java | 31 ++++++++ ...ustServiceOrderByInitiatorQueryParams.java | 18 +++++ ...rPageEntrustServiceOrderByInitiatorVo.java | 61 +++++++++++++++ .../response/MarriageInformationVo.java | 75 +++++++++++++++++++ .../dao/eso/EntrustServiceOrderDao.java | 7 ++ .../eso/EntrustServiceOrderQueryService.java | 8 ++ .../EntrustServiceOrderQueryServiceImpl.java | 20 +++++ .../MarriageInformationQueryService.java | 2 + .../MarriageInformationQueryServiceImpl.java | 15 ++++ .../mapper/eso/EntrustServiceOrderDao.xml | 33 ++++++++ 10 files changed, 270 insertions(+) create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/eso/user/EntrustServiceOrderUserQueryController.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/eso/user/request/PageEntrustServiceOrderByInitiatorQueryParams.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/eso/user/response/UserPageEntrustServiceOrderByInitiatorVo.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/marriageinformation/response/MarriageInformationVo.java create mode 100644 dating-agency-mall-server/src/main/resources/mapper/eso/EntrustServiceOrderDao.xml diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/eso/user/EntrustServiceOrderUserQueryController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/eso/user/EntrustServiceOrderUserQueryController.java new file mode 100644 index 0000000..9489eca --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/eso/user/EntrustServiceOrderUserQueryController.java @@ -0,0 +1,31 @@ +package com.qniao.dam.api.query.eso.user; + +import com.qniao.dam.api.query.eso.user.request.PageEntrustServiceOrderByInitiatorQueryParams; +import com.qniao.dam.api.query.eso.user.response.UserPageEntrustServiceOrderByInitiatorVo; +import com.qniao.dam.query.eso.EntrustServiceOrderQueryService; +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.*; + +import javax.annotation.Resource; + +@Api(tags = "委托服务单") +@RestController +@RequestMapping("user") +public class EntrustServiceOrderUserQueryController { + + @Resource + private EntrustServiceOrderQueryService entrustServiceOrderQueryService; + + @GetMapping("page/entrust-service-order/by/initiator") + @ApiOperation("发起人获取委托服务单列表") + public QnPage userPageOrderByOperator(PageUtil pageUtil, + PageEntrustServiceOrderByInitiatorQueryParams queryParams, + @RequestParam("userId") Long userId) { + queryParams.setQueryInitiatorUserId(userId); + return PageUtil.convert(entrustServiceOrderQueryService.userPageOrderByInitiator(pageUtil, queryParams), UserPageEntrustServiceOrderByInitiatorVo.class); + } + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/eso/user/request/PageEntrustServiceOrderByInitiatorQueryParams.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/eso/user/request/PageEntrustServiceOrderByInitiatorQueryParams.java new file mode 100644 index 0000000..5350661 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/eso/user/request/PageEntrustServiceOrderByInitiatorQueryParams.java @@ -0,0 +1,18 @@ +package com.qniao.dam.api.query.eso.user.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PageEntrustServiceOrderByInitiatorQueryParams { + + @ApiModelProperty(hidden = true) + private Long queryInitiatorUserId; + + @ApiModelProperty("状态") + private Integer status; + + @ApiModelProperty("付款状态") + private Integer paymentStatus; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/eso/user/response/UserPageEntrustServiceOrderByInitiatorVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/eso/user/response/UserPageEntrustServiceOrderByInitiatorVo.java new file mode 100644 index 0000000..d3a621e --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/eso/user/response/UserPageEntrustServiceOrderByInitiatorVo.java @@ -0,0 +1,61 @@ +package com.qniao.dam.api.query.eso.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.api.query.marriageinformation.response.MarriageInformationVo; +import com.qniao.dam.domian.aggregate.eso.constant.EntrustServicePaymentStatusEnum; +import com.qniao.dam.domian.aggregate.eso.constant.EntrustServiceStatusEnum; +import com.qniao.dam.domian.aggregate.eso.constant.EntrustServiceTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +public class UserPageEntrustServiceOrderByInitiatorVo { + + @ApiModelProperty("目标用户标识") + @JsonSerialize(using = ToStringSerializer.class) + private Long targetUserId; + + @ApiModelProperty("目标资料标识") + @JsonSerialize(using = ToStringSerializer.class) + private Long targetMiId; + + @ApiModelProperty("目标资料信息") + @JsonSerialize(using = ToStringSerializer.class) + private MarriageInformationVo targetMiInfo; + + @ApiModelProperty("红娘标识") + @JsonSerialize(using = ToStringSerializer.class) + private Long matchmakerId; + + @ApiModelProperty("委托服务类型") + private EntrustServiceTypeEnum type; + + @ApiModelProperty("奖励金额") + private BigDecimal rewardAmount; + + @ApiModelProperty("关联订单ID") + @JsonSerialize(using = ToStringSerializer.class) + private Long associateOrderId; + + @ApiModelProperty("关联订单号") + private String associateOrderCode; + + @ApiModelProperty("付款金额") + private BigDecimal paidAmount; + + @ApiModelProperty("状态") + private EntrustServiceStatusEnum status; + + @ApiModelProperty("付款状态") + private EntrustServicePaymentStatusEnum paymentStatus; + + @ApiModelProperty("下单时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/marriageinformation/response/MarriageInformationVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/marriageinformation/response/MarriageInformationVo.java new file mode 100644 index 0000000..debd693 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/marriageinformation/response/MarriageInformationVo.java @@ -0,0 +1,75 @@ +package com.qniao.dam.api.query.marriageinformation.response; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class MarriageInformationVo { + + + @ApiModelProperty("唯一标识") + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + @ApiModelProperty("昵称") + private String nickName; + + @ApiModelProperty("头像URL") + private String profilePhoto; + + @ApiModelProperty("性别 0 男 1女") + private Integer genderCode; + + @ApiModelProperty("省编码") + private Integer provinceCode; + + @ApiModelProperty("省名称") + private String provinceName; + + @ApiModelProperty("市名编码") + private Integer cityCode; + + @ApiModelProperty("市名称") + private String cityName; + + @ApiModelProperty("区编码") + private Integer districtCode; + + @ApiModelProperty("区名称") + private String districtName; + + @ApiModelProperty("出身年份") + private String birthYear; + + @ApiModelProperty("出身日期") + private String birthDate; + + @ApiModelProperty("年龄") + private Integer age; + + @ApiModelProperty("身高") + private Integer height; + + @ApiModelProperty("体重") + private Integer weight; + + @ApiModelProperty("学历编码") + private Integer educationCode; + + @ApiModelProperty("学历中文") + private String education; + + @ApiModelProperty("最小收入") + private Integer minimumIncome; + + @ApiModelProperty("最大收入") + private Integer maximumIncome; + + @ApiModelProperty("收入编码") + private Integer incomeCode; + + @ApiModelProperty("收入中文") + private String income; +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/eso/EntrustServiceOrderDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/eso/EntrustServiceOrderDao.java index a3894ad..743deef 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/eso/EntrustServiceOrderDao.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/eso/EntrustServiceOrderDao.java @@ -1,7 +1,12 @@ package com.qniao.dam.infrastructure.persistent.dao.eso; 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.eso.user.request.PageEntrustServiceOrderByInitiatorQueryParams; +import com.qniao.dam.api.query.eso.user.response.UserPageEntrustServiceOrderByInitiatorVo; import com.qniao.dam.domain.aggregate.eso.entity.EntrustServiceOrder; +import org.apache.ibatis.annotations.Param; /** * 委托服务订单 @@ -9,4 +14,6 @@ import com.qniao.dam.domain.aggregate.eso.entity.EntrustServiceOrder; * @date 2026/03/06 */ public interface EntrustServiceOrderDao extends BaseMapper { + IPage pageOrderByInitiator(Page pageWithoutOrders, + @Param("queryParams") PageEntrustServiceOrderByInitiatorQueryParams queryParams); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/eso/EntrustServiceOrderQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/eso/EntrustServiceOrderQueryService.java index a75d336..a57c3b6 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/eso/EntrustServiceOrderQueryService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/eso/EntrustServiceOrderQueryService.java @@ -1,10 +1,18 @@ package com.qniao.dam.query.eso; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.qniao.dam.api.query.eso.user.request.PageEntrustServiceOrderByInitiatorQueryParams; +import com.qniao.dam.api.query.eso.user.response.UserPageEntrustServiceOrderByInitiatorVo; import com.qniao.dam.domain.aggregate.eso.entity.EntrustServiceOrder; +import com.qniao.domain.QnPage; +import com.qniao.framework.utils.PageUtil; public interface EntrustServiceOrderQueryService { void checkEntrustServiceOrder(EntrustServiceOrder entrustServiceOrder); EntrustServiceOrder queryByAssociateOrderId(Long associateOrderId); + + IPage userPageOrderByInitiator(PageUtil pageUtil, + PageEntrustServiceOrderByInitiatorQueryParams queryParams); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/eso/impl/EntrustServiceOrderQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/eso/impl/EntrustServiceOrderQueryServiceImpl.java index c1c1f69..b030603 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/eso/impl/EntrustServiceOrderQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/eso/impl/EntrustServiceOrderQueryServiceImpl.java @@ -1,10 +1,16 @@ package com.qniao.dam.query.eso.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.qniao.dam.api.query.eso.user.request.PageEntrustServiceOrderByInitiatorQueryParams; +import com.qniao.dam.api.query.eso.user.response.UserPageEntrustServiceOrderByInitiatorVo; import com.qniao.dam.domain.aggregate.eso.entity.EntrustServiceOrder; import com.qniao.dam.domian.aggregate.eso.constant.EntrustServiceStatusEnum; import com.qniao.dam.infrastructure.persistent.dao.eso.EntrustServiceOrderDao; import com.qniao.dam.query.eso.EntrustServiceOrderQueryService; +import com.qniao.dam.query.marriageinformation.MarriageInformationQueryService; +import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation; +import com.qniao.framework.utils.PageUtil; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -15,6 +21,8 @@ public class EntrustServiceOrderQueryServiceImpl implements EntrustServiceOrderQ @Resource private EntrustServiceOrderDao entrustServiceOrderDao; + @Resource + private MarriageInformationQueryService marriageInformationQueryService; @Override public void checkEntrustServiceOrder(EntrustServiceOrder entrustServiceOrder) { @@ -32,4 +40,16 @@ public class EntrustServiceOrderQueryServiceImpl implements EntrustServiceOrderQ .eq(EntrustServiceOrder::getAssociateOrderId, associateOrderId) .last("limit 1")); } + + @Override + public IPage userPageOrderByInitiator(PageUtil pageUtil, + PageEntrustServiceOrderByInitiatorQueryParams queryParams) { + IPage page = entrustServiceOrderDao.pageOrderByInitiator(pageUtil.toPageWithoutOrders(), queryParams); + if (page.getSize() > 0) { + page.getRecords().forEach(record -> { + record.setTargetMiInfo(marriageInformationQueryService.queryVo(record.getTargetMiId())); + }); + } + return page; + } } \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriageinformation/MarriageInformationQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriageinformation/MarriageInformationQueryService.java index 35b3a4b..32d42dc 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriageinformation/MarriageInformationQueryService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriageinformation/MarriageInformationQueryService.java @@ -1,9 +1,11 @@ package com.qniao.dam.query.marriageinformation; +import com.qniao.dam.api.query.marriageinformation.response.MarriageInformationVo; import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation; public interface MarriageInformationQueryService { MarriageInformation queryByUserId(Long userId); + MarriageInformationVo queryVo(Long id); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriageinformation/impl/MarriageInformationQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriageinformation/impl/MarriageInformationQueryServiceImpl.java index 573c8b1..b863097 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriageinformation/impl/MarriageInformationQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriageinformation/impl/MarriageInformationQueryServiceImpl.java @@ -1,13 +1,17 @@ package com.qniao.dam.query.marriageinformation.impl; +import com.qniao.dam.api.query.marriageinformation.response.MarriageInformationVo; import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageInformationDao; +import com.qniao.dam.infrastructure.utils.AgeCalculatorUtil; import com.qniao.dam.query.marriageinformation.MarriageInformationQueryService; import com.qniao.dam.query.usermarriageinformation.UserMarriageInformationQueryService; import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation; import com.qniao.das.domian.aggregate.marriageinformation.UserMarriageInformation; +import com.qniao.framework.utils.TypeConvertUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Objects; @Service public class MarriageInformationQueryServiceImpl implements MarriageInformationQueryService { @@ -22,4 +26,15 @@ public class MarriageInformationQueryServiceImpl implements MarriageInformationQ UserMarriageInformation userMarriageInformation = userMarriageInformationQueryService.queryByOwn(userId); return marriageInformationDao.selectById(userMarriageInformation.getMiId()); } + + @Override + public MarriageInformationVo queryVo(Long id) { + MarriageInformationVo vo = null; + MarriageInformation marriageInformation = marriageInformationDao.selectById(id); + if (Objects.nonNull(marriageInformation)) { + vo = TypeConvertUtils.convert(marriageInformation, MarriageInformationVo.class); + vo.setAge(AgeCalculatorUtil.calculateAge(vo.getBirthYear(), vo.getBirthDate())); + } + return vo; + } } diff --git a/dating-agency-mall-server/src/main/resources/mapper/eso/EntrustServiceOrderDao.xml b/dating-agency-mall-server/src/main/resources/mapper/eso/EntrustServiceOrderDao.xml new file mode 100644 index 0000000..85f5b13 --- /dev/null +++ b/dating-agency-mall-server/src/main/resources/mapper/eso/EntrustServiceOrderDao.xml @@ -0,0 +1,33 @@ + + + + + + +