diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/eso/constant/EntrustServicePaymentStatusEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/eso/constant/EntrustServicePaymentStatusEnum.java new file mode 100644 index 0000000..8dd0ff5 --- /dev/null +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/eso/constant/EntrustServicePaymentStatusEnum.java @@ -0,0 +1,40 @@ +package com.qniao.dam.domian.aggregate.eso.constant; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.Getter; + +@Getter +@JsonFormat(shape = JsonFormat.Shape.OBJECT) +public enum EntrustServicePaymentStatusEnum { + + INIT(0,"初始化"), + + PAID(1, "已支付"), + + BEING_REFUNDED(2, "退款中"), + + REFUNDED(3, "已退款"); + + @EnumValue + @JsonValue + private final Integer value; + private final String desc; + + EntrustServicePaymentStatusEnum(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + @JsonCreator + public static EntrustServicePaymentStatusEnum get(Object code) { + for (EntrustServicePaymentStatusEnum e : EntrustServicePaymentStatusEnum.values()) { + if (e.getValue().equals(code)) { + return e; + } + } + return null; + } +} \ No newline at end of file diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/eso/constant/EntrustServiceStatusEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/eso/constant/EntrustServiceStatusEnum.java new file mode 100644 index 0000000..3ec5bf4 --- /dev/null +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/eso/constant/EntrustServiceStatusEnum.java @@ -0,0 +1,43 @@ +package com.qniao.dam.domian.aggregate.eso.constant; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.Getter; + +@Getter +@JsonFormat(shape = JsonFormat.Shape.OBJECT) +public enum EntrustServiceStatusEnum { + + INIT(0,"初始化"), + + PENDING_ACCEPT(1, "待接单"), + + COMPLETED_SETTLEMENT(2, "已结单"), + + FINISHED(3, "已完成"), + + CANCELED(4, "已取消"); + + + @EnumValue + @JsonValue + private final Integer value; + private final String desc; + + EntrustServiceStatusEnum(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + @JsonCreator + public static EntrustServiceStatusEnum get(Object code) { + for (EntrustServiceStatusEnum e : EntrustServiceStatusEnum.values()) { + if (e.getValue().equals(code)) { + return e; + } + } + return null; + } +} \ No newline at end of file diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/eso/constant/EntrustServiceTypeEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/eso/constant/EntrustServiceTypeEnum.java new file mode 100644 index 0000000..b4fa523 --- /dev/null +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/eso/constant/EntrustServiceTypeEnum.java @@ -0,0 +1,36 @@ +package com.qniao.dam.domian.aggregate.eso.constant; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.Getter; + +@Getter +@JsonFormat(shape = JsonFormat.Shape.OBJECT) +public enum EntrustServiceTypeEnum { + + CONTACT_INFO_EXCHANGE(1, "交换联系方式"), + + OFFLINE_MEETING(2, "线下见面"); + + @EnumValue + @JsonValue + private final Integer value; + private final String desc; + + EntrustServiceTypeEnum(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + @JsonCreator + public static EntrustServiceTypeEnum get(Object code) { + for (EntrustServiceTypeEnum e : EntrustServiceTypeEnum.values()) { + if (e.getValue().equals(code)) { + return e; + } + } + return null; + } +} \ No newline at end of file diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java index 75f5316..ecd0cca 100644 --- a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java @@ -75,6 +75,10 @@ public enum RewardTypeEnum { MATCHMAKER_TRAINEE_RENEW_VALIDITY_PERIOD(128, "实习红娘续费保护周期"), + //委托服务 + ENTRUST_SERVICE_CONTACT_INFO_EXCHANGE_FEE(129, "委托服务交换联系方式费用"), + + ENTRUST_SERVICE_OFFLINE_MEETING_FEE(130, "委托服务线下见面费用"), // 2** 服务费 diff --git a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/eso/entity/EntrustServiceOrder.java b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/eso/entity/EntrustServiceOrder.java new file mode 100644 index 0000000..e62cc87 --- /dev/null +++ b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/eso/entity/EntrustServiceOrder.java @@ -0,0 +1,58 @@ +package com.qniao.dam.domain.aggregate.eso.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +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 lombok.EqualsAndHashCode; +import com.qniao.domain.Entity; + +import java.math.BigDecimal; + +/** + * 委托服务订单 + * + * @date 2026/03/06 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("da_entrust_service_order") +public class EntrustServiceOrder extends Entity { + + @ApiModelProperty("发起人用户标识") + private Long initiatorUserId; + + @ApiModelProperty("发起人资料标识") + private Long initiatorMiId; + + @ApiModelProperty("目标用户标识") + private Long targetUserId; + + @ApiModelProperty("目标资料标识") + private Long targetMiId; + + @ApiModelProperty("红娘标识") + private Long matchmakerId; + + @ApiModelProperty("委托服务类型") + private EntrustServiceTypeEnum type; + + @ApiModelProperty("奖励金额") + private BigDecimal rewardAmount; + + @ApiModelProperty("关联订单ID") + private Long associateOrderId; + + @ApiModelProperty("付款金额") + private BigDecimal paidAmount; + + @ApiModelProperty("状态") + private EntrustServiceStatusEnum status; + + @ApiModelProperty("付款状态") + private EntrustServicePaymentStatusEnum paymentStatus; + + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/order/user/OrderUserCommandController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/order/user/OrderUserCommandController.java index d1ca6a3..0004241 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/order/user/OrderUserCommandController.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/order/user/OrderUserCommandController.java @@ -58,6 +58,13 @@ public class OrderUserCommandController { return orderApplicationService.submitMarriageBountyOrder(order, productList, marriageBountyOrder, dto.getMeetingQuantity()); } + @ApiOperation("用户提交委托服务订单") + @PostMapping("submit/entrust-service-order") + public UserSubmitOrderVo userSubmitEntrustServiceOrder(@RequestBody @Valid UserSubmitEntrustServiceOrderDto dto) { + + return null; + } + @ApiOperation("用户计算线下活动订单费用") @PostMapping("calculate/site-activity-order/fee") public UserCalculateOrderFeeVo userSubmitSiteActivityOrder(@RequestBody @Valid UserCalculateSiteActivityOrderDto dto, diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/order/user/request/UserSubmitEntrustServiceOrderDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/order/user/request/UserSubmitEntrustServiceOrderDto.java new file mode 100644 index 0000000..cd1ca83 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/order/user/request/UserSubmitEntrustServiceOrderDto.java @@ -0,0 +1,22 @@ +package com.qniao.dam.api.command.order.user.request; + +import com.qniao.dam.domain.aggregate.order.entity.Order; +import com.qniao.dam.domian.aggregate.eso.constant.EntrustServiceTypeEnum; +import com.qniao.domain.Trans2DomainAssembler; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class UserSubmitEntrustServiceOrderDto implements Trans2DomainAssembler { + + @ApiModelProperty("委托服务类型") + private EntrustServiceTypeEnum type; + + + @Override + public Order trans2Domain() { + Order order = new Order(); + return order; + } + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/eso/EntrustServiceOrderApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/eso/EntrustServiceOrderApplicationService.java new file mode 100644 index 0000000..f40a0e6 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/eso/EntrustServiceOrderApplicationService.java @@ -0,0 +1,26 @@ +package com.qniao.dam.application.service.eso; + +import com.qniao.dam.domain.aggregate.eso.EntrustServiceOrderAggregate; +import com.qniao.dam.domain.aggregate.eso.entity.EntrustServiceOrder; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class EntrustServiceOrderApplicationService { + + @Resource + private EntrustServiceOrderAggregate entrustServiceOrderAggregate; + + public void create(EntrustServiceOrder entrustServiceOrder) { + entrustServiceOrderAggregate.create(entrustServiceOrder); + } + + public void edit(EntrustServiceOrder entrustServiceOrder) { + entrustServiceOrderAggregate.edit(entrustServiceOrder); + } + + public void delete(Long id) { + entrustServiceOrderAggregate.delete(id); + } +} \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/eso/EntrustServiceOrderAggregate.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/eso/EntrustServiceOrderAggregate.java new file mode 100644 index 0000000..e3c2351 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/eso/EntrustServiceOrderAggregate.java @@ -0,0 +1,31 @@ +package com.qniao.dam.domain.aggregate.eso; + +import com.qniao.dam.domain.aggregate.eso.entity.EntrustServiceOrder; +import com.qniao.dam.domain.aggregate.eso.repository.EntrustServiceOrderRepository; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * 委托服务订单 + * + * @date 2026/03/06 + */ +@Service +public class EntrustServiceOrderAggregate { + + @Resource + private EntrustServiceOrderRepository repository; + + public void create(EntrustServiceOrder entity) { + repository.save(entity); + } + + public void edit(EntrustServiceOrder entity) { + repository.save(entity); + } + + public void delete(Long id) { + repository.delete(id); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/eso/repository/EntrustServiceOrderRepository.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/eso/repository/EntrustServiceOrderRepository.java new file mode 100644 index 0000000..3f32902 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/eso/repository/EntrustServiceOrderRepository.java @@ -0,0 +1,12 @@ +package com.qniao.dam.domain.aggregate.eso.repository; + +import com.qniao.dam.domain.aggregate.eso.entity.EntrustServiceOrder; +import com.qniao.domain.Repository; + +/** + * 委托服务订单 + * + * @date 2026/03/06 + */ +public interface EntrustServiceOrderRepository extends Repository { +} 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 new file mode 100644 index 0000000..a3894ad --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/eso/EntrustServiceOrderDao.java @@ -0,0 +1,12 @@ +package com.qniao.dam.infrastructure.persistent.dao.eso; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qniao.dam.domain.aggregate.eso.entity.EntrustServiceOrder; + +/** + * 委托服务订单 + * + * @date 2026/03/06 + */ +public interface EntrustServiceOrderDao extends BaseMapper { +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/EntrustServiceOrderRepositoryImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/EntrustServiceOrderRepositoryImpl.java new file mode 100644 index 0000000..a80d53b --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/EntrustServiceOrderRepositoryImpl.java @@ -0,0 +1,41 @@ +package com.qniao.dam.infrastructure.persistent.repository.impl; + +import com.qniao.dam.domain.aggregate.eso.entity.EntrustServiceOrder; +import com.qniao.dam.domain.aggregate.eso.repository.EntrustServiceOrderRepository; +import com.qniao.dam.infrastructure.persistent.dao.eso.EntrustServiceOrderDao; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Objects; + +/** + * 委托服务订单 + * + * @date 2026/03/06 + */ +@Service +public class EntrustServiceOrderRepositoryImpl implements EntrustServiceOrderRepository { + + @Resource + private EntrustServiceOrderDao dao; + + @Override + public EntrustServiceOrder load(Long id) { + return dao.selectById(id); + } + + @Override + public Long save(EntrustServiceOrder 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/eso/EntrustServiceOrderQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/eso/EntrustServiceOrderQueryService.java new file mode 100644 index 0000000..498647f --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/eso/EntrustServiceOrderQueryService.java @@ -0,0 +1,5 @@ +package com.qniao.dam.query.eso; + +public interface EntrustServiceOrderQueryService { + +} 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 new file mode 100644 index 0000000..a8a9703 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/eso/impl/EntrustServiceOrderQueryServiceImpl.java @@ -0,0 +1,9 @@ +package com.qniao.dam.query.eso.impl; + +import com.qniao.dam.query.eso.EntrustServiceOrderQueryService; +import org.springframework.stereotype.Service; + +@Service +public class EntrustServiceOrderQueryServiceImpl implements EntrustServiceOrderQueryService { + +} \ No newline at end of file