Browse Source

红娘订单

master
张彭杰 1 year ago
parent
commit
730be09711
4 changed files with 81 additions and 0 deletions
  1. 11
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/order/user/OrderUserCommandController.java
  2. 36
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/order/user/request/UserCalculateMatchmakerOrderDto.java
  3. 24
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/order/user/response/UserCalculateMatchmakerOrderFeeVo.java
  4. 10
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java

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

@ -1,6 +1,7 @@
package com.qniao.dam.api.command.order.user;
import com.qniao.dam.api.command.order.user.request.*;
import com.qniao.dam.api.command.order.user.response.UserCalculateMatchmakerOrderFeeVo;
import com.qniao.dam.api.command.order.user.response.UserCalculateOrderFeeVo;
import com.qniao.dam.api.command.order.user.response.UserSubmitOrderVo;
import com.qniao.dam.application.service.order.OrderApplicationService;
@ -79,4 +80,14 @@ public class OrderUserCommandController {
order.setUserId(userId);
return orderApplicationService.submitMatchMakerOrder(order, dto.getMatchmakerOrderType());
}
@ApiOperation("用户提交红娘订单费用")
@PostMapping("calculate/matchmaker-order/fee")
public UserCalculateMatchmakerOrderFeeVo userCalculateMatchmakerOrderFee(@RequestBody @Valid UserCalculateMatchmakerOrderDto dto,
@RequestParam("userId") Long userId) {
Order order = dto.trans2Domain();
order.setUserId(userId);
return orderApplicationService.calculateMatchmakerOrderFee(order, dto.getMatchmakerOrderType());
}
}

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

@ -0,0 +1,36 @@
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.dam.domian.aggregate.order.constant.MatchmakerOrderTypeEnum;
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 UserCalculateMatchmakerOrderDto implements Trans2DomainAssembler<Order> {
@ApiModelProperty("产品规格标识")
@NotNull(message = "产品规格标识不能为空")
private Long productSpecId;
@ApiModelProperty("红娘订单类型")
@NotNull(message = "红娘订单类型不能为空")
private MatchmakerOrderTypeEnum matchmakerOrderType;
@Override
public Order trans2Domain() {
Order order = new Order();
List<OrderItem> orderItemList = new ArrayList<>();
OrderItem orderItem = new OrderItem();
orderItem.setProductSpecId(productSpecId);
orderItem.setQuantity(1);
orderItemList.add(orderItem);
order.setOrderItemList(orderItemList);
return order;
}
}

24
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/order/user/response/UserCalculateMatchmakerOrderFeeVo.java

@ -0,0 +1,24 @@
package com.qniao.dam.api.command.order.user.response;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserCalculateMatchmakerOrderFeeVo {
@ApiModelProperty("原始金额")
private BigDecimal originalAmount ;
@ApiModelProperty("折扣金额")
private BigDecimal discountAmount;
@ApiModelProperty("结算金额")
private BigDecimal settlementAmount;
}

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

@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.qniao.dam.api.command.order.user.request.UserCalculateSiteActivityOrderDto;
import com.qniao.dam.api.command.order.user.request.UserSubmitSiteActivityOrderDto;
import com.qniao.dam.api.command.order.user.response.UserCalculateMatchmakerOrderFeeVo;
import com.qniao.dam.api.command.order.user.response.UserCalculateOrderFeeVo;
import com.qniao.dam.api.command.order.user.response.UserSubmitOrderVo;
import com.qniao.dam.application.service.product.ProductApplicationService;
@ -508,4 +509,13 @@ public class OrderApplicationService extends BaseApplicationService {
}
}
}
public UserCalculateMatchmakerOrderFeeVo calculateMatchmakerOrderFee(Order order,
MatchmakerOrderTypeEnum matchmakerOrderType) {
//1. 填充订单信息 + 同类型权益不同规格限制购买和提醒
fillOrderInfo(order);
//2. 订单金额计算
countMatchMakerOrderAmount(order, matchmakerOrderType);
return new UserCalculateMatchmakerOrderFeeVo(order.getOriginalAmount(), order.getDiscountAmount(), order.getSettlementAmount());
}
}
Loading…
Cancel
Save