From 5682250bec5e44ada5dc5cc02ead9e11eb98ed5b Mon Sep 17 00:00:00 2001 From: Derran Date: Mon, 22 Apr 2024 11:34:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/constant/OrderBelongingEnum.java | 36 +++++++++++++++++++ .../domain/aggregate/order/entity/Order.java | 13 +++++++ .../handler/order/OrderEventHandler.java | 11 ++++-- .../order/OrderApplicationService.java | 10 +++--- 4 files changed, 63 insertions(+), 7 deletions(-) create mode 100644 dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/order/constant/OrderBelongingEnum.java diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/order/constant/OrderBelongingEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/order/constant/OrderBelongingEnum.java new file mode 100644 index 0000000..091ce2f --- /dev/null +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/order/constant/OrderBelongingEnum.java @@ -0,0 +1,36 @@ +package com.qniao.dam.domian.aggregate.order.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 OrderBelongingEnum { + + CUSTOMER(1, "客户"), + + MATCHMAKER(2, "红娘"); + + @EnumValue + @JsonValue + private final Integer value; + private final String desc; + + OrderBelongingEnum(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + @JsonCreator + public static OrderBelongingEnum get(Object code) { + for (OrderBelongingEnum e : OrderBelongingEnum.values()) { + if (e.getValue().equals(code)) { + return e; + } + } + return null; + } +} \ No newline at end of file diff --git a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/order/entity/Order.java b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/order/entity/Order.java index f5efeb5..5fdac59 100644 --- a/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/order/entity/Order.java +++ b/dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/order/entity/Order.java @@ -1,7 +1,9 @@ package com.qniao.dam.domain.aggregate.order.entity; import com.baomidou.mybatisplus.annotation.TableName; +import com.qniao.dam.domian.aggregate.order.constant.OrderBelongingEnum; import com.qniao.dam.domian.aggregate.order.constant.OrderStatusEnum; +import com.qniao.dam.domian.aggregate.product.constant.ProductTypeEnum; import com.qniao.domain.Entity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -22,6 +24,9 @@ public class Order extends Entity { @ApiModelProperty("征婚资料标识") private Long miId; + @ApiModelProperty("订单归属(客户、红娘)") + private OrderBelongingEnum orderBelonging; + @ApiModelProperty("订单号") private String orderCode; @@ -39,4 +44,12 @@ public class Order extends Entity { private transient Integer groupType; private transient Long activityId; + + public OrderBelongingEnum transformBelonging(ProductTypeEnum productType) { + OrderBelongingEnum orderBelonging = OrderBelongingEnum.CUSTOMER; + if (ProductTypeEnum.MATCHMAKER_VIRTUAL.equals(productType)){ + orderBelonging = OrderBelongingEnum.MATCHMAKER; + } + return orderBelonging; + } } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/order/OrderEventHandler.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/order/OrderEventHandler.java index af35ad5..e411dd5 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/order/OrderEventHandler.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/order/OrderEventHandler.java @@ -12,8 +12,10 @@ import com.qniao.dam.domain.aggregate.productspec.entity.ProductSpec; import com.qniao.dam.domain.aggregate.productspec.repository.ProductSpecRepository; import com.qniao.dam.domain.aggregate.right.RightAggregate; import com.qniao.dam.domain.aggregate.right.entity.Right; +import com.qniao.dam.domian.aggregate.order.constant.OrderBelongingEnum; import com.qniao.dam.domian.aggregate.order.event.OrderCompletedEvent; import com.qniao.dam.domian.aggregate.product.constant.ProductTypeEnum; +import com.qniao.dau.application.UecServerApplicationService; import com.qniao.domain.BaseApplicationService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -38,6 +40,8 @@ public class OrderEventHandler extends BaseApplicationService { private RightApplicationService rightApplicationService; @Resource private RightAggregate rightAggregate; + @Resource + private UecServerApplicationService uecServerApplicationService; /** * 订单已完成事件 -> 兑换权益 @@ -58,13 +62,14 @@ public class OrderEventHandler extends BaseApplicationService { if (Objects.nonNull(right)) { rightList.add(right); } - } else if (ProductTypeEnum.MATCHMAKER_VIRTUAL.equals(orderItem.getProductType())) { - //红娘加盟费 - } } batchCreate(rightList); } + //红娘加盟费 + if (OrderBelongingEnum.MATCHMAKER.equals(order.getOrderBelonging())) { + uecServerApplicationService.userPaidMatchmakerFee(order.getUserId()); + } } catch (Exception e) { log.error("订单已完成事件处理异常"); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java index 6d6aa66..2ba3198 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java @@ -12,6 +12,7 @@ import com.qniao.dam.domain.aggregate.product.repository.ProductRepository; import com.qniao.dam.domain.aggregate.productspec.entity.ProductSpec; import com.qniao.dam.domain.aggregate.productspec.repository.ProductSpecRepository; import com.qniao.dam.domain.service.order.SubmitOrderDomainService; +import com.qniao.dam.domian.aggregate.order.constant.OrderBelongingEnum; import com.qniao.dam.domian.aggregate.product.constant.ProductTypeEnum; import com.qniao.dam.infrastructure.persistent.dao.activity.ActivityProductDao; import com.qniao.dam.infrastructure.utils.SnowFlakeUtil; @@ -88,14 +89,15 @@ public class OrderApplicationService { orderItem.setProductTitle(product.getProductTitle()); orderItem.setProductDesc(product.getProductDesc()); orderItem.setUnitSettlementPrice(productSpec.getUnitSellingPrice()); - if(order.getGroupType() != null && order.getGroupType() == 1){ + order.setOrderBelonging(order.transformBelonging(product.getProductType())); + if (order.getGroupType() != null && order.getGroupType() == 1) { ActivityProduct activityProduct = activityProductDao.selectOne(Wrappers.lambdaQuery(new ActivityProduct()) - .eq(ActivityProduct::getActivityId,order.getActivityId()) - .eq(ActivityProduct::getProductSpecId,orderItem.getProductSpecId())); + .eq(ActivityProduct::getActivityId, order.getActivityId()) + .eq(ActivityProduct::getProductSpecId, orderItem.getProductSpecId())); orderItem.setUnitSettlementPrice(activityProduct.getActivityUnitSellingPrice()); } //1.1. 同类型权益,不同规格,限制购买和提醒 - if(order.getGroupType() == null || order.getGroupType() == 0) { + if (order.getGroupType() == null || order.getGroupType() == 0) { if (ProductTypeEnum.CUSTOMER_VIRTUAL.equals(product.getProductType())) { boolean diffFlag = orderQueryService.checkDiffSpecRight(order, orderItem, productSpec); if (diffFlag) {