Browse Source

相亲角订单

master
张彭杰 11 months ago
parent
commit
1da81c1efc
8 changed files with 79 additions and 5 deletions
  1. 4
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/order/constant/OrderBelongingEnum.java
  2. 6
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductMainCategoryEnum.java
  3. 8
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductSubCategoryEnum.java
  4. 4
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductTypeEnum.java
  5. 2
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/order/entity/Order.java
  6. 10
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/order/user/OrderUserCommandController.java
  7. 35
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/order/user/request/UserSubmitMatchmakingCornerOrderDto.java
  8. 15
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java

4
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/order/constant/OrderBelongingEnum.java

@ -12,7 +12,9 @@ public enum OrderBelongingEnum {
CUSTOMER(1, "客户"),
MATCHMAKER(2, "红娘");
MATCHMAKER(2, "红娘"),
MATCHMAKING_CORNER(3, "相亲角");
@EnumValue
@JsonValue

6
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductMainCategoryEnum.java

@ -17,13 +17,15 @@ public enum ProductMainCategoryEnum {
DATE_EDITING(2, "资料编辑"),
UNLOCKING_INFORMATION(3, "解锁信息"),
OFFLINE_SERVICES(4, "线下服务"),
CHAT_CARD(5,"聊天卡"),
CHAT_CARD(5, "聊天卡"),
VIP(6, "会员"),
MARRIAGE_BOUNTY(7, "悬赏招亲"),
SITE_ACTIVITY(8, "线下活动"),
MATCHMAKER(888,"红娘合伙人");
MATCHMAKER(888, "红娘合伙人"),
MATCHMAKING_CORNER(999, "相亲角");
@EnumValue
@JsonValue

8
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductSubCategoryEnum.java

@ -46,7 +46,13 @@ public enum ProductSubCategoryEnum {
MATCHMAKER_ONLINE_FEE(88802, "线上红娘"),
MATCHMAKER_TRAINEE_FEE(88803, "实习红娘");
MATCHMAKER_TRAINEE_FEE(88803, "实习红娘"),
MATCHMAKING_CORNER_STANDARD_FEE(99901, "相亲角标准版"),
MATCHMAKING_CORNER_LUXURY_FEE(99902, "相亲角豪华版"),
MATCHMAKING_CORNER_HONOURABLE_FEE(99903, "相亲角尊贵版");
@EnumValue
@JsonValue

4
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductTypeEnum.java

@ -14,7 +14,9 @@ public enum ProductTypeEnum {
CUSTOMER_VIRTUAL(2, "客户虚拟物品"),
MATCHMAKER_VIRTUAL(3, "红娘虚拟物品");
MATCHMAKER_VIRTUAL(3, "红娘虚拟物品"),
MATCHMAKING_CORNER_VIRTUAL(4, "相亲角虚拟物品");
@EnumValue
@JsonValue

2
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/order/entity/Order.java

@ -76,6 +76,8 @@ public class Order extends Entity<Order> {
OrderBelongingEnum orderBelonging = OrderBelongingEnum.CUSTOMER;
if (ProductTypeEnum.MATCHMAKER_VIRTUAL.equals(productType)) {
orderBelonging = OrderBelongingEnum.MATCHMAKER;
}else if (ProductTypeEnum.MATCHMAKING_CORNER_VIRTUAL.equals(productType)) {
orderBelonging = OrderBelongingEnum.MATCHMAKING_CORNER;
}
return orderBelonging;
}

10
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/order/user/OrderUserCommandController.java

@ -95,4 +95,14 @@ public class OrderUserCommandController {
public void userCompleteOrder(@RequestBody @Valid UserCompleteOrderDto dto) {
orderApplicationService.complete(dto.getId());
}
@ApiOperation("用户提交相亲角订单")
@PostMapping("submit/matchmaking_corner")
public UserSubmitOrderVo userSubmitMatchmakingCornerOrder(@RequestBody @Valid UserSubmitMatchmakingCornerOrderDto dto,
@RequestParam("userId") Long userId) {
Order order = dto.trans2Domain();
order.setUserId(userId);
return orderApplicationService.submitMatchmakingCornerOrder(order);
}
}

35
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/order/user/request/UserSubmitMatchmakingCornerOrderDto.java

@ -0,0 +1,35 @@
package com.qniao.dam.api.command.order.user.request;
import com.qniao.dam.domain.aggregate.order.entity.Order;
import com.qniao.dam.domain.aggregate.order.entity.OrderItem;
import com.qniao.domain.Trans2DomainAssembler;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;
@Data
public class UserSubmitMatchmakingCornerOrderDto implements Trans2DomainAssembler<Order> {
@ApiModelProperty("产品规格标识")
@NotNull(message = "产品规格标识不能为空")
private Long productSpecId;
@ApiModelProperty("用户名称")
private String userName;
@Override
public Order trans2Domain() {
Order order = new Order();
order.setOrderBelongName(userName);
List<OrderItem> orderItemList = new ArrayList<>();
OrderItem orderItem = new OrderItem();
orderItem.setProductSpecId(productSpecId);
orderItem.setQuantity(1);
orderItemList.add(orderItem);
order.setOrderItemList(orderItemList);
return order;
}
}

15
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java

@ -579,4 +579,19 @@ public class OrderApplicationService extends BaseApplicationService {
BaseDomainEvent orderCompletedEvent = orderAggregate.complete(order);
this.sendEvent(orderCompletedEvent);
}
public UserSubmitOrderVo submitMatchmakingCornerOrder(Order order) {
//1. 填充订单信息 + 同类型权益不同规格限制购买和提醒
fillOrderInfo(order);
//2. 结束历史订单
cancelHisOrder(order);
//2. 订单金额计算
countOrderAmount(order, false);
//3. 设置订单号
order.setOrderCode(snowFlakeUtil.getSnowflakeOrderCode());
//4. 组织付款单信息
PaymentOrder paymentOrder = makePaymentOrder(order);
submitOrderDomainService.handle(order, paymentOrder);
return new UserSubmitOrderVo(order.getId(), paymentOrder.getId(), false);
}
}
Loading…
Cancel
Save