Browse Source

基础配置

master
张彭杰 1 year ago
parent
commit
aaeee78144
4 changed files with 64 additions and 21 deletions
  1. 3
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java
  2. 75
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java
  3. 3
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/MarriageBountyOrderQueryService.java
  4. 4
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/impl/MarriageBountyOrderQueryServiceImpl.java

3
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java

@ -9,6 +9,7 @@ import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrde
import com.qniao.dam.domain.aggregate.order.entity.Order;
import com.qniao.dam.domain.aggregate.order.repository.OrderRepository;
import com.qniao.dam.domain.aggregate.productspec.entity.ProductSpec;
import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrderStatusEnum;
import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum;
import com.qniao.dam.infrastructure.persistent.dao.domain.ProductSpecDao;
import com.qniao.dam.query.marriagebounty.MarriageBountyOrderQueryService;
@ -33,7 +34,7 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic
public void save(Long orderId) {
Order order = orderRepository.load(orderId);
MarriageBountyOrder marriageBountyOrder = marriageBountyOrderQueryService.queryBy(order.getUserId(), order.getMiId());
MarriageBountyOrder marriageBountyOrder = marriageBountyOrderQueryService.queryBy(order.getUserId(), order.getMiId(), MarriageBountyOrderStatusEnum.MATCHMAKING);
if (Objects.isNull(marriageBountyOrder)) {
//新的悬赏招亲
marriageBountyOrder = MarriageBountyOrder.build(order.getUserId(), order.getMiId());

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

@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.qniao.dam.api.command.order.user.response.UserSubmitOrderVo;
import com.qniao.dam.application.service.product.ProductApplicationService;
import com.qniao.dam.domain.aggregate.activity.entity.ActivityProduct;
import com.qniao.dam.domain.aggregate.marriagebounty.entity.MarriageBountyOrder;
import com.qniao.dam.domain.aggregate.marriagebounty.entity.MarriageBountyOrderReward;
import com.qniao.dam.domain.aggregate.order.entity.Order;
import com.qniao.dam.domain.aggregate.order.entity.OrderItem;
import com.qniao.dam.domain.aggregate.paymentorder.entity.PaymentOrder;
@ -14,14 +16,17 @@ 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.marriagebount.constant.MarriageBountyOrderStatusEnum;
import com.qniao.dam.domian.aggregate.order.constant.OrderBelongingEnum;
import com.qniao.dam.domian.aggregate.order.constant.OrderTypeEnum;
import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum;
import com.qniao.dam.domian.aggregate.product.constant.ProductTypeEnum;
import com.qniao.dam.infrastructure.persistent.dao.activity.ActivityProductDao;
import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageBountyOrderDao;
import com.qniao.dam.infrastructure.persistent.dao.domain.MarriageInformationDao;
import com.qniao.dam.infrastructure.utils.CompareEntityUtil;
import com.qniao.dam.infrastructure.utils.SnowFlakeUtil;
import com.qniao.dam.query.marriagebounty.MarriageBountyOrderQueryService;
import com.qniao.dam.query.matchmaker.MatchmakerQueryService;
import com.qniao.dam.query.order.OrderQueryService;
import com.qniao.dam.query.product.ProductQueryService;
@ -35,7 +40,9 @@ import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.function.Function;
import java.util.stream.Collectors;
@Service
@ -61,6 +68,8 @@ public class OrderApplicationService {
private ProductQueryService productQueryService;
@Resource
private ProductApplicationService productApplicationService;
@Resource
private MarriageBountyOrderQueryService marriageBountyOrderQueryService;
@Value("${marriage_bounty_meeting_quantity:5}")
private Integer marriageBountyMeetingQuantity;
@ -181,30 +190,62 @@ public class OrderApplicationService {
}
private void fillMarriageBountyOrderInfo(Order order, List<Product> productList) {
MarriageBountyOrder marriageBountyOrder = marriageBountyOrderQueryService.queryBy(order.getUserId(), order.getMiId(), MarriageBountyOrderStatusEnum.MATCHMAKING);
order.setOrderBelonging(OrderBelongingEnum.CUSTOMER);
MarriageInformation marriageInformation = marriageInformationDao.selectById(order.getMiId());
order.setOrderBelongName(marriageInformation.getNickName());
order.setOrderType(OrderTypeEnum.MARRIAGE_BOUNTY);
if (CollUtil.isNotEmpty(productList)) {
List<OrderItem> orderItemList = new ArrayList<>();
for (Product product : productList) {
ProductSpec productSpec = product.getProductSpecList().get(0);
OrderItem orderItem = new OrderItem();
orderItem.setProductId(product.getId());
orderItem.setProductSpecId(productSpec.getId());
orderItem.setProductType(product.getProductType());
orderItem.setMainCategory(product.getMainCategory());
orderItem.setSubCategory(product.getSubCategory());
orderItem.setProductTitle(product.getProductTitle());
orderItem.setProductDesc(product.getProductDesc());
orderItem.setUnitSettlementPrice(productSpec.getUnitSellingPrice());
orderItem.setQuantity(1);
if (ProductSubCategoryEnum.MARRIAGE_BOUNTY_MEETING_FEE.equals(product.getSubCategory())) {
orderItem.setQuantity(marriageBountyMeetingQuantity);
if (Objects.isNull(marriageBountyOrder)) {
List<OrderItem> orderItemList = new ArrayList<>();
for (Product product : productList) {
ProductSpec productSpec = product.getProductSpecList().get(0);
OrderItem orderItem = new OrderItem();
orderItem.setProductId(product.getId());
orderItem.setProductSpecId(productSpec.getId());
orderItem.setProductType(product.getProductType());
orderItem.setMainCategory(product.getMainCategory());
orderItem.setSubCategory(product.getSubCategory());
orderItem.setProductTitle(product.getProductTitle());
orderItem.setProductDesc(product.getProductDesc());
orderItem.setUnitSettlementPrice(productSpec.getUnitSellingPrice());
orderItem.setQuantity(1);
if (ProductSubCategoryEnum.MARRIAGE_BOUNTY_MEETING_FEE.equals(product.getSubCategory())) {
orderItem.setQuantity(marriageBountyMeetingQuantity);
}
orderItemList.add(orderItem);
}
order.setOrderItemList(orderItemList);
} else {
List<MarriageBountyOrderReward> orderRewardList = marriageBountyOrder.getOrderRewardList();
List<OrderItem> orderItemList = new ArrayList<>();
for (Product product : productList) {
ProductSpec productSpec = product.getProductSpecList().get(0);
Integer quantity = 0;
BigDecimal unitSettlementPrice = BigDecimal.ZERO;
for (MarriageBountyOrderReward orderReward : orderRewardList) {
if (product.getSubCategory().equals(orderReward.getRewardCategory()) && !orderReward.getIsReceive()) {
quantity++;
unitSettlementPrice = productSpec.getUnitSellingPrice().subtract(orderReward.getRewardAmount());
}
}
if (unitSettlementPrice.compareTo(BigDecimal.ZERO) <= 0) {
throw new BizException("悬赏价格修改差价不能小于0");
}
OrderItem orderItem = new OrderItem();
orderItem.setProductId(product.getId());
orderItem.setProductSpecId(productSpec.getId());
orderItem.setProductType(product.getProductType());
orderItem.setMainCategory(product.getMainCategory());
orderItem.setSubCategory(product.getSubCategory());
orderItem.setProductTitle(product.getProductTitle());
orderItem.setProductDesc(product.getProductDesc());
orderItem.setUnitSettlementPrice(unitSettlementPrice);
orderItem.setQuantity(quantity);
orderItemList.add(orderItem);
}
orderItemList.add(orderItem);
order.setOrderItemList(orderItemList);
}
order.setOrderItemList(orderItemList);
}
}
}

3
dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/MarriageBountyOrderQueryService.java

@ -1,7 +1,8 @@
package com.qniao.dam.query.marriagebounty;
import com.qniao.dam.domain.aggregate.marriagebounty.entity.MarriageBountyOrder;
import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrderStatusEnum;
public interface MarriageBountyOrderQueryService {
MarriageBountyOrder queryBy(Long userId, Long miId);
MarriageBountyOrder queryBy(Long userId, Long miId, MarriageBountyOrderStatusEnum status);
}

4
dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/impl/MarriageBountyOrderQueryServiceImpl.java

@ -21,11 +21,11 @@ public class MarriageBountyOrderQueryServiceImpl implements MarriageBountyOrderQ
private MarriageBountyOrderRewardDao marriageBountyOrderRewardDao;
@Override
public MarriageBountyOrder queryBy(Long userId, Long miId) {
public MarriageBountyOrder queryBy(Long userId, Long miId,MarriageBountyOrderStatusEnum status) {
MarriageBountyOrder marriageBountyOrder = marriageBountyOrderDao.selectOne(new LambdaQueryWrapper<MarriageBountyOrder>()
.eq(MarriageBountyOrder::getUserId, userId)
.eq(MarriageBountyOrder::getMiId, miId)
.eq(MarriageBountyOrder::getStatus, MarriageBountyOrderStatusEnum.MATCHMAKING)
.eq(MarriageBountyOrder::getStatus, status)
.orderByDesc(MarriageBountyOrder::getCreateTime)
.last("limit 1"));
if (Objects.nonNull(marriageBountyOrder)) {

Loading…
Cancel
Save