Browse Source

基础配置

release
张彭杰 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.entity.Order;
import com.qniao.dam.domain.aggregate.order.repository.OrderRepository; import com.qniao.dam.domain.aggregate.order.repository.OrderRepository;
import com.qniao.dam.domain.aggregate.productspec.entity.ProductSpec; 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.domian.aggregate.product.constant.ProductSubCategoryEnum;
import com.qniao.dam.infrastructure.persistent.dao.domain.ProductSpecDao; import com.qniao.dam.infrastructure.persistent.dao.domain.ProductSpecDao;
import com.qniao.dam.query.marriagebounty.MarriageBountyOrderQueryService; import com.qniao.dam.query.marriagebounty.MarriageBountyOrderQueryService;
@ -33,7 +34,7 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic
public void save(Long orderId) { public void save(Long orderId) {
Order order = orderRepository.load(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)) { if (Objects.isNull(marriageBountyOrder)) {
//新的悬赏招亲 //新的悬赏招亲
marriageBountyOrder = MarriageBountyOrder.build(order.getUserId(), order.getMiId()); 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.api.command.order.user.response.UserSubmitOrderVo;
import com.qniao.dam.application.service.product.ProductApplicationService; import com.qniao.dam.application.service.product.ProductApplicationService;
import com.qniao.dam.domain.aggregate.activity.entity.ActivityProduct; 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.Order;
import com.qniao.dam.domain.aggregate.order.entity.OrderItem; import com.qniao.dam.domain.aggregate.order.entity.OrderItem;
import com.qniao.dam.domain.aggregate.paymentorder.entity.PaymentOrder; 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.entity.ProductSpec;
import com.qniao.dam.domain.aggregate.productspec.repository.ProductSpecRepository; import com.qniao.dam.domain.aggregate.productspec.repository.ProductSpecRepository;
import com.qniao.dam.domain.service.order.SubmitOrderDomainService; 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.OrderBelongingEnum;
import com.qniao.dam.domian.aggregate.order.constant.OrderTypeEnum; 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.ProductSubCategoryEnum;
import com.qniao.dam.domian.aggregate.product.constant.ProductTypeEnum; 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.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.persistent.dao.domain.MarriageInformationDao;
import com.qniao.dam.infrastructure.utils.CompareEntityUtil; import com.qniao.dam.infrastructure.utils.CompareEntityUtil;
import com.qniao.dam.infrastructure.utils.SnowFlakeUtil; 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.matchmaker.MatchmakerQueryService;
import com.qniao.dam.query.order.OrderQueryService; import com.qniao.dam.query.order.OrderQueryService;
import com.qniao.dam.query.product.ProductQueryService; import com.qniao.dam.query.product.ProductQueryService;
@ -35,7 +40,9 @@ import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
@ -61,6 +68,8 @@ public class OrderApplicationService {
private ProductQueryService productQueryService; private ProductQueryService productQueryService;
@Resource @Resource
private ProductApplicationService productApplicationService; private ProductApplicationService productApplicationService;
@Resource
private MarriageBountyOrderQueryService marriageBountyOrderQueryService;
@Value("${marriage_bounty_meeting_quantity:5}") @Value("${marriage_bounty_meeting_quantity:5}")
private Integer marriageBountyMeetingQuantity; private Integer marriageBountyMeetingQuantity;
@ -181,30 +190,62 @@ public class OrderApplicationService {
} }
private void fillMarriageBountyOrderInfo(Order order, List<Product> productList) { private void fillMarriageBountyOrderInfo(Order order, List<Product> productList) {
MarriageBountyOrder marriageBountyOrder = marriageBountyOrderQueryService.queryBy(order.getUserId(), order.getMiId(), MarriageBountyOrderStatusEnum.MATCHMAKING);
order.setOrderBelonging(OrderBelongingEnum.CUSTOMER); order.setOrderBelonging(OrderBelongingEnum.CUSTOMER);
MarriageInformation marriageInformation = marriageInformationDao.selectById(order.getMiId()); MarriageInformation marriageInformation = marriageInformationDao.selectById(order.getMiId());
order.setOrderBelongName(marriageInformation.getNickName()); order.setOrderBelongName(marriageInformation.getNickName());
order.setOrderType(OrderTypeEnum.MARRIAGE_BOUNTY); order.setOrderType(OrderTypeEnum.MARRIAGE_BOUNTY);
if (CollUtil.isNotEmpty(productList)) { 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; package com.qniao.dam.query.marriagebounty;
import com.qniao.dam.domain.aggregate.marriagebounty.entity.MarriageBountyOrder; import com.qniao.dam.domain.aggregate.marriagebounty.entity.MarriageBountyOrder;
import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrderStatusEnum;
public interface MarriageBountyOrderQueryService { 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; private MarriageBountyOrderRewardDao marriageBountyOrderRewardDao;
@Override @Override
public MarriageBountyOrder queryBy(Long userId, Long miId) {
public MarriageBountyOrder queryBy(Long userId, Long miId,MarriageBountyOrderStatusEnum status) {
MarriageBountyOrder marriageBountyOrder = marriageBountyOrderDao.selectOne(new LambdaQueryWrapper<MarriageBountyOrder>() MarriageBountyOrder marriageBountyOrder = marriageBountyOrderDao.selectOne(new LambdaQueryWrapper<MarriageBountyOrder>()
.eq(MarriageBountyOrder::getUserId, userId) .eq(MarriageBountyOrder::getUserId, userId)
.eq(MarriageBountyOrder::getMiId, miId) .eq(MarriageBountyOrder::getMiId, miId)
.eq(MarriageBountyOrder::getStatus, MarriageBountyOrderStatusEnum.MATCHMAKING)
.eq(MarriageBountyOrder::getStatus, status)
.orderByDesc(MarriageBountyOrder::getCreateTime) .orderByDesc(MarriageBountyOrder::getCreateTime)
.last("limit 1")); .last("limit 1"));
if (Objects.nonNull(marriageBountyOrder)) { if (Objects.nonNull(marriageBountyOrder)) {

Loading…
Cancel
Save